re PR c++/61825 (g++.dg/cpp0x/static_assert9.C FAILs)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
2
3         PR c++/61825
4         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
5         that visibility change is possible
6         (handle_weakref_attribute): Likewise.
7         * cgraph.h (symtab_node): Add method get_create and
8         field refuse_visibility_changes.
9         (symtab_node::get_create): New method.
10         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
11         * varasm.c (mark_weak): Verify that visibility change is
12         possible.
13
14 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
15
16         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
17         for base_reg_operand to be common between LO_SUM and PLUS.
18         (fusion_gpr_mem_combo): New predicate to match a fused address
19         that combines the addis and memory offset address.
20
21         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
22         calling signature.
23         (emit_fusion_gpr_load): Likewise.
24
25         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
26         signature to pass each argument separately, rather than
27         using an operands array.  Rewrite the insns found by peephole2 to
28         be a single insn, rather than hoping the insns will still be
29         together when the peephole pass is done.  Drop being called via a
30         normal peephole.
31         (emit_fusion_gpr_load): Change calling signature to be called from
32         the fusion_gpr_load_<mode> insns with a combined memory address
33         instead of the peephole pass passing the addis and offset
34         separately.
35
36         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
37         fusion.
38         (power8 fusion peephole): Drop support for doing power8 via a
39         normal peephole that was created by the peephole2 pass.
40         (power8 fusion peephole2): Create a new insn with the fused
41         address, so that the fused operation is kept together after
42         register allocation is done.
43         (fusion_gpr_load_<mode>): Likewise.
44
45 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
46
47         PR lto/63286
48         * tree.c (need_assembler_name_p): Do not mangle variadic types.
49
50 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
51
52         * recog.c (scratch_operand): Do not simply allow all hard registers:
53         only allow those that are allocatable.
54
55 2014-09-19  Felix Yang  <felix.yang@huawei.com>
56
57         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
58         comments and fix spacing to conform to coding style.
59
60 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
61
62         * genrecog.c (validate_pattern): Allow empty constraints in
63         a match_scratch.
64
65 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
66
67         * dwarf2out.c (decl_ultimate_origin): Update comment.
68         * tree.c (block_ultimate_origin): Same.
69
70 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
71
72         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
73         Update GCC version name to GCC 5.
74         (rs6000_function_arg_boundary): Likewise.
75         (rs6000_function_arg): Likewise.
76
77 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
78
79         * config/sh/sh.md: Fix use of constraints in define_split.
80
81 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
82
83         PR ipa/61998
84         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
85
86 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
87
88         * doc/md.texi (Modifiers): Consistently use "read/write"
89         nomenclature rather than "input/output".
90         * genrecog.c (constraints_supported_in_insn_p): New.
91         (validate_pattern): If needed, also check constraints on
92         MATCH_SCRATCH operands.
93         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
94         operands with no '=' or '+' modifier.
95
96 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
97
98         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
99         scratch register as written.
100
101 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
102
103         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
104         assignment.
105
106 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
107
108         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
109         expanders.
110
111 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
112
113         PR target/62662
114         * config/s390/s390.c (s390_emit_epilogue): When doing the return
115         address load optimization force s390_optimize_prologue to leave it
116         that way.  Only do the optimization if we already decided to push
117         r14 into a stack slot.
118
119 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
120
121         * asan.c (build_check_stmt): Alignment arg was added.
122         (asan_expand_check_ifn): Optimization for alignment >= 8.
123
124 2014-09-19  Olivier Hainque  <hainque@adacore.com>
125
126         * config/i386/vxworksae.h: Remove obsolete definitions.
127         (STACK_CHECK_PROTECT): Define.
128         * config/i386/vx-common.h: Remove.  Merge contents within
129         config/i386/vxworks.h.
130         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
131         i386/vx-common.h.
132
133 2014-09-19  Olivier Hainque  <hainque@adacore.com>
134
135         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
136         * config/rs6000/t-vxworksmils: New file.
137         * config/rs6000/vxworksmils.h: New file.
138
139 2014-09-19  Olivier Hainque  <hainque@adacore.com>
140
141         * varasm.c (default_section_type_flags): Flag .persistent.bss
142         sections as SECTION_BSS.
143
144 2014-09-19  Nick Clifton  <nickc@redhat.com>
145
146         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
147         pop'ed registers so that DCE does not eliminate them.
148
149 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
150
151         PR lto/63298
152         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
153
154 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
155
156         * system.h (LIBGCC2_TF_CEXT): Poison.
157         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
158         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
159         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
160         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
161         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
162         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
163         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
164         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
165         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
166
167 2014-09-19  Kito Cheng  <kito@0xlab.org>
168
169         * except.h: Fix header guard.
170         * addresses.h: Add missing header guard.
171         * cfghooks.h: Likewise.
172         * collect-utils.h: Likewise.
173         * collect2-aix.h: Likewise.
174         * conditions.h: Likewise.
175         * cselib.h: Likewise.
176         * dwarf2asm.h: Likewise.
177         * graphds.h: Likewise.
178         * graphite-scop-detection.h: Likewise.
179         * gsyms.h: Likewise.
180         * hw-doloop.h: Likewise.
181         * incpath.h: Likewise.
182         * ipa-inline.h: Likewise.
183         * ipa-ref.h: Likewise.
184         * ira-int.h: Likewise.
185         * ira.h: Likewise.
186         * lra-int.h: Likewise.
187         * lra.h: Likewise.
188         * lto-section-names.h: Likewise.
189         * read-md.h: Likewise.
190         * reload.h: Likewise.
191         * rtl-error.h: Likewise.
192         * sdbout.h: Likewise.
193         * targhooks.h: Likewise.
194         * tree-affine.h: Likewise.
195         * xcoff.h: Likewise.
196         * xcoffout.h: Likewise.
197
198 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
199
200         PR debug/63285
201         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
202         if advance != 0.
203
204 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
205
206         PR target/61360
207         * lra.c (lra): Call recog_init.
208
209 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
210
211         PR c++/62017
212         * asan.c (transform_statements): Don't instrument clobber statements.
213
214 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
215
216         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
217         to neon_load1_1reg<q>.
218
219 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
220
221         PR debug/63284
222         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
223         if there are only debug stmts after the noreturn call, instead
224         remove the debug stmts.
225
226 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
227
228         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
229         (odr_types_equivalent_p): Use pair hash.
230         (odr_subtypes_equivalent_p): Likewise, do structural compare
231         on ODR types that may be mismatched.
232         (warn_odr): Support warning when only one field is given.
233         (odr_types_equivalent_p): Strenghten comparsions made;
234         support VOIDtype.
235         (add_type_duplicate): Update VISITED hash set.
236
237 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
238
239         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
240         Enable selection of 'posix' or no thread model.
241
242 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
243
244         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
245         when architecture is older than ARMv7.
246
247 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
248
249         PR target/61853
250         * config/pa/pa.c (pa_function_value): Directly handle aggregates
251         that fit exactly in a word or double word.
252
253 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
254
255         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
256         zmm/k regs support.
257
258 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
259             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
260             Anna Tikhonova  <anna.tikhonova@intel.com>
261             Ilya Tocar  <ilya.tocar@intel.com>
262             Andrey Turetskiy  <andrey.turetskiy@intel.com>
263             Ilya Verbin  <ilya.verbin@intel.com>
264             Kirill Yukhin  <kirill.yukhin@intel.com>
265             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
266
267         * config/i386/i386.c
268         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
269         * config/i386/sse.md
270         (define_mode_iterator VI48F_256): New.
271         (define_mode_attr extract_type): Ditto.
272         (define_mode_attr extract_suf): Ditto.
273         (define_mode_iterator AVX512_VEC): Ditto.
274         (define_expand
275         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
276         AVX512_VEC.
277         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
278         (define_insn
279         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
280         Ditto.
281         (define_mode_attr extract_type_2): Ditto.
282         (define_mode_attr extract_suf_2): Ditto.
283         (define_mode_iterator AVX512_VEC_2): Ditto.
284         (define_expand
285         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
286         AVX512_VEC_2 mode iterator.
287         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
288         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
289         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
290         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
291         (define_split for V16FI mode): Ditto.
292         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
293         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
294         (define_split for VI8F_256 mode): Ditto.
295         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
296         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
297         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
298         (define_split for VI4F_256 mode): Ditto.
299         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
300         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
301         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
302         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
303         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
304         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
305         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
306         Update `type' attribute, remove explicit `memory' attribute calculation.
307
308 2014-09-16  Kito Cheng  <kito@0xlab.org>
309
310         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
311         ira_spilled_reg_stack_slots_num if using lra.
312         (do_reload): Remove release ira_spilled_reg_stack_slots part.
313         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
314         make sure not using lra.
315         (ira_reuse_stack_slot): Likewise.
316         (ira_mark_new_stack_slot): Likewise.
317
318 2014-09-15  Andi Kleen  <ak@linux.intel.com>
319
320         * function.c (allocate_struct_function): Force
321         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
322         profiling is disabled.
323
324 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
325     
326         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
327         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
328         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
329         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
330         macro with statically checked member functions.
331         * rtl.h (rtx_insn::deleted): New method.
332         (rtx_insn::set_deleted): Likewise.
333         (rtx_insn::set_undeleted): Likewise.
334         (INSN_DELETED_P): Remove.
335
336 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
337
338         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
339         result of emit_jump_insn_before to a new variable.
340         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
341         (mark_jump_label_1): Likewise.
342         (mark_jump_label_asm): Likewise.
343         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
344         * rtl.h (mark_jump_label): Adjust.
345
346 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
347
348         * Makefile.in (dg_target_exps): Remove.
349         (check_gcc_parallelize): Change to just an upper bound number.
350         (check-%-subtargets): Always print the non-parallelized goals.
351         (check_p_vars, check_p_comma, check_p_subwork): Remove.
352         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
353         check_p_numbers3, check_p_numbers4, check_p_numbers5,
354         check_p_numbers6): New variables.
355         (check_p_numbers): Set to sequence from 1 to 9999.
356         (check_p_subdirs): Set to sequence from 1 to minimum of
357         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
358         or 128.
359         (check-%, check-parallel-%): Rewritten so that for parallelized
360         testing each job runs all the *.exp files, with
361         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
362
363 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
364
365         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
366         rtx to rtx_insn *.
367         (arc_sets_cc_p): Likewise.
368         * config/arc/arc.c (arc_print_operand): Use methods of
369         "final_sequence" for clarity, and to enable strengthening of
370         locals "jump" and "delay" from rtx to rtx_insn *.
371         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
372         rtx_insn *; use method of rtx_sequence for typesafety.
373         (arc_get_insn_variants): Use insn method of rtx_sequence for
374         typesafety.
375         (arc_pad_return): Likewise.
376         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
377         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
378         dyn_cast to rtx_sequence *, using insn method for typesafety.
379         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
380         rtx_sequence * and use insn method when invoking get_attr_length.
381         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
382         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
383         rtx_sequence *, introducing a local "seq", using its insn method
384         from typesafety and clarity.
385         (add_sched_insns_for_speculation): Strengthen local "next" from
386         rtx to rtx_insn *.
387         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
388         (predicate_insn): Likewise.
389         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
390         second param.
391         * config/cris/cris.c (cris_notice_update_cc): Likewise.
392         * config/epiphany/epiphany-protos.h
393         (extern void epiphany_insert_mode_switch_use): Likewise for param
394         "insn".
395         (get_attr_sched_use_fpu): Likewise for param.
396         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
397         Likewise for param "insn".
398         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
399         param "insn" of "target_insert_mode_switch_use" callback.
400         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
401         (frv_issues_to_branch_unit_p): Likewise.
402         (frv_pack_insn_p): Likewise.
403         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
404         const rtx * (i.e. mutable rtx_def * const *) to
405         rtx_insn * const *.
406         * config/i386/i386-protos.h (standard_sse_constant_opcode):
407         Strengthen first param from rtx to rtx_insn *.
408         (output_fix_trunc): Likewise.
409         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
410         (output_fix_trunc): Likewise.
411         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
412         local "insn".
413         (min_insn_size): Likewise for param "insn".
414         (get_mem_group): Likewise.
415         (is_cmp): Likewise.
416         (get_insn_path): Likewise.
417         (get_insn_group): Likewise.
418         (count_num_restricted): Likewise.
419         (fits_dispatch_window): Likewise.
420         (add_insn_window): Likewise.
421         (add_to_dispatch_window): Likewise.
422         (debug_insn_dispatch_info_file): Likewise.
423         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
424         first param.
425         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
426         "cmp" and local "prev".
427         (m32c_output_compare): Likewise for param "insn".
428         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
429         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
430         (define_predicate "large_insn_p"): Likewise.
431         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
432         param from rtx to rtx_insn *.
433         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
434         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
435         (m68k_sched_attr_size): Likewise.
436         (sched_get_opxy_mem_type): Likewise for param "insn".
437         (m68k_sched_attr_op_mem): Likewise.
438         (sched_mem_operand_p): Likewise.
439         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
440         * config/mep/mep.c (mep_multi_slot): Likewise.
441         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
442         first param.
443         (mips_sync_loop_insns): Likewise.
444         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
445         method of "final_sequence" for typesafety.
446         (mips_process_sync_loop): Strengthen param "insn" from rtx to
447         rtx_insn *.
448         (mips_output_sync_loop): Likewise.
449         (mips_sync_loop_insns): Likewise.
450         (mips_74k_agen_init): Likewise.
451         (mips_sched_init): Use NULL rather than NULL_RTX when working with
452         insns.
453         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
454         Strengthen param "insn" from rtx to rtx_insn *.
455         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
456         local "insn".
457         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
458         param.
459         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
460         "insn".  Use method of rtx_sequence for typesafety.
461         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
462         rtx_insn *.
463         (branch_needs_nop_p): Likewise.
464         (use_skip_p): Likewise.
465         (pa_insn_refs_are_delayed): Likewise.
466         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
467         for locals "insn", "ninsn".
468         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
469         "insn".
470         (is_cracked_insn): Likewise.
471         (is_branch_slot_insn): Likewise.
472         (is_nonpipeline_insn): Likewise.
473         (insn_terminates_group_p): Likewise.
474         (insn_must_be_first_in_group): Likewise.
475         (insn_must_be_last_in_group): Likewise.
476         (force_new_group): Likewise for param "next_insn".
477         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
478         "insn".
479         (s390_sched_score): Likewise.
480         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
481         (rtx sfunc_uses_reg): Likewise for sole param.
482         * config/sh/sh.c (sh_print_operand): Use insn method of
483         final_sequence for typesafety.
484         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
485         Use insn method of final_sequence for typesafety.
486         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
487         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
488         for param.
489         (eligible_for_return_delay): Likewise.
490         (eligible_for_sibcall_delay): Likewise.
491         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
492         (eligible_for_return_delay): Likewise.
493         (eligible_for_sibcall_delay): Likewise.
494         * config/stormy16/stormy16-protos.h
495         (xstormy16_output_cbranch_hi): Likewise for final param.
496         (xstormy16_output_cbranch_si): Likewise.
497         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
498         (xstormy16_output_cbranch_si): Likewise.
499         * config/v850/v850-protos.h (notice_update_cc): Likewise.
500         * config/v850/v850.c (notice_update_cc): Likewise.
501
502         * final.c (get_attr_length_1): Strengthen param "insn" and param
503         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
504         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
505         (get_attr_min_length): Likewise.
506         (shorten_branches): Likewise for signature of locals "length_fun"
507         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
508         from a checked cast and use its methods for clarity and to enable
509         strengthening local "inner_insn" from rtx to rtx_insn *.
510         * genattr.c (gen_attr): When writing out the prototypes of the
511         various generated "get_attr_" functions, strengthen the params of
512         the non-const functions from rtx to rtx_insn *.
513         Similarly, strengthen the params of insn_default_length,
514         insn_min_length, insn_variable_length_p, insn_current_length.
515         (main): Similarly, strengthen the param of num_delay_slots,
516         internal_dfa_insn_code, insn_default_latency, bypass_p,
517         insn_latency, min_issue_delay, print_reservation,
518         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
519         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
520         to hook_int_rtx_insn_unreachable.
521         * genattrtab.c (write_attr_get): When writing out the generated
522         "get_attr_" functions, strengthen the param "insn" from rtx to
523         rtx_insn *, eliminating a checked cast.
524         (make_automaton_attrs): When writing out prototypes of
525         "internal_dfa_insn_code_", "insn_default_latency_" functions
526         and the "internal_dfa_insn_code" and "insn_default_latency"
527         callbacks, strengthen their params from rtx to rtx_insn *
528         * genautomata.c (output_internal_insn_code_evaluation): When
529         writing out code, add a checked cast from rtx to rtx_insn * when
530         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
531         (output_dfa_insn_code_func): Strengthen param of generated
532         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
533         (output_trans_func): Likewise for generated function
534         "state_transition".
535         (output_internal_insn_latency_func): When writing out generated
536         function "internal_insn_latency", rename params from "insn" and
537         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
538         locals "insn" and "insn2" as rtx_insn * with checked casts once
539         we've proven that we're not dealing with const0_rtx.
540         (output_insn_latency_func):  Strengthen param of generated
541         function "insn_latency" from rtx to rtx_insn *.
542         (output_print_reservation_func): Likewise for generated function
543         "print_reservation".
544         (output_insn_has_dfa_reservation_p): Likewise for generated
545         function "insn_has_dfa_reservation_p".
546         * hooks.c (hook_int_rtx_unreachable): Rename to...
547         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
548         from rtx to rtx_insn *.
549         * hooks.h (hook_int_rtx_unreachable): Likewise.
550         (extern int hook_int_rtx_insn_unreachable): Likewise.
551         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
552         (get_attr_min_length): Likewise.
553         * recog.c (get_enabled_alternatives): Likewise.
554         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
555         * reorg.c (find_end_label): Introduce local rtx "pat" and
556         strengthen local "insn" from rtx to rtx_insn *.
557         (redundant_insn): Use insn method of "seq" rather than element for
558         typesafety; strengthen local "control" from rtx to rtx_insn *.
559         * resource.c (mark_referenced_resources): Add checked cast to
560         rtx_insn * within INSN/JUMP_INSN case.
561         (mark_set_resources): Likewise.
562         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
563         rtx to rtx_insn *.
564
565 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
566
567         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
568         param "label" from rtx to rtx_insn *.
569         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
570         and local "op".
571         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
572         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
573         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
574         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
575         * final.c (default_label_align_after_barrier_max_skip): Strengthen
576         param from rtx to rtx_insn *.
577         (default_loop_align_max_skip): Likewise.
578         (default_label_align_max_skip): Likewise.
579         (default_jump_align_max_skip): Likewise.
580         * target.def (label_align_after_barrier_max_skip): Likewise.
581         (loop_align_max_skip): Likewise.
582         (label_align_max_skip): Likewise.
583         (jump_align_max_skip): Likewise.
584         * targhooks.h (default_label_align_after_barrier_max_skip):
585         Likewise.
586         (default_loop_align_max_skip): Likewise.
587         (default_label_align_max_skip): Likewise.
588         (default_jump_align_max_skip): Likewise.
589
590 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
591
592         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
593         from const_rtx to const rtx_insn *.  Update union members from rtx
594         to rtx_insn *.
595         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
596         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
597         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
598         strengthen both params from const_rtx to const rtx_insn *.
599         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
600         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
601         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
602         rtx_insn *.
603         * target.def (can_follow_jump): Strengthen both params from
604         const_rtx to const rtx_insn *, and update default implementation
605         from hook_bool_const_rtx_const_rtx_true to
606         hook_bool_const_rtx_insn_const_rtx_insn_true.
607
608 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
609
610         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
611         "insn" from rtx to rtx_insn *.
612         * sched-int.h (deps_start_bb): Likewise for 2nd param.
613
614 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
615             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
616             Anna Tikhonova  <anna.tikhonova@intel.com>
617             Ilya Tocar  <ilya.tocar@intel.com>
618             Andrey Turetskiy  <andrey.turetskiy@intel.com>
619             Ilya Verbin  <ilya.verbin@intel.com>
620             Kirill Yukhin  <kirill.yukhin@intel.com>
621             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
622
623         * config/i386/sse.md
624         (define_insn "vcvtph2ps<mask_name>"): Add masking.
625         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
626         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
627         (define_expand "vcvtps2ph_mask"): New.
628         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
629         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
630         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
631
632 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
633             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
634             Anna Tikhonova  <anna.tikhonova@intel.com>
635             Ilya Tocar  <ilya.tocar@intel.com>
636             Andrey Turetskiy  <andrey.turetskiy@intel.com>
637             Ilya Verbin  <ilya.verbin@intel.com>
638             Kirill Yukhin  <kirill.yukhin@intel.com>
639             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
640
641         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
642         New.
643         (define_mode_iterator VI24_AVX512BW_1): Ditto.
644         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
645         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
646         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
647         also for TARGET_AVX512VL.
648         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
649
650 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
651
652         * doc/install.texi (Options specification): add 
653         --disable-libsanitizer item.
654
655 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
656             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
657
658         PR target/61407
659         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
660         and above.
661         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
662         kernel version check to avoid incrementing it after every major OS X
663         release.
664         (darwin_default_min_version): Avoid static memory buffer.
665
666 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
667
668         * tree.c (need_assembler_name_p): Store C++ type mangling only
669         for aggregates.
670
671 2014-09-13  Marek Polacek  <polacek@redhat.com>
672
673         * tree.c (protected_set_expr_location): Don't check whether T is
674         non-null here.
675
676 2014-09-12  DJ Delorie  <dj@redhat.com>
677
678         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
679         (extend_and_shift1_hipsi2): Likewise.
680         (extend_and_shift2_hipsi2): Likewise.
681
682 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
683
684         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
685         with NULL when dealing with an insn.
686         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
687         from rtx to rtx_insn *.
688         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
689         const_rtx to const rtx_insn *.
690         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
691
692 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
693
694         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
695         assert.
696
697 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
698
699         * target.def (libgcc_floating_mode_supported_p): New hook.
700         * targhooks.c (default_libgcc_floating_mode_supported_p): New
701         function.
702         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
703         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
704         (LIBGCC2_HAS_TF_MODE): Remove.
705         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
706         * doc/tm.texi: Regenerate.
707         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
708         machine mode.
709         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
710         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
711         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
712         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
713         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
714         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
715         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
716         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
717         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
718         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
719         function.
720         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
721         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
722         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
723         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
724         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
725         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
726         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
727         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
728         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
729         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
730         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
731         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
732         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
733         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
734         Remove.
735         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
736         New macro.
737         (ia64_libgcc_floating_mode_supported_p): New function.
738         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
739         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
740         (IA64_NO_LIBGCC_TFMODE): Define.
741         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
742         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
743         macro.
744         (pdp11_scalar_mode_supported_p): New function.
745         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
746         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
747
748 2014-09-12  Richard Biener  <rguenther@suse.de>
749
750         PR middle-end/63237
751         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
752
753 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
754
755         * tree.c (integer_each_onep): New function.
756         * tree.h (integer_each_onep): Declare it.
757         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
758         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
759         (X & 1) == 0 for vector and complex.
760
761 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
762
763         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
764         for A57.
765         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
766         cost to spilling from integer to FP registers.
767
768 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
769
770         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
771         move handling.
772         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
773         are now handled correctly.
774
775 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
776
777         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
778         handling of CALLER_SAVE_REGS and POINTER_REGS.
779
780 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
781
782         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
783         the number of hard registers.
784
785 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
786             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
787             Anna Tikhonova  <anna.tikhonova@intel.com>
788             Ilya Tocar  <ilya.tocar@intel.com>
789             Andrey Turetskiy  <andrey.turetskiy@intel.com>
790             Ilya Verbin  <ilya.verbin@intel.com>
791             Kirill Yukhin  <kirill.yukhin@intel.com>
792             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
793
794         * config/i386/sse.md
795         (define_mode_iterator VI48_AVX512VL): New.
796         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
797         "avx512f_vternlog<mode>_maskz" and update mode iterator.
798         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
799         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
800         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
801         "avx512f_vternlog<mode>_mask" and update mode iterator.
802         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
803         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
804         iterator.
805         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
806         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
807         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
808         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
809         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
810         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
811
812 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
813             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
814             Anna Tikhonova  <anna.tikhonova@intel.com>
815             Ilya Tocar  <ilya.tocar@intel.com>
816             Andrey Turetskiy  <andrey.turetskiy@intel.com>
817             Ilya Verbin  <ilya.verbin@intel.com>
818             Kirill Yukhin  <kirill.yukhin@intel.com>
819             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
820
821         * config/i386/sse.md (VI128_256): Delete.
822         (define_mode_iterator VI124_256): New.
823         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
824         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
825         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
826         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
827         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
828         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
829         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
830         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
831         iterator.
832         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
833         in presence of AVX-512.
834
835 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
836             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
837             Anna Tikhonova  <anna.tikhonova@intel.com>
838             Ilya Tocar  <ilya.tocar@intel.com>
839             Andrey Turetskiy  <andrey.turetskiy@intel.com>
840             Ilya Verbin  <ilya.verbin@intel.com>
841             Kirill Yukhin  <kirill.yukhin@intel.com>
842             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
843
844         * config/i386/sse.md
845         (define_expand "<avx512>_gathersi<mode>"): Rename from
846         "avx512f_gathersi<mode>".
847         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
848         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
849         (define_expand "<avx512>_gatherdi<mode>"): Rename from
850         "avx512f_gatherdi<mode>".
851         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
852         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
853         wide versions.
854         (define_expand "<avx512>_scattersi<mode>"): Rename from
855         "avx512f_scattersi<mode>".
856         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
857         (define_expand "<avx512>_scatterdi<mode>"): Rename from
858         "avx512f_scatterdi<mode>".
859         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
860
861 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
862
863         * ira.h (ira_finish_once): Delete.
864         * ira-int.h (target_ira_int::~target_ira_int): Declare.
865         (target_ira_int::free_ira_costs): Likewise.
866         (target_ira_int::free_register_move_costs): Likewise.
867         (ira_finish_costs_once): Delete.
868         * ira.c (free_register_move_costs): Replace with...
869         (target_ira_int::free_register_move_costs): ...this new function.
870         (target_ira_int::~target_ira_int): Define.
871         (ira_init): Call free_register_move_costs as a member function rather
872         than a global function.
873         (ira_finish_once): Delete.
874         * ira-costs.c (free_ira_costs): Replace with...
875         (target_ira_int::free_ira_costs): ...this new function.
876         (ira_init_costs): Call free_ira_costs as a member function rather
877         than a global function.
878         (ira_finish_costs_once): Delete.
879         * target-globals.c (target_globals::~target_globals): Call the
880         target_ira_int destructor.
881         * toplev.c: Include lra.h.
882         (finalize): Call lra_finish_once rather than ira_finish_once.
883
884 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
885
886         * common.opt (flto-odr-type-merging): New flag.
887         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
888         (types_same_for_odr): Likewise.
889         (odr_subtypes_equivalent_p): Likewise.
890         (add_type_duplicate): Do not walk type variants.
891         (register_odr_type): New function.
892         * ipa-utils.h (register_odr_type): Declare.
893         (odr_type_p): New function.
894         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
895         TYPE_DECLs
896         * doc/invoke.texi (-flto-odr-type-merging): Document.
897         * tree.c (need_assembler_name_p): Compute ODR names when asked
898         for it.
899         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
900
901 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
902
903         PR target/63228
904         * config/i386/i386.c (ix86_option_override_internal): Also turn
905         off OPTION_MASK_ABI_X32 for -m16.
906
907 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
908
909         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
910         GPR instead of P.
911
912 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
913
914         PR target/58757
915         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
916         Directly forward to __*_DENORM_MIN__.
917
918 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
919
920         * rtl.h (LABEL_REF_LABEL): New macro.
921
922         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
923         of XEXP (, 0), where we know that we have a LABEL_REF.
924         * cfgbuild.c (make_edges): Likewise.
925         (purge_dead_tablejump_edges): Likewise.
926         * cfgexpand.c (convert_debug_memory_address): Likewise.
927         * cfgrtl.c (patch_jump_insn): Likewise.
928         * combine.c (distribute_notes): Likewise.
929         * cse.c (hash_rtx_cb): Likewise.
930         (exp_equiv_p): Likewise.
931         (fold_rtx): Likewise.
932         (check_for_label_ref): Likewise.
933         * cselib.c (rtx_equal_for_cselib_1): Likewise.
934         (cselib_hash_rtx): Likewise.
935         * emit-rtl.c (mark_label_nuses): Likewise.
936         * explow.c (convert_memory_address_addr_space): Likewise.
937         * final.c (output_asm_label): Likewise.
938         (output_addr_const): Likewise.
939         * gcse.c (add_label_notes): Likewise.
940         * genconfig.c (walk_insn_part): Likewise.
941         * genrecog.c (validate_pattern): Likewise.
942         * ifcvt.c (cond_exec_get_condition): Likewise.
943         (noce_emit_store_flag): Likewise.
944         (noce_get_alt_condition): Likewise.
945         (noce_get_condition): Likewise.
946         * jump.c (maybe_propagate_label_ref): Likewise.
947         (mark_jump_label_1): Likewise.
948         (redirect_exp_1): Likewise.
949         (rtx_renumbered_equal_p): Likewise.
950         * lra-constraints.c (operands_match_p): Likewise.
951         * reload.c (operands_match_p): Likewise.
952         (find_reloads): Likewise.
953         * reload1.c (set_label_offsets): Likewise.
954         * reorg.c (get_branch_condition): Likewise.
955         * rtl.c (rtx_equal_p_cb): Likewise.
956         (rtx_equal_p): Likewise.
957         * rtlanal.c (reg_mentioned_p): Likewise.
958         (rtx_referenced_p): Likewise.
959         (get_condition): Likewise.
960         * sched-vis.c (print_value): Likewise.
961         * varasm.c (const_hash_1): Likewise.
962         (compare_constant): Likewise.
963         (const_rtx_hash_1): Likewise.
964         (output_constant_pool_1): Likewise.
965
966 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
967
968         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
969         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
970         instead of minus.
971         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
972         cr6_test_for_lt_reverse): Ditto.
973
974 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
975
976         PR c++/61489
977         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
978
979 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
980
981         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
982         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
983         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
984         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
985         Delete.
986
987         (aarch64_fold_builtin): Remove all reinterpret cases.
988
989         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
990
991         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
992
993         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
994         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
995         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
996         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
997         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
998         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
999         aarch64_reinterpretv2df<mode>): Delete.
1000
1001         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
1002
1003         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
1004         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
1005         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
1006         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
1007         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
1008         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
1009         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
1010         vreinterpret_u32_f64): Use cast.
1011
1012         * config/aarch64/iterators.md (VD_RE): Delete.
1013
1014 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
1015
1016         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
1017         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
1018         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
1019         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
1020         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
1021         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
1022         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
1023         Replace inline assembler with __aarch64_vset_lane_any.
1024
1025 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
1026
1027         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
1028         types.
1029         (vmull_high_lane_s32): Likewise.
1030         (vmull_high_lane_u16): Likewise.
1031         (vmull_high_lane_u32): Likewise.
1032
1033 2014-09-11  Jason Merrill  <jason@redhat.com>
1034
1035         PR c++/58678
1036         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
1037
1038 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
1039
1040         PR target/63223
1041         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
1042         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
1043         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
1044
1045 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1046             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1047             Anna Tikhonova  <anna.tikhonova@intel.com>
1048             Ilya Tocar  <ilya.tocar@intel.com>
1049             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1050             Ilya Verbin  <ilya.verbin@intel.com>
1051             Kirill Yukhin  <kirill.yukhin@intel.com>
1052             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1053
1054         * config/i386/sse.md
1055         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
1056         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
1057         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
1058         New.
1059         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
1060         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
1061         iterator.
1062         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
1063         New.
1064         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
1065         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
1066         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
1067         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
1068         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
1069         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
1070         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
1071         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
1072         iterator.
1073         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
1074         New.
1075         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
1076         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
1077         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
1078
1079 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1080
1081         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
1082         to access removed nodes.
1083
1084 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1085
1086         PR tree-optimization/63186
1087         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
1088         (mark_nonssa_use): Likewise.
1089         (verify_non_ssa_vars): Verify all header blocks for label
1090         definitions.
1091
1092 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1093             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1094             Anna Tikhonova  <anna.tikhonova@intel.com>
1095             Ilya Tocar  <ilya.tocar@intel.com>
1096             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1097             Ilya Verbin  <ilya.verbin@intel.com>
1098             Kirill Yukhin  <kirill.yukhin@intel.com>
1099             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1100
1101         * config/i386/sse.md
1102         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
1103         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
1104         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
1105         "<avx2_avx512f>_permvar<mode><mask_name>".
1106         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
1107         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
1108         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
1109         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
1110         Ditto.
1111         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
1112         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
1113         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
1114         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
1115
1116 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
1117
1118         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
1119         V2DF, V4SF, DF, and DI modes.
1120         (vsx_fmav2df2): Likewise.
1121         (vsx_float_fix_<mode>2): Likewise.
1122         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
1123
1124 2014-09-10  Xinliang David Li  <davidxl@google.com>
1125
1126         PR target/63209
1127         * config/arm/arm.md (movcond_addsi): Handle case where source
1128         and target operands are the same.
1129
1130 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
1131
1132         * final.c (this_is_asm_operands): Strengthen this variable from
1133         rtx to const rtx_insn *.
1134         * output.h (this_is_asm_operands): Likewise.
1135         * rtl-error.c (location_for_asm): Strengthen param "insn" from
1136         const_rtx to const rtx_insn *.
1137         (diagnostic_for_asm): Likewise.
1138         * rtl-error.h (error_for_asm): Likewise.
1139         (warning_for_asm): Likewise.
1140
1141 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
1142
1143         * genextract.c (print_header): When writing out insn_extract to
1144         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
1145         * recog.h (insn_extract): Strengthen the param from rtx to
1146         rtx_insn *.
1147
1148 2014-09-10  Mike Stump  <mikestump@comcast.net>
1149
1150         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
1151         8.6.1.
1152
1153 2014-09-10  Martin Jambor  <mjambor@suse.cz>
1154
1155         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
1156         (analyze): Do not set analyze flag if expand_thunk returns false;.
1157         (create_wrapper): Likewise.
1158         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
1159
1160 2014-09-10  Martin Jambor  <mjambor@suse.cz>
1161
1162         PR ipa/61654
1163         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
1164         new decl properly.  Analyze the new thunk if it is expanded.
1165
1166 2014-09-10  Andreas Schwab  <schwab@suse.de>
1167
1168         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
1169         [USED_FOR_TARGET]: Define.
1170
1171 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
1172
1173         * config/mips/mips.c (mips_secondary_reload_class): Handle
1174         regno < 0 case.
1175
1176 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
1177
1178         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
1179         assignment.
1180
1181 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
1182
1183         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
1184         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
1185         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
1186         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
1187         flag_delete_null_pointer_checks for them.
1188         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
1189         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
1190         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
1191         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
1192         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
1193         stmt's iterator.
1194         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
1195         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
1196         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
1197         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
1198         * doc/invoke.texi (-fsanitize=nonnull-attribute,
1199         -fsanitize=returns-nonnull-attribute): Document.
1200
1201         * ubsan.h (struct ubsan_mismatch_data): Removed.
1202         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
1203         * ubsan.c (ubsan_source_location): For unknown locations,
1204         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
1205         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
1206         Allow more than one location and arbitrary extra arguments passed
1207         in ... instead of through MISMATCH pointer.
1208         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
1209         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
1210         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
1211         callers.
1212
1213 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1214             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1215             Anna Tikhonova  <anna.tikhonova@intel.com>
1216             Ilya Tocar  <ilya.tocar@intel.com>
1217             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1218             Ilya Verbin  <ilya.verbin@intel.com>
1219             Kirill Yukhin  <kirill.yukhin@intel.com>
1220             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1221
1222         * config/i386/sse.md
1223         (define_mode_iterator VI48F): New.
1224         (define_insn "<avx512>_compress<mode>_mask"): Rename from
1225         "avx512f_compress<mode>_mask" and update mode iterator.
1226         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
1227         "avx512f_compressstore<mode>_mask" and update mode iterator.
1228         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
1229         "avx512f_expand<mode>_maskz" and update mode iterator.
1230         (define_insn "<avx512>_expand<mode>_mask"): Rename from
1231         "avx512f_expand<mode>_mask" and update mode iterator.
1232
1233 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1234             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1235             Anna Tikhonova  <anna.tikhonova@intel.com>
1236             Ilya Tocar  <ilya.tocar@intel.com>
1237             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1238             Ilya Verbin  <ilya.verbin@intel.com>
1239             Kirill Yukhin  <kirill.yukhin@intel.com>
1240             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1241
1242         * config/i386/i386.c
1243         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
1244         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
1245         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
1246         avx512dq_rangepv4sf_mask.
1247         * config/i386/sse.md
1248         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
1249         UNSPEC_RANGE.
1250         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
1251         (define_insn "reduces<mode>"): Ditto.
1252         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1253         Ditto.
1254         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
1255         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
1256         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
1257
1258 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1259             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1260             Anna Tikhonova  <anna.tikhonova@intel.com>
1261             Ilya Tocar  <ilya.tocar@intel.com>
1262             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1263             Ilya Verbin  <ilya.verbin@intel.com>
1264             Kirill Yukhin  <kirill.yukhin@intel.com>
1265             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1266
1267         * config/i386/i386.c
1268         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
1269         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
1270         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
1271         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
1272         avx512vl_getmantv2df_mask.
1273         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
1274         avx512f_vgetmantv4sf_round.
1275         * config/i386/sse.md
1276         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
1277         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
1278         mode iterator.
1279         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
1280         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
1281         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
1282         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
1283         iterator..
1284         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
1285         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
1286         update mode iterator.
1287         (define_expand
1288         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
1289         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
1290         mode iterator.
1291         (define_insn
1292         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
1293         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
1294         update mode iterator.
1295         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
1296         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
1297         iterator..
1298         (define_insn
1299         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
1300         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
1301         mode iterator..
1302         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
1303         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
1304         update mode iterator.
1305         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
1306         "avx512f_getmant<mode><round_saeonly_name>".
1307
1308 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
1309
1310         PR ipa/63166
1311         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
1312
1313 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1314             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1315             Anna Tikhonova  <anna.tikhonova@intel.com>
1316             Ilya Tocar  <ilya.tocar@intel.com>
1317             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1318             Ilya Verbin  <ilya.verbin@intel.com>
1319             Kirill Yukhin  <kirill.yukhin@intel.com>
1320             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1321
1322         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
1323         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
1324         (define_mode_iterator FMAMODE_AVX512): New.
1325         (define_mode_iterator FMAMODE): Remove conditions.
1326         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
1327         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
1328         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
1329         mode iterator.
1330         (define_mode_iterator FMAMODE_NOVF512): Remove.
1331         (define_insn "*fma_fmadd_<mode>"): Rename from
1332         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
1333         FMAMODE mode iterator.
1334         (define_mode_iterator VF_SF_AVX512VL): New.
1335         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
1336         Use VF_SF_AVX512VL mode iterator.
1337         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
1338         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1339         iterator.
1340         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
1341         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1342         iterator.
1343         (define_insn "*fma_fmsub_<mode>"): Rename from
1344         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
1345         FMAMODE mode iterator.
1346         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
1347         Use VF_SF_AVX512VL mode iterator.
1348         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
1349         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1350         iterator.
1351         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
1352         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1353         iterator.
1354         (define_insn "*fma_fnmadd_<mode>"): Rename from
1355         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
1356         use FMAMODE mode iterator.
1357         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
1358         Use VF_SF_AVX512VL mode iterator.
1359         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
1360         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1361         iterator.
1362         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
1363         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1364         iterator.
1365         (define_insn "*fma_fnmsub_<mode>"): Rename from
1366         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
1367         FMAMODE mode iterator.
1368         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
1369         Use VF_SF_AVX512VL mode iterator.
1370         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
1371         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1372         iterator.
1373         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
1374         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1375         iterator.
1376         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
1377         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
1378         use VF_AVX512VL mode iterator.
1379         (define_insn "*fma_fmaddsub_<mode>"): Rename from
1380         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
1381         remove subst usage.
1382         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
1383         Use VF_SF_AVX512VL mode iterator.
1384         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
1385         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
1386         iterator.
1387         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
1388         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1389         iterator.
1390         (define_insn "*fma_fmsubadd_<mode>"): Rename from
1391         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
1392         remove usage of subst.
1393         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
1394         Use VF_SF_AVX512VL mode iterator.
1395         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
1396         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
1397         iterator.
1398         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
1399         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
1400         iterator.
1401
1402 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
1403
1404         Revert r213751:
1405         * calls.c (precompute_arguments): Check
1406          promoted_for_signed_and_unsigned_p and set the promoted mode.
1407         (promoted_for_signed_and_unsigned_p): New function.
1408         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
1409         and set the promoted mode.
1410         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
1411         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
1412         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
1413
1414 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1415
1416         * opth-gen.awk: Generate mapping from cpp message reasons to the
1417         options that enable them.
1418         * doc/options.texi (CppReason): Document.
1419
1420 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1421
1422         * doc/invoke.texi (Wnormalized=): Update.
1423
1424 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
1425
1426         PR target/63195
1427         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
1428         operands.  Split off the constant operand alternative to ...
1429         (*bool<mode>3_imm): New.
1430
1431 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1432
1433         * rtl.h (single_set_2): Strengthen first param from const_rtx to
1434         const rtx_insn *, and move prototype to above...
1435         (single_set): ...this.  Convert this from a macro to an inline
1436         function, enforcing the requirement that the param is a const
1437         rtx_insn *.
1438         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
1439
1440         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
1441         Strengthen both params from rtx to rtx_insn *.
1442         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
1443         Likewise; introduce locals "producer_set", "consumer_set", using
1444         them in place of "producer" and "consumer" when dealing with SET
1445         rather than insn.
1446         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
1447         when invoking single_set in region guarded by INSN_P.
1448         (avr_out_bitop): Likewise.
1449         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
1450         region guarded by GET_CODE check, using methods to strengthen
1451         local "this_insn" from rtx to rtx_insn *, and for clarity.
1452         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
1453         Strengthen local "insn" from rtx to rtx_insn *.
1454         (define_insn_and_split "xload<mode>_A"): Likewise.
1455         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
1456         "insn".
1457         (find_load): Likewise for return type.
1458         (workaround_speculation): Likewise for both locals named
1459         "load_insn".
1460         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
1461         local "cc0_user".
1462         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
1463         for local "prev".
1464         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
1465         param 2.
1466         * config/h8300/h8300.c (notice_update_cc): Likewise.
1467         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
1468         "insn" and "dep_insn".
1469         (exact_store_load_dependency): Likewise for both params.
1470         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
1471         since this now clashes with inline function.  Instead, delay
1472         calling single_set until the point where its needed, and then
1473         assign the result to "compare_set" and rework the conditional that
1474         follows.
1475         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
1476         local "last" from rtx to rtx_insn *.
1477         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
1478         second param.
1479         (mips_store_data_bypass_p): Likewise for both params.
1480         * config/mips/mips.c (mips_load_store_insns): Likewise for second
1481         param.
1482         (mips_store_data_bypass_p): Likewise for both params.
1483         (mips_orphaned_high_part_p): Likewise for param "insn".
1484         * config/mn10300/mn10300.c (extract_bundle): Likewise.
1485         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
1486         Introduce local rtx "insn2_pat".
1487         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
1488         "ninsn".
1489         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
1490         Introduce local rtx "set", using it in place of "insn" for the
1491         result of single_set.  This appears to fix a bug, since the call
1492         to find_regno_note on a SET does nothing.
1493         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
1494         params from rtx to rtx_insn *.
1495         (set_to_load_agen): Likewise.
1496         * config/s390/s390.c (s390_label_align): Likewise for local
1497         "prev_insn".  Introduce new rtx locals "set" and "src", using
1498         them in place of "prev_insn" for the results of single_set
1499         and SET_SRC respectively.
1500         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
1501         Introduce new rtx local "set" using in place of "jump" for the
1502         result of single_set.  Use SET_SRC (set) rather than plain
1503         XEXP (set, 1).
1504         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
1505         rtx to rtx_insn *.
1506         (noncall_uses_reg): Likewise.
1507         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
1508         guarded by GET_CODE check, using its methods for clarity, and to
1509         enable strengthening local "this_insn" from rtx to rtx_insn *.
1510         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
1511         "insn" from rtx to rtx_insn *.
1512         (define_expand "umulhisi3"): Likewise.
1513         (define_expand "smulsi3_highpart"): Likewise.
1514         (define_expand "umulsi3_highpart"): Likewise.
1515         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
1516         local "after".  Replace GET_CODE check with a dyn_cast,
1517         introducing new local rtx_sequence * "seq", using insn method for
1518         typesafety.
1519
1520         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
1521         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
1522         place of "insn" once we're dealing with patterns rather than the
1523         input insn.
1524         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
1525         (scan_trace): Likewise for local "elt", updating lookups within
1526         sequence to use insn method rather than element method.
1527         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
1528         to rtx_insn *.
1529         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
1530         * ifcvt.c (noce_try_abs): Likewise for local "insn".
1531         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
1532         invoking single_set.
1533         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
1534         "insn" from rtx to rtx_insn *.
1535         (skip_usage_debug_insns): Likewise for return type, adding a
1536         checked cast.
1537         (check_secondary_memory_needed_p): Likewise for local "insn".
1538         (inherit_reload_reg): Likewise.
1539         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
1540         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
1541         checked casts.
1542         (store_data_bypass_p): Likewise for both params.
1543         (if_test_bypass_p): Likewise.
1544         * recog.h (store_data_bypass_p): Likewise for both params.
1545         (if_test_bypass_p): Likewise.
1546         * reload.c (find_equiv_reg): Likewise for local "where".
1547         * reorg.c (delete_jump): Likewise for param "insn".
1548         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
1549         to const rtx_insn *.
1550         * store-motion.c (replace_store_insn): Likewise for param "del".
1551         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
1552         and use its methods for clarity, and to strengthen local "del"
1553         from rtx to rtx_insn *.
1554         (build_store_vectors): Use insn method of "st" when calling
1555         replace_store_insn for typesafety and clarity.
1556
1557 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1558
1559         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
1560         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
1561         on how to make it legal in future.
1562
1563 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1564
1565         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
1566         to rtx_insn *.
1567         (restinsn): Likewise.
1568         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
1569         Likewise for param.
1570         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
1571         Likewise.
1572         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
1573         first param.
1574         (arc_hazard): Likewise for both params.
1575         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
1576         checked casts to rtx_sequence * and uses of the insn method for
1577         type-safety.
1578         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
1579         (arc_adjust_insn_length): Likewise for param "insn".
1580         (struct insn_length_parameters_s): Likewise for first param of
1581         "get_variants" callback field.
1582         (arc_get_insn_variants): Likewise for first param and local
1583         "inner".  Replace a check of GET_CODE with a dyn_cast to
1584         rtx_sequence *, using methods for type-safety and clarity.
1585         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
1586         rtx_sequence * and uses of the insn method for type-safety when
1587         invoking arc_adjust_insn_length.
1588         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
1589         for param.
1590         (arm_address_offset_is_imm): Likewise.
1591         (struct tune_params): Likewise for params 1 and 3 of the
1592         "sched_adjust_cost" callback field.
1593         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
1594         params 1 and 3 ("insn" and "dep").
1595         (xscale_sched_adjust_cost): Likewise.
1596         (fa726te_sched_adjust_cost): Likewise.
1597         (cortexa7_older_only): Likewise for param "insn".
1598         (cortexa7_younger): Likewise.
1599         (arm_attr_length_move_neon): Likewise.
1600         (arm_address_offset_is_imm): Likewise.
1601         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
1602         * config/avr/avr.c (avr_notice_update_cc): Likewise.
1603         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
1604         (workaround_speculation): Likewise for local "last_condjump".
1605         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
1606         (shadow_or_blockage_p): Likewise.
1607         (get_unit_reqs): Likewise.
1608         (get_unit_operand_masks): Likewise.
1609         (c6x_registers_update): Likewise.
1610         (returning_call_p): Likewise.
1611         (can_use_callp): Likewise.
1612         (convert_to_callp): Likewise.
1613         (find_last_same_clock): Likwise for local "t".
1614         (reorg_split_calls): Likewise for local "shadow".
1615         (hwloop_pattern_reg): Likewise for param "insn".
1616         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
1617         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
1618         (frv_extract_membar): Likewise.
1619         (frv_optimize_membar_local): Strengthen param "last_membar" from
1620         rtx * to rtx_insn **.
1621         (frv_optimize_membar_global): Strengthen param "membar" from rtx
1622         to rtx_insn *.
1623         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
1624         to rtx_insn **.
1625         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
1626         both params from rtx to rtx_insn *.
1627         (ia64_ld_address_bypass_p): Likewise.
1628         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
1629         "insn".
1630         (ia64_safe_type): Likewise.
1631         (group_barrier_needed): Likewise.
1632         (safe_group_barrier_needed): Likewise.
1633         (ia64_single_set): Likewise.
1634         (is_load_p): Likewise.
1635         (record_memory_reference): Likewise.
1636         (get_mode_no_for_insn): Likewise.
1637         (important_for_bundling_p): Likewise.
1638         (unknown_for_bundling_p): Likewise.
1639         (ia64_st_address_bypass_p): Likewise for both params.
1640         (ia64_ld_address_bypass_p): Likewise.
1641         (expand_vselect): Introduce new local rtx_insn * "insn", using it
1642         in place of rtx "x" after the emit_insn call.
1643         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
1644         Strengthen param from rtx to rtx_insn *.
1645         (ix86_agi_dependent): Likewise for both params.
1646         (ix86_attr_length_immediate_default): Likewise for param 1.
1647         (ix86_attr_length_address_default): Likewise for param.
1648         (ix86_attr_length_vex_default): Likewise for param 1.
1649         * config/i386/i386.c (ix86_attr_length_immediate_default):
1650         Likewise for param "insn".
1651         (ix86_attr_length_address_default): Likewise.
1652         (ix86_attr_length_vex_default): Likewise.
1653         (ix86_agi_dependent): Likewise for both params.
1654         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
1655         (vselect_insn): Likewise for this variable.
1656         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
1657         for param 1.
1658         (m68k_sched_attr_opy_type): Likewise.
1659         * config/m68k/m68k.c (sched_get_operand): Likewise.
1660         (sched_attr_op_type): Likewise.
1661         (m68k_sched_attr_opx_type): Likewise.
1662         (m68k_sched_attr_opy_type): Likewise.
1663         (sched_get_reg_operand): Likewise.
1664         (sched_get_mem_operand): Likewise.
1665         (m68k_sched_address_bypass_p): Likewise for both params.
1666         (sched_get_indexed_address_scale): Likewise.
1667         (m68k_sched_indexed_address_bypass_p): Likewise.
1668         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
1669         (m68k_sched_indexed_address_bypass_p): Likewise.
1670         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
1671         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
1672         removing another.
1673         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
1674         params from rtx to rtx_insn *.
1675         (mips_fmadd_bypass): Likewise.
1676         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
1677         (mips_linked_madd_p): Likewise.
1678         (mips_macc_chains_last_hilo): Likewise for this variable.
1679         (mips_macc_chains_record): Likewise for param.
1680         (vr4130_last_insn): Likewise for this variable.
1681         (vr4130_swap_insns_p): Likewise for both params.
1682         (mips_ls2_variable_issue): Likewise for param.
1683         (mips_need_noat_wrapper_p): Likewise for param "insn".
1684         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
1685         in place of "x" after the emit_insn.
1686         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
1687         params from rtx to rtx_insn *.
1688         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
1689         (pa_combine_instructions): Introduce local "par" for result of
1690         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
1691         to make_insn_raw.
1692         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
1693         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
1694         (rl78_alloc_physical_registers_op1): Likewise.
1695         (rl78_alloc_physical_registers_op2): Likewise.
1696         (rl78_alloc_physical_registers_ro1): Likewise.
1697         (rl78_alloc_physical_registers_cmp): Likewise.
1698         (rl78_alloc_physical_registers_umul): Likewise.
1699         (rl78_alloc_address_registers_macax): Likewise.
1700         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
1701         * config/s390/predicates.md (execute_operation): Likewise for
1702         local "insn".
1703         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
1704         params.
1705         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
1706         (addr_generation_dependency_p): Likewise for param "insn".
1707         (s390_agen_dep_p): Likewise for both params.
1708         (s390_fpload_toreg): Likewise for param "insn".
1709         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
1710         * config/sh/sh.c (sh_loop_align): Likewise for param and local
1711         "next".
1712         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
1713         * config/sh/sh_treg_combine.cc
1714         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
1715         and local "i".
1716         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
1717         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
1718         "and_insn", "load", "shift".
1719         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
1720         "insn".
1721         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
1722         for XEXP (note, 0) of the REG_CC_SETTER note.
1723         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
1724         rtx_insn *, eliminating a checked cast made redundant by this.
1725         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
1726         to rtx_insn *.
1727         * genattr.c (main): When writing out the prototype to
1728         const_num_delay_slots, strengthen the param from rtx to
1729         rtx_insn *.
1730         * genattrtab.c (write_const_num_delay_slots): Likewise when
1731         writing out the implementation of const_num_delay_slots.
1732         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
1733         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
1734         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
1735         favor of new rtx locals "src" and "set" and new local rtx_insn *
1736         "insn" and "seq".
1737         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
1738         to rtx_insn *.
1739         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
1740         locals "cond", "if_then_else", "set" and new rtx_insn * locals
1741         "insn" and "seq".
1742         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
1743         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
1744         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
1745         the top-level scope, replacing with new more tightly-scoped rtx
1746         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
1747         "new_insn", "copy_of_insn_b", and make local rtx "set" more
1748         tightly-scoped.
1749         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
1750         rtx_insn *.
1751         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
1752         "move_insn".
1753         (ira_setup_alts): Likewise for param "insn".
1754         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
1755         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
1756         and an rtx_insn *.
1757         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
1758         new more-tightly scoped rtx locals "add3_insn", "insn",
1759         "add2_insn" and rtx_insn * "move_insn".
1760         * postreload-gcse.c (eliminate_partially_redundant_load): Add
1761         checked cast on result of gen_move_insn when invoking
1762         extract_insn.
1763         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
1764         rtx_insn *.
1765         (verify_changes): Add a checked cast on "object" when invoking
1766         insn_invalid_p.
1767         (extract_insn_cached): Strengthen param "insn" from rtx to
1768         rtx_insn *.
1769         (extract_constrain_insn_cached): Likewise.
1770         (extract_insn): Likewise.
1771         * recog.h (insn_invalid_p): Likewise for param 1.
1772         (recog_memoized): Likewise for param.
1773         (extract_insn): Likewise.
1774         (extract_constrain_insn_cached): Likewise.
1775         (extract_insn_cached): Likewise.
1776         * reload.c (can_reload_into): Likewise for local "test_insn".
1777         * reload.h (cleanup_subreg_operands): Likewise for param.
1778         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
1779         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
1780         result of emit_insn.  Remove a checked cast made redundant by this
1781         change.
1782         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
1783         rtx to rtx_insn *.
1784         * sel-sched.c (get_reg_class): Likewise.
1785
1786 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1787         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1788
1789          * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
1790          * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
1791         Define.
1792         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
1793
1794 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1795
1796         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
1797         const rtx_insn *, and from rtx to rtx_insn * for the other
1798         overloaded variant.
1799         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
1800         INSN_LOCATION, since we know INSN_P holds.
1801         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
1802         (insn_file): Likewise.
1803         (insn_scope): Likewise.
1804         (insn_location): Likewise.
1805
1806         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
1807         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
1808         for the result of gen_load_const_gp.
1809         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
1810         param from rtx to rtx_insn *.
1811         * config/rs6000/rs6000.c (output_call): Likewise.
1812         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
1813         introducing a checked cast to rtx_sequence * and use of the insn
1814         method.
1815         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
1816         from rtx to rtx_insn *.
1817         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
1818         (insn_line): Likewise.
1819         (insn_file): Likewise.
1820         (insn_location): Likewise.
1821         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
1822         from rtx to rtx_insn *.
1823         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
1824         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
1825         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
1826         via a checked cast.
1827         * reorg.c (relax_delay_slots): Strengthen locals named "after"
1828         from rtx to rtx_insn *; use methods of "pat" for type-safety.
1829
1830 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1831
1832         * combine.c (try_combine): Eliminate checked cast on result of
1833         gen_rtx_INSN.
1834         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
1835         autogenerated one by strengthening the return type and params 2 and 3
1836         from rtx to rtx_insn *, and by naming the params.
1837         * gengenrtl.c (special_rtx): Add INSN to those that are
1838         special-cased.
1839         * rtl.h (gen_rtx_INSN): New prototype.
1840
1841 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
1842
1843         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
1844         than NULL_RTX.
1845         (no_equiv): Likewise.
1846         (update_equiv_regs): Likewise.
1847         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
1848         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
1849         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
1850         clarity.
1851         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
1852         from rtx to rtx_insn_list *.
1853         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
1854         rtx_insn_list * and use methods for clarity and typesafety.
1855         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
1856         "list".
1857         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
1858         redundant check on INSN_P (insns): this cannot hold, as "insns" is
1859         an INSN_LIST, not an insn.
1860         (reverse_equiv_p): Strengthen local "insns" from rtx to
1861         rtx_insn_list * and use methods for clarity and typesafety.
1862         (contains_reloaded_insn_p): Likewise for local "list".
1863
1864 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
1865
1866         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
1867         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
1868         (arm_builtin_vectorized_function): Likewise.
1869         * config/arm/arm_neon_builtins.def: New macro for copysignf.
1870         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
1871
1872 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
1873
1874         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
1875         * builtins.h (default_target_builtins): Likewise.
1876         * gcse.h (default_target_gcse): Likewise.
1877         * target-globals.h (target_globals): Add a destructor.  Convert
1878         void-pointer fields back to their real type and change from
1879         GTY((atomic)) to GTY((skip)).
1880         (restore_target_globals): Remove casts accordingly.
1881         * target-globals.c (save_target_globals): Use XCNEW rather than
1882         ggc_internal_cleared_alloc to allocate non-GC structures.
1883         Use ggc_cleared_alloc to allocate the target_globals structure
1884         itself.
1885         (target_globals::~target_globals): Define.
1886
1887 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1888
1889         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
1890         mnemonic instead of fldmfdd.
1891         * config/arm/arm.c (vfp_output_fstmd): Rename to...
1892         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
1893         Output vpush when address register is SP.
1894         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
1895         (vfp_output_vstmd): ... This.
1896         * config/arm/vfp.md (push_multi_vfp): Update call to
1897         vfp_output_vstmd.
1898
1899 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1900
1901         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
1902
1903 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1904
1905         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
1906         (*sqrtdf2_vfp): Likewise.
1907         (*cmpsf_vfp): Likewise.
1908         (*cmpsf_trap_vfp): Likewise.
1909         (*cmpdf_vfp): Likewise.
1910         (*cmpdf_trap_vfp): Likewise.
1911
1912 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1913
1914         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
1915         (*truncdfsf2_vfp): Likewise.
1916         (*truncsisf2_vfp): Likewise.
1917         (*truncsidf2_vfp): Likewise.
1918         (fixuns_truncsfsi2): Likewise.
1919         (fixuns_truncdfsi2): Likewise.
1920         (*floatsisf2_vfp): Likewise.
1921         (*floatsidf2_vfp): Likewise.
1922         (floatunssisf2): Likewise.
1923         (floatunssidf2): Likewise.
1924
1925 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1926
1927         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
1928         (*muldf3_vfp): Likewise.
1929         (*mulsf3negsf_vfp): Likewise.
1930         (*muldf3negdf_vfp): Likewise.
1931         (*mulsf3addsf_vfp): Likewise.
1932         (*muldf3adddf_vfp): Likewise.
1933         (*mulsf3subsf_vfp): Likewise.
1934         (*muldf3subdf_vfp): Likewise.
1935         (*mulsf3negsfaddsf_vfp): Likewise.
1936         (*fmuldf3negdfadddf_vfp): Likewise.
1937         (*mulsf3negsfsubsf_vfp): Likewise.
1938         (*muldf3negdfsubdf_vfp): Likewise.
1939
1940 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1941
1942         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
1943         (*absdf2_vfp): Likewise.
1944         (*negsf2_vfp): Likewise.
1945         (*negdf2_vfp): Likewise.
1946         (*addsf3_vfp): Likewise.
1947         (*adddf3_vfp): Likewise.
1948         (*subsf3_vfp): Likewise.
1949         (*subdf3_vfp): Likewise.
1950         (*divsf3_vfp): Likewise.
1951         (*divdf3_vfp): Likewise.
1952
1953 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1954
1955         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
1956         multiple.
1957         (arm_print_operand): Don't convert real values to decimal
1958         representation in default case.
1959         (fp_immediate_constant): Delete.
1960         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
1961         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
1962         syntax.
1963         (*thumb2_movsi_vfp): Likewise.
1964         (*movdi_vfp): Likewise.
1965         (*movdi_vfp_cortexa8): Likewise.
1966         (*movhf_vfp_neon): Likewise.
1967         (*movhf_vfp): Likewise.
1968         (*movsf_vfp): Likewise.
1969         (*thumb2_movsf_vfp): Likewise.
1970         (*movdf_vfp): Likewise.
1971         (*thumb2_movdf_vfp): Likewise.
1972         (*movsfcc_vfp): Likewise.
1973         (*thumb2_movsfcc_vfp): Likewise.
1974         (*movdfcc_vfp): Likewise.
1975         (*thumb2_movdfcc_vfp): Likewise.
1976
1977 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
1978
1979         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1980         (-mtune): Likewise.
1981         (-mcpu): Likewise.
1982
1983 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1984
1985         PR target/61749
1986         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
1987         Use qualifier_immediate for last operand.  Rename to...
1988         (aarch64_types_ternop_lane_qualifiers): ... This.
1989         (TYPES_QUADOP): Rename to...
1990         (TYPES_TERNOP_LANE): ... This.
1991         (aarch64_simd_expand_args): Return const0_rtx when encountering user
1992         error.  Change return of 0 to return of NULL_RTX.
1993         (aarch64_crc32_expand_builtin): Likewise.
1994         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
1995         ICE when expanding unknown builtin.
1996         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
1997         TERNOP_LANE qualifiers.
1998         (sqdmlsl_lane): Likewise.
1999         (sqdmlal_laneq): Likewise.
2000         (sqdmlsl_laneq): Likewise.
2001         (sqdmlal2_lane): Likewise.
2002         (sqdmlsl2_lane): Likewise.
2003         (sqdmlal2_laneq): Likewise.
2004         (sqdmlsl2_laneq): Likewise.
2005
2006 2014-09-09  Nick Clifton  <nickc@redhat.com>
2007
2008         * doc/invoke.texi (Optimization Options): Add missing @gol to the
2009         end of a line.
2010         (S/390 and zSeries Options): Remove superfluous word from the
2011         description of the -mhotpatch option.
2012
2013 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
2014
2015         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
2016         * ira.c: #include "shrink-wrap.h"
2017         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
2018         * ifcvt.c: #include "shrink-wrap.h"
2019         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
2020
2021 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
2022
2023         * common/config/picochip/picochip-common.c: Remove.
2024         * config.gcc: Remove support for picochip.
2025         * config/picochip/constraints.md: Remove.
2026         * config/picochip/dfa_space.md: Remove.
2027         * config/picochip/dfa_speed.md: Remove.
2028         * config/picochip/picochip-protos.h: Remove.
2029         * config/picochip/picochip.c: Remove.
2030         * config/picochip/picochip.h: Remove.
2031         * config/picochip/picochip.md: Remove.
2032         * config/picochip/picochip.opt: Remove.
2033         * config/picochip/predicates.md: Remove.
2034         * config/picochip/t-picochip: Remove.
2035         * doc/md.texi: Don't document picochi.
2036
2037 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
2038
2039         * basic-block.h (control_flow_insn_p): Strengthen param from
2040         const_rtx to const rtx_insn *.
2041         * cfgbuild.c (control_flow_insn_p): Likewise.
2042
2043 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
2044
2045         * gcse.c (modify_mem_list): Strengthen this variable from
2046         vec<rtx> * to vec<rtx_insn *> *.
2047         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
2048         vec<rtx_insn *>.
2049         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
2050         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
2051         (record_last_mem_set_info): Strengthen param "insn" from rtx to
2052         rtx_insn *.
2053         (record_last_set_info): Likewise for local "last_set_insn".
2054
2055 2014-09-08  DJ Delorie  <dj@redhat.com>
2056
2057         * doc/invoke.texi (MSP430 Options): Add -minrt.
2058
2059 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2060
2061         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
2062         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
2063         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
2064         handling SH_SPLAT.
2065         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
2066         of extracted lane.
2067         (adjust_splat): New function.
2068         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
2069         (dump_swap_insn_table): Add case for SH_SPLAT.
2070
2071 2014-09-08  Richard Biener  <rguenther@suse.de>
2072
2073         PR ipa/63196
2074         * tree-inline.c (copy_loops): The source loop header should
2075         always be non-NULL.
2076         (tree_function_versioning): If loops need fixup after removing
2077         unreachable blocks fix them.
2078         * omp-low.c (simd_clone_adjust): Do not add incr block to
2079         loop under construction.
2080
2081 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
2082
2083         * config/aarch64/aarch64-builtins.c
2084         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
2085
2086 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
2087
2088         * config/i386/cygming.h (TF_SIZE): Remove.
2089         * config/i386/darwin.h (TF_SIZE): Remove.
2090         * config/i386/dragonfly.h (TF_SIZE): Remove.
2091         * config/i386/freebsd.h (TF_SIZE): Remove.
2092         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
2093         * config/i386/openbsdelf.h (TF_SIZE): Remove.
2094         * config/i386/sol2.h (TF_SIZE): Remove.
2095         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
2096         * config/ia64/linux.h (TF_SIZE): Remove.
2097         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
2098         * doc/tm.texi: Regenerate.
2099         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
2100
2101 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
2102
2103         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
2104         Remove.
2105         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
2106         Remove.
2107         * doc/tm.texi: Regenerate.
2108         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
2109         Poison.
2110         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
2111         * config/cris/cris.h (__make_dp): Remove.
2112
2113 2014-09-08  Richard Biener  <rguenther@suse.de>
2114
2115         PR bootstrap/63204
2116         * cfgloop.c (mark_loop_for_removal): Track former header
2117         unconditionally.
2118         * cfgloop.h (struct loop): Add former_header member unconditionally.
2119         * loop-init.c (fix_loop_structure): Enable bogus loop removal
2120         diagnostic unconditionally.
2121
2122 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2123
2124         PR target/63190
2125         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
2126         constraint for operand0 and remove write only modifier from operand3.
2127
2128 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
2129
2130         PR rtl-optimization/62208
2131         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
2132         rather than const0_rtx in eq/ne-xor simplifications.
2133
2134 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
2135
2136         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
2137         (arc_output_mi_thunk): Likewise.
2138
2139         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
2140         arguments to silence bogus warning.
2141
2142 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
2143
2144         PR middle-end/63171
2145         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
2146
2147 2014-09-06  Tom de Vries  <tom@codesourcery.com>
2148
2149         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
2150         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
2151         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
2152
2153 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
2154
2155         PR target/63188
2156         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
2157         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
2158
2159 2014-09-05  Easwaran Raman  <eraman@google.com>
2160
2161         PR rtl-optimization/62146
2162         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
2163         hoisted instruction unconditional.
2164
2165 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
2166
2167         PR target/63187
2168         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
2169         Do not allow any_mask_operand for operands[2].
2170         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
2171
2172 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2173
2174         * config/arc/arc.c (arc_print_operand): Use insn method of
2175         final_sequence for type-safety.
2176         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
2177         "insn" from rtx to rtx_insn *.
2178         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
2179         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
2180         Likewise for locals "branch", "label".
2181         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
2182         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
2183         (same_cmp_following_p): Likewise for locals "i2", "i3".
2184         * config/sh/sh_optimize_sett_clrt.cc
2185         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
2186         param "cbranch_insn".
2187         * function.c (convert_jumps_to_returns): Likewis for local "jump".
2188         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
2189         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
2190         const rtx_insn *.
2191         (condjump_p): Likewise.
2192         (condjump_in_parallel_p): Likewise.
2193         (pc_set): Likewise.
2194         (any_uncondjump_p): Likewise.
2195         (any_condjump_p): Likewise.
2196         (condjump_label): Likewise.
2197         (returnjump_p): Strengthen param "insn" from rtx to
2198         const rtx_insn *.
2199         (onlyjump_p): Strengthen param "insn" from const_rtx to
2200         const rtx_insn *.
2201         (jump_to_label_p): Likewise.
2202         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
2203         (invert_jump): Likewise.
2204         * reorg.c (simplejump_or_return_p): Add checked cast when calling
2205         simplejump_p.
2206         (get_jump_flags): Strengthen param "insn" from rtx to
2207         const rtx_insn *.
2208         (get_branch_condition): Likewise.
2209         (condition_dominates_p): Likewise.
2210         (make_return_insns): Move declaration of local "pat" earlier, to
2211         after we've handled NONJUMP_INSN_P and non-sequences, using its
2212         methods to simplify the code and for type-safety.
2213         * rtl.h (find_constant_src): Strengthen param from const_rtx to
2214         const rtx_insn *.
2215         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
2216         (condjump_p): Strengthen param from const_rtx to
2217         const rtx_insn *.
2218         (any_condjump_p): Likewise.
2219         (any_uncondjump_p): Likewise.
2220         (pc_set): Likewise.
2221         (condjump_label): Likewise.
2222         (simplejump_p): Likewise.
2223         (returnjump_p): Likewise.
2224         (onlyjump_p): Likewise.
2225         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
2226         (invert_jump): Likewise.
2227         (condjump_in_parallel_p): Strengthen param from const_rtx to
2228         const rtx_insn *.
2229         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
2230         to const rtx_insn *.
2231         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
2232         to const rtx_insn *.
2233         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
2234
2235 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2236
2237         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
2238         above the conditional, and convert the check on GET_CODE to a
2239         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
2240         the conditional.  Simplify the conditional by using methods of
2241         "trial_seq".
2242
2243 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2244
2245         * haifa-sched.c (check_clobbered_conditions): Strengthen local
2246         "link" from rtx to rtx_insn_list *, and use its methods for
2247         clarity and type-safety.
2248         (toggle_cancelled_flags): Likewise.
2249         (restore_last_backtrack_point): Likewise.
2250         (queue_to_ready): Use insn method of "link" in one place.
2251         (schedule_block): Strengthen local "link" from rtx to
2252         rtx_insn_list *, and use its methods for clarity and type-safety.
2253
2254 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2255
2256         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
2257         param "insn" from const_rtx to const rtx_insn *.
2258         (sched_get_reverse_condition_uncached): Likewise.
2259         (sched_get_condition_with_rev): Likewise.
2260         (sched_has_condition_p): Likewise.
2261         (sched_insns_conditions_mutex_p): Likewise for both params.
2262         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
2263         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
2264         (setup_insn_reg_uses): Move local "list" to be more tightly
2265         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
2266         its methods for clarity and type-safety.
2267         (sched_analyze_1): Strengthen local "pending" from rtx to
2268         rtx_insn_list *, and local "pending_mem" from rtx to
2269         rtx_expr_list *.  Use methods of each for clarity and type-safety.
2270         (sched_analyze_2): Likewise.
2271         (sched_analyze_insn): Likewise.
2272
2273         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
2274         param from const_rtx to const rtx_insn *.
2275         (sched_insns_conditions_mutex_p): Likewise for both params.
2276         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
2277         param.
2278
2279         * system.h (CONST_CAST_RTX_INSN): New macro.
2280
2281 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2282
2283         * recog.c (peep2_attempt): Strengthen return type from rtx to
2284         rtx_insn *.
2285         (peep2_update_life): Likewise for params "last", "prev", removing
2286         a checked cast made redundant by this.
2287         (peephole2_optimize): Likewise for local "last".
2288
2289 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2290
2291         * basic-block.h (set_block_for_insn): Eliminate this macro in
2292         favor of...
2293         * rtl.h (set_block_for_insn): New inline function, imposing the
2294         requirement that the "insn" param is an rtx_insn *.
2295
2296 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2297
2298         * caller-save.c (setup_save_areas): Strengthen local "insn" from
2299         rtx to rtx_insn *.
2300         * final.c (get_call_reg_set_usage): Likewise for first param,
2301         eliminating a checked cast.
2302         * regs.h (get_call_reg_set_usage): Likewise for first param.
2303         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
2304         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
2305         cast, replacing references to "x" with "call_insn" where
2306         appropriate.
2307         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
2308         rtx_insn *, adding a checked cast.
2309
2310 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2311
2312         * output.h (final_scan_insn): Strengthen first param from rtx to
2313         rtx_insn *.
2314
2315         * final.c (final_scan_insn): Likewise, renaming it back from
2316         "uncast_insn" to "insn", eliminating the checked cast.
2317
2318         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
2319         "vec" with an rtx_sequence * "seq", taking a copy of
2320         "final_sequence", and using methods of "seq" for clarity, and for
2321         type-safety in the calls to final_scan_insn.
2322         * config/mips/mips.c (mips_output_conditional_branch): Use methods
2323         of "final_sequence" for clarity, and for type-safety in the call to
2324         final_scan_insn.
2325         * config/sh/sh.c (print_slot): Strengthen param from rtx to
2326         rtx_sequence * and rename from "insn" to "seq".
2327
2328 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2329
2330         * jump.c (delete_related_insns): Introduce a new local "table" by
2331         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
2332         get_labels method of "table" to simplify access to the labels in
2333         the jump table.
2334
2335 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2336
2337         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
2338         f_minmaxs, f_minmaxd types.
2339
2340 2014-09-05  Richard Biener  <rguenther@suse.de>
2341
2342         * cfgloop.c (mark_loop_for_removal): Record former header
2343         when ENABLE_CHECKING.
2344         * cfgloop.h (strut loop): Add former_header member when
2345         ENABLE_CHECKING.
2346         * loop-init.c (fix_loop_structure): Sanity check loops
2347         marked for removal if they re-appeared.
2348
2349 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2350
2351         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
2352         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
2353
2354         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
2355         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
2356         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
2357         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
2358         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
2359         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
2360         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
2361         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
2362         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
2363         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
2364         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
2365         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
2366         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
2367         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
2368         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
2369         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
2370         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
2371         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
2372         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
2373         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
2374         with int{32,16,8}_t.
2375
2376 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2377
2378         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
2379         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
2380         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
2381         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
2382         Remove temporary __asm__ and reimplement.
2383
2384 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2385
2386         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
2387         handling cmge, cmgt, cmeq, cmtst.
2388
2389         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
2390         cmlt, cmgeu, cmgtu, cmtst): Remove.
2391
2392         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
2393         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
2394         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
2395         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
2396
2397 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2398
2399         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
2400         TYPES_TST): Define.
2401         (aarch64_fold_builtin): Update pattern for cmtst.
2402
2403         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
2404         Declare.
2405
2406         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
2407
2408         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
2409         Switch operands, separate out more cases, refactor.
2410
2411         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
2412
2413         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
2414         argument; rename old version to...
2415         (aarch64_const_vec_all_same_in_range_p): ...this.
2416         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
2417
2418         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
2419
2420 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2421
2422         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
2423         Remove qualifier_const_pointer, update comment.
2424
2425 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2426
2427         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
2428
2429 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2430
2431         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
2432         varargs with pointer parameter.
2433         (aarch64_simd_expand_builtin): pass pointer into previous.
2434
2435 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2436
2437         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
2438         alus_ext.
2439
2440 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
2441
2442         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
2443         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
2444         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
2445         Replace temporary asm with call to builtin.
2446         (vrbit_p8, vrbitq_p8): New functions.
2447
2448 2014-09-05  Richard Biener  <rguenther@suse.de>
2449
2450         * cfgloop.c (mark_loop_for_removal): New function.
2451         * cfgloop.h (mark_loop_for_removal): Declare.
2452         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
2453         (merge_blocks): Likewise.
2454         (duplicate_block): Likewise.
2455         * except.c (sjlj_emit_dispatch_table): Likewise.
2456         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
2457         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
2458         (thread_through_loop_header): Likewise.
2459
2460 2014-09-05  Richard Biener  <rguenther@suse.de>
2461
2462         PR middle-end/63148
2463         * fold-const.c (try_move_mult_to_index): Remove.
2464         (fold_binary_loc): Do not call it.
2465         * tree-data-ref.c (dr_analyze_indices): Strip conversions
2466         from the base object again.
2467
2468 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
2469
2470         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
2471         DImode.
2472
2473 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2474
2475         PR target/55701
2476         * config/arm/arm.md (setmem): New pattern.
2477         * config/arm/arm-protos.h (struct tune_params): New fields.
2478         (arm_gen_setmem): New prototype.
2479         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
2480         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2481         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2482         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
2483         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
2484         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
2485         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
2486         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2487         (arm_const_inline_cost): New function.
2488         (arm_block_set_max_insns): New function.
2489         (arm_block_set_non_vect_profit_p): New function.
2490         (arm_block_set_vect_profit_p): New function.
2491         (arm_block_set_unaligned_vect): New function.
2492         (arm_block_set_aligned_vect): New function.
2493         (arm_block_set_unaligned_non_vect): New function.
2494         (arm_block_set_aligned_non_vect): New function.
2495         (arm_block_set_vect, arm_gen_setmem): New functions.
2496
2497 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2498
2499         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
2500
2501 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
2502
2503         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
2504
2505 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2506
2507         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
2508         an rtx.
2509         * valtrack.h: Adjust.
2510
2511 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2512
2513         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
2514         an rtx.
2515         (emit_jump_insn_before_noloc): Likewise.
2516         (emit_call_insn_before_noloc): Likewise.
2517         (emit_label_before): Likewise.
2518         (emit_label_after): Likewise.
2519         (emit_insn_before_setloc): Likewise.
2520         (emit_jump_insn_before_setloc): Likewise.
2521         (emit_call_insn_before_setloc): Likewise.
2522         (emit_call_insn_before): Likewise.
2523         * rtl.h: Adjust.
2524
2525 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2526
2527         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
2528         rtx_insn *, eliminating a checked cast.
2529
2530 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2531
2532         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
2533         const_rtx to const rtx_insn *.
2534         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
2535         cast.
2536
2537 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2538
2539         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
2540         fixup_args_size_notes.
2541         * expr.c (fixup_args_size_notes): Strengthen first two params from
2542         rtx to rtx_insn *, eliminating a checked cast.
2543         * rtl.h (fixup_args_size_notes): Strengthen first two params from
2544         rtx to rtx_insn *.
2545
2546 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
2547
2548         * haifa-sched.c (get_ready_element): Strengthen return type from
2549         rtx to rtx_insn *.
2550         * sched-int.h (get_ready_element): Likewise.
2551
2552 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
2553
2554         PR target/63165
2555         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
2556         indexed_or_indirect_operand instead of memory_operand.
2557         (floatsi<mode>2_lfiwzx_mem): Ditto.
2558
2559 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2560
2561         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
2562         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
2563         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
2564
2565 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
2566
2567         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
2568         rtx.
2569         (get_last_nonnote_insn): Likewise.
2570         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
2571         * resource.c (find_basic_block): Likewise.
2572         * rtl.h: Adjust.
2573         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
2574         const_rtx.
2575
2576 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2577
2578         * genattr.c (main): Within the prototype of insn_latency written
2579         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
2580         * genautomata.c (output_internal_maximal_insn_latency_func):
2581         Within the implementation of insn_latency written out to
2582         insn-automata.c, strengthen both params from rtx to rtx_insn *,
2583         eliminating a pair of checked casts.
2584
2585 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
2586
2587         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
2588         rtx_insn *.
2589
2590         * rtl.h (eh_returnjump_p): Likewise.
2591
2592 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
2593
2594         * Makefile.in (TAGS): Handle constructs in timevar.def.
2595
2596 2014-09-04  Guozhi Wei  <carrot@google.com>
2597
2598         PR target/62040
2599         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
2600         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
2601         it into two patterns.
2602         (move_lo_quad_internal_be_<mode>): Likewise.
2603
2604 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2605
2606         * doc/options.texi: Document that Var and Init are required if CPP
2607         is given.
2608         * optc-gen.awk: Require Var and Init if CPP is given.
2609         * common.opt (Wpedantic): Use Init.
2610
2611 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2612
2613         * config/rs6000/rs6000.c (special_handling_values): Add
2614         SH_EXTRACT.
2615         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
2616         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
2617         as swappable with special handling SH_EXTRACT.  Remove
2618         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
2619         optimization.
2620         (adjust_extract): New function.
2621         (handle_special_swappables): Add default to case statement; add
2622         case for SH_EXTRACT that calls adjust_extract.
2623         (dump_swap_insn_table): Handle SH_EXTRACT.
2624
2625 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2626
2627         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
2628         selection of 0th memory doubleword, regardless of endianness.
2629
2630 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2631
2632         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
2633
2634 2014-09-04  Alan Modra  <amodra@gmail.com>
2635
2636         PR debug/60655
2637         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
2638         can't be output.
2639
2640 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
2641
2642         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
2643         * targhooks.c (default_dwarf_frame_reg_mode): New function.
2644         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
2645         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
2646         * doc/tm.texi: Regenerate.
2647         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
2648         selection logic to default_dwarf_frame_reg_mode.
2649
2650 2014-09-03  Marek Polacek  <polacek@redhat.com>
2651
2652         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
2653         by -Wall.
2654
2655 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2656
2657         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
2658         the automodified register.
2659
2660 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
2661
2662         * output.h (get_some_local_dynamic_name): Declare.
2663         * final.c (some_local_dynamic_name): New variable.
2664         (get_some_local_dynamic_name): New function.
2665         (final_end_function): Clear some_local_dynamic_name.
2666         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
2667         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2668         (print_operand): Report an error if '%&' is used inappropriately.
2669         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
2670         (get_some_local_dynamic_name_1): Delete.
2671         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
2672         (rs6000_get_some_local_dynamic_name): Delete.
2673         (rs6000_get_some_local_dynamic_name_1): Delete.
2674         (print_operand): Report an error if '%&' is used inappropriately.
2675         * config/s390/s390.c (machine_function): Remove some_ld_name.
2676         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2677         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
2678         * config/sparc/sparc.c: Include rtl-iter.h.
2679         (machine_function): Remove some_ld_name.
2680         (sparc_print_operand): Report an error if '%&' is used inappropriately.
2681         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
2682
2683 2014-09-03  Richard Henderson  <rth@redhat.com>
2684
2685         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
2686         (aarch64_popwb_pair_reg): Remove.
2687         (aarch64_set_frame_expr): Remove.
2688         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
2689         the restore ops performed by the insns generated.
2690         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
2691         insn.  Perform the calls_eh_return addition later; do not attempt to
2692         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
2693         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
2694         special markup at all.  Load cfun->machine->frame.hard_fp_offset
2695         into a local variable.
2696         (aarch64_frame_pointer_required): Don't check calls_alloca.
2697
2698 2014-09-03  Richard Biener  <rguenther@suse.de>
2699
2700         * opts.c (default_options_optimization): Adjust
2701         max-combine-insns to 2 for -Og.
2702
2703 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2704
2705         PR ipa/62015
2706         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
2707         pass-trough jump functions correctly.
2708
2709 2014-09-03  Martin Jambor  <mjambor@suse.cz>
2710
2711         PR ipa/61986
2712         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
2713         created replacements in ascending order of offsets.
2714         (known_aggs_to_agg_replacement_list): Likewise.
2715
2716 2014-09-03  Martin Liska  <mliska@suse.cz>
2717
2718         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
2719         is set to set uninitialized value for vnresult.
2720
2721 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2722
2723         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
2724         for TARGET_MUST_PASS_IN_STACK.
2725
2726 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2727
2728         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
2729         for TARGET_ARG_PARTIAL_BYTES.
2730
2731 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2732
2733         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
2734         instructions for varargs implementation.
2735         (nds32_expand_epilogue): Emit stack adjustment instructions for
2736         varargs implementation.
2737
2738 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2739
2740         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
2741         optimization detection.
2742
2743 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2744
2745         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
2746         arguments.
2747         (nds32_function_arg_advance): Deal with nameless arguments.
2748         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
2749         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
2750         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
2751
2752 2014-09-03  Richard Biener  <rguenther@suse.de>
2753
2754         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
2755         (struct bb_bitmap_sets): Remove deferred member.
2756         (BB_DEFERRED): Remove.
2757         (defer_or_phi_translate_block): Remove.
2758         (compute_antic_aux): Remove deferring of blocks, assert
2759         proper iteration order.
2760         (compute_antic): Do not set BB_DEFERRED.
2761         (eliminate): Allocate el_avail of proper size initially.
2762
2763 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2764
2765         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
2766         according to the value of crtl->args.pretend_args_size.
2767
2768 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2769
2770         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
2771         varargs information.
2772
2773 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2774
2775         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
2776         implementation for TARGET_SETUP_INCOMING_VARARGS.
2777         (nds32_strict_argument_naming): Refine comment.
2778         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
2779         Define for future implementation.
2780
2781 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
2782
2783         * config/i386/adxintrin.h (_subborrow_u32): New.
2784         (_addcarry_u32): Ditto.
2785         (_subborrow_u64): Ditto.
2786         (_addcarry_u64): Ditto.
2787         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
2788         IX86_BUILTIN_SBB64.
2789         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
2790         __builtin_ia32_sbb_u64
2791
2792 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2793
2794         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
2795         GPR-specific stuff.
2796         (nds32_function_arg_advance): Likewise.
2797         (nds32_init_cumulative_args): Likewise.
2798         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
2799         (NDS32_FIRST_GPR_REGNUM): Define.
2800         (NDS32_LAST_GPR_REGNUM): Define.
2801         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
2802         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2803         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
2804         (machine_function): Use GRP-specific stuff.
2805
2806 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2807
2808         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
2809         (nds32_expand_epilogue): Likewise.
2810         (nds32_expand_prologue_v3push): Likewise.
2811         (nds32_expand_epilogue_v3pop): Likewise.
2812
2813 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2814
2815         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
2816         v3push/v3pop for variadic function.
2817         * config/nds32/nds32.md (prologue, epilogue): Likewise.
2818
2819 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2820
2821         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
2822         Check rtx for varargs implementation.
2823         (nds32_output_stack_pop): Likewise.
2824         * config/nds32/nds32-protos.h: Have a rtx argument for
2825         nds32_output_stack_push and nds32_output_stack_pop.
2826         * config/nds32/nds32.md: Likewise.
2827
2828 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2829
2830         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
2831         to check if FUNC is an interrupt service routine.
2832         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
2833
2834 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2835
2836         * config/nds32/nds32.h (machine_function): Add some fields for variadic
2837         arguments implementation.
2838
2839 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2840
2841         * config/nds32/nds32-predicates.c
2842         (nds32_valid_stack_push_pop): Rename to ...
2843         (nds32_valid_stack_push_pop_p): ... this.
2844         * config/nds32/nds32-protos.h: Likewise.
2845         * config/nds32/predicates.md: Likewise.
2846
2847 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2848
2849         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
2850         (nds32_emit_stack_v3push): ... this.
2851         (nds32_gen_stack_v3pop): Rename to ...
2852         (nds32_emit_stack_v3pop): ... this and consider CFA restore
2853         information.
2854
2855 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2856
2857         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
2858         (nds32_emit_stack_push_multiple): ... this.
2859         (nds32_gen_stack_pop_multiple): Rename to ...
2860         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
2861         information.
2862
2863 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2864
2865         PR target/61078
2866         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
2867         and add a second splitter to handle the remaining cases.
2868
2869 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
2870
2871         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
2872
2873 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2874
2875         * cfgexpand.c (label_rtx_for_bb): Change type to
2876         hash_map<basic_block, rtx_code_label *> *.
2877         (expand_gimple_basic_block): Adjust.
2878         (pass_expand::execute): Likewise.
2879
2880 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2881
2882         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
2883         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
2884         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
2885         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
2886         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
2887         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
2888         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
2889         of rtx.
2890
2891 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
2892
2893         * alloc-pool.c: Include coretypes.h.
2894         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
2895         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
2896         hash_set instead of htab.
2897         * ggc-page.c (in_gc): New variable.
2898         (ggc_free): Do nothing if a collection is taking place.
2899         (ggc_collect): Set in_gc appropriately.
2900         * ggc.h (gt_ggc_mx(const char *)): New function.
2901         (gt_pch_nx(const char *)): Likewise.
2902         (gt_ggc_mx(int)): Likewise.
2903         (gt_pch_nx(int)): Likewise.
2904         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
2905         (hash_map::hash_entry::pch_nx): Likewise.
2906         (hash_map::hash_entry::pch_nx_helper): Likewise.
2907 (hash_map::hash_map): Adjust.
2908 (hash_map::create_ggc): New function.
2909 (gt_ggc_mx): Likewise.
2910 (gt_pch_nx): Likewise.
2911         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
2912 (default_hashset_traits::pch_nx): Likewise.
2913 (hash_set::hash_entry::ggc_mx): Likewise.
2914 (hash_set::hash_entry::pch_nx): Likewise.
2915 (hash_set::hash_entry::pch_nx_helper): Likewise.
2916 (hash_set::hash_set): Adjust.
2917 (hash_set::create_ggc): New function.
2918 (hash_set::elements): Likewise.
2919 (gt_ggc_mx): Likewise.
2920 (gt_pch_nx): Likewise.
2921         * hash-table.h (hash_table::hash_table): Adjust.
2922 (hash_table::m_ggc): New member.
2923         (hash_table::~hash_table): Adjust.
2924         (hash_table::expand): Likewise.
2925         (hash_table::empty): Likewise.
2926 (gt_ggc_mx): New function.
2927         (hashtab_entry_note_pointers): Likewise.
2928 (gt_pch_nx): Likewise.
2929
2930 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2931
2932         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
2933         built-in definition.
2934         (XVCVUXDDP_SCALE): Likewise.
2935         (XVCVDPSXDS_SCALE): Likewise.
2936         (XVCVDPUXDS_SCALE): Likewise.
2937         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
2938         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
2939         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
2940         VSX_BUILTIN_XVCVDPUXDS_SCALE.
2941         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
2942         prototype.
2943         * config/rs6000/rs6000.c (real.h): New include.
2944         (rs6000_scale_v2df): New function.
2945         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
2946         (UNSPEC_VSX_XVCVUXDDP): Likewise.
2947         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
2948         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
2949         (vsx_xvcvsxddp_scale): New define_expand.
2950         (vsx_xvcvsxddp): New define_insn.
2951         (vsx_xvcvuxddp_scale): New define_expand.
2952         (vsx_xvcvuxddp): New define_insn.
2953         (vsx_xvcvdpsxds_scale): New define_expand.
2954         (vsx_xvcvdpsxds): New define_insn.
2955         (vsx_xvcvdpuxds_scale): New define_expand.
2956         (vsx_xvcvdpuxds): New define_insn.
2957         * doc/extend.texi (vec_ctf): Add new prototypes.
2958         (vec_cts): Likewise.
2959         (vec_ctu): Likewise.
2960         (vec_splat): Likewise.
2961         (vec_div): Likewise.
2962         (vec_mul): Likewise.
2963
2964 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2965
2966         PR target/62275
2967         * config/arm/neon.md
2968         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
2969         <v_cmp_result>): New pattern.
2970         * config/arm/iterators.md (NEON_VCVT): New int iterator.
2971         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
2972         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
2973         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
2974         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
2975         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
2976
2977 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2978
2979         PR target/62275
2980         * config/arm/iterators.md (FIXUORS): New code iterator.
2981         (VCVT): New int iterator.
2982         (su_optab): New code attribute.
2983         (su): Likewise.
2984         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
2985
2986 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2987
2988         * config/aarch64/predicates.md (aarch64_comparison_operation):
2989         New special predicate.
2990         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
2991         aarch64_comparison_operation instead of matching an operator.
2992         Update operand numbers.
2993         (csinc3<mode>_insn): Likewise.
2994         (*csinv3<mode>_insn): Likewise.
2995         (*csneg3<mode>_insn): Likewise.
2996         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
2997         * config/aarch64/aarch64.c (aarch64_get_condition_code):
2998         Return -1 instead of aborting on invalid condition codes.
2999         (aarch64_print_operand): Update aarch64_get_condition_code callsites
3000         to assert that the returned condition code is valid.
3001         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
3002
3003 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
3004
3005         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
3006         tree.def, and gimple.def
3007
3008 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
3009             Balaji V. Iyer  <balaji.v.iyer@intel.com>
3010             Igor Zamyatin  <igor.zamyatin@intel.com>
3011
3012         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
3013         (__cilkrts_cilk_for_64): Likewise.
3014         * cilk-common.c (declare_cilk_for_builtin): New function.
3015         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
3016         __cilkrts_cilk_for_64 bultins.
3017         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
3018         CILK_TI_F_LOOP_64.
3019         (cilk_for_32_fndecl): New define.
3020         (cilk_for_64_fndecl): Likewise.
3021         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
3022         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
3023         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
3024         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
3025         GF_OMP_FOR_COMBINED_INTO.
3026         * gimplify.c (gimplify_scan_omp_clauses): Added
3027         OMP_CLAUSE__CILK_FOR_COUNT_ case.
3028         (gimplify_adjust_omp_clauses): Ditto.
3029         (gimplify_omp_for): Added CILK_FOR case.
3030         (gimplify_expr): Ditto.
3031         * omp-low.c: Include cilk.h.
3032         (extract_omp_for_data): Set appropriate kind for
3033         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
3034         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
3035         (create_omp_child_function_name): Added second argument to handle
3036         cilk_for case.
3037         (cilk_for_check_loop_diff_type): New function.
3038         (expand_cilk_for_call): Likewise.
3039         (expand_cilk_for): Likewise.
3040         (create_omp_child_function): Set cilk_for_count; handle the cases when
3041         it is true; call create_omp_child_function_name with second argument.
3042         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
3043         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
3044         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
3045         * tree-nested.c (convert_nonlocal_omp_clauses): Added
3046         OMP_CLAUSE__CILK_FOR_COUNT_ case.
3047         (convert_local_omp_clauses): Ditto.
3048         * tree-pretty-print.c (dump_omp_clause): Added
3049         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
3050         (dump_generic_node): Added CILK_FOR case.
3051         * tree.c (omp_clause_num_ops): New element
3052         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
3053         (omp_clause_code_name): New element _Cilk_for_count_.
3054         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
3055         * tree.def: Add tree code for CILK_FOR.
3056
3057 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
3058
3059         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
3060         (ppc403-compare): Add "exts with dot" case.
3061         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
3062         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
3063         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
3064         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
3065         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
3066         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
3067         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
3068         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
3069         cell-cmp-microcoded): Similarly.
3070         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
3071         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
3072         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
3073         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
3074         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
3075         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
3076         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
3077         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
3078         (power6-compare): Add "exts with dot" case.
3079         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
3080         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
3081         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
3082
3083         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
3084         if avoiding Cell microcode.
3085         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
3086         (is_cracked_insn): Ditto.
3087         (insn_must_be_first_in_group): Ditto.
3088         * config/rs6000/rs6000.md (dot): Adjust comment.
3089         (cell_micro): Handle exts+dot.
3090         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
3091         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
3092         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
3093         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
3094         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
3095         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
3096         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
3097
3098 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
3099
3100         * config/rs6000/rs6000.md (QHSI): Delete.
3101         (EXTQI, EXTHI, EXTSI): New mode iterators.
3102         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
3103         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
3104         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
3105         9 anonymous instructions, and 8 splitters): Delete.
3106         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
3107         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
3108         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
3109         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
3110         *zero_extendsi<mode>2_dot2): New.
3111
3112 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
3113
3114         * config/rs6000/rs6000.md (any_extend): New code iterator.
3115         (u, su): New code attributes.
3116         (dmode, DMODE): New mode attributes.
3117         (<su>mul<mode>3_highpart): New.
3118         (*<su>mul<mode>3_highpart): New.
3119         (<su>mulsi3_highpart_le): New.
3120         (<su>muldi3_highpart_le): New.
3121         (<su>mulsi3_highpart_64): New.
3122         (<u>mul<mode><dmode>3): New.
3123         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
3124         splitters): Delete.
3125         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
3126         splitters): Delete.
3127
3128 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
3129
3130         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
3131         *mulsi3_internal2, and two splitters): Delete.
3132         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
3133         Delete.
3134         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
3135
3136 2014-09-02  Richard Biener  <rguenther@suse.de>
3137
3138         PR tree-optimization/62695
3139         * tree-ssa-structalias.c (find_func_clobbers): Add missing
3140         vector truncate.
3141
3142 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
3143
3144         PR target/62312
3145         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
3146
3147 2014-09-01  Andi Kleen  <ak@linux.intel.com>
3148
3149         * file-find.c (add_prefix_begin): Add.
3150         (do_add_prefix): Rename from add_prefix with first argument.
3151         (add_prefix): Add new wrapper.
3152         * file-find.h (add_prefix_begin): Add.
3153         * gcc-ar.c (main): Support -B option.
3154
3155 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
3156
3157         * genemit.c: Include dumpfile.h.
3158         (gen_split): Print name of splitter function to dump file.
3159
3160 2014-09-01  Richard Biener  <rguenther@suse.de>
3161
3162         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
3163         Use stack auto_vecs for constraint expressions.
3164         (find_func_aliases_for_call): Likewise.
3165         (find_func_aliases): Likewise.
3166         (find_func_clobbers): Likewise.
3167
3168 2014-09-01  Richard Biener  <rguenther@suse.de>
3169
3170         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
3171         operands vector in most cases.  Remove redundant code.
3172
3173 2014-09-01  Olivier Hainque  <hainque@adacore.com>
3174
3175         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
3176         $WIND_BASE instead of designating a harcoded arbitrary home dir.
3177         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
3178
3179 2014-09-01  Richard Biener  <rguenther@suse.de>
3180
3181         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
3182         copy_reference_ops_from_call, vn_nary_op_compute_hash,
3183         vn_reference_compute_hash, vn_reference_insert): Remove.
3184         (vn_reference_lookup_call): New function.
3185         * tree-ssa-sccvn.c (vn_reference_compute_hash,
3186         copy_reference_ops_from_ref, copy_reference_ops_from_call,
3187         vn_reference_insert, vn_nary_op_compute_hash): Make static.
3188         (create_reference_ops_from_call): Remove.
3189         (vn_reference_lookup_3): Properly update shared_lookup_references.
3190         (vn_reference_lookup_pieces): Assert that we updated
3191         shared_lookup_references properly.
3192         (vn_reference_lookup): Likewise.
3193         (vn_reference_lookup_call): New function.
3194         (visit_reference_op_call): Use it.  Avoid re-building the
3195         reference ops.
3196         (visit_reference_op_load): Remove redundant lookup.
3197         (visit_reference_op_store): Perform special tail-merging work
3198         only when possibly doing tail-merging.
3199         (visit_use): Likewise.
3200         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
3201
3202 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3203
3204         PR target/62025
3205         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
3206         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
3207         (find_inc): Revert 2014-08-13 change.
3208
3209 2014-09-01  Marek Polacek  <polacek@redhat.com>
3210
3211         PR middle-end/61903
3212         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
3213         Change the type of V to unsigned HOST_WIDE_INT.
3214
3215 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3216
3217         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
3218         the size of byte markers.
3219         (do_shift_rotate): Fix confusion between host, target and marker byte
3220         size.
3221         (verify_symbolic_number_p): Likewise.
3222         (find_bswap_or_nop_1): Likewise.
3223         (find_bswap_or_nop): Likewise.
3224
3225 2014-09-01  Olivier Hainque  <hainque@adacore.com>
3226
3227         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
3228         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
3229
3230 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
3231
3232         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
3233         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
3234         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
3235
3236 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
3237
3238         PR sanitizer/61897
3239         PR sanitizer/62140
3240         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
3241         (build_check_stmt): Likewise.
3242         (instrument_strlen_call): Likewise.
3243         (asan_expand_check_ifn): Likewise and fix types.
3244         (maybe_cast_to_ptrmode): New function.
3245
3246 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3247
3248         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
3249
3250 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
3251
3252         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
3253
3254 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
3255
3256         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
3257         prefix to function labels when generating fast indirect calls.
3258
3259 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
3260
3261         PR bootstrap/62304
3262
3263         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
3264         param back from rtx_insn * to rtx.  Rename param from "label" to
3265         "label_or_return", reintroducing "label" as an rtx_insn * after
3266         we've ensured it's not a RETURN.
3267         (first_active_target_insn): Likewise for return type and param;
3268         add a checked cast to rtx_insn * once we've ensured "insn" is not
3269         a RETURN.
3270         (steal_delay_list_from_target): Convert param "pnew_thread" back
3271         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
3272         with JUMP_LABEL.
3273         (own_thread_p): Convert param "thread" back from an rtx_insn * to
3274         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
3275         cast once we've established we're not dealing with a RETURN,
3276         renaming subsequent uses of "thread" to "thread_insn".
3277         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
3278         to JUMP_LABEL.
3279         (follow_jumps): Convert return type and param "label" from
3280         rtx_insn * back to rtx.  Move initialization of "value" to after
3281         the handling for ANY_RETURN_P, adding a checked cast there to
3282         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
3283         rename to "this_label_or_return", reintroducing "this_label" as
3284         an rtx_insn * once we've handled the case where it could be an
3285         ANY_RETURN_P.
3286         (fill_slots_from_thread): Rename param "thread" to
3287         "thread_or_return", converting from an rtx_insn * back to an rtx.
3288         Reintroduce name "thread" as an rtx_insn * local with a checked
3289         cast once we've handled the case of it being an ANY_RETURN_P.
3290         Convert local "new_thread" from an rtx_insn * back to an rtx.
3291         Add a checked cast when assigning to "trial" from "new_thread".
3292         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
3293         checked cast to rtx_insn * from "new_thread" when invoking
3294         get_label_before.
3295         (fill_eager_delay_slots): Convert locals "target_label",
3296         "insn_at_target" from rtx_insn * back to rtx.
3297         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
3298         (relax_delay_slots): Convert locals "trial", "target_label" from
3299         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
3300         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
3301         invoking update_block.
3302         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
3303         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
3304
3305         * resource.h (mark_target_live_regs): Undo erroneous conversion
3306         of second param of r214693, converting it back from rtx_insn * to
3307         rtx, since it could be a RETURN.
3308
3309         * resource.c (find_dead_or_set_registers): Similarly, convert
3310         param "jump_target" back from an rtx_insn ** to an rtx *, as we
3311         could be writing back a RETURN.  Rename local rtx_insn * "next" to
3312         "next_insn", and introduce "lab_or_return" as a local rtx,
3313         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
3314         (mark_target_live_regs): Undo erroneous conversion
3315         of second param of r214693, converting it back from rtx_insn * to
3316         rtx, since it could be a RETURN.  Rename it from "target" to
3317         "target_maybe_return", reintroducing the name "target" as a local
3318         rtx_insn * with a checked cast, after we've handled the case of
3319         ANY_RETURN_P.
3320
3321 2014-08-29  DJ Delorie  <dj@redhat.com>
3322
3323         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
3324         pointer size up to a power of two.
3325         * defaults.h (DWARF2_ADDR_SIZE): Round up.
3326         (POINTER_SIZE_UNITS): New, rounded up value.
3327         * dwarf2asm.c (size_of_encoded_value): Use it.
3328         (dw2_output_indirect_constant_1): Likewise.
3329         * expmed.c (init_expmed_one_conv): We now know the sizes of
3330         partial int modes.
3331         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
3332         * optabs.c (expand_float): Use precision, not size.
3333         (expand_fix): Likewise.
3334         * simplify-rtx (simplify_unary_operation_1): Likewise.
3335         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3336         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
3337         (default_assemble_integer) Likewise.
3338         (dump_tm_clone_pairs): Likewise.
3339         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
3340         * var-tracking.c (adjust_mems): Allow partial-int modes also.
3341         (prepare_call_arguments): Likewise.
3342         * stor-layout.c (finalize_type_size): Preserve precision.
3343         (layout_type): Use precision, not size.
3344
3345         * expr.c (convert_move): If the target has an explicit converter,
3346         use it.
3347
3348 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3349
3350         * gdbinit.in: Skip various inline functions in rtl.h when
3351         stepping.
3352
3353 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
3354
3355         PR bootstrap/62301
3356         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
3357
3358 2014-08-29  Richard Biener  <rguenther@suse.de>
3359
3360         PR tree-optimization/62291
3361         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
3362         exactly the vector size needed and use quick_push.
3363         (phi_translate_1): Adjust comment.
3364         (valid_in_sets): Remove block argument and remove pointless
3365         checking of NAMEs.
3366         (dependent_clean): Adjust for removal of block argument.
3367         (clean): Likewise.
3368         (compute_antic_aux): Likewise.
3369         (compute_partial_antic_aux): Likewise.
3370
3371 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3372             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3373             Anna Tikhonova  <anna.tikhonova@intel.com>
3374             Ilya Tocar  <ilya.tocar@intel.com>
3375             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3376             Ilya Verbin  <ilya.verbin@intel.com>
3377             Kirill Yukhin  <kirill.yukhin@intel.com>
3378             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3379
3380         * config/i386/sse.md
3381         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
3382         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
3383         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
3384         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
3385
3386 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3387             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3388             Anna Tikhonova  <anna.tikhonova@intel.com>
3389             Ilya Tocar  <ilya.tocar@intel.com>
3390             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3391             Ilya Verbin  <ilya.verbin@intel.com>
3392             Kirill Yukhin  <kirill.yukhin@intel.com>
3393             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3394
3395         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
3396         * config/i386/sse.md
3397         (define_mode_iterator VI4_128_8_256): New.
3398         (define_mode_iterator VI2_128_4_256): Ditto.
3399         (define_mode_iterator PMOV_DST_MODE): Rename into
3400         (define_mode_iterator PMOV_DST_MODE_1): this.
3401         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
3402         Use PMOV_DST_MODE_1 mode iterator.
3403         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3404         Ditto.
3405         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
3406         Ditto.
3407         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
3408         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
3409         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
3410         (define_mode_iterator PMOV_DST_MODE_2): New.
3411         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
3412         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
3413         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
3414         Ditto.
3415         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
3416         (define_mode_attr pmov_dst_3): Ditto.
3417         (define_mode_attr pmov_dst_zeroed_3): Ditto.
3418         (define_mode_attr pmov_suff_3): Ditto.
3419         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
3420         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
3421         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
3422         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
3423         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
3424         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
3425         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
3426         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
3427         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
3428         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
3429         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
3430         (define_mode_attr pmov_dst_4): Ditto.
3431         (define_mode_attr pmov_dst_zeroed_4): Ditto.
3432         (define_mode_attr pmov_suff_4): Ditto.
3433         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
3434         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
3435         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
3436         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
3437         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
3438         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
3439         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
3440         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
3441         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
3442         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
3443         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
3444
3445 2014-08-29  Richard Biener  <rguenther@suse.de>
3446
3447         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
3448         NON_LVALUE_EXPR in gimple.
3449
3450 2014-08-29  Richard Biener  <rguenther@suse.de>
3451
3452         PR middle-end/62292
3453         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
3454         from previous refactoring.
3455         (gimple_fold_builtin_strncpy): Likewise.
3456
3457 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
3458
3459         PR bootstrap/62300
3460         * function.c (assign_parm_setup_reg): Remove erroneous checked
3461         cast to rtx_insn * on result of gen_extend_insn in favor of
3462         introducing a new local rtx "pat".
3463
3464 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3465
3466         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
3467         to silence warning.
3468         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
3469
3470 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3471
3472         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
3473         (next_insn): Likewise.
3474         * emit-rtl.c (next_insn): Likewise.
3475         (previous_insn): Likewise.
3476         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
3477         "insn" and "next" from rtx to rtx_insn *.
3478         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
3479         "insn", "insn1", "vliw_start",  "prologue_end_note",
3480         "last_insn_in_packet".
3481
3482 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3483
3484         * shrink-wrap.h (active_insn_between): Strengthen both params from
3485         rtx to rtx_insn *.
3486         * function.c (active_insn_between): Likewise.
3487
3488 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3489
3490         * genattr.c (main): When writing out insn-attr.h, strengthen param
3491         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
3492         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
3493         writing out the definition of dfa_clear_single_insn_cache to the
3494         generated insn-automata.c
3495
3496 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3497
3498         * resource.h (clear_hashed_info_for_insn): Strengthen param from
3499         rtx to rtx_insn *.
3500         (incr_ticks_for_insn): Likewise.
3501         (init_resource_info): Likewise.
3502
3503         * resource.c (init_resource_info): Likewise.
3504         (clear_hashed_info_for_insn): Likewise.
3505         (incr_ticks_for_insn): Likewise.
3506
3507         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
3508         rtx to rtx_insn *.
3509         (steal_delay_list_from_target): Use methods of "seq".
3510         (try_merge_delay_insns): Use methods of "merged_insns".
3511         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
3512         (reorg_redirect_jump): Likewise for param "jump".
3513
3514 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3515
3516         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
3517         rtx to rtx_insn *.
3518         * config/s390/s390.c (s390_split_branches): Eliminate top-level
3519         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
3520         "set_insn".
3521         (s390_mainpool_finish): In three places, split out a local rtx
3522         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
3523         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
3524          and split another local rtx "insn" out into rtx "pat" and
3525         rtx_insn * "insn".
3526         * config/sh/sh.c (output_branchy_insn): Rather than working
3527         directly on operands[9], introduce local rtx_code_label *
3528         variables named "lab" in two places, working on them, and then
3529         assigning them to operands[9], so that the intervening operations
3530         are known by the type system to be on insns.
3531
3532 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3533
3534         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
3535         const rtx_insn *.
3536
3537         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
3538         in invocation of INSN_HAS_LOCATION.
3539
3540 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3541
3542         * config/rs6000/altivec.h (vec_xl): New #define.
3543         (vec_xst): Likewise.
3544         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
3545         (XXSPLTD_V2DI): Likewise.
3546         (DIV_V2DI): Likewise.
3547         (UDIV_V2DI): Likewise.
3548         (MUL_V2DI): Likewise.
3549         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3550         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
3551         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
3552         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
3553         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
3554         (UNSPEC_VSX_DIVSD): Likewise.
3555         (UNSPEC_VSX_DIVUD): Likewise.
3556         (UNSPEC_VSX_MULSD): Likewise.
3557         (vsx_mul_v2di): New insn-and-split.
3558         (vsx_div_v2di): Likewise.
3559         (vsx_udiv_v2di): Likewise.
3560         (vsx_xxspltd_<mode>): New insn.
3561
3562 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3563
3564         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
3565         NEXT_INSN.
3566         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
3567         (NEXT_INSN): Likewise.
3568         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
3569         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
3570         const rtx_insn *.
3571         (no_labels_between_p): Likewise for both params.
3572
3573         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
3574         cast when using NEXT_INSN on operands[2].
3575         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
3576         "insn" from rtx to rtx_insn *, adding a checked cast.
3577         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
3578         rtx_insn *.
3579         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
3580         for third param.
3581         (arc_text_label): Likewise for param "insn".
3582         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
3583         "insn".
3584         (arc_ccfsm_record_condition): Likewise for param "jump".
3585         (arc_text_label): Likewise for local "label".
3586         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
3587         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
3588         a method for typesafety.  Add a checked cast.
3589         * config/arc/constraints.md (Clb): Add a checked cast when getting
3590         the CODE_LABEL from a LABEL_REF.
3591         * config/arm/arm.c (require_pic_register): Strengthen locals
3592         "seq", "insn" from rtx to rtx_insn *.
3593         (create_fix_barrier): Likewise for locals "selected", "next".
3594         (thumb1_reorg): Likewise for locals "prev", "insn".
3595         (arm_expand_prologue): Likewise for local "last".
3596         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
3597         operands[0].
3598         (thumb2_output_casesi): Likewise for operands[2].
3599         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
3600         strengthen local "insn" from rtx to rtx_insn *.
3601         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
3602         type and param "insn".
3603         (find_prev_insn_start): Likewise.
3604         (hwloop_optimize): Likewise for locals "insn", "last_insn",
3605         "prev".
3606         (gen_one_bundle): Likewise for loal "t".
3607         (find_load): Likewise for param "insn".
3608         (workaround_speculation): Likewise for locals "insn", "next",
3609         "target", "next_tgt".
3610         * config/c6x/c6x.c (assign_reservations): Likewise for both params
3611         and for locals "insn", "within", "last".
3612         (count_unit_reqs): Likewise for params "head", "tail" and local
3613         "insn".
3614         (try_rename_operands): Likewise for params "head", "tail".
3615         (reshuffle_units): Likewise for locals "head", "tail", "insn".
3616         (struct c6x_sched_context): Likewise for fields
3617         "last_scheduled_insn", "last_scheduled_iter0".
3618         (init_sched_state): Replace NULL_RTX with NULL.
3619         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
3620         to rtx_insn *.
3621         (undo_split_delayed_nonbranch): Likewise for param and for local
3622         "prev".
3623         (conditionalize_after_sched): Likewise for local "insn".
3624         (bb_earliest_end_cycle): Likewise.
3625         (filter_insns_above): Likewise for locals "insn", "next".
3626         (hwloop_optimize): Remove redundant checked cast.
3627         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
3628         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
3629         NULL_RTX with NULL.
3630         (cris_simple_epilogue): Likewise.
3631         (cris_expand_prologue): Likewise.
3632         (cris_expand_epilogue): Likewise.
3633         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
3634         local "insn" from rtx to rtx_insn *.
3635         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
3636         (struct frv_packet_group): Likewise for the elements within array
3637         fields "insns", "sorted", and for field "nop".
3638         (frv_packet): Likewise for the elements within array field
3639         "insns".
3640         (frv_add_insn_to_packet): Likewise for param "insn".
3641         (frv_insert_nop_in_packet): Likewise for param "insn" and local
3642         "last".
3643         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
3644         (frv_sort_insn_group_1): Likewise for local "insn".
3645         (frv_optimize_membar_local): Likewise.
3646         (frv_align_label): Likewise for locals "x", "last", "barrier",
3647         "label".
3648         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
3649         local.
3650         (ia64_sched_init): Likewise for local "insn".
3651         (scheduled_good_insn): Likewise for param "last".
3652         (struct _ia64_sched_context): Likewise for field
3653         "last_scheduled_insn".
3654         (ia64_init_sched_context): Replace NULL_RTX with NULL.
3655         (struct bundle_state): Likewise for field "insn".
3656         (issue_nops_and_insn): Likewise for param "insn".
3657         (get_next_important_insn): Likewise for return type and both
3658         params.
3659         (ia64_add_bundle_selector_before): Likewise for param "insn".
3660         (bundling): Likewise for params "prev_head_insn", "tail" and
3661         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
3662         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
3663         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
3664         Strengthen final param from rtx to rtx_insn *.
3665         (iq2000_move_1word): Likewise for second param.
3666         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
3667         param "cur_insn" and local "next_insn".
3668         (iq2000_move_1word): Likewise for param "insn".
3669         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
3670         casts when using NEXT_INSN on operands[1].
3671         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
3672         "insn" from rtx to rtx_insn *.
3673         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
3674         "x", introducing local rtx_insn * "insn" for when working with the
3675         CODE_LABEL of the LABEL_REF.
3676         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
3677         rtx_insn *.
3678         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
3679         param.
3680         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
3681         type.
3682         (conditionalize_block): Likewise for return type and param.
3683         (mcore_is_dead): Likewise for param "first" and local "insn".
3684         (emit_new_cond_insn): Likewise for return type.
3685         (conditionalize_block): Likewise for return type, param, and
3686         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
3687         "newinsn".
3688         (conditionalize_optimization): Likewise for local "insn".
3689         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
3690         using NEXT_INSN.
3691         * config/microblaze/microblaze.md: Add checked casts when using
3692         NEXT_INSN.
3693         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
3694         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
3695         and rtx_insn * "insn".
3696         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
3697         checked cast when using NEXT_INSN on operands[2].
3698         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
3699         local "insn" from rtx to rtx_insn *.
3700         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
3701         Likewise.
3702         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
3703         Add a checked cast when using NEXT_INSN on operands[1].
3704         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
3705         rtx to rtx_insn *.
3706         (pa_output_cbranch): Likewise for final param.
3707         (pa_output_lbranch): Likewise for second param.
3708         (pa_output_bb): Likewise for third param.
3709         (pa_output_bvb): Likewise.
3710         (pa_output_dbra): Likewise for second param.
3711         (pa_output_movb): Likewise.
3712         (pa_output_parallel_movb): Likewise.
3713         (pa_output_parallel_addb): Likewise.
3714         (pa_output_millicode_call): Likewise for first param.
3715         (pa_output_mul_insn): Likewise for second param.
3716         (pa_output_div_insn): Likewise for third param.
3717         (pa_output_mod_insn): Likewise for second param.
3718         (pa_jump_in_call_delay): Likewise for param.
3719         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
3720         (pa_output_div_insn): Likewise.
3721         (pa_output_mod_insn): Likewise.
3722         (pa_output_cbranch): Likewise.
3723         (pa_output_lbranch): Likewise.
3724         (pa_output_bb): Likewise.
3725         (pa_output_bvb): Likewise.
3726         (pa_output_dbra): Likewise.
3727         (pa_output_movb): Likewise.
3728         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
3729         to simplify and for typesafety.
3730         (pa_output_call): Use method of rtx_sequence *.
3731         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
3732         (pa_jump_in_call_delay): Likewise.
3733         (pa_output_parallel_movb): Likewise.
3734         (pa_output_parallel_addb): Likewise.
3735         (pa_following_call): Likewise.
3736         (pa_combine_instructions): Likewise for locals "anchor",
3737         "floater".
3738         (pa_can_combine_p): Likewise for params "anchor", "floater" and
3739         locals "start", "end".
3740         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
3741         param "insn" and local "local_insn".
3742         (picochip_final_prescan_insn): Likewise for local "local_insn".
3743         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
3744         local "insn".
3745         (uses_TOC): Likewise.
3746         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
3747         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
3748         splitting out to more tightly-scoped locals, 3 as rtx and one as
3749         rtx_insn *.
3750         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
3751         to rtx_insn *.
3752         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
3753         where needed.
3754         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
3755         to rtx_insn *.
3756         (fixup_addr_diff_vecs): Likewise.
3757         (reg_unused_after): Likewise for param 2.
3758         (sh_can_redirect_branch): Likewise for both params.
3759         (check_use_sfunc_addr): Likewise for param 1.
3760         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
3761         (find_barrier): Likewise for local "last_got".
3762         (gen_block_redirect): Likewise for return type, param "jump" and
3763         locals "prev", "scan", "next", "insn".
3764         (struct far_branch): Likewise for fields "near_label",
3765         "insert_place", "far_label".
3766         (gen_far_branch): Likewise for local "jump".
3767         (fixup_addr_diff_vecs): Likewise for param "first" and locals
3768         "insn", "prev".
3769         (barrier_align): Likewise for param and for locals "prev", "x".
3770         Introduce local rtx_sequence * "prev_seq" and use insn method for
3771         typesafety and clarity.
3772         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
3773         (get_dest_uid): Likewise for local "dest".
3774         (split_branches): Likewise for locals "next", "beyond", "label",
3775         "block", "far_label".  Add checked casts when assigning to
3776         bp->far_label and "far_label".
3777         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
3778         (sequence_insn_p): Likewise.
3779         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
3780         more loop-scoped rtx "insn" when walking LABEL_REFS.
3781         (sh_can_redirect_branch): Strengthen both params from rtx to
3782         rtx_insn *.
3783         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
3784         new local rtx_sequence * "seq" via a dyn_cast, and use a method
3785         for clarity and typesafety.
3786         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
3787         "insn" from rtx to rtx_insn *.
3788         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
3789         when using NEXT_INSN on the CODE_LABEL in operands[2].
3790         (define_insn "casesi_worker_2"): Likewise.
3791         (define_insn "casesi_shift_media"): Likewise.
3792         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
3793         operands[3].
3794         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
3795         Strengthen field "insn" from rtx to rtx_insn *.
3796         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
3797         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
3798         param "start_insn" and local "start_insn".
3799         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
3800         field "insn".
3801         (find_set_of_reg_bb): Likewise for param "insn".
3802         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
3803         (trace_reg_uses): Likewise for param "start_insn".
3804         (sh_treg_combine::cbranch_trace): Likewise for field
3805         "cbranch_insn".
3806         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
3807         param "insn".
3808         (sh_treg_combine::record_set_of_reg): Likewise for param
3809         "start_insn" and local "i".
3810         (sh_treg_combine::can_remove_cstore): Likewise for local
3811         "prev_insn".
3812         (sh_treg_combine::try_optimize_cbranch): Likewise for param
3813         "insn".
3814         (sh_treg_combine::execute): Likewise for local "i".
3815         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
3816         param.
3817         (sparc_check_64): Likewise for second param.
3818         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
3819         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
3820         dyn_cast, using its insn method for typesafety and clarity.
3821         (empty_delay_slot): Strengthen param "insn" from rtx to
3822         rtx_insn *.
3823         (set_extends): Likewise.
3824         (sparc_check_64): Likewise.
3825         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
3826         for locals "seq", "last_insn".
3827         (combine_bnp): Likewise for param "insn".
3828         (xstormy16_reorg): Likewise for local "insn".
3829         * config/v850/v850.c (substitute_ep_register): Likewise for params
3830         "first_insn", "last_insn" and local "insn".
3831         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
3832         elements of "regs" array, and local "insn".
3833         * except.c (emit_note_eh_region_end): Likewise for param "insn".
3834         * final.c (final_sequence): Strengthen this global from rtx to
3835         rtx_sequence *.
3836         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
3837         rtx_insn *.
3838         (final_scan_insn): Update assignment to "final_sequence" to be
3839         from "seq", the cast version of "body", for type-safety.
3840         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
3841         "insns" from rtx to rtx_insn *.
3842         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
3843         * genattr.c (main): When writing out generated insn-attr.h,
3844         strengthen params 1 and 3 of eligible_for_delay,
3845         eligible_for_annul_true, eligible_for_annul_false from rtx to
3846         rtx_insn *.
3847         * genattrtab.c (write_eligible_delay): Likewise when writing out
3848         generated insn-attrtab.c; also local "insn" the generated
3849         functions.
3850         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
3851         to rtx_insn *.
3852         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
3853         "start_label" from rtx to rtx_insn *.
3854         * ira.c (decrease_live_ranges_number): Likewise for local "p".
3855         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
3856         "insns" and local "insn".
3857         (validate_equiv_mem): Likewise for param "start" and local "insn".
3858         (memref_used_between_p): Likewise for params "start", "end" and
3859         local "insn".
3860         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
3861         final param.
3862         * loop-doloop.c (doloop_optimize): Within region guarded by
3863         INSN_P (doloop_pat), introduce a new local rtx_insn *
3864         "doloop_insn" via a checked cast, and use it for typesafety,
3865         eventually writing the value back into doloop_pat.
3866         * output.h (final_sequence): Strengthen this global from rtx to
3867         rtx_sequence *.
3868         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
3869         reintroducing "insn" as an rtx_insn * via a checked cast.
3870         Strengthen param "attempt" and local "new_insn"from rtx to
3871         rtx_insn *.
3872         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
3873         to rtx_insn *.
3874         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
3875         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
3876         "p" in favor of more tightly-scoped replacements, sometimes rtx
3877         and sometimes rtx_insn *, as appropriate.
3878         (delete_output_reload): Eliminate top-level rtx "i1", splitting
3879         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
3880         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
3881         local "trial" from rtx to rtx_insn *.
3882         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
3883         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
3884         rtx_sequence * and use methods for clarity and typesafety.
3885         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
3886         rtx to rtx_insn *.  Strenghten local "li" from rtx to
3887         rtx_insn_list * and use its methods for clarity and typesafety.
3888         (steal_delay_list_from_target): Strengthen param "insn" from rtx
3889         to rtx_insn *.
3890         (steal_delay_list_from_fallthrough): Likewise.
3891         (try_merge_delay_insns): Likewise for param "thread" and locals
3892         "trial", "next_trial", "delay_insn".
3893         (redundant_insn): Likewise for param "target" and local "trial".
3894         (own_thread_p): Likewise for param "thread" and locals
3895         "active_insn", "insn".
3896         (get_label_before): Likewise for param "insn".
3897         (fill_simple_delay_slots): Likewise for local "new_label"; use
3898         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
3899         (label_before_next_insn): Strengthen return type and local "insn"
3900         from rtx to rtx_insn *.
3901         (relax_delay_slots): Likewise for locals "other", "tmp".
3902         (make_return_insns): Likewise for param "first" and locals "insn",
3903         "jump_insn", "prev".  Move declaration of "pat" to its assignment
3904         and strengthen from rtx to rtx_sequence *.  Use its methods for
3905         clarity and typesafety.
3906         * rtlanal.c (no_labels_between_p): Strengthen params from
3907         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
3908         rtx_insn *.
3909         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
3910         from const_rtx to const rtx_insn *.
3911         (reg_set_between_p): Rename param "from_insn" to
3912         "uncast_from_insn", and reintroduce "from_insn" as a
3913         const rtx_insn * via a checked cast.
3914         (modified_between_p): Likewise for param "start" as "uncast_start".
3915         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
3916         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
3917         "tmp", head" from rtx to rtx_insn *.
3918         (recompute_rev_top_order): Likewise for local "insn".
3919         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
3920         * store-motion.c (build_store_vectors): Likewise for local "insn".
3921         Strengthen local "st" from rtx to rtx_insn_list * and use methods
3922         for clarity and typesafety.
3923         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
3924         rtx to rtx_insn *.
3925         (computation_cost): Likewise for local "seq".
3926         (get_address_cost): Likewise.
3927
3928 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3929
3930         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
3931         const rtx_insn *.
3932         (label_is_jump_target_p): Likewise for second param.
3933
3934         * rtlanal.c (tablejump_p): Likewise for param "insn".
3935         (label_is_jump_target_p): Likewise for param "jump_insn".
3936
3937 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3938
3939         * rtl.h (find_first_parameter_load): Strengthen return type and
3940         both params from rtx to rtx_insn *.
3941         * rtlanal.c (find_first_parameter_load): Strengthen return type,
3942         both params and locals "before", "first_set" from rtx to
3943         rtx_insn *.  Remove now-redundant cast.
3944         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
3945
3946 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3947
3948         * rtl.h (find_last_value): Delete.
3949         * rtlanal.c (find_last_value): Delete.
3950
3951 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
3952
3953         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
3954         from rtx to rtx_insn *.
3955         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
3956         rtx "note" with new local rtx_insn * "new_head" when calculating
3957         head insn of new basic block.
3958         * combine.c (combine_split_insns): Strengthen return type and local
3959         "ret" from rtx to rtx_insn *.
3960         (likely_spilled_retval_p): Likewise for locals "use" and "p".
3961         (try_combine): Eliminate local "m_split", splitting into new
3962         locals "m_split_insn" and "m_split_pat".
3963         (find_split_point): Strengthen local "seq" from rtx into
3964         rtx_insn *.
3965         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
3966         locals "label", "branch".
3967         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
3968         for local "insn".
3969         (define_expand "umulsi3_highpart"): Likewise for local "insn".
3970         * dse.c (note_add_store_info): Likewise for fields "first",
3971         "current".
3972         (note_add_store): Likewise for local "insn".
3973         (emit_inc_dec_insn_before): Likewise for locals "insn",
3974         "new_insn", "cur".
3975         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
3976         (replace_read): Likewise for locals "insns", "this_insn".
3977         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
3978         (notice_eh_throw): Likewise for param "insn".
3979         (before_next_cfi_note): Likewise for return type, param, and local
3980         "prev".
3981         (connect_traces): Likewise for local "note".
3982         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
3983         (verify_rtl_sharing): Likewise.
3984         (unshare_all_rtl_in_chain): Likewise for param "insn".
3985         (get_first_nonnote_insn): Likewise for local "insn".
3986         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
3987         "seq" and use its methods to clarify things.
3988         (next_insn): Strengthen return type from rtx to rtx_insn *.
3989         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
3990         local rtx_insn * using a checked cast, dropping a checked cast
3991         made redundant by this change.  Use a cast to and method of
3992         rtx_sequence to clarify the code.
3993         (previous_insn): Rename param "insn" to "uncast_insn" and
3994         reintroduce "insn" as a local rtx_insn * using a checked cast,
3995         dropping a checked cast made redundant by this change.  Use a cast
3996         to and method of rtx_sequence to clarify the code.
3997         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
3998         reintroduce "insn" as a local rtx_insn * using a checked cast,
3999         dropping a checked cast made redundant by this change.
4000         (next_nonnote_insn_bb): Likewise.
4001         (prev_nonnote_insn): Likewise.
4002         (prev_nonnote_insn_bb): Likewise.
4003         (next_nondebug_insn): Likewise.
4004         (prev_nondebug_insn): Likewise.
4005         (next_nonnote_nondebug_insn): Likewise.
4006         (prev_nonnote_nondebug_insn): Likewise.
4007         (next_real_insn): Likewise.
4008         (prev_real_insn): Likewise.
4009         (next_active_insn): Likewise.
4010         (prev_active_insn): Likewise.
4011         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
4012         clarity.
4013         (prev_cc0_setter): Likewise.
4014         (try_split): Rename param "trial" to "uncast_trial" and
4015         reintroduce "insn" as a local rtx_insn * using a checked cast,
4016         dropping checked casts made redundant by this change.
4017         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
4018         rtx to rtx_insn *.
4019         (remove_insn): Rename param "insn" to "uncast_insn" and
4020         reintroduce "insn" as a local rtx_insn * using a checked cast.
4021         (emit_pattern_after_setloc): Likewise for param "after", as
4022         "uncast_after".
4023         (emit_pattern_after): Likewise.  Strengthen local "prev" from
4024         rtx to rtx_insn *.
4025         (emit_pattern_before_setloc): Rename param "before" to
4026         "uncast_before" and reintroduce "before" as a local rtx_insn *
4027         using a checked cast.  Strengthen locals "first", "last" from
4028         rtx to rtx_insn *.
4029         (emit_pattern_before): Likewise rename/cast param "before" to
4030         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
4031         * except.c (copy_reg_eh_region_note_forward): Strengthen param
4032         "first" and local "insn" from rtx to rtx_insn *.
4033         (copy_reg_eh_region_note_backward): Likewise for param "last"
4034         and local "insn".
4035         * expr.c (fixup_args_size_notes): Rename param "last" to
4036         "uncast_last" and reintroduce "last" as a local rtx_insn *
4037         using a checked cast.  Strengthen local "insn" from rtx to
4038         rtx_insn *.
4039         * function.c (set_insn_locations): Strengthen param "insn" from
4040         rtx to rtx_insn *.
4041         (record_insns): Likewise for param "insns" and local "tmp".
4042         (active_insn_between): Rename param "tail" to
4043         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
4044         using a checked cast.
4045         (thread_prologue_and_epilogue_insns): Split out top-level local
4046         rtx "seq" into three different rtx_insn * locals.  Strengthen
4047         local "prologue_seq" from rtx to rtx_insn *.
4048         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
4049         from rtx to rtx_insn *.
4050         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
4051         (priority): Likewise for locals "prev_first", "twin".
4052         (setup_insn_max_reg_pressure): Likewise for param "after".
4053         (sched_setup_bb_reg_pressure_info): Likewise.
4054         (no_real_insns_p): Strengthen params from const_rtx to
4055         const rtx_insn *.
4056         (schedule_block): Strengthen local "next_tail" from rtx to
4057         rtx_insn *.
4058         * ifcvt.c (find_active_insn_before): Strengthen return type and
4059         param "insn" from rtx to rtx_insn *.
4060         (find_active_insn_after): Likewise.
4061         (cond_exec_process_insns): Likewise for param "start" and local "insn".
4062         (cond_exec_process_if_block): Likewise for locals "then_start",
4063         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
4064         (noce_process_if_block): Likewise for local "jump".
4065         (merge_if_block): Likewise for two locals named "end".
4066         (cond_exec_find_if_block): Likewise for local "last_insn".
4067         * jump.c (delete_related_insns): Rename param "insn" to
4068         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
4069         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
4070         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
4071         NULL.
4072         (split_reg): Likewise.
4073         * lra.c (lra_process_new_insns): Likewise.
4074         * modulo-sched.c (permute_partial_schedule): Strengthen param
4075         "last" from rtx to rtx_insn *.
4076         * optabs.c (add_equal_note): Likewise for param "insns" and local
4077         "last_insn".
4078         (expand_binop_directly): Add checked casts to rtx_insn * within
4079         NEXT_INSN (pat) uses.
4080         (expand_unop_direct): Likewise.
4081         (maybe_emit_unop_insn): Likewise.
4082         * recog.c (peep2_attempt): Strengthen locals "last",
4083         "before_try", "x" from rtx to rtx_insn *.
4084         * reorg.c (optimize_skip): Strengthen return type and local
4085         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
4086         and locals "trial", "next_trial" from rtx to rtx_insn *.
4087         * resource.c (next_insn_no_annul): Strengthen return type and
4088         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
4089         rtx_sequence to clarify the code.
4090         (mark_referenced_resources): Add a checked cast to rtx_insn *
4091         within PREV_INSN (x).
4092         (find_dead_or_set_registers): Strengthen return type, param
4093         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
4094         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
4095         to rtx_insn **.
4096         (mark_target_live_regs): Strengthen params "insns" and "target",
4097         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
4098         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
4099         the code.
4100         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
4101         from rtx to rtx_insn *.
4102         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
4103         from rtx to rtx_insn *.
4104         (copy_reg_eh_region_note_backward): Likewise.
4105         (unshare_all_rtl_in_chain): Likewise for sole param.
4106         (dump_rtl_slim): Strengthen second and third params from const_rtx
4107         to const rtx_insn *.
4108         * sched-deps.c (sched_free_deps): Strengthen params "head" and
4109         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
4110         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
4111         "next_tail" from rtx to rtx_insn *.
4112         (begin_move_insn): Likewise for local "next".
4113         * sched-int.h (sched_free_deps): Likewise for first and second
4114         params.
4115         (no_real_insns_p): Strengthen both params from const_rtx to
4116         const rtx_insn *.
4117         (sched_setup_bb_reg_pressure_info): Strengthen second params from
4118         rtx to rtx_insn *.
4119         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
4120         "next_tail".
4121         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
4122         and locals "insn", "tail" from const_rtx to const rtx_insn *.
4123         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
4124         rtx_insn *.
4125         (debug_rtl_slim): Strengthen params "first" and "last" from
4126         const_rtx to const rtx_insn *.
4127         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
4128         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
4129         (convert_to_simple_return): Likewise for param "returnjump".
4130         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
4131         "prologue_seq".
4132         (convert_to_simple_return): Likewise for param "returnjump".
4133         * valtrack.c (propagate_for_debug): Likewise for params
4134         "insn", "last".
4135         * valtrack.h (propagate_for_debug): Likewise for second param.
4136
4137 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4138
4139         * output.h (insn_current_reference_address): Strengthen param
4140         from rtx to rtx_insn *.
4141         * final.c (insn_current_reference_address): Likewise.
4142
4143 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4144
4145         * basic-block.h (inside_basic_block_p): Strengthen param from
4146         const_rtx to const rtx_insn *.
4147         * cfgbuild.c (inside_basic_block_p): Likewise.
4148
4149 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4150
4151         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
4152         rtx_insn *.
4153         (get_trace_info): Likewise for param "insn".
4154         (save_point_p): Likewise.
4155         (maybe_record_trace_start): Likewise for both params.
4156         (maybe_record_trace_start_abnormal): Likewise.
4157         (create_trace_edges): Likewise for sole param and for three of the
4158         locals named "lab".
4159         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
4160         to rtx_insn *, and update a call to pat->element to pat->insn.
4161
4162 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4163
4164         * function.h (struct expr_status): Convert field "x_forced_labels"
4165         from rtx_expr_list * to rtx_insn_list *.
4166
4167         * cfgbuild.c (make_edges): Convert local "x" from an
4168         rtx_expr_list * to an rtx_insn_list *, replacing use of
4169         "element" method with "insn" method.
4170         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4171         * except.c (sjlj_emit_dispatch_table): Replace use of
4172         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
4173         forced_labels.
4174         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
4175         rtx_expr_list * to an rtx_insn_list *, replacing use of
4176         "element" method with "insn" method.
4177         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4178         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
4179         rtx_insn *, adding a checked cast.  Replace use of
4180         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
4181         forced_labels.
4182         (expand_label): Likewise for local "label_r".
4183
4184 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4185
4186         * function.h (struct rtl_data): Convert field
4187         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
4188         rtx_insn_list *.
4189         * rtl.h (remove_node_from_insn_list): New prototype.
4190
4191         * builtins.c (expand_builtin): When prepending to
4192         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
4193         gen_rtx_EXPR_LIST.
4194         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
4195         to rtx_insn_list *, and use its "insn" method rather than
4196         "element" method.
4197         * cfgrtl.c (delete_insn): Use new function
4198         remove_node_from_insn_list rather than
4199         remove_node_from_expr_list.
4200         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
4201         to rtx_insn_list *, and use its "insn" method rather than
4202         "element" method.
4203         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4204         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4205         * rtlanal.c (remove_node_from_insn_list): New function, adapted
4206         from remove_node_from_expr_list.
4207         * stmt.c (expand_label): When prepending to
4208         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
4209         gen_rtx_EXPR_LIST.
4210
4211 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4212
4213         * function.h (struct rtl_data): Strengthen fields "x_return_label"
4214         and "x_naked_return_label" from rtx to rtx_code_label *.
4215
4216 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4217
4218         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
4219         (SET_NEXT_INSN): Likewise.
4220         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
4221
4222         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
4223         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
4224         to split out the SEQUENCE from local "bundle", strengthening the
4225         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
4226         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
4227         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
4228         and the type of the elements of the "slot" array from rtx to
4229         rtx_insn *.
4230         (reorg_split_calls): Likewise for locals "insn" and "next", and
4231         the type of the elements of the "slot" array.
4232
4233         * config/frv/frv.c (frv_nops): Likewise for the elements of this
4234         array.
4235         (frv_function_prologue): Likewise for locals "insn", "next",
4236         "last_call".
4237         (frv_register_nop): Introduce a local "nop_insn" to be the
4238         rtx_insn * containing rtx "nop".
4239
4240         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
4241         used as an insn and sometimes as a pattern, so rename it to
4242         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
4243         using it where dealing with the core insn.
4244
4245         * config/picochip/picochip.c (reorder_var_tracking_notes):
4246         Strengthen locals "insn", "next", "last_insn", "queue",
4247         "next_queue", "prev" from rtx to rtx_insn *.
4248
4249         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
4250         the second param is an rtx_insn ** rather than an rtx **.
4251         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
4252         from rtx to rtx_sequence *, and introduce local named "sequence",
4253         using methods of rtx_sequence to clarify the code.
4254         (remove_insn): Introduce local rtx_sequence * named "sequence" and
4255         use its methods.
4256         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
4257         Rename param "after" to "uncast_after", reintroducing "after" as a
4258         local rtx_insn * with a checked cast.
4259         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
4260         reintroducing "after" as a local rtx_insn * with a checked cast.
4261         Strengthen local "last" from rtx to rtx_insn * and remove the
4262         now-redundant checked casts.
4263         (copy_delay_slot_insn): Strengthen return type and param from rtx
4264         to rtx_insn *.
4265
4266         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
4267         "last" from rtx to rtx_insn *.
4268
4269 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
4270
4271         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
4272         param from rtx to rtx_insn *.
4273
4274         * emit-rtl.c (copy_delay_slot_insn): Likewise.
4275
4276         * reorg.c (skip_consecutive_labels): Strengthen return type, param
4277         and local "insn" from rtx to rtx_insn *.
4278         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
4279         (unfilled_slots_next): Likewise.
4280         (function_return_label): Strengthen from rtx to rtx_code_label *.
4281         (function_simple_return_label): Likewise.
4282         (first_active_target_insn): Strengthen return type and param from
4283         rtx to rtx_insn *.
4284         (find_end_label): Strengthen return type from rtx to
4285         rtx_code_label *; strengthen locals as appropriate.
4286         (emit_delay_sequence): Strengthen return type, param "insn" and
4287         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
4288         and local "li" from rtx to rtx_insn_list *, using methods of
4289         rtx_insn_list for clarity and typesafety.
4290         (add_to_delay_list): Strengthen return type and param "insn" from
4291         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
4292         rtx_insn_list * and use methods of rtx_insn_list.
4293         (delete_from_delay_slot): Strengthen return type, param "insn",
4294         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
4295         Strengthen local "seq" from rtx to rtx_sequence *, and local
4296         "delay_list" from rtx to rtx_insn_list *, using methods of
4297         rtx_sequence for clarity and type-safety.
4298         (delete_scheduled_jump): Add checked cast when invoking
4299         delete_from_delay_slot.  Strengthen local "trial" from rtx to
4300         rtx_insn *.
4301         (optimize_skip): Strengthen return type and local "delay_list"
4302         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
4303         rtx_insn *.
4304         (steal_delay_list_from_target): Strengthen return type, param
4305         "delay_list" and local "new_delay_list" from rtx to
4306         rtx_insn_list *.  Strengthen param "seq" from rtx to
4307         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
4308         rtx_insn **.
4309         Split out local "temp" into multiple more-tightly scoped locals:
4310         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
4311         of rtx_insn_list and rtx_sequence for clarity and typesafety.
4312         Strengthen locals named "trial" from rtx to rtx_insn *.
4313         (steal_delay_list_from_fallthrough): Strengthen return type and
4314         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
4315         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
4316         Strengthen local "trial" from rtx to rtx_insn *.
4317         (try_merge_delay_insns): Strength local "merged_insns" from rtx
4318         to rtx_insn_list * and use its methods.  Strengthen local "pat"
4319         from rtx to rtx_sequence * and use its methods.  Strengthen locals
4320         "dtrial" and "new_rtx" from rtx to rtx_insn *.
4321         (get_label_before): Strengthen return type and local "label" from
4322         rtx to rtx_insn *.
4323         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
4324         "next_trial", "next", prev".  Strengthen local "delay_list" from
4325         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
4326         rtx_insn **.
4327         (follow_jumps): Strengthen return type, param "label" and locals
4328         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
4329         (fill_slots_from_thread): Strengthen return type, param
4330         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
4331         "insn", "thread", "opposite_thread" and locals "new_thread",
4332         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
4333         "sequence" from a checked cast to rtx_sequence so that we can call
4334         steal_delay_list_from_target and steal_delay_list_from_fallthrough
4335         with an rtx_sequence *.
4336         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
4337         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
4338         Strengthen local "delay_list" from rtx to rtx_insn_list *.
4339         (relax_delay_slots): Strengthen param "first" and locals "insn",
4340         "next", "trial", "delay_insn", "target_label" from rtx to
4341         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
4342         Introduce a local "trial_seq" for PATTERN (trial) of type
4343         rtx_sequence *, in both cases using methods of rtx_sequence.
4344         (dbr_schedule): Strengthen param "first" and locals "insn",
4345         "next", "epilogue_insn" from rtx to rtx_insn *.
4346
4347 2014-08-28  Richard Biener  <rguenther@suse.de>
4348
4349         PR tree-optimization/62283
4350         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4351         Do not peel loops for alignment where the vector loop likely
4352         doesn't run at least VF times.
4353
4354 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
4355
4356         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
4357         important_candidates.  Consider all important candidates if
4358         IVS doesn't give any result.  Remove check on ivs->upto.
4359         (try_add_cand_for): Call iv_ca_add_use only once.
4360
4361 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4362             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4363             Anna Tikhonova  <anna.tikhonova@intel.com>
4364             Ilya Tocar  <ilya.tocar@intel.com>
4365             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4366             Ilya Verbin  <ilya.verbin@intel.com>
4367             Kirill Yukhin  <kirill.yukhin@intel.com>
4368             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4369
4370         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
4371         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
4372         masking.
4373         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
4374         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4375         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
4376         (define_insn "*mul<mode>3"): Add EVEX version.
4377
4378 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4379             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4380             Anna Tikhonova  <anna.tikhonova@intel.com>
4381             Ilya Tocar  <ilya.tocar@intel.com>
4382             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4383             Ilya Verbin  <ilya.verbin@intel.com>
4384             Kirill Yukhin  <kirill.yukhin@intel.com>
4385             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4386
4387         * config/i386/sse.md
4388         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
4389         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
4390         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
4391         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
4392         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
4393         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
4394         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
4395         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
4396         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
4397         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
4398         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
4399         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
4400         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
4401         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
4402         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
4403         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
4404
4405 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4406             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4407             Anna Tikhonova  <anna.tikhonova@intel.com>
4408             Ilya Tocar  <ilya.tocar@intel.com>
4409             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4410             Ilya Verbin  <ilya.verbin@intel.com>
4411             Kirill Yukhin  <kirill.yukhin@intel.com>
4412             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4413
4414         * config/i386/sse.md
4415         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
4416         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
4417         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
4418
4419 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4420             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4421             Anna Tikhonova  <anna.tikhonova@intel.com>
4422             Ilya Tocar  <ilya.tocar@intel.com>
4423             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4424             Ilya Verbin  <ilya.verbin@intel.com>
4425             Kirill Yukhin  <kirill.yukhin@intel.com>
4426             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4427
4428         * config/i386/sse.md
4429         (define_mode_iterator VI128_256): New.
4430         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
4431
4432 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4433             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4434             Anna Tikhonova  <anna.tikhonova@intel.com>
4435             Ilya Tocar  <ilya.tocar@intel.com>
4436             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4437             Ilya Verbin  <ilya.verbin@intel.com>
4438             Kirill Yukhin  <kirill.yukhin@intel.com>
4439             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4440
4441         * config/i386/sse.md
4442         (define_mode_iterator VI8_256_512): New.
4443         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
4444         Ditto.
4445         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4446         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
4447         Ditto.
4448         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
4449
4450 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4451
4452         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
4453         pointer to the cumulative reloc value and return the value for
4454         this reloc instead.
4455         (compute_reloc_for_rtx): Take a const_rtx.  Call
4456         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
4457         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
4458         for_each_rtx for the CONST case.
4459
4460 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4461
4462         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
4463         (mark_constants_in_pattern): ...this new function to iterate over
4464         all the subrtxes.
4465         (mark_constants): Update accordingly.
4466
4467 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4468
4469         * varasm.c: Include rtl-iter.h.
4470         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
4471         Remove the pointer to the cumulative hashval_t and just return
4472         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
4473         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4474         Accumulate the hashval_ts here instead of const_rtx_hash_1.
4475
4476 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4477
4478         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
4479         Give real type of data parameter.  Remove return value.
4480         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
4481         to iterate over subrtxes.
4482
4483 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4484
4485         * var-tracking.c (use_narrower_mode_test): Turn from being a
4486         for_each_rtx callback to being a function that examines each
4487         subrtx itself.
4488         (adjust_mems): Update accordingly.
4489
4490 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4491
4492         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
4493         callback to being a function that examines each subrtx itself.
4494         Remove handling of null rtxes.
4495         (add_uses): Update accordingly.
4496
4497 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4498
4499         * var-tracking.c: Include rtl-iter.h.
4500         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
4501         to being a function that examines each subrtx itself.
4502         (use_type): Update accordingly.
4503
4504 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4505
4506         * store-motion.c: Include rtl-iter.h.
4507         (extract_mentioned_regs_1): Delete.
4508         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
4509         for_each_rtx to iterate over subrtxes.
4510
4511 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4512
4513         * sel-sched.c: Include rtl-iter.h
4514         (count_occurrences_1): Delete.
4515         (count_occurrences_equiv): Turn rtxes into const_rtxes.
4516         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4517
4518 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4519
4520         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
4521         * rtlanal.c (tls_referenced_p_1): Delete.
4522         (tls_referenced_p): Take a const_rtx rather than an rtx.
4523         Use FOR_EACH_SUBRTX rather than for_each_rtx.
4524
4525 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4526
4527         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
4528         (for_each_inc_dec): Take an rtx rather than an rtx *.
4529         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
4530         (cselib_record_sets): Likewise.
4531         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
4532         (check_for_inc_dec): Likewise.
4533         * rtlanal.c (for_each_inc_dec_ops): Delete.
4534         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
4535         rather than a pointer to the memory address.  Replace
4536         for_each_inc_dec_ops argument with separate function and data
4537         arguments.  Abort on non-autoinc addresses.
4538         (for_each_inc_dec_find_mem): Delete.
4539         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
4540         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
4541
4542 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4543
4544         * rtl.h (find_all_hard_regs): Declare.
4545         * rtlanal.c (find_all_hard_regs): New function.
4546         (record_hard_reg_uses_1): Delete.
4547         (record_hard_reg_uses): Use find_all_hard_regs.
4548
4549 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4550
4551         * rtl.h (replace_label_data): Delete.
4552         (replace_label): Take the old label, new label and update-nuses flag
4553         as direct arguments.  Return void.
4554         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
4555         * rtlanal.c (replace_label): Update interface as above.  Handle
4556         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
4557         iterator.  Use FOR_EACH_SUBRTX_PTR.
4558
4559 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4560
4561         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
4562         with const_rtx parameters.
4563         * varasm.c (get_pool_constant): Likewise.
4564         * rtlanal.c (rtx_referenced_p_1): Delete.
4565         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4566         Assert that the rtx we're looking for is nonnull.  Allow searches
4567         for constant pool SYMBOL_REFs.
4568
4569 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4570
4571         * reload1.c: Include rtl-iter.h.
4572         (note_reg_elim_costly): Turn from being a for_each_rtx callback
4573         to being a function that examines each subrtx itself.
4574         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
4575
4576 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4577
4578         * regcprop.c (cprop_find_used_regs_1): Delete.
4579         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4580
4581 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4582
4583         * regcprop.c: Include rtl-iter.h.
4584         (kill_value): Take a const_rtx.
4585         (kill_autoinc_value): Turn from being a for_each_rtx callback
4586         to being a function that examines each subrtx itself.
4587         (copyprop_hardreg_forward_1): Update accordingly.
4588
4589 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4590
4591         * reg-stack.c: Include rtl-iter.h.
4592         (subst_stack_regs_in_debug_insn): Delete.
4593         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
4594         instead of for_each_rtx.
4595
4596 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4597
4598         * lower-subreg.c (find_decomposable_subregs): Turn from being
4599         a for_each_rtx callback to being a function that examines each
4600         subrtx itself.  Remove handling of null rtxes.
4601         (decompose_multiword_subregs): Update accordingly.
4602
4603 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4604
4605         * lower-subreg.c (adjust_decomposed_uses): Delete.
4606         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
4607         Remove handling of null rtxes.
4608
4609 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4610
4611         * lower-subreg.c: Include rtl-iter.h.
4612         (resolve_subreg_use): Turn from being a for_each_rtx callback
4613         to being a function that examines each subrtx itself.  Remove
4614         handling of null rtxes.
4615         (resolve_reg_notes, resolve_simple_move): Update accordingly.
4616         (decompose_multiword_subregs): Likewise.
4617
4618 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4619
4620         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
4621         to being a function that examines each subrtx itself.
4622         (simplify_using_condition, simplify_using_initial_values): Update
4623         accordingly.
4624
4625 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4626
4627         * loop-iv.c: Include rtl-iter.h.
4628         (find_single_def_src): New function.
4629         (replace_single_def_regs): Turn from being a for_each_rtx callback
4630         to being a function that examines each subrtx itself.
4631         (replace_in_expr, simplify_using_initial_values): Update accordingly.
4632
4633 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4634
4635         * jump.c (eh_returnjump_p_1): Delete.
4636         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4637         Remove handling of null rtxes.
4638
4639 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4640
4641         * jump.c: Include rtl-iter.h.
4642         (returnjump_p_1): Delete.
4643         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4644         Remove handling of null rtxes.
4645
4646 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4647
4648         * ira.c: Include rtl-iter.h.
4649         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
4650         to being a function that examines each subrtx itself.  Remove
4651         handling of null rtxes.
4652         (update_equiv_regs): Update call accordingly.
4653
4654 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4655
4656         * fwprop.c: Include rtl-iter.h.
4657         (varying_mem_p): Turn from being a for_each_rtx callback to being
4658         a function that examines each subrtx itself.
4659         (propagate_rtx): Update accordingly.
4660
4661 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4662
4663         * function.c: Include rtl-iter.h
4664         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
4665         callback to being a function that examines each subrtx itself.
4666         Return the changed flag.
4667         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
4668         (instantiate_virtual_regs): Update calls accordingly.
4669
4670 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4671
4672         * final.c: Include rtl-iter.h.
4673         (mark_symbol_ref_as_used): Delete.
4674         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
4675         for_each_rtx.
4676
4677 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4678
4679         * emit-rtl.c: Include rtl-iter.h.
4680         (find_auto_inc): Turn from being a for_each_rtx callback to being
4681         a function that examines each subrtx itself.  Assume the first operand
4682         to an RTX_AUTOINC is the automodified register.
4683         (try_split): Update call accordingly.
4684
4685 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4686
4687         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
4688         Return a bool, inverting the result so that 0/false means "not ok".
4689         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
4690         subrtxes of a CONST.
4691         (mem_loc_descriptor, add_const_value_attribute)
4692         (resolve_addr_in_expr): Update calls accordingly.
4693
4694 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4695
4696         * dwarf2out.c: Include rtl-iter.h.
4697         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
4698         Remove unused data parameter.  Return a bool, inverting the result
4699         so that 0/false means "not ok".
4700         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
4701         instead of for_each_rtx.
4702
4703 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4704
4705         * dse.c: Include rtl-iter.h.
4706         (check_mem_read_rtx): Change void * parameter to real type.
4707         Remove return value.
4708         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
4709         for_each_rtx.  Don't handle null rtxes.
4710
4711 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4712
4713         * df-problems.c: Include rtl-iter.h.
4714         (find_memory): Turn from being a for_each_rtx callback to being
4715         a function that examines each subrtx itself.  Continue to look for
4716         volatile references even after a nonvolatile one has been found.
4717         (can_move_insns_across): Update calls accordingly.
4718
4719 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4720
4721         * ddg.c (walk_mems_2, walk_mems_1): Delete.
4722         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
4723         to iterate over subrtxes.  Return a bool rather than an int.
4724
4725 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4726
4727         * ddg.c: Include rtl-iter.h.
4728         (mark_mem_use_1): Rename to...
4729         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
4730         instead of for_each_rtx.
4731         (mem_read_insn_p): Update accordingly.
4732
4733 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4734
4735         * cse.c (change_cc_mode_args): Delete.
4736         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
4737         a function that examines each subrtx itself.  Take the fields of
4738         change_cc_mode_args as argument and return void.
4739         (cse_change_cc_mode_insn): Update calls accordingly.
4740
4741 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4742
4743         * cse.c (is_dead_reg): Change argument to const_rtx.
4744         (dead_debug_insn_data): Delete.
4745         (is_dead_debug_insn): Expand commentary.  Turn from being a
4746         for_each_rtx callback to being a function that examines
4747         each subrtx itself.  Take the fields of dead_debug_insn_data
4748         as argument.
4749         (delete_trivially_dead_insns): Update call accordingly.
4750
4751 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4752
4753         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
4754         being a for_each_rtx callback to being a function that examines
4755         each subrtx itself.
4756         (cse_extended_basic_block): Update call accordingly.
4757
4758 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4759
4760         * cse.c (check_dependence_data): Delete.
4761         (check_dependence): Change from being a for_each_rtx callback to being
4762         a function that examines all subrtxes itself.  Don't handle null rtxes.
4763         (invalidate): Update call accordingly.
4764
4765 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4766
4767         * cse.c: Include rtl-iter.h.
4768         (approx_reg_cost_1): Delete.
4769         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4770         Don't handle null rtxes.
4771
4772 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4773
4774         * cfgcleanup.c: Include rtl-iter.h.
4775         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
4776         to being a function that examines each subrtx itself.
4777         (thread_jump): Update accordingly.
4778
4779 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4780
4781         * combine-stack-adj.c: Include rtl-iter.h.
4782         (record_stack_refs_data): Delete.
4783         (record_stack_refs): Turn from being a for_each_rtx callback
4784         to being a function that examines each subrtx itself.
4785         Take a pointer to the reflist.  Invert sense of return value
4786         so that true means success and false means failure.  Don't
4787         handle null rtxes.
4788         (combine_stack_adjustments_for_block): Update accordingly.
4789
4790 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4791
4792         * combine.c (record_truncated_value): Turn from being a for_each_rtx
4793         callback to a function that takes an rtx and returns a bool
4794         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
4795         for_each_rtx.
4796
4797 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4798
4799         * combine.c: Include rtl-iter.h.
4800         (unmentioned_reg_p_1): Delete.
4801         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
4802         Don't handle null rtxes.
4803
4804 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4805
4806         * calls.c: Include rtl-iter.h.
4807         (internal_arg_pointer_based_exp_1): Delete.
4808         (internal_arg_pointer_based_exp): Take a const_rtx.
4809         Use FOR_EACH_SUBRTX to iterate over subrtxes.
4810
4811 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4812
4813         * caller-save.c: Include rtl-iter.h.
4814         (add_used_regs_1): Delete.
4815         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
4816         to iterate over subrtxes.  Assert that any remaining pseudos
4817         have been spilled.
4818
4819 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4820
4821         * bt-load.c: Include rtl-iter.h.
4822         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
4823         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
4824         to iterate over subrtxes.
4825         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
4826         find_btr_use rather than btr_referenced_p.
4827
4828 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4829
4830         * alias.c: Include rtl-iter.h.
4831         (refs_newer_value_cb): Delete.
4832         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
4833
4834 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
4835
4836         * rtl-iter.h: New file.
4837         * rtlanal.c: Include it.
4838         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
4839         (generic_subrtx_iterator <T>::add_single_to_queue)
4840         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
4841         (generic_subrtx_iterator <T>::free_array): New functions.
4842         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
4843         (generic_subrtx_iterator <const_rtx_accessor>)
4844         (generic_subrtx_iterator <rtx_var_accessor>
4845         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
4846         (setup_reg_subrtx_bounds): New function.
4847         (init_rtlanal): Call it.
4848
4849 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
4850
4851         PR target/62261
4852         * config/sh/sh.md (ashlsi3): Handle negative shift count for
4853         TARGET_SHMEDIA.
4854         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
4855
4856 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
4857
4858         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
4859
4860 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4861
4862         * rtl.h (JUMP_LABEL_AS_INSN): New.
4863
4864 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4865
4866         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
4867         rtx_expr_list **.
4868         (alloc_EXPR_LIST): Strengthen return type from rtx to
4869         rtx_expr_list *.
4870         (remove_free_EXPR_LIST_node): Likewise for param.
4871         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
4872         from rtx to rtx_expr_list *.
4873         * sched-int.h (struct deps_desc): Strengthen fields
4874         "pending_read_mems" and "pending_write_mems" from rtx to
4875         rtx_expr_list *.
4876
4877         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
4878         rtx to rtx_expr_list *.
4879         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
4880         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
4881         rtx_expr_list **.
4882         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
4883         from rtx to rtx_expr_list *.
4884         * loop-iv.c (simplify_using_initial_values): Strengthen local
4885         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
4886         "pnote_next" from rtx * to rtx_expr_list **.
4887         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
4888         param "exprp" from rtx * to rtx_expr_list **.
4889         (add_insn_mem_dependence): Strengthen local "mem_list" from
4890         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
4891         to rtx_expr_list *.
4892         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
4893         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
4894         param "old_mems_p" from rtx * to rtx_expr_list **.
4895         * var-tracking.c (struct adjust_mem_data): Strengthen field
4896         "side_effects" from rtx to rtx_expr_list *.
4897         (adjust_insn): Replace NULL_RTX with NULL when assigning to
4898         rtx_expr_list *.
4899         (prepare_call_arguments): Likewise.
4900
4901 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4902
4903         * function.h (struct rtl_data): Strengthen field
4904         "x_stack_slot_list" from rtx to rtx_expr_list *.
4905
4906         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
4907         when assigning to stack_slot_list.
4908
4909 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4910
4911         * function.h (struct rtl_data): Strengthen field
4912         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
4913         * rtl.h (remove_node_from_expr_list): Strengthen second param from
4914         rtx * to rtx_expr_list **.
4915
4916         * cfgbuild.c (make_edges): In loop over
4917         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
4918         rtx_expr_list *, and use methods of the latter class to clarify
4919         the code.
4920         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
4921         rtx_expr_list *, and use methods of the latter class to clarify
4922         the code.
4923         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
4924         * reload1.c (set_initial_label_offsets): Likewise for local "x".
4925         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
4926         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
4927         to rtx_expr_list *.  Use methods of the latter class to clarify
4928         the code.
4929
4930 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4931
4932         * function.h (struct expr_status): Strengthen field
4933         "x_forced_labels" from rtx to rtx_expr_list *.
4934
4935         * cfgbuild.c (make_edges): Split local "x" into two locals,
4936         strengthening one from rtx to rtx_expr_list *, and using methods
4937         of said class.
4938         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
4939         loop over forced_labels, introduce strengthen it from rtx to
4940         rtx_expr_list *, using methods to clarify the code.
4941         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
4942         to rtx_expr_list *, using methods of said class to clarify the
4943         code.
4944         * reload1.c (set_initial_label_offsets): Split local "x" into two
4945         per-loop variables, strengthening the first from rtx to
4946         rtx_expr_list * and using methods.
4947
4948 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4949
4950         * coretypes.h (class rtx_expr_list): Add forward declaration.
4951         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
4952         * gengenrtl.c (special_rtx): Add EXPR_LIST.
4953         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
4954         invariant: GET_CODE (X) == EXPR_LIST.
4955         (is_a_helper <rtx_expr_list *>::test): New.
4956         (rtx_expr_list::next): New.
4957         (rtx_expr_list::element): New.
4958         (gen_rtx_EXPR_LIST): New.
4959
4960 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4961
4962         * varasm.c (mark_constants): Convert a GET_CODE check into a
4963         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
4964         Use methods of rtx_sequence to clarify the code.
4965
4966 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4967
4968         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
4969         local "seq" via a checked cast, and use methods of rtx_sequence
4970         to simplify the code.
4971
4972 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4973
4974         * resource.c (mark_referenced_resources): Strengthen local
4975         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
4976         using methods of rtx_sequence to clarify the code.
4977         (find_dead_or_set_registers): Within the switch statement, convert
4978         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
4979         the JUMP_P handling, introduce another local "seq", adding a
4980         checked cast to rtx_sequence *.  In both cases, use methods of
4981         rtx_sequence to clarify the code.
4982         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
4983         via a checked cast, and use methods of rtx_sequence to simplify
4984         the code.
4985
4986 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4987
4988         * reorg.c (redundant_insn): In two places in the function, replace
4989         a check of GET_CODE with a dyn_cast, introducing local "seq", and
4990         usings methods of rtx_sequence to clarify the code.
4991
4992 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4993
4994         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
4995         local "seq" with a checked cast, and use methods of rtx_sequence
4996         to clarify the code.
4997
4998 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
4999
5000         * function.c (contains): Introduce local "seq" for PATTERN (insn),
5001         with a checked cast, in the region for where we know it's a
5002         SEQUENCE.  Use methods of rtx_sequence.
5003
5004 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5005
5006         * final.c (get_attr_length_1): Replace GET_CODE check with a
5007         dyn_cast, introducing local "seq" and the use of methods of
5008         rtx_sequence.
5009         (shorten_branches): Likewise, introducing local "body_seq".
5010         Strengthen local "inner_insn" from rtx to rtx_insn *.
5011         (reemit_insn_block_notes): Replace GET_CODE check with a
5012         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
5013         Use methods of rtx_sequence.
5014         (final_scan_insn): Likewise, introducing local "seq" for when
5015         "body" is known to be a SEQUENCE, using its methods.
5016
5017 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5018
5019         * except.c (can_throw_external): Strengthen local "seq" from rtx
5020         to rtx_sequence *.  Use methods of rtx_sequence.
5021         (insn_nothrow_p): Likewise.
5022
5023 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5024
5025         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
5026         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
5027         Use methods of rtx_sequence.
5028         (scan_trace): Likewise for local "pat".
5029
5030 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5031
5032         * coretypes.h (class rtx_sequence): Add forward declaration.
5033         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
5034         invariant: GET_CODE (X) == SEQUENCE.
5035         (is_a_helper <rtx_sequence *>::test): New.
5036         (is_a_helper <const rtx_sequence *>::test): New.
5037         (rtx_sequence::len): New.
5038         (rtx_sequence::element): New.
5039         (rtx_sequence::insn): New.
5040
5041 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5042
5043         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
5044         rtx_insn_list **.
5045         (alloc_INSN_LIST): Strengthen return type from rtx to
5046         rtx_insn_list *.
5047         (copy_INSN_LIST): Likewise for return type and param.
5048         (concat_INSN_LIST): Likewise for both params and return type.
5049         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
5050         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
5051         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
5052         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
5053
5054         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
5055         "implicit_sets", "control_uses", "clobbers" from rtx to
5056         rtx_insn_list *.
5057         (struct deps_desc): Likewise for fields "pending_read_insns",
5058         "pending_write_insns", "pending_jump_insns",
5059         "last_pending_memory_flush", "last_function_call",
5060         "last_function_call_may_noreturn", "sched_before_next_call",
5061         "sched_before_next_jump".
5062         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
5063         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
5064
5065         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
5066         from rtx to rtx_insn_list *.
5067         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
5068         rtx_insn_list *.
5069
5070         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
5071         to rtx_insn_list **.
5072         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
5073         rtx_insn_list *.
5074         (queue_insn): Likewise for local "link".
5075         (struct haifa_saved_data): Strengthen field "insn_queue" from
5076         rtx * to rtx_insn_list **.
5077         (save_backtrack_point): Update allocation of save->insn_queue to
5078         reflect the strengthening of elements from rtx to rtx_insn_list *.
5079         (queue_to_ready): Strengthen local "link" from rtx to
5080         rtx_insn_list *; use methods "next" and "insn" when traversing the
5081         list.
5082         (early_queue_to_ready): Likewise for locals "link", "next_link",
5083         "prev_link".
5084         (schedule_block): Update allocation of insn_queue to reflect the
5085         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
5086         local "link" from rtx to rtx_insn_list *, and use methods when
5087         working it.
5088         (add_to_speculative_block): Strengthen locals "twins" and
5089         "next_node" from rtx to rtx_insn_list *, and use methods when
5090         working with them.  Strengthen local "twin" from rtx to
5091         rtx_insn *, eliminating a checked cast.
5092         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
5093         from rtx to rtx_insn_list *, and use methods when working with
5094         them.
5095
5096         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
5097         from rtx to rtx_insn_list *, adding a checked cast.
5098         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
5099         rtx_insn_list **.
5100         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
5101         "newlink" from rtx to rtx_insn_list *.  Strengthen local
5102         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
5103         from rtx to rtx_insn *.
5104         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
5105         from rtx to rtx_insn_list *.  Use methods of the latter class.
5106         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
5107         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
5108         (remove_free_INSN_LIST_node): Strengthen return type and local
5109         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
5110         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
5111         rtx_insn_list *, using "insn" method.
5112
5113         * sched-deps.c (add_dependence_list):  Strengthen param "list"
5114         from rtx to rtx_insn_list *, and use methods when working with it.
5115         (add_dependence_list_and_free):  Strengthen param "listp" from
5116         rtx * to rtx_insn_list **.
5117         (remove_from_dependence_list): Strenghten param "listp" from rtx *
5118         to rtx_insn_list **, and use methods when working with *listp.
5119         (remove_from_both_dependence_lists): Strengthen param "listp" from
5120         rtx * to rtx_insn_list **
5121         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
5122         to rtx_insn_list **.  Eliminate local "link", in favor of two new
5123         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
5124         respectively.
5125         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
5126         by introducing local "cond_deps".
5127         (remove_from_deps): Strengthen param "insn" from rtx to
5128         rtx_insn *.
5129
5130         * sched-rgn.c (concat_insn_mem_list): Strengthen param
5131         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
5132         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
5133         Use methods of rtx_insn_list.
5134
5135         * store-motion.c (struct st_expr): Strengthen fields
5136         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
5137         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
5138         rtx_insn_list *.
5139         (find_moveable_store): Split out "tmp" into multiple more-tightly
5140         scoped locals.  Use methods of rtx_insn_list *.
5141         (compute_store_table): Strengthen local "tmp" from rtx to
5142         rtx_insn *.  Use methods of rtx_insn_list *.
5143
5144 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5145
5146         * coretypes.h (class rtx_insn_list): Add forward declaration.
5147         * rtl.h (class rtx_insn_list): New subclass of rtx_def
5148         (is_a_helper <rtx_insn_list *>::test): New.
5149         (rtx_insn_list::next): New.
5150         (rtx_insn_list::insn): New.
5151         (gen_rtx_INSN_LIST): Add prototype.
5152         * emit-rtl.c (gen_rtx_INSN_LIST): New.
5153         * gengenrtl.c (special_rtx): Add INSN_LIST.
5154
5155 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5156
5157         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
5158         "prev" from rtx to rtx_insn *.
5159
5160 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5161
5162         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
5163         functions.  Require merely an rtx for now, not an rtx_insn *.
5164         (BLOCK_FOR_INSN): Likewise.
5165         (INSN_LOCATION): Likewise.
5166         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
5167
5168 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5169
5170         * rtl.h (PATTERN): Convert this macro into a pair of inline
5171         functions, for now, requiring const_rtx and rtx.
5172
5173 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5174
5175         * target.def (unwind_emit): Strengthen param "insn" from rtx to
5176         rtx_insn *.
5177         (final_postscan_insn): Likewise.
5178         (adjust_cost): Likewise.
5179         (adjust_priority): Likewise.
5180         (variable_issue): Likewise.
5181         (macro_fusion_pair_p): Likewise.
5182         (dfa_post_cycle_insn): Likewise.
5183         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
5184         (first_cycle_multipass_issue): Likewise.
5185         (dfa_new_cycle): Likewise.
5186         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
5187         (speculate_insn): Likewise for param "insn".
5188         (gen_spec_check): Likewise for params "insn" and "label".
5189         (get_insn_spec_ds): Likewise for param "insn".
5190         (get_insn_checked_ds): Likewise.
5191         (dispatch_do): Likewise.
5192         (dispatch): Likewise.
5193         (cannot_copy_insn_p): Likewise.
5194         (invalid_within_doloop): Likewise.
5195         (legitimate_combined_insn): Likewise.
5196         (needed): Likewise.
5197         (after): Likewise.
5198
5199         * doc/tm.texi: Automatically updated to reflect changes to
5200         target.def.
5201
5202         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
5203         working with insn.
5204         (schedule_block): Likewise.
5205         (sched_init): Likewise.
5206         (sched_speculate_insn): Strengthen param "insn" from rtx to
5207         rtx_insn *.
5208         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
5209         working with insn.
5210         * hooks.c (hook_bool_rtx_true): Rename to...
5211         hook_bool_rtx_insn_true): ...this, and strengthen first param from
5212         rtx to rtx_insn *.
5213         (hook_constcharptr_const_rtx_null): Rename to...
5214         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5215         first param from const_rtx to const rtx_insn *.
5216         (hook_bool_rtx_int_false): Rename to...
5217         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5218         param from rtx to rtx_insn *.
5219         (hook_void_rtx_int): Rename to...
5220         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5221         rtx to rtx_insn *.
5222
5223         * hooks.h (hook_bool_rtx_true): Rename to...
5224         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
5225         rtx to rtx_insn *.
5226         (hook_bool_rtx_int_false): Rename to...
5227         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
5228         param from rtx to rtx_insn *.
5229         (hook_void_rtx_int): Rename to...
5230         (hook_void_rtx_insn_int): ...this, and strengthen first param from
5231         rtx to rtx_insn *.
5232         (hook_constcharptr_const_rtx_null): Rename to...
5233         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
5234         first param from const_rtx to const rtx_insn *.
5235
5236         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
5237         and local "prev" from rtx to rtx_insn *.
5238
5239         * sched-int.h (sched_speculate_insn): Strengthen first param from
5240         rtx to rtx_insn *.
5241
5242         * sel-sched.c (create_speculation_check): Likewise for local "label".
5243         * targhooks.c (default_invalid_within_doloop): Strengthen param
5244         "insn" from const_rtx to const rtx_insn *.
5245         * targhooks.h (default_invalid_within_doloop): Strengthen param
5246         from const_rtx to const rtx_insn *.
5247
5248         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
5249         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
5250
5251         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
5252         "insn".
5253         (arc_invalid_within_doloop): Likewise, with const.
5254
5255         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
5256         (arm_cannot_copy_insn_p): Likewise for param "insn".
5257         (arm_unwind_emit): Likewise.
5258
5259         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
5260         "dep_insn".
5261
5262         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
5263         (c6x_variable_issue): Likewise.  Removed now-redundant checked
5264         cast.
5265         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
5266
5267         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
5268         Likewise for param "insn".
5269         (epiphany_mode_after): Likewise.
5270         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
5271         params "insn", "dep_insn".
5272         (epiphany_mode_needed): Likewise for param "insn".
5273         (epiphany_mode_after): Likewise.
5274
5275         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
5276         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5277         (ix86_avx_u128_mode_needed): Likewise.
5278         (ix86_i387_mode_needed): Likewise.
5279         (ix86_mode_needed): Likewise.
5280         (ix86_avx_u128_mode_after): Likewise.
5281         (ix86_mode_after): Likewise.
5282         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
5283         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
5284         (ix86_adjust_priority): Likewise for param "insn".
5285         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
5286         (do_dispatch): Likewise.
5287         (has_dispatch): Likewise.
5288         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
5289
5290         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
5291         reflect renaming of default hook implementation from
5292         hook_constcharptr_const_rtx_null to
5293         hook_constcharptr_const_rtx_insn_null.
5294         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
5295         rtx to rtx_insn *.
5296         (ia64_variable_issue): Likewise for param "insn".
5297         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
5298         (ia64_dfa_new_cycle): Likewise.
5299         (ia64_get_insn_spec_ds): Likewise.
5300         (ia64_get_insn_checked_ds): Likewise.
5301         (ia64_speculate_insn): Likewise.
5302         (ia64_gen_spec_check): Likewise for params "insn", "label".
5303         (ia64_asm_unwind_emit): Likewise for param "insn".
5304
5305         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
5306
5307         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
5308         "insn", "def_insn".
5309         (m68k_sched_variable_issue): Likewise for param "insn".
5310
5311         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
5312         "def_insn".
5313
5314         * config/microblaze/microblaze.c (microblaze_adjust_cost):
5315         Likewise for params "insn", "dep".
5316
5317         * config/mips/mips.c (mips_adjust_cost): Likewise.
5318         (mips_variable_issue): Likewise for param "insn".
5319         (mips_final_postscan_insn): Likewise.
5320
5321         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
5322         for params "insn", "dep".
5323
5324         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
5325         "dep_insn".
5326         (pa_adjust_priority): Likewise for param "insn".
5327
5328         * config/picochip/picochip.c (picochip_sched_adjust_cost):
5329         Likewise for params "insn", "dep_insn".
5330
5331         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
5332         param "insn".
5333         (rs6000_variable_issue): Likewise.
5334         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
5335         (rs6000_debug_adjust_cost): Likewise.
5336         (rs6000_adjust_priority): Likewise for param "insn".
5337         (rs6000_use_sched_lookahead_guard): Likewise.
5338         (get_next_active_insn): Likewise for return type and both params.
5339         (redefine_groups): Likewise for params "prev_head_insn", "tail"
5340         and locals "insn", "next_insn".
5341         (pad_groups): Likewise.
5342
5343         * config/s390/s390.c (s390_adjust_priority): Likewise for param
5344         "insn".
5345         (s390_cannot_copy_insn_p): Likewise.
5346         (s390_sched_variable_issue): Likewise for third param, eliminating
5347         checked cast.
5348         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
5349         default hook implementation from hook_constcharptr_const_rtx_null
5350         to hook_constcharptr_const_rtx_insn_null.
5351
5352         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
5353         from rtx to rtx_insn *.
5354         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
5355         (sh_variable_issue): Likewise for param "insn".
5356         (sh_dfa_new_cycle): Likewise.
5357         (sh_mode_needed): Likewise.
5358         (sh_mode_after): Likewise.
5359
5360         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
5361         params "insn", "dep_insn".
5362         (hypersparc_adjust_cost): Likewise.
5363         (sparc_adjust_cost): Likewise.
5364
5365         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
5366         param, eliminated checked cast.
5367         (spu_sched_adjust_cost): Likewise for first and third params.
5368
5369         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
5370         params "insn" and "dep_insn" from rtx to rtx_insn *.
5371
5372         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
5373
5374 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
5375
5376         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
5377         (set_is_load_p): ...this, updating to work on a SET pattern rather
5378         than an insn.
5379         (is_store_insn): Rename to...
5380         (set_is_store_p): ...this, updating to work on a SET pattern
5381         rather than an insn.
5382         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
5383         top of function to where it is needed.  Rewrite the bogus
5384         condition that checks for "insn" and "dep" being PARALLEL to
5385         instead use single_set, introducing locals "insn_set" and
5386         "dep_set".  Given that we only ever returned "cost" for a non-pair
5387         of SETs, bail out early if we don't have a pair of SET.
5388         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
5389         use the new locals "insn_set" and "dep_set", and update calls to
5390         is_load_insn and is_store_insn to be calls to set_is_load_p and
5391         set_is_store_p.
5392
5393 2014-08-27  Guozhi Wei  <carrot@google.com>
5394
5395         PR target/62262
5396         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
5397         amount before using it.
5398
5399 2014-08-27  Richard Biener  <rguenther@suse.de>
5400
5401         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
5402         get_maxval_strlen inside a more useful API.
5403         (gimple_fold_builtin_with_strlen): Remove and fold into ...
5404         (gimple_fold_builtin): ... caller.
5405         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
5406         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
5407         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
5408         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
5409         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
5410         gimple_fold_builtin_sprintf): Adjust to compute maxval
5411         themselves.
5412
5413 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
5414
5415         PR other/62248
5416         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
5417
5418 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5419             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5420             Anna Tikhonova  <anna.tikhonova@intel.com>
5421             Ilya Tocar  <ilya.tocar@intel.com>
5422             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5423             Ilya Verbin  <ilya.verbin@intel.com>
5424             Kirill Yukhin  <kirill.yukhin@intel.com>
5425             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5426
5427         * config/i386/sse.md
5428         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
5429         Use `concat_tg_mode' attribute to determine asm register size.
5430
5431 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5432             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5433             Anna Tikhonova  <anna.tikhonova@intel.com>
5434             Ilya Tocar  <ilya.tocar@intel.com>
5435             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5436             Ilya Verbin  <ilya.verbin@intel.com>
5437             Kirill Yukhin  <kirill.yukhin@intel.com>
5438             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5439
5440         * config/i386/sse.md
5441         (define_mode_iterator VI48_AVX512VL): New.
5442         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
5443         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
5444         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
5445         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5446         with VI1): Change mode iterator.
5447         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5448         with VI_ULOADSTORE_BW_AVX512VL): New.
5449         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5450         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5451         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5452         with VI1): Change mode iterator.
5453         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5454         with VI_ULOADSTORE_BW_AVX512VL): New.
5455         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
5456         with VI_ULOADSTORE_F_AVX512VL): Ditto.
5457         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5458         with VI1): Change mode iterator.
5459         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5460         with VI_ULOADSTORE_BW_AVX512VL): New.
5461         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
5462         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
5463         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
5464         (define_insn "<avx512>_storedqu<mode>_mask" with
5465         VI48_AVX512VL): New.
5466         (define_insn "<avx512>_storedqu<mode>_mask" with
5467         VI12_AVX512VL): Ditto.
5468
5469 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5470             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5471             Anna Tikhonova  <anna.tikhonova@intel.com>
5472             Ilya Tocar  <ilya.tocar@intel.com>
5473             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5474             Ilya Verbin  <ilya.verbin@intel.com>
5475             Kirill Yukhin  <kirill.yukhin@intel.com>
5476             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5477
5478         * config/i386/sse.md
5479         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
5480         (define_mode_iterator VI48_AVX512BW): New.
5481         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
5482         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5483         with VI48_AVX2_48_AVX512F): New.
5484         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
5485         with VI2_AVX512VL): Ditto.
5486
5487 2014-08-27  Richard Biener  <rguenther@suse.de>
5488
5489         PR middle-end/62239
5490         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
5491         (fold_builtin_3): Do not fold strcat_chk here.
5492         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
5493         from builtins.c.
5494         (gimple_fold_builtin): Fold strcat_chk here.
5495
5496 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
5497
5498         * dwarf2out.h (dwarf2out_decl): Remove prototype.
5499         * dwarf2out.c (dwarf2out_decl): Make static.
5500
5501 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
5502
5503         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
5504
5505 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5506
5507         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
5508         from rtx to rtx_insn *.
5509         (cselib_lookup_from_insn): Likewise for final param.
5510         (cselib_subst_to_values_from_insn): Likewise.
5511         (cselib_add_permanent_equiv): Likewise.
5512
5513         * cselib.c (cselib_current_insn): Likewise for this variable.
5514         (cselib_subst_to_values_from_insn): Likewise for param "insn".
5515         (cselib_lookup_from_insn): Likewise.
5516         (cselib_add_permanent_equiv): Likewise for param "insn" and local
5517         "save_cselib_current_insn".
5518         (cselib_process_insn): Replace use of NULL_RTX with NULL.
5519
5520         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
5521         from rtx to rtx_insn *.
5522
5523 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5524
5525         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
5526         rtx_insn *.
5527
5528 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5529
5530         * df.h (df_dump_insn_problem_function): Strengthen first param of
5531         this callback from const_rtx to const rtx_insn *.
5532         (struct df_insn_info): Strengthen field "insn" from rtx to
5533         rtx_insn *.
5534         (DF_REF_INSN): Eliminate this function, reinstating the older
5535         macro definition.
5536         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
5537         (df_reg_defined): Likewise.
5538         (df_find_use): Likewise.
5539         (df_reg_used): Likewise.
5540         (df_dump_insn_top): Strengthen param 1 from const_rtx to
5541         const rtx_insn *.
5542         (df_dump_insn_bottom): Likewise.
5543         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
5544         (df_insn_debug_regno): Likewise.
5545         (debug_df_insn): Likewise.
5546         (df_rd_simulate_one_insn): Likewise for param 2.
5547         (df_word_lr_simulate_defs): Likewise for param 1.
5548         (df_word_lr_simulate_uses): Likewise.
5549         (df_md_simulate_one_insn): Likewise for param 2.
5550         (df_simulate_find_noclobber_defs): Likewise for param 1.
5551         (df_simulate_find_defs): Likewise.
5552         (df_simulate_defs): Likewise.
5553         (df_simulate_uses): Likewise.
5554         (df_simulate_one_insn_backwards): Likewise for param 2.
5555         (df_simulate_one_insn_forwards): Likewise.
5556         (df_uses_create): Likewise for param 2.
5557         (df_insn_create_insn_record): Likewise for param 1.
5558         (df_insn_delete): Likewise.
5559         (df_insn_rescan): Likewise.
5560         (df_insn_rescan_debug_internal): Likewise.
5561         (df_insn_change_bb): Likewise.
5562         (df_notes_rescan): Likewise.
5563         * rtl.h (remove_death): Likewise for param 2.
5564         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
5565         const rtx_insn *.
5566         * sched-int.h (reemit_notes): Strengthen param from rtx to
5567         rtx_insn *.
5568         * valtrack.h (propagate_for_debug): Likewise for param 1.
5569
5570         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
5571         local "tmp_rtx" from const_rtx to const rtx_insn *.
5572         * combine.c (remove_death): Strengthen param "insn" from rtx to
5573         rtx_insn *.
5574         (move_deaths): Likewise for local "where_dead".
5575         * cse.c (delete_trivially_dead_insns): Introduce local
5576         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
5577         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
5578         rtx_insn *.
5579         (df_reg_defined): Likewise.
5580         (df_find_use): Likewise.
5581         (df_reg_used): Likewise.
5582         (df_dump_insn_problem_data): Strengthen param "insn" from
5583         const_rtx to const rtx_insn *.
5584         (df_dump_insn_top): Likewise.
5585         (df_dump_insn_bottom): Likewise.
5586         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
5587         (df_insn_debug_regno): Likewise.
5588         (debug_df_insn): Likewise.
5589         (DF_REF_INSN): Delete.
5590         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
5591         from rtx to rtx_insn *.
5592         (df_chain_insn_top_dump): Strengthen param "insn" from
5593         const_rtx to const rtx_insn *.
5594         (df_chain_insn_bottom_dump): Likewise.
5595         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
5596         rtx_insn *.
5597         (df_word_lr_simulate_uses): Likewise.
5598         (df_print_note): Likewise.
5599         (df_remove_dead_and_unused_notes): Likewise.
5600         (df_set_unused_notes_for_mw): Likewise.
5601         (df_set_dead_notes_for_mw): Likewise.
5602         (df_create_unused_note): Likewise.
5603         (df_simulate_find_defs): Likewise.
5604         (df_simulate_find_uses): Likewise.
5605         (df_simulate_find_noclobber_defs): Likewise.
5606         (df_simulate_defs): Likewise.
5607         (df_simulate_uses): Likewise.
5608         (df_simulate_one_insn_backwards): Likewise.
5609         (df_simulate_one_insn_forwards): Likewise.
5610         (df_md_simulate_one_insn): Likewise.
5611         * df-scan.c (df_uses_create): Likewise.
5612         (df_insn_create_insn_record): Likewise.
5613         (df_insn_delete): Likewise.
5614         (df_insn_rescan): Likewise.
5615         (df_insn_rescan_debug_internal): Likewise.
5616         (df_insn_change_bb): Likewise.
5617         (df_notes_rescan): Likewise.
5618         (df_refs_add_to_chains): Likewise.
5619         (df_insn_refs_verify): Likewise.
5620         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
5621         when invoking df_insn_delete.
5622         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
5623         (set_unique_reg_note): Add checked cast.
5624         * final.c (cleanup_subreg_operands): Likewise.
5625         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
5626         "insn" from rtx to rtx_insn *.
5627         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
5628         "last" from rtx to rtx_insn *.
5629         * ira-emit.c (change_regs_in_insn): New function.
5630         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
5631         Invoke change_regs_in_insn rather than change_regs.
5632         * ira.c (update_equiv_regs): Strengthen locals "insn",
5633         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
5634         for_each_rtx_in_insn rather than for_each_rtx.
5635         * recog.c (confirm_change_group): Add checked casts.
5636         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
5637         Add checked cast.
5638         (peep2_fill_buffer): Add checked cast.
5639         * rtlanal.c (remove_note): Likewise.
5640         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
5641         locals "next" "end" from rtx to rtx_insn *.
5642
5643 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5644
5645         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
5646         to rtx_insn *.
5647         (struct reg_use_data): Likewise for field "insn".
5648         (insn_cost): Likewise for param.
5649         (real_insn_for_shadow): Likewise for return type and param.
5650         (increase_insn_priority): Likewise for param 1.
5651         (debug_dependencies): Likewise for both params.
5652
5653         * haifa-sched.c (insn_delay): Likewise for param "insn".
5654         (real_insn_for_shadow): Likewise for return type and param "insn".
5655         (update_insn_after_change): Likewise for param "insn".
5656         (recompute_todo_spec): Likewise for param "next" and locals "pro",
5657         "other".
5658         (insn_cost): Likewise for param "insn".
5659         (increase_insn_priority): Likewise.
5660         (calculate_reg_deaths): Likewise.
5661         (setup_insn_reg_pressure_info): Likewise.
5662         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
5663         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
5664         (model_recompute): Likewise.
5665         (must_restore_pattern_p): Likewise for param "next".
5666         (model_excess_cost): Likewise for param "insn".
5667         (queue_remove): Likewise.
5668         (adjust_priority): Likewise for param "prev".
5669         (update_register_pressure): Likewise for param "insn".
5670         (setup_insn_max_reg_pressure): Likewise for local "insn".
5671         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
5672         (model_add_to_schedule): Likewise.
5673         (model_reset_queue_indices): Likewise for local "insn".
5674         (unschedule_insns_until): Strengthen local "recompute_vec" from
5675         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
5676         "con" from rtx to rtx_insn *.
5677         (restore_last_backtrack_point): Likewise for both locals "x". Add
5678         checked casts.
5679         (estimate_insn_tick): Likewise for param "insn".
5680         (commit_schedule): Likewise for params "prev_head", "tail" and
5681         local "x".
5682         (verify_shadows): Likewise for locals "i1", "i2".
5683         (dump_insn_stream): Likewise for params "head", "tail" and locals
5684         "next_tail", "insn".
5685         (schedule_block): Likewise for locals "insn", "x".  Add a checked
5686         cast.
5687         (fix_inter_tick): Likewise for params "head", "tail".
5688         (create_check_block_twin): Likewise for local "jump".
5689         (haifa_change_pattern): Likewise for param "insn".
5690         (haifa_speculate_insn): Likewise.
5691         (dump_new_block_header): Likewise for params "head", "tail".
5692         (fix_jump_move): Likewise for param "jump".
5693         (move_block_after_check): Likewise.
5694         (sched_init_insn_luid): Likewise for param "insn".
5695         (sched_init_luids): Likewise for local "insn".
5696         (insn_luid): Likewise for param "insn".
5697         (init_h_i_d): Likewise.
5698         (haifa_init_h_i_d): Likewise for local "insn".
5699         (haifa_init_insn): Likewise for param "insn".
5700         * sched-deps.c (add_dependence): Likewise for local "real_pro",
5701         "other".
5702         (create_insn_reg_use): Likewise for param "insn".
5703         (setup_insn_reg_uses): Likewise.  Add a checked cast.
5704         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
5705         "tail" from rtx to rtx_insn *.
5706         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
5707         "insn", "next_tail".
5708
5709 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5710
5711         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
5712         from rtx to rtx_insn *.
5713         (model_add_to_schedule): Likewise for locals "start", "end",
5714         "iter".
5715
5716 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5717
5718         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
5719         rtx_insn *.
5720         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
5721         "to" and locals "insn", "next", "copy".  Remove now-redundant
5722         checked cast.
5723
5724 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5725
5726         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
5727         rtx_insn * and param 4 from rtx * to rtx_insn **.
5728         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
5729         param 2 from rtx * to rtx_insn **.
5730
5731         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
5732         rtx_insn * and final param from rtx * to rtx_insn **.
5733
5734         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
5735         from rtx to rtx_insn *.
5736         (try_head_merge_bb): Likewise for both locals named "move_upto".
5737         * df-problems.c (can_move_insns_across): Likewise for params
5738         "from", "to", "across_from", "across_to" and locals "insn",
5739         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
5740         rtx_insn **.
5741         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
5742         from rtx to rtx_insn *.
5743         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
5744         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
5745         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
5746         rtx_insn *.
5747         (noce_try_abs): Likewise.
5748         (noce_get_condition): Likewise for param "jump".  Strengthen param
5749         "earliest" from rtx * to rtx_insn **.
5750         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
5751         rtx_insn *.
5752         (find_cond_trap): Likewise.
5753         (dead_or_predicable): Likewise for local "earliest".
5754         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
5755         checked cast.
5756         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
5757         and local "prev".  Strengthen param "earliest" from rtx * to
5758         rtx_insn **.
5759         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
5760         Strengthen param "earliest" from rtx * to rtx_insn **.
5761
5762 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5763
5764         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
5765         "to" and local "insn" from rtx to rtx_insn *.
5766
5767 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5768
5769         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
5770         from rtx to rtx_insn *.
5771         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
5772         (code_motion_path_driver): Likewise for local "last_insn".
5773         (simplify_changed_insns): Likewise for local "insn".
5774
5775 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5776
5777         * rtl.h (push_to_sequence): Strengthen param from rtx to
5778         rtx_insn *.
5779         (push_to_sequence2): Likewise for both params.
5780         (delete_insns_since): Likewise for param.
5781         (reorder_insns_nobb): Likewise for all three params.
5782         (set_new_first_and_last_insn): Likewise for both params.
5783
5784         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
5785         rtx_insn *.  Remove now-redundant cast.
5786         (set_last_insn): Likewise.
5787
5788         * builtins.c (expand_builtin_return): Strengthen local
5789         "call_fusage" from rtx to rtx_insn *.
5790         * cfgrtl.c (create_basic_block_structure): Likewise for local
5791         "after".
5792         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
5793         "first", "last" and local "insn".
5794         (delete_insns_since): Likewise for param "from".
5795         (reorder_insns_nobb): Likewise for params "from", "to", "after"
5796         and local "x".
5797         (push_to_sequence): Likewise for param "first" and local "last".
5798         (push_to_sequence2): Likewise for params "first" and "last".
5799         * lra.c (emit_add3_insn): Likewise for local "last".
5800         (lra_emit_add): Likewise.
5801         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
5802         "last_insn".
5803         (process_address_1): Likewise for locals "insn", last".
5804         * modulo-sched.c (ps_first_note): Likewise for return type.
5805         * optabs.c (expand_binop_directly): Likewise for param "last".
5806
5807 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5808
5809         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
5810         to rtx_insn*.
5811         * emit-rtl.c (get_last_insn_anywhere): Likewise.
5812
5813 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5814
5815         * function.h (struct sequence_stack): Strengthen fields "first"
5816         and "last" from rtx to rtx_insn *.
5817         (struct emit_status): Likewise for fields "x_first_insn" and
5818         "x_last_insn".
5819
5820         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
5821         (set_first_insn): Add checked cast.
5822         (get_last_insn): Remove now-redundant checked cast.
5823         (set_last_insn): Add checked cast.
5824
5825         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
5826         "saved_first" and "saved_last" from rtx to rtx_insn *.
5827
5828 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5829
5830         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
5831         (unlink_insn_chain): Strengthen both params from rtx to
5832         rtx_insn *.
5833
5834         * cfgrtl.c (cfg_layout_function_header): Likewise for this
5835         variable.
5836         (unlink_insn_chain): Likewise for params "first" and "last".
5837         Remove now-redundant checked cast.
5838         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
5839         (fixup_reorder_chain): Strengthen local "insn" from rtx to
5840         rtx_insn *.
5841         * emit-rtl.c (link_insn_into_chain): Likewise for all three
5842         params.
5843         (add_insn): Likewise for param "insn" and local "prev".
5844         (add_insn_after_nobb): Likewise for both params and local "next".
5845         (add_insn_before_nobb): Likewise for both params and local "prev".
5846         (add_insn_after): Rename param "after" to "uncast_after",
5847         introducing local "after" with another checked cast.
5848         (add_insn_before): Rename params "insn" and "before", giving them
5849         "uncast_" prefixes, adding the old names back using checked casts.
5850         (emit_note_after): Likewise for param "after".
5851         (emit_note_before): Likewise for param "before".
5852         (emit_label): Add a checked cast.
5853
5854 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5855
5856         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
5857         "insn" from rtx to rtx_insn *.
5858
5859         * cselib.c (cselib_record_sets_hook): Likewise.
5860
5861         * var-tracking.c (add_with_sets): Likewise, renaming back from
5862         "uncast_insn" to "insn" and eliminating the checked cast from rtx
5863         to rtx_insn *.
5864
5865 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5866
5867         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
5868         and "header_" from rtx to rtx_insn *.
5869         (struct basic_block_d): Likewise for field "head_" within "x"
5870         field of union basic_block_il_dependent.
5871         (BB_HEAD): Drop function...
5872         (SET_BB_HEAD): ...and this function in favor of...
5873         (BB_HEAD): ...reinstate macro.
5874         (BB_END): Drop function...
5875         (SET_BB_END): ...and this function in favor of...
5876         (BB_END): ...reinstate macro.
5877         (BB_HEADER): Drop function...
5878         (SET_BB_HEADER): ...and this function in favor of...
5879         (BB_HEADER): ...reinstate macro.
5880
5881         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
5882         (fix_crossing_unconditional_branches): Likewise.
5883         * caller-save.c (save_call_clobbered_regs): Likewise.
5884         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
5885         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
5886         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
5887         (merge_blocks_move_successor_nojumps): Likewise.
5888         (outgoing_edges_match): Update use of for_each_rtx to
5889         for_each_rtx_in_insn.
5890         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
5891         (expand_gimple_cond): Likewise.
5892         (expand_gimple_tailcall): Likewise.
5893         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
5894         SET_BB_END.
5895         (construct_exit_block): Drop use of SET_BB_END.
5896         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
5897         rtx_insn *.
5898         (delete_insn): Rename param "insn" to "uncast_insn", introducing
5899         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
5900         SET_BB_HEAD and SET_BB_END.
5901         (create_basic_block_structure): Drop use of SET_BB_HEAD and
5902         SET_BB_END.
5903         (rtl_delete_block): Drop use of SET_BB_HEAD.
5904         (rtl_split_block): Drop use of SET_BB_END.
5905         (emit_nop_for_unique_locus_between): Likewise.
5906         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
5907         (block_label): Drop use of SET_BB_HEAD.
5908         (fixup_abnormal_edges): Drop use of SET_BB_END.
5909         (record_effective_endpoints): Drop use of SET_BB_HEADER.
5910         (relink_block_chain): Likewise.
5911         (fixup_reorder_chain): Drop use of SET_BB_END.
5912         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
5913         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
5914         rtx_insn **.  Drop use of SET_BB_HEADER.
5915         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
5916         SET_BB_HEAD.
5917         (BB_HEAD): Delete this function.
5918         (SET_BB_HEAD): Likewise.
5919         (BB_END): Likewise.
5920         (SET_BB_END): Likewise.
5921         (BB_HEADER): Likewise.
5922         (SET_BB_HEADER): Likewise.
5923         * emit-rtl.c (add_insn_after):  Rename param "insn" to
5924         "uncast_insn", adding a new local "insn" and a checked cast to
5925         rtx_insn *.  Drop use of SET_BB_END.
5926         (remove_insn): Strengthen locals "next" and "prev" from rtx to
5927         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
5928         (reorder_insns): Drop use of SET_BB_END.
5929         (emit_insn_after_1): Strengthen param "first" and locals "last",
5930         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
5931         (emit_pattern_after_noloc): Add checked cast.
5932         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
5933         (restore_other_notes): Likewise.
5934         (move_insn): Likewise.
5935         (sched_extend_bb): Likewise.
5936         (fix_jump_move): Likewise.
5937         * ifcvt.c (noce_process_if_block): Likewise.
5938         (dead_or_predicable): Likewise.
5939         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
5940         * reg-stack.c (change_stack): Drop use of SET_BB_END.
5941         * sel-sched-ir.c (sel_move_insn): Likewise.
5942         * sel-sched.c (move_nop_to_previous_block): Likewise.
5943
5944         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
5945         SET_BB_END.
5946         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
5947
5948 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5949
5950         * basic-block.h (create_basic_block_structure): Strengthen params
5951         1 "head" and 2 "end" from rtx to rtx_insn *.
5952         * cfgrtl.c (create_basic_block_structure): Likewise.
5953         (rtl_create_basic_block): Update casts from void * to rtx to
5954         rtx_insn *, so that we can pass them as rtx_insn * to
5955         create_basic_block_structure.
5956         * sel-sched-ir.c (sel_create_basic_block): Likewise.
5957
5958 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5959
5960         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
5961         rtx_insn **.
5962         (check_for_inc_dec): Strengthen param "insn" from rtx to
5963         rtx_insn *.
5964
5965         * cselib.h (cselib_process_insn): Likewise.
5966
5967         * cselib.c (cselib_record_sets): Likewise.
5968         (cselib_process_insn): Likewise.
5969
5970         * dse.c (struct insn_info): Likewise for field "insn".
5971         (check_for_inc_dec_1): Likewise for local "insn".
5972         (check_for_inc_dec): Likewise for param "insn".
5973         (scan_insn): Likewise.
5974         (dse_step1): Likewise for local "insn".
5975
5976         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
5977         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
5978
5979 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
5980
5981         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
5982         from rtx to rtx_insn *.
5983         (DEP_PRO): Delete this function and...
5984         (SET_DEP_PRO): ...this function in favor of...
5985         (DEP_PRO): ...reinstate this macro.
5986         (DEP_CON): Delete this function and...
5987         (SET_DEP_CON): ...this function in favor of...
5988         (DEP_CON): ...reinstate this old macro.
5989         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
5990         (init_dep): Likewise.
5991         (set_priorities): Likewise for both params.
5992         (sd_copy_back_deps): Likewise for params 1 and 2.
5993
5994         * haifa-sched.c (priority): Likewise for param "insn" and local
5995         "next".
5996         (set_priorities): Likewise for params "head" and "tail" and local
5997         "insn".
5998         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
5999         local "consumer".
6000         (add_to_speculative_block): Add a checked cast.
6001         (create_check_block_twin): Drop use of SET_DEP_CON.
6002         (add_jump_dependencies): Strengthen params "insn" and "jump" from
6003         rtx to rtx_insn *.
6004
6005         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
6006         Drop use of SET_DEP_PRO
6007         (init_dep): Strengthen params "pro" and "con" from rtx to
6008         rtx_insn *.
6009         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
6010         use of SET_DEP_CON.
6011         (DEP_PRO): Delete.
6012         (DEP_CON): Delete.
6013         (SET_DEP_PRO): Delete.
6014         (SET_DEP_CON): Delete.
6015
6016 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6017
6018         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
6019         from rtx to rtx_insn *.
6020         (VINSN_INSN_RTX): Eliminate rvalue function and...
6021         (SET_VINSN_INSN): ...lvalue function in favor of...
6022         (VINSN_INSN_RTX): reinstate this old macro.
6023
6024         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
6025         in favor of VINSN_INSN_RTX.
6026         (VINSN_INSN_RTX): Delete this function.
6027         (SET_VINSN_INSN_RTX): Likewise.
6028
6029 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6030
6031         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
6032         (BND_TO): Delete this function and...
6033         (SET_BND_TO): ...this functions in favor of...
6034         (BND_TO): ...reinstating this macro.
6035         (struct _fence): Strengthen field "executing_insns" from
6036         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
6037         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
6038         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
6039         and param "insn" from rtx to insn_t.
6040         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
6041         rtx_insn *.
6042
6043         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
6044         vec<rtx_insn *> .
6045         (rtx_vec_t): Likewise.
6046         (struct sched_deps_info_def): Strengthen param of "start_insn"
6047         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
6048         "note_mem_dep" callback and first param of "note_dep" callback.
6049
6050         * haifa-sched.c (add_to_speculative_block): Strengthen param
6051         "insn" from rtx to rtx_insn *.
6052         (clear_priorities): Likewise.
6053         (calc_priorities): Likewise for local "insn".
6054
6055         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
6056         Remove redundant checked cast.
6057         (haifa_note_mem_dep): Likewise for param "pending_insn".
6058         (haifa_note_dep): Likewise for param "elem".
6059         (note_mem_dep): Likewise for param "e".
6060         (sched_analyze_1): Add checked casts.
6061         (sched_analyze_2): Likewise.
6062
6063         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
6064         from rtx to rtx_insn *.
6065         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
6066         from vec<rtx> * to vec<rtx_insn *> *.
6067
6068         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
6069         scaffolding.
6070         (flist_add): Strengthen param "executing_insns" from
6071         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
6072         (advance_deps_context): Remove now-redundant checked cast.
6073         (init_fences): Replace uses of NULL_RTX with NULL.
6074         (merge_fences): Strengthen params "last_scheduled_insn" and
6075         "sched_next" from rtx to rtx_insn * and "executing_insns" from
6076         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
6077         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
6078         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
6079         an instruction, rather than doing double-duty as a pattern.
6080         (return_nop_to_pool): Update for change of insn_t.
6081         (deps_init_id): Remove now-redundant checked cast.
6082         (struct sched_scan_info_def): Strengthen param of "init_insn"
6083         callback from rtx to insn_t.
6084         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
6085         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
6086         NULL.
6087         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
6088         "end" from rtx to rtx_insn *.
6089         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
6090         (rtx insn_rtx, bool force_unique_p)
6091         (BND_TO): Delete function.
6092         (SET_BND_TO): Delete function.
6093
6094         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
6095         rtx to rtx_insn *.
6096         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
6097         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
6098         rtx to rtx_insn *.
6099         (undo_transformations): Likewise for param "insn".
6100         (update_liveness_on_insn): Likewise.
6101         (compute_live_below_insn): Likewise for param "insn" and local
6102         "succ".
6103         (update_data_sets): Likewise for param "insn".
6104         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
6105         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
6106         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
6107         rtx_insn *.
6108         (move_cond_jump): Likewise for param "insn".
6109         (move_cond_jump): Drop use of SET_BND_TO.
6110         (compute_av_set_on_boundaries): Likewise.
6111         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
6112         (update_and_record_unavailable_insns): Strengthen local "bb_end"
6113         from rtx to rtx_insn *.
6114         (maybe_emit_renaming_copy): Likewise for param "insn".
6115         (maybe_emit_speculative_check): Likewise.
6116         (handle_emitting_transformations): Likewise.
6117         (remove_insn_from_stream): Likewise.
6118         (code_motion_process_successors): Strengthen local "succ" from rtx
6119         to insn_t.
6120
6121 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6122
6123         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
6124         ilist_t, not _xlist_t;
6125         (ILIST_INSN): Define in terms of new union field "insn".
6126         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
6127         _XLIST_NEXT.
6128         (struct _list_node): Add new field "insn" to the union, of type
6129         insn_t.
6130         (ilist_add): Replace macro with an inline function, requiring an
6131         insn_t.
6132         (ilist_remove): Define this macro directly in terms of
6133         _list_remove, rather than indirectly via _xlist_remove.
6134         (ilist_clear): Likewise, in terms of _list_clear rather than
6135         _xlist_clear.
6136         (ilist_is_in_p): Replace macro with an inline function, requiring
6137         an insn_t.
6138         (_list_iter_cond_insn): New function.
6139         (ilist_iter_remove): Define this macro directly in terms of
6140         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
6141         (ilist_iterator): Define directly in terms of _list_iterator
6142         rather than indirectly through _xlist_iterator.
6143         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
6144         than in terms of _FOR_EACH_X.
6145         (FOR_EACH_INSN_1): Likewise.
6146
6147 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
6148
6149         PR target/60606
6150         PR target/61330
6151         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
6152         DECL_HARD_REGISTER and return for invalid register specifications.
6153         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
6154         DECL_HARD_REGISTER, call expand_one_error_var.
6155         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
6156         CC_REGNUM with non-MODE_CC modes.
6157         (arm_regno_class): Return NO_REGS for PC_REGNUM.
6158
6159 2014-08-26  Marek Polacek  <polacek@redhat.com>
6160
6161         PR c/61271
6162         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
6163
6164 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
6165
6166         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
6167         qi cost; add di cost.
6168         (cortexa57_addrcost_table): Likewise.
6169
6170 2014-08-26  Marek Polacek  <polacek@redhat.com>
6171
6172         PR c/61271
6173         * expr.c (is_aligning_offset): Remove logical not.
6174
6175 2014-08-26  Marek Polacek  <polacek@redhat.com>
6176
6177         PR c/61271
6178         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
6179         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
6180
6181 2014-08-26  Richard Biener  <rguenther@suse.de>
6182
6183         PR tree-optimization/62175
6184         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6185         expand possibly trapping operations.
6186
6187 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
6188
6189         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
6190         "insn" from rtx to rtx_insn *.
6191         (permute_load): Likewise for param "insn".
6192         (permute_store): Likewise.
6193         (handle_special_swappables): Likewise for local "insn".
6194         (replace_swap_with_copy): Likewise for locals "insn" and
6195         "new_insn".
6196         (rs6000_analyze_swaps): Likewise for local "insn".
6197
6198 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6199
6200         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
6201         to rtx_insn *.
6202
6203 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6204
6205         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
6206         "note_list" from rtx to rtx_insn *.
6207         (BB_NOTE_LIST): Replace this function and...
6208         (SET_BB_NOTE_LIST): ...this function with...
6209         (BB_NOTE_LIST): ...the former macro implementation.
6210
6211         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
6212         local "from_start" from rtx to rtx_insn *.  Strengthen param
6213         "to_endp" from rtx * to rtx_insn **.
6214
6215         * haifa-sched.c (concat_note_lists): Likewise.
6216         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
6217         BB_NOTE_LIST.
6218         (sel_restore_notes): Likewise.
6219         (move_bb_info): Likewise.
6220         (BB_NOTE_LIST): Delete this function.
6221         (SET_BB_NOTE_LIST): Delete this function.
6222         * sel-sched.c (create_block_for_bookkeeping): Eliminate
6223         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
6224
6225 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6226
6227         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
6228         from rtx * to rtx_insn **.
6229         (reorder2): Likewise.
6230         (dependencies_evaluation_hook): Strengthen params "head", "tail"
6231         from rtx to rtx_insn *.
6232
6233         * doc/tm.texi: Update mechanically for above change to target.def.
6234
6235         * sched-int.h (note_list): Strengthen this variable from rtx to
6236         rtx_insn *.
6237         (remove_notes): Likewise for both params.
6238         (restore_other_notes): Likewise for return type and first param.
6239         (struct ready_list): Strengthen field "vec" from rtx * to
6240         rtx_insn **.
6241         (struct dep_replacement): Strenghten field "insn" from rtx to
6242         rtx_insn *.
6243         (struct deps_desc): Likewise for fields "last_debug_insn",
6244         "last_args_size".
6245         (struct haifa_sched_info): Likewise for callback field
6246         "can_schedule_ready_p"'s param, for first param of "new_ready"
6247         callback field, for both params of "rank" callback field, for
6248         first field of "print_insn" callback field (with a const), for
6249         both params of "contributes_to_priority" callback, for param
6250         of "insn_finishes_block_p" callback, for fields "prev_head",
6251         "next_tail", "head", "tail", for first param of "add_remove_insn"
6252         callback, for first param of "begin_schedule_ready" callback, for
6253         both params of "begin_move_insn" callback, and for second param
6254         of "advance_target_bb" callback.
6255         (add_dependence): Likewise for params 1 and 2.
6256         (sched_analyze): Likewise for params 2 and 3.
6257         (deps_analyze_insn): Likewise for param 2.
6258         (ready_element): Likewise for return type.
6259         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6260         (try_ready): Strenghten param from rtx to rtx_insn *.
6261         (sched_emit_insn): Likewise for return type.
6262         (record_delay_slot_pair): Likewise for params 1 and 2.
6263         (add_delay_dependencies): Likewise for param.
6264         (contributes_to_priority): Likewise for both params.
6265         (find_modifiable_mems): Likewise.
6266
6267         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
6268         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
6269         "first_older_only_insn" from rtx to rtx_insn *.
6270         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
6271         rtx_insn **.
6272
6273         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
6274         "last_scheduled_iter0" from rtx to rtx_insn *.
6275         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
6276         (c6x_sched_reorder_1): Strengthen param "ready" and locals
6277         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
6278         "insn" from rtx to rtx_insn *.
6279         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
6280         rtx_insn **.
6281         (c6x_sched_reorder2): Strengthen param "ready" and locals
6282         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
6283         "insn" from rtx to rtx_insn *.
6284         (c6x_variable_issue):  Add a checked cast when assigning from insn
6285         to ss.last_scheduled_iter0.
6286         (split_delayed_branch): Strengthen param "insn" and local "i1"
6287         from rtx to rtx_insn *.
6288         (split_delayed_nonbranch): Likewise.
6289         (undo_split_delayed_nonbranch): Likewise for local "insn".
6290         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
6291         "entry_after", "end_packet", "head_insn", "tail_insn",
6292         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
6293         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
6294         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
6295         but add a checked cast on loop->start_label.  Consolidate calls to
6296         avoid assigning result of gen_spkernel to "insn", now an
6297         rtx_insn *.
6298
6299         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
6300         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
6301         rtx to rtx_insn *.
6302         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
6303         rtx_insn **.  Strengthen locals "top", "next" from rtx to
6304         rtx_insn *.
6305         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
6306         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
6307         (add_parameter_dependencies): Strengthen params "call", "head" and
6308         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
6309         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
6310         (add_dependee_for_func_arg): Likewise for param "arg" and local
6311         "insn".
6312         (ix86_dependencies_evaluation_hook): Likewise for params "head",
6313         "tail" and locals "insn", "first_arg".
6314
6315         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
6316         for params "head", "tail" and locals "insn", "next", "next_tail".
6317         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
6318         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
6319         "insn", "lowest", "highest" from rtx to rtx_insn *.
6320         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
6321         rtx_insn **.
6322         (ia64_sched_reorder2): Likewise.
6323
6324         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
6325         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
6326         from rtx * to rtx_insn **.
6327         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
6328         rtx_insn **.
6329         (mep_print_sched_insn): Strengthen param "insn" from rtx to
6330         rtx_insn *.
6331         (mep_sched_reorder): Strengthen param "ready" from rtx * to
6332         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
6333         to rtx_insn *.
6334
6335         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
6336         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
6337         to rtx_insn *.
6338         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
6339         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
6340         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
6341         rtx_insn **.
6342         (vr4130_reorder): Likewise.
6343         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
6344         rtx to rtx_insn *.
6345         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
6346         rtx_insn **.
6347         (mips_sched_reorder): Likewise.
6348         (mips_sched_reorder2): Likewise.
6349
6350         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
6351
6352         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
6353         Strengthen local "tmp" from rtx to rtx_insn *.
6354         (rs6000_sched_reorder2): Likewise.
6355
6356         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
6357         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
6358         (s390_sched_reorder): Strengthen param "ready" from rtx * to
6359         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
6360
6361         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
6362         "tmp2" from rtx to rtx_insn *.
6363         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
6364         Strengthen local "insn" from rtx to rtx_insn *.
6365         (ready_reorder): Strengthen param "ready" from rtx * to
6366         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
6367         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
6368         (sh_reorder2): Likewise.
6369
6370         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
6371         local "insn" from rtx to rtx_insn *.
6372
6373         * haifa-sched.c (note_list): Strengthen this variable from rtx to
6374         rtx_insn *.
6375         (scheduled_insns): Strengthen this variable from vec<rtx> to
6376         vec<rtx_insn *>.
6377         (set_modulo_params): Likewise for locals "i1", "i2".
6378         (record_delay_slot_pair): Likewise for params "i1", "i2".
6379         (add_delay_dependencies): Likewise for param "insn".
6380         (cond_clobbered_p): Likewise.
6381         (recompute_todo_spec): Likewise for local "prev".
6382         (last_scheduled_insn): Likewise for this variable.
6383         (nonscheduled_insns_begin): Likewise.
6384         (model_set_excess_costs): Strengthen param "insns" from rtx * to
6385         rtx_insn **.
6386         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
6387         rtx_insn *.
6388         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
6389         Strengthen local "insn" from rtx to rtx_insn *.
6390         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
6391         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
6392         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
6393         (ready_remove_first): Likewise for return type and local "t".
6394         (ready_element): Likewise for return type.
6395         (ready_remove): Likewise for return type and local "t".
6396         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
6397         (check_clobbered_conditions): Strengthen local "x" from rtx to
6398         rtx_insn *, adding a checked cast.
6399         (schedule_insn): Likewise for param "insn".
6400         (remove_notes): Likewise for params "head", "tail" and locals
6401         "next_tail", "insn", "next".
6402         (struct haifa_saved_data): Likewise for fields
6403         "last_scheduled_insn", "nonscheduled_insns_begin".
6404         (save_backtrack_point): Update for change to field "vec" of
6405         struct ready_list.
6406         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
6407         rtx_insn **.
6408         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
6409         from rtx to rtx_insn *
6410         (resolve_dependencies): Strengthen param "insn" from rtx to
6411         rtx_insn *
6412         (restore_other_notes): Likewise for return type, for param "head"
6413         and local "note_head".
6414         (undo_all_replacements): Likewise for local "insn".
6415         (first_nonscheduled_insn): Likewise for return type and local "insn".
6416         (queue_to_ready): Likewise for local "insn", adding checked casts.
6417         (early_queue_to_ready): Likewise for local "insn".
6418         (debug_ready_list_1): Strengthen local "p" from rtx * to
6419         rtx_insn **.
6420         (move_insn): Strengthen param "insn" and local "note" from rtx to
6421         rtx_insn *
6422         (insn_finishes_cycle_p): Likewise for param "insn".
6423         (max_issue): Likewise for local "insn".
6424         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
6425         to rtx_insn **.
6426         (commit_schedule): Strengthen param "prev_head" and local "insn"
6427         from rtx to rtx_insn *
6428         (prune_ready_list): Likewise for local "insn".
6429         (schedule_block): Likewise for locals "prev_head", "head", "tail",
6430         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
6431         (set_priorities): Likewise for local "prev_head".
6432         (try_ready): Likewise for param "next".
6433         (fix_tick_ready): Likewise.
6434         (change_queue_index): Likewise.
6435         (sched_extend_ready_list): Update for change to field "vec" of
6436         struct ready_list.
6437         (generate_recovery_code): Strengthen param "insn" from rtx to
6438         rtx_insn *.
6439         (begin_speculative_block): Likewise.
6440         (create_check_block_twin): Likewise for param "insn" and locals
6441         "label", "check", "twin".  Introduce local "check_pat" to avoid
6442         "check" being used as a plain rtx before being used as an insn.
6443         (fix_recovery_deps): Add a checked cast to rtx_insn * when
6444         extracting elements from ready_list.
6445         (sched_remove_insn): Strengthen param "insn" from rtx to
6446         rtx_insn *.
6447         (sched_emit_insn): Likewise for return type.
6448         (ready_remove_first_dispatch): Likewise for return type and local
6449         "insn".
6450
6451         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
6452
6453         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
6454         const rtx_insn *.
6455
6456         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
6457         from rtx to rtx_insn *.
6458         (add_dependence_list): Likewise for param "insn".  Add a checked
6459         cast.
6460         (add_dependence_list_and_free): Strengthen param "insn" from rtx
6461         to rtx_insn *.  Strengthen param "list_p" from rtx * to
6462         rtx_insn **.
6463         (chain_to_prev_insn): Strengthen param "insn" and locals
6464         "prec_nonnote", "i" from rtx to rtx_insn *.
6465         (flush_pending_lists): Likewise for param "insn".
6466         (cur_insn): Likewise for this variable.
6467         (haifa_start_insn): Add a checked cast.
6468         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
6469         (sched_analyze_reg): Likewise for param "insn".
6470         (sched_analyze_1): Likewise.
6471         (sched_analyze_2): Likewise.  Add checked casts.
6472         (sched_analyze_insn): Likewise.  Also for local "prev".
6473         (deps_analyze_insn): Likewise for param "insn".
6474         (sched_analyze): Likewise for params "head", "tail" and local "insn".
6475         (add_dependence_1): Likewise for params "insn", "elem".
6476         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
6477         (parse_add_or_inc): Likewise for param "insn".
6478         (find_inc): Likewise for local "inc_cand".
6479         (find_modifiable_mems): Likewise for params "head", "tail" and
6480         locals "insn", "next_tail".
6481
6482         * sched-ebb.c (init_ready_list): Likewise for local "insn".
6483         (begin_schedule_ready): Likewise for param "insn".
6484         (begin_move_insn): Likewise for params "insn" and "last".
6485         (ebb_print_insn): Strengthen param "insn" from const_rtx to
6486         const rtx_insn *.
6487         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
6488         (ebb_contributes_to_priority): Likewise for params "next", "insn".
6489         (ebb_add_remove_insn): Likewise for param "insn".
6490         (advance_target_bb): Likewise.
6491
6492         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
6493         "insn".
6494         (check_live): Likewise for param "insn".
6495         (init_ready_list): Likewise for local "insn".
6496         (can_schedule_ready_p): Likewise for param "insn".
6497         (begin_schedule_ready): Likewise.
6498         (new_ready): Likewise for param "next".
6499         (rgn_print_insn): Likewise for param "insn".
6500         (rgn_rank): Likewise for params "insn1", "insn2".
6501         (contributes_to_priority): Likewise for params "next", "insn".
6502         (rgn_insn_finishes_block_p): Likewise for param "insn".
6503         (add_branch_dependences): Likewise for params "head", "tail" and
6504         locals "insn", "last".
6505         (rgn_add_remove_insn): Likewise for param "insn".
6506         (advance_target_bb): Likewise.
6507
6508         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
6509         const_rtx to const rtx_insn *.
6510
6511         * sel-sched-dump.h (sel_print_insn): Likewise.
6512
6513         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
6514         (deps_init_id): Likewise.
6515
6516         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
6517         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
6518         rtx_insn **.
6519
6520 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6521
6522         * output.h (final_start_function): Strengthen param 1 from rtx to
6523         rtx_insn *.
6524
6525         * final.c (final_start_function): Likewise, renaming back from
6526         "uncast_first" to "first", and dropping the checked cast from rtx
6527         to rtx_insn *.
6528
6529 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6530
6531         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
6532         * final.c (final): Likewise.  Rename param back from
6533         "uncast_first" to "first" and eliminate the checked cast from rtx
6534         to rtx_insn *.
6535
6536 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6537
6538         * output.h (shorten_branches): Strengthen param from rtx to
6539         rtx_insn *.
6540
6541         * final.c (shorten_branches): Likewise, renaming param back from
6542         "uncast_first" to "first", and dropping the checked cast from rtx
6543         to rtx_insn *.
6544
6545         * genattr.c (gen_attr): Likewise when writing out the prototype of
6546         shorten_branches.
6547
6548 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6549
6550         * sched-int.h (struct haifa_sched_info): Strengthen fields
6551         "prev_head" and "next_tail" from rtx to rtx_insn *.
6552
6553 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6554
6555         * rtl.h (rtx_jump_table_data::get_labels): New method.
6556         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
6557         with use of the new rtx_jump_table_data::get_labels method.
6558         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
6559         to rtx_jump_table_data *.  Simplify by using get_labels method.
6560         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
6561         a dyn_cast, introducing local "table", using it to replace
6562         label-lookup logic with a get_labels method call.
6563         (patch_jump_insn): Simplify using get_labels method.
6564         * dwarf2cfi.c (create_trace_edges): Likewise.
6565         * rtlanal.c (label_is_jump_target_p): Likewise.
6566
6567 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6568
6569         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
6570         to rtx_insn *.
6571
6572         * emit-rtl.c (unshare_all_rtl_1): Likewise.
6573         (unshare_all_rtl_again): Likewise, also for local "p".
6574
6575 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6576
6577         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
6578         to rtx_insn *.
6579         * cfgrtl.c (delete_insn_and_edges): Likewise.
6580
6581 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6582
6583         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
6584         from rtx to rtx_insn *.
6585
6586         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
6587
6588 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6589
6590         * function.c (thread_prologue_and_epilogue_insns): Likewise for
6591         locals "returnjump", "epilogue_end", "insn", "next".
6592
6593         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
6594         "returnjump" from rtx * to rtx_insn **.
6595         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
6596
6597 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6598
6599         * basic-block.h (struct edge_def). Strengthen "r" within
6600         union edge_def_insns from rtx to rtx_insn *.
6601
6602         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
6603         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
6604         rtx_insn *.
6605         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
6606         from rtx to rtx_insn *.
6607         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
6608         rtx_insn *.
6609         * postreload-gcse.c (reg_killed_on_edge): Likewise.
6610         (reg_used_on_edge): Likewise.
6611         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
6612         (gt_pch_nx): New overload for rtx_insn *&.
6613         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
6614         from rtx to rtx_insn *.
6615
6616 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6617
6618         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
6619         from rtx to rtx_insn *.
6620         (BB_FOOTER): Replace function with access macro.
6621         (SET_BB_FOOTER): Delete.
6622
6623         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
6624         with BB_FOOTER.
6625         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
6626         (emit_barrier_after_bb): Likewise.
6627         (record_effective_endpoints): Likewise.
6628         (relink_block_chain): Likewise.
6629         (fixup_fallthru_exit_predecessor): Likewise.
6630         (cfg_layout_duplicate_bb): Likewise.
6631         (cfg_layout_split_block): Likewise.
6632         (cfg_layout_delete_block): Likewise.
6633         (cfg_layout_merge_blocks): Likewise.
6634         (BB_FOOTER): Delete function.
6635         (SET_BB_FOOTER): Delete function.
6636         * combine.c (update_cfg_for_uncondjump): Replace uses of
6637         SET_BB_FOOTER with BB_FOOTER.
6638
6639 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6640
6641         * except.h (struct eh_landing_pad_d): Strengthen field
6642         "landing_pad" from rtx to rtx_code_label *.
6643
6644         * except.c (sjlj_emit_dispatch_table): Likewise for param
6645         "dispatch_label"
6646         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
6647
6648 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6649
6650         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
6651         first param from rtx to rtx_insn *.
6652         * config/xtensa/xtensa.c (struct machine_function): Likewise for
6653         field "set_frame_ptr_insn".
6654         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
6655         "csend" from rtx to rtx_code_label *.
6656         (xtensa_expand_atomic): Likewise for local "csloop".
6657         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
6658         rtx_insn *.
6659         (xtensa_call_tls_desc): Likewise for return type and locals
6660         "call_insn", "insns".
6661         (xtensa_legitimize_tls_address): Likewise for local "insns".
6662         (xtensa_expand_prologue): Likewise for locals "insn", "first".
6663
6664 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6665
6666         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
6667         first param from rtx to rtx_insn *.
6668         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
6669         "insn".
6670
6671 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6672
6673         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
6674         Strengthen param 1 from rtx to rtx_insn *.
6675         (tilepro_output_cbranch): Likewise.
6676         (tilepro_adjust_insn_length): Likewise.
6677         (tilepro_final_prescan_insn): Likewise for sole param.
6678
6679         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
6680         Likewise for local "last".
6681         (cbranch_predicted_p): Likewise for param "insn".
6682         (tilepro_output_simple_cbranch_with_opcode): Likewise.
6683         (tilepro_output_cbranch_with_opcode): Likewise.
6684         (tilepro_output_cbranch): Likewise.
6685         (frame_emit_load): Likewise for return type and locals "seq",
6686         "insn".
6687         (emit_sp_adjust): Likewise for return type and local "insn".
6688         (tilepro_expand_epilogue): Likewise for locals "last_insn",
6689         "insn".
6690         (tilepro_adjust_insn_length): Likewise for param "insn".
6691         (next_insn_to_bundle): Likewise for return type and params
6692         "r", "end".
6693         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
6694         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
6695         local "new_insns".
6696         (match_addli_pcrel): Likewise for param "insn".
6697         (replace_addli_pcrel): Likewise.
6698         (match_auli_pcrel): Likewise.
6699         (replace_auli_pcrel): Likewise.
6700         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
6701         "next_insn".
6702         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6703         "queue", "next_queue", "prev".
6704         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
6705         (tilepro_final_prescan_insn): Likewise for param "insn".
6706
6707 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6708
6709         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
6710         Strengthen param 1 from rtx to rtx_insn *.
6711         (tilegx_output_cbranch): Likewise.
6712         (tilegx_adjust_insn_length): Likewise.
6713         (tilegx_final_prescan_insn): Likewise for sole param.
6714
6715         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
6716         or local "last".
6717         (cbranch_predicted_p): Likewise for param "insn".
6718         (tilegx_output_simple_cbranch_with_opcode): Likewise.
6719         (tilegx_output_cbranch_with_opcode): Likewise.
6720         (tilegx_output_cbranch): Likewise.
6721         (frame_emit_load): Likewise for return type.
6722         (set_frame_related_p): Likewise for locals "seq", "insn".
6723         (emit_sp_adjust): Likewise for return type, and for local "insn".
6724         Introduce local "pat" for use in place of "insn" where the latter
6725         isn't an instruction.
6726         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
6727         from rtx to rtx_insn *.
6728         (tilegx_adjust_insn_length): Likewise for param "insn".
6729         (next_insn_to_bundle): Likewise for return type and params "r" and
6730         "end".
6731         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
6732         "end".
6733         (replace_insns): Likewise for params "old_insn", "new_insns".
6734         (replace_mov_pcrel_step1): Likewise for param "insn" and local
6735         "new_insns".
6736         (replace_mov_pcrel_step2): Likewise.
6737         (replace_mov_pcrel_step3): Likewise.
6738         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
6739         "next_insn".
6740         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
6741         "queue", "next_queue", "prev".
6742         (tilegx_output_mi_thunk): Likewise for local "insn".
6743         (tilegx_final_prescan_insn): Likewise for param "insn".
6744
6745 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6746
6747         * config/spu/spu.c (frame_emit_store): Strengthen return type from
6748         rtx to rtx_insn *.
6749         (frame_emit_load): Likewise.
6750         (frame_emit_add_imm): Likewise, also for local "insn".
6751         (spu_expand_prologue): Likewise for local "insn".
6752         (struct spu_bb_info): Likewise for field "prop_jump".
6753         (emit_nop_for_insn): Likewise for param "insn" and local
6754         "new_insn".
6755         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
6756         "hbr_insn".
6757         (spu_emit_branch_hint): Likewise for params "before", "branch" and
6758         locals "hint", "insn".
6759         (get_branch_target): Likewise for param "branch".
6760         (insn_clobbers_hbr): Likewise for param "insn".
6761         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
6762         locals "insn", "before_4", "before_16".
6763         (insert_hbrp): Likewise for local "insn".
6764         (spu_machine_dependent_reorg): Likewise for locals "branch",
6765         "insn", "next", "bbend".
6766         (uses_ls_unit): Likewise for param "insn".
6767         (get_pipe): Likewise.
6768         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
6769         introducing a checked cast.
6770         (spu_sched_adjust_cost): Likewise for params "insn" and
6771         "dep_insn".
6772         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
6773         (spu_sms_res_mii): Likewise.
6774
6775 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6776
6777         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
6778         from rtx to rtx_insn *.
6779         (output_cbranch): Likewise for param 6.
6780         (output_return): Likewise for param 1.
6781         (output_sibcall): Likewise.
6782         (output_v8plus_shift): Likewise.
6783         (output_v8plus_mult): Likewise.
6784         (output_v9branch): Likewise for param 7.
6785         (output_cbcond):  Likewise for param 3.
6786
6787         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
6788         for local "insn".
6789         (sparc_legitimize_pic_address): Likewise.
6790         (sparc_emit_call_insn): Likewise.
6791         (emit_save_or_restore_regs): Likewise.
6792         (emit_window_save): Likewise for return type and local "insn".
6793         (sparc_expand_prologue): Likewise for local "insn".
6794         (sparc_flat_expand_prologue): Likewise.
6795         (output_return): Likewise for param "insn".
6796         (output_sibcall): Likewise for param "insn" and local "delay".
6797         (output_ubranch): Likewise for param "insn".
6798         (output_cbranch): Likewise.
6799         (output_cbcond): Likewise.
6800         (output_v9branch): Likewise.
6801         (output_v8plus_shift): Likewise.
6802         (sparc_output_mi_thunk): Likewise for local "insn".
6803         (get_some_local_dynamic_name): Likewise.
6804         (output_v8plus_mult): Likewise for param "insn".
6805
6806 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6807
6808         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
6809         from rtx to rtx_insn *.
6810         (output_branchy_insn): Likewise for param 3.
6811         (output_far_jump): Likewise for param 1.
6812         (final_prescan_insn): Likewise.
6813         (sh_insn_length_adjustment): Likewise for sole param.
6814
6815         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
6816         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
6817         rtx_code_label *.
6818         (sh_emit_compare_and_set): Likewise for local "lab".
6819         (output_far_jump): Strengthen param "insn" and local "prev" from
6820         rtx to rtx_insn *.
6821         (output_branchy_insn): Likewise for param "insn" and local
6822         "next_insn".
6823         (output_ieee_ccmpeq): Likewise for param "insn".
6824         (struct label_ref_list_d): Strengthen field "label" from rtx to
6825         rtx_code_label *.
6826         (pool_node): Likewise.
6827         (pool_window_label): Likewise for this global.
6828         (add_constant): Likewise for return type and locals "lab", "new_rtx".
6829         (dump_table): Strengthen params "start", "barrier" and local
6830         "scan" from rtx to rtx_insn *.
6831         (broken_move): Likewise for param "insn".
6832         (untangle_mova): Likewise for params "first_mova" and "new_mova".
6833         Strengthen param "first_mova" from rtx * to rtx_insn **.
6834         (mova_p): Likewise for param "insn".
6835         (fixup_mova): Likewise for param "mova".
6836         (find_barrier): Likewise for return type, params "mova" and
6837         "from", and locals "barrier_before_mova", "found_barrier",
6838         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
6839         "label" from rtx to rtx_code_label *.
6840         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
6841         rtx to rtx_insn *.
6842         (sh_reorg): Likewise for locals "link", "scan", "barrier".
6843         (split_branches): Likewise for param "first" and local "insn".
6844         (final_prescan_insn): Likewise for param "insn".
6845         (sequence_insn_p): Likewise for locals "prev", "next".
6846         (sh_insn_length_adjustment): Likewise for param "insn".
6847         (sh_can_redirect_branch): Likewise for local "insn".
6848         (find_r0_life_regions): Likewise for locals "end", "insn".
6849         (sh_output_mi_thunk): Likewise for local "insns".
6850
6851 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6852
6853         * config/score/score.c (score_output_mi_thunk): Strengthen local
6854         "insn" from rtx to rtx_insn *.
6855         (score_prologue): Likewise.
6856
6857 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6858
6859         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
6860         1 from rtx to rtx_insn *.
6861         (s390_emit_jump): Likewise for return type.
6862         (s390_emit_call): Likewise.
6863         (s390_load_got): Likewise.
6864
6865         * config/s390/s390.c (last_scheduled_insn): Likewise for this
6866         variable.
6867         (s390_match_ccmode): Likewise for param "insn".
6868         (s390_emit_jump): Likewise for return type.
6869         (s390_split_branches): Likewise for local "label".
6870         (struct constant): Strengthen field "label" from rtx to
6871         rtx_code_label *.
6872         (struct constant_pool): Likewise for field "label".  Strengthen
6873         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
6874         rtx_insn *.
6875         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
6876         insns.
6877         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
6878         (s390_end_pool): Likewise.
6879         (s390_dump_pool): Likewise for local "insn".
6880         (s390_mainpool_start): Likewise.
6881         (s390_chunkify_start): Likewise.
6882         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
6883         with insns.  Strengthen locals "label", "jump", "barrier", "next",
6884         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
6885         (s390_chunkify_finish): Strengthen local "insn" from rtx to
6886         rtx_insn *.
6887         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
6888         "jump", "label", "next_insn".
6889         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
6890         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
6891         "tbegin_insn".
6892         (s390_load_got): Likewise for return type and local "insns".
6893         (s390_save_gprs_to_fprs): Likewise for local "insn".
6894         (s390_restore_gprs_from_fprs): Likewise.
6895         (pass_s390_early_mach::execute): Likewise.
6896         (s390_emit_prologue): Likewise for local "insns".
6897         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
6898         rtx_code_label *.
6899         (s390_emit_call): Strengthen return type and local "insn" from
6900         rtx to rtx_insn *.
6901         (s390_emit_tpf_eh_return): Likewise for local "insn".
6902         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
6903         "next_insn", introducing locals "s_pat", "rpat" to allow this.
6904         (s390_fix_long_loop_prediction): Likewise for param "insn" and
6905         local "cur_insn".
6906         (s390_non_addr_reg_read_p): Likewise for param "insn".
6907         (find_cond_jump): Likewise for return type and param "insn".
6908         (s390_swap_cmp): Likewise for param "insn".
6909         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
6910         "prev_insn", "next_insn".
6911         (s390_reorg): Likewise for locals "insn", "target".
6912         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
6913         (s390_sched_variable_issue): For now, rename param "insn" to
6914         "uncast_insn", introducing a checked cast.
6915         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
6916         insn.
6917         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
6918         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
6919
6920 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6921
6922         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
6923         param from rtx to rtx_insn *.
6924         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
6925
6926 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6927
6928         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
6929         4 from rtx to rtx_insn *.
6930         (rs6000_final_prescan_insn): Likewise for first param.
6931         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
6932         local "insn".
6933         (rs6000_get_some_local_dynamic_name): Likewise.
6934         (output_cbranch): Likewise for param "insn".
6935         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
6936         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
6937         (rs6000_emit_allocate_stack): Likewise for local "insn".
6938         (load_cr_save): Likewise.
6939         (restore_saved_cr): Likewise.
6940         (restore_saved_lr): Likewise.
6941         (emit_cfa_restores): Likewise.
6942         (rs6000_output_function_epilogue): Likewise for locals "insn" and
6943         "deleted_debug_label".
6944         (rs6000_output_mi_thunk): Likewise for local "insn".
6945         (rs6000_final_prescan_insn): Likewise for param "insn".
6946
6947 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6948
6949         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
6950         Strengthen param "insn" from rtx to rtx_insn *.
6951         * config/picochip/picochip.c (picochip_current_prescan_insn):
6952         Likewise for this variable.
6953         (picochip_final_prescan_insn): Likewise for param "insn".
6954
6955 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6956
6957         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
6958         from rtx to rtx_insn *.
6959         (pa_output_indirect_call): Likewise.
6960         (pa_adjust_insn_length): Likewise.
6961         (pa_attr_length_millicode_call): Likewise.
6962         (pa_attr_length_call): Likewise.
6963         (pa_attr_length_indirect_call): Likewise.
6964
6965         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
6966         "insn".
6967         (pa_attr_length_millicode_call): Likewise.
6968         (pa_attr_length_call): Likewise.
6969         (pa_output_call): Likewise.
6970         (pa_attr_length_indirect_call): Likewise.
6971         (pa_output_indirect_call): Likewise.
6972
6973 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6974
6975         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
6976         Strengthen first param from rtx to rtx_insn *.
6977         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
6978         param "insn".
6979
6980 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
6981
6982         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
6983         type from rtx to rtx_insn *.
6984         (mips_expand_call): Likewise.
6985         (mips_adjust_insn_length): Likewise for first param.
6986         (mips_output_conditional_branch): Likewise.
6987         (mips_output_order_conditional_branch): Likewise.
6988         (mips_final_prescan_insn): Likewise.
6989
6990         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
6991         rtx_insn * for the SEQUENCE case.
6992         (SEQ_END): Likewise.
6993         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
6994         (mips_emit_call_insn): Likewise, also for local "insn".
6995         (mips16_gp_pseudo_reg): Likewise for local "scan".
6996         (mips16_build_call_stub): Likewise for return type and for local
6997         "insn".  Introduce a new local "pattern" so that "insn" can indeed
6998         be an insn.
6999         (mips_expand_call): Strengthen return type and local "insn" from
7000         rtx to rtx_insn *.
7001         (mips_block_move_loop): Strengthen local "label" from rtx to
7002         rtx_code_label *.
7003         (mips_expand_synci_loop): Likewise for locals "label",
7004         "end_label".
7005         (mips_set_frame_expr): Strengthen local "insn" from rtx to
7006         rtx_insn *.
7007         (mips16e_collect_argument_saves): Likewise for locals "insn",
7008         "next".
7009         (mips_find_gp_ref): Likewise for param of callback for "pred"
7010         param, and for local "insn".
7011         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
7012         (mips_insn_has_flexible_gp_ref_p): Likewise.
7013         (mips_epilogue_emit_cfa_restores): Likewise for return type and
7014         local "insn".
7015         (mips_epilogue_set_cfa): Likewise for local "insn".
7016         (mips_expand_epilogue): Likewise.
7017         (mips_adjust_insn_length): Likewise for param "insn".
7018         (mips_output_conditional_branch): Likewise.
7019         (mips_output_order_conditional_branch): Likewise.
7020         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
7021         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
7022         "falu2_turn_enabled_insn".
7023         (mips_builtin_branch_and_move): Strengthen locals "true_label",
7024         "done_label" from rtx to rtx_code_label *.
7025         (struct mips16_constant): Likewise for field "label".
7026         (mips16_add_constant): Likewise for return type.
7027         (mips16_emit_constants_1): Strengthen return type and param "insn"
7028         from rtx to rtx_insn *.
7029         (mips16_emit_constants): Likewise for param "insn".
7030         (mips16_insn_length): Likewise.
7031         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
7032         to rtx_code_label *.
7033         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
7034         from rtx to rtx_insn *.
7035         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
7036         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
7037         (r10k_simplify_address): Strengthen param "insn" and local
7038         "def_insn" from rtx to rtx_insn *.
7039         (r10k_safe_address_p): Strengthen param "insn" from rtx to
7040         rtx_insn *.
7041         (r10k_needs_protection_p_1): Update target type of cast of data
7042         from to rtx to rtx_insn *.
7043         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
7044         rtx * to rtx_insn **.
7045         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
7046         rtx_insn *.
7047         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
7048         (mips_call_expr_from_insn): Likewise for param "insn".
7049         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
7050         (mips_find_pic_call_symbol): Likewise for param "insn".
7051         (mips_annotate_pic_calls): Likewise for local "insn".
7052         (mips_sim_insn): Likewise for this variable.
7053         (struct mips_sim): Likewise for field "insn" within elements of
7054         last_set array.
7055         (mips_sim_wait_reg): Likewise for param "insn".
7056         (mips_sim_wait_regs): Likewise.
7057         (mips_sim_wait_units): Likewise.
7058         (mips_sim_wait_insn): Likewise.
7059         (mips_sim_issue_insn): Likewise.
7060         (mips_sim_finish_insn): Likewise.
7061         (mips_seq_time): Likewise for param "seq" and local "insn".
7062         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
7063         locals "first", "second".
7064         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
7065         "last", "last2", "next".
7066         (mips_avoid_hazard): Likewise for params "after", "insn".
7067         (mips_reorg_process_insns): Likewise for locals "insn",
7068         "last_insn", "subinsn", "next_insn".
7069         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
7070         (mips16_split_long_branches): Likewise for locals "insn" "jump",
7071         "jump_sequence".
7072         (mips_output_mi_thunk): Likewise for local "insn".
7073         (mips_final_prescan_insn): Likewise for param "insn".
7074
7075 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7076
7077         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
7078         Strengthen return type and local "insns" from rtx to rtx_insn *.
7079         (microblaze_legitimize_tls_address): Likewise for local "insns".
7080         (microblaze_block_move_loop): Strengthen local "label" from rtx
7081         to rtx_code_label *.
7082         (microblaze_expand_prologue): Strengthen two locals named "insn"
7083         from rtx to rtx_insn *.
7084         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
7085         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
7086         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
7087         to rtx_code_label *.
7088
7089 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7090
7091         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
7092         param from rtx to rtx_insn *.
7093         (mep_reuse_lo): Likewise for third param.
7094         (mep_use_post_modify_p): Likewise for first param.
7095         (mep_core_address_length): Likewise.
7096         (mep_cop_address_length): Likewise.
7097         (mep_final_prescan_insn): Likewise.
7098         (mep_store_data_bypass_p): Likewise for both params.
7099         (mep_mul_hilo_bypass_p): Likewise.
7100         (mep_ipipe_ldc_p): Likewise for param.
7101
7102         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
7103         (mep_rewrite_mult): Likewise.
7104         (mep_rewrite_mulsi3): Likewise.
7105         (mep_rewrite_maddsi3): Likewise.
7106         (mep_reuse_lo_p_1): Likewise.
7107         (mep_reuse_lo_p): Likewise.
7108         (mep_frame_expr): Likewise.
7109         (mep_make_parallel): Likewise for both params.
7110         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
7111         local "insn".
7112         (mep_use_post_modify_p): Likewise for param "insn".
7113         (mep_core_address_length): Likewise.
7114         (mep_cop_address_length): Likewise.
7115         (mep_reg_set_in_function): Likewise for local "insn".
7116         (mep_asm_without_operands_p): Likewise.
7117         (F): Likewise for return type and param "x".
7118         (add_constant): Likewise for local "insn".
7119         (maybe_dead_move): Likewise for return type and local "insn".
7120         (mep_expand_prologue): Likewise for local "insn".
7121         (mep_final_prescan_insn): Likewise for param "insn".
7122         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
7123         "next", "follow", "x".
7124         (mep_insert_repeat_label_last): Likewise for return type, param
7125         "last_insn", and locals "next", "prev".  Strengthen param "label"
7126         from rtx to rtx_code_label *.
7127         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
7128         rtx_insn *.
7129         (struct mep_doloop_end): Likewise for fields "insn" and
7130         "fallthrough".
7131         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
7132         Strengthen local "repeat_label" from rtx to rtx_code_label *.
7133         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
7134         rtx_insn *.
7135         (mep_invert_branch): Likewise for params "insn" and "after".
7136         (mep_reorg_erepeat): Likewise for param "insns" and locals
7137         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
7138         "l" from rtx to rtx_code_label *.
7139         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
7140         from rtx to rtx_insn *.
7141         (mep_reorg_addcombine): Likewise for param "insns" and locals
7142         "i", "n".
7143         (add_sp_insn_p): Likewise for param "insn".
7144         (mep_reorg_noframe): Likewise for param "insns" and locals
7145         "start_frame_insn", "end_frame_insn", "next".
7146         (mep_reorg): Likewise for local "insns".
7147         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
7148         cast.
7149         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
7150         (mep_mul_hilo_bypass_p): Likewise.
7151         (mep_ipipe_ldc_p): Likewise for param "insn".
7152         (mep_make_bundle): Likewise for return type, param "cop" and local
7153         "insn", splitting out the latter into a new local "seq" for when it
7154         is a SEQUENCE rather than an insn.
7155         (core_insn_p): Likewise for param "insn".
7156         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
7157         "last", "first", "note", "prev", "core_insn".
7158
7159 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7160
7161         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
7162         rtx to rtx_insn *.
7163         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
7164         (m68k_final_prescan_insn): Likewise for first param.
7165
7166         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
7167         (m68k_set_frame_related): Likewise for param "insn".
7168         (output_btst): Likewise for param "insn".
7169         (m68k_final_prescan_insn): Likewise.
7170         (m68k_move_to_reg): Likewise for local "insn".
7171         (m68k_call_tls_get_addr): Likewise for local "insns".
7172         (m68k_call_m68k_read_tp): Likewise.
7173         (strict_low_part_peephole_ok): Likewise for param "first_insn".
7174         (m68k_output_mi_thunk): Likewise for local "insn".
7175
7176 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7177
7178         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
7179         first param from rtx to rtx_insn *.
7180         (iq2000_adjust_insn_length): Likewise.
7181         (iq2000_output_conditional_branch): Likewise.
7182         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
7183         "insn" and local "nop_insn".
7184         (iq2000_annotate_frame_insn): Likewise for param "insn".
7185         (iq2000_expand_prologue): Likewise for both locals "insn".
7186         (iq2000_adjust_insn_length): Likewise for param "insn".
7187         (iq2000_output_conditional_branch): Likewise.
7188
7189 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7190
7191         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
7192         "insns" from rtx to rtx_insn *.
7193         (ia64_emit_cond_move): Likewise for locals "insn", "first".
7194         (struct spill_fill_data): Likewise for field "init_after" and for
7195         elements of array field "prev_insn".
7196         (spill_restore_mem): Likewise for locals "insn", "first".
7197         (do_spill): Likewise for local "insn".
7198         (do_restore): Likewise.
7199         (ia64_expand_prologue): Likewise.
7200         (ia64_expand_epilogue): Likewise.
7201         (emit_insn_group_barriers): Likewise for locals "insn",
7202         "last_label".
7203         (emit_all_insn_group_barriers): Likewise for locals "insn",
7204         "last".
7205         (dfa_stop_insn): Likewise for this global.
7206         (dfa_pre_cycle_insn): Likewise.
7207         (ia64_nop): Likewise.
7208         (final_emit_insn_group_barriers): Likewise for locals "insn",
7209         "last".
7210         (emit_predicate_relation_info): Likewise for locals "head", "n",
7211         "insn", "b", "a".
7212         (ia64_reorg): Likewise for local "insn".
7213         (ia64_output_mi_thunk): Likewise.
7214         (expand_vec_perm_interleave_2): Likewise for local "seq".
7215
7216 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7217
7218         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
7219         param 1 "insn" from rtx to rtx_insn *.
7220         (ix86_use_lea_for_mov): Likewise.
7221         (ix86_avoid_lea_for_addr): Likewise.
7222         (ix86_split_lea_for_addr): Likewise.
7223         (ix86_lea_for_add_ok): Likewise.
7224         (ix86_output_call_insn): Likewise.
7225
7226         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
7227         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
7228         (ix86_output_function_epilogue): Likewise for locals "insn",
7229         "deleted_debug_label".
7230         (legitimize_tls_address): Likewise for local "insn".
7231         (get_some_local_dynamic_name): Likewise.
7232         (increase_distance): Likewise for params "prev", "next".
7233         (distance_non_agu_define_in_bb): Likewise for params "insn",
7234         "start" and locals "prev", "next".
7235         (distance_non_agu_define): Likewise for param "insn".
7236         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
7237         locals "next", "prev".
7238         (distance_agu_use): Likewise for param "insn".
7239         (ix86_lea_outperforms): Likewise.
7240         (ix86_ok_to_clobber_flags): Likewise.
7241         (ix86_avoid_lea_for_add): Likewise.
7242         (ix86_use_lea_for_mov): Likewise.
7243         (ix86_avoid_lea_for_addr): Likewise.
7244         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
7245         (ix86_split_lea_for_addr): Likewise for param "insn".
7246         (ix86_lea_for_add_ok): Likewise for param "insn".
7247         (ix86_expand_carry_flag_compare): Likewise for local
7248         "compare_seq".
7249         (ix86_expand_int_movcc): Likewise.
7250         (ix86_output_call_insn): Likewise for param "insn".
7251         (ix86_output_call_insn): Likewise for local "i".
7252         (x86_output_mi_thunk): Introduce local "insn", using it in place
7253         of "tmp" when dealing with insns.
7254         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
7255         "start".
7256         (ix86_pad_returns): Likewise for locals "ret", "prev".
7257         (ix86_count_insn_bb): Likewise for local "insn".
7258         (ix86_pad_short_function): Likewise for locals "ret", "insn".
7259         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
7260         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
7261         (expand_vec_perm_interleave2): Likewise for local "seq".
7262         (expand_vec_perm_vperm2f128_vblend): Likewise.
7263         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
7264         call to for_each_rtx with for_each_rtx_in_insn.
7265
7266 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7267
7268         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
7269         "label" from rtx to rtx_code_label *.
7270         (ix86_expand_prologue): Likewise.
7271         (ix86_expand_split_stack_prologue): Likewise for locals "label",
7272         "varargs_label".
7273         (ix86_split_idivmod): Likewise for locals "end_label" and
7274         "qimode_label".
7275         (ix86_expand_branch): Likewise for local "label2".
7276         (ix86_expand_aligntest): Likewise for return type and local "label".
7277         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
7278         "top_label".
7279         (expand_movmem_epilogue): Likewise for the various locals named
7280         "label".
7281         (expand_setmem_epilogue): Likewise.
7282         (expand_small_movmem_or_setmem): Likewise for local "label".
7283         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7284         Strengthen param "done_label" from rtx * to rtx_code_label **.
7285         Strengthen locals "loop_label" and "label" from rtx to
7286         rtx_code_label *.
7287         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
7288         Likewise for locals "loop_label", "label".
7289         (ix86_expand_set_or_movmem): Likewise for locals "label",
7290         "jump_around_label", "hot_label".
7291         (ix86_expand_strlensi_unroll_1): Likewise for locals
7292         "align_2_label", align_3_label", "align_4_label", "end_0_label",
7293         "end_2_label".
7294         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
7295         (void ix86_emit_i387_log1p): Likewise for locals "label1",
7296         "label2", "jump_label".
7297         (ix86_expand_sse_compare_and_jump): Likewise for return type and
7298         local "label".
7299         (ix86_expand_lfloorceil): Likewise for local "label".
7300         (ix86_expand_rint): Likewise.
7301         (ix86_expand_floorceildf_32): Likewise.
7302         (ix86_expand_floorceil): Likewise.
7303         (ix86_expand_rounddf_32): Likewise.
7304         (ix86_expand_trunc): Likewise.
7305         (ix86_expand_truncdf_32): Likewise.
7306         (ix86_expand_round): Likewise.
7307
7308 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7309
7310         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
7311         first param from rtx to rtx_insn *.
7312         (h8300_insn_length_from_table): Likewise.
7313         * config/h8300/h8300.c (F): Likewise for return type and param
7314         "x".
7315         (Fpa): Add a checked cast to rtx_insn *.
7316         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
7317         rtx_insn *.
7318         (final_prescan_insn): Likewise for param "insn".
7319         (h8300_binary_length): Likewise.
7320         (h8300_insn_length_from_table): Likewise.
7321
7322 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7323
7324         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
7325         Strengthen first param "insn" from rtx to rtx_insn *.
7326
7327         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
7328         Likewise.
7329         (frame_insn): Likewise for return type.  Introduce local "insn"
7330         for use in place of local "x" for use as an rtx_insn *.
7331         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
7332         (epiphany_expand_prologue): Likewise for local "insn".
7333         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
7334         * config/epiphany/resolve-sw-modes.c
7335         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
7336         "seq".
7337
7338 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7339
7340         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
7341         param from rtx to rtx_insn *.
7342         (c6x_final_prescan_insn): Likewise for first param.
7343
7344         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
7345         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
7346         (c6x_expand_compare): Strengthen local "insns" from rtx to
7347         rtx_insn *.
7348         (c6x_get_unit_specifier): Likewise for param "insn".
7349         (c6x_print_unit_specifier_field): Likewise.
7350         (c6x_final_prescan_insn): Likewise.
7351         (emit_add_sp_const): Likewise for local "insn".
7352         (c6x_expand_prologue): Likewise.
7353
7354 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7355
7356         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
7357         param 1 from rtx to rtx_insn *.
7358         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
7359         the various locals named "insn".
7360         (expand_epilogue_reg_restore): Likewise.
7361         (frame_related_constant_load): Likewise.
7362         (add_to_reg): Likewise.
7363         (emit_link_insn): Likewise.
7364         (do_link): Likewise.
7365         (expand_interrupt_handler_prologue): Likewise.
7366         (branch_dest): Likewise for param "branch".
7367         (asm_conditional_branch): Likewise for param "insn".
7368         (gen_one_bundle): Likewise for elements of param "slot" and local
7369         "t".
7370         (bfin_gen_bundles): Likewise for locals "insn", "next" and
7371         elements of local "slot".
7372         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
7373         "queue", "next_queue", "prev".
7374         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
7375         (add_sched_insns_for_speculation): Likewise for local "insn".
7376
7377 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7378
7379         * config/avr/avr-protos.h (output_movqi): Strengthen first param
7380         from rtx to rtx_insn *.
7381         (output_movhi): Likewise.
7382         (output_movsisf): Likewise.
7383         (avr_out_tstsi): Likewise.
7384         (avr_out_tsthi): Likewise.
7385         (avr_out_tstpsi): Likewise.
7386         (avr_out_compare): Likewise.
7387         (avr_out_compare64): Likewise.
7388         (avr_out_movpsi): Likewise.
7389         (ashlqi3_out): Likewise.
7390         (ashlhi3_out): Likewise.
7391         (ashlsi3_out): Likewise.
7392         (ashrqi3_out): Likewise.
7393         (ashrhi3_out): Likewise.
7394         (ashrsi3_out): Likewise.
7395         (lshrqi3_out): Likewise.
7396         (lshrhi3_out): Likewise.
7397         (lshrsi3_out): Likewise.
7398         (avr_out_ashlpsi3): Likewise.
7399         (avr_out_ashrpsi3): Likewise.
7400         (avr_out_lshrpsi3): Likewise.
7401         (avr_out_fract): Likewise.
7402         (avr_out_sbxx_branch): Likewise.
7403         (avr_out_round): Likewise.
7404         (avr_out_xload): Likewise.
7405         (avr_out_movmem): Likewise.
7406         (adjust_insn_length): Likewise.
7407         (avr_out_lpm): Likewise.
7408         (reg_unused_after): Likewise.
7409         (_reg_unused_after): Likewise.
7410         (avr_jump_mode): Likewise for second param.
7411         (jump_over_one_insn): Likewise for first param.
7412         (avr_final_prescan_insn): Likewise.
7413         (out_shift_with_cnt): Likewise for second param.
7414
7415         * config/avr/avr.c (get_sequence_length): Likewise for param
7416         "insns" and local "insn".
7417         (emit_push_byte): Likewise for local "insn".
7418         (emit_push_sfr): Likewise.
7419         (avr_prologue_setup_frame): Likewise for locals "insn",
7420         "fp_plus_insns", "sp_plus_insns".
7421         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
7422         "sp_plus_insns".
7423         (avr_jump_mode): Likewise for param "insn".
7424         (avr_final_prescan_insn): Likewise.
7425         (avr_find_unused_d_reg): Likewise.
7426         (avr_out_lpm_no_lpmx): Likewise.
7427         (avr_out_lpm): Likewise.
7428         (avr_out_xload): Likewise.
7429         (output_movqi): Likewise.
7430         (output_movhi): Likewise.
7431         (out_movqi_r_mr): Likewise.
7432         (out_movhi_r_mr): Likewise.
7433         (out_movsi_r_mr): Likewise.
7434         (out_movsi_mr_r): Likewise.
7435         (output_movsisf): Likewise.
7436         (avr_out_load_psi): Likewise.
7437         (avr_out_store_psi): Likewise.
7438         (avr_out_movpsi): Likewise.
7439         (out_movqi_mr_r): Likewise.
7440         (avr_out_movhi_mr_r_xmega): Likewise.
7441         (out_movhi_mr_r): Likewise.
7442         (compare_condition): Likewise for param "insn" and local "next".
7443         (compare_sign_p): Likewise for param "insn".
7444         (compare_diff_p): Likewise.
7445         (compare_eq_p): Likewise.
7446         (avr_out_compare): Likewise.
7447         (avr_out_compare64): Likewise.
7448         (avr_out_tsthi): Likewise.
7449         (avr_out_tstpsi): Likewise.
7450         (avr_out_tstsi): Likewise.
7451         (out_shift_with_cnt): Likewise.
7452         (ashlqi3_out): Likewise.
7453         (ashlhi3_out): Likewise.
7454         (avr_out_ashlpsi3): Likewise.
7455         (ashlsi3_out): Likewise.
7456         (ashrqi3_out): Likewise.
7457         (ashrhi3_out): Likewise.
7458         (avr_out_ashrpsi3): Likewise.
7459         (ashrsi3_out): Likewise.
7460         (lshrqi3_out): Likewise.
7461         (lshrhi3_out): Likewise.
7462         (avr_out_lshrpsi3): Likewise.
7463         (lshrsi3_out): Likewise.
7464         (avr_out_fract): Likewise.
7465         (avr_out_round): Likewise.
7466         (avr_adjust_insn_length): Likewise.
7467         (reg_unused_after): Likewise.
7468         (_reg_unused_after): Likewise.
7469         (avr_compare_pattern): Likewise.
7470         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
7471         and locals "branch1", "branch2", "insn2", "jump".
7472         (avr_reorg): Likewise for local "insn".
7473         (avr_2word_insn_p): Likewise for param "insn".
7474         (jump_over_one_insn_p): Likewise.
7475         (avr_out_sbxx_branch): Likewise.
7476         (avr_out_movmem): Likewise.
7477
7478 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7479
7480         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
7481         param from rtx to rtx_insn *.
7482         (thumb1_final_prescan_insn): Likewise.
7483         (thumb2_final_prescan_insn): Likewise.
7484
7485         * config/arm/arm.c (emit_set_insn): Strengthen return type from
7486         rtx to rtx_insn *.
7487         (struct minipool_node): Likewise for field "insn".
7488         (dump_minipool): Likewise for param "scan".
7489         (create_fix_barrier): Likewise for local "from".  Strengthen local
7490         "label" from rtx to rtx_code_label *.
7491         (push_minipool_barrier): Strengthen param "insn" from rtx to
7492         rtx_insn *.
7493         (push_minipool_fix): Likewise.
7494         (note_invalid_constants): Likewise.
7495         (thumb2_reorg): Likewise for local "insn".
7496         (arm_reorg): Likewise.
7497         (thumb2_final_prescan_insn): Likewise for param
7498         "insn" and local "first_insn".
7499         (arm_final_prescan_insn): Likewise for param "insn" and locals
7500         "start_insn", "this_insn".
7501         (arm_debugger_arg_offset): Likewise for param "insn".
7502         (thumb1_emit_multi_reg_push): Likewise for return type and local
7503         "insn".
7504         (thumb1_final_prescan_insn): Likewise for param "insn".
7505         (thumb_far_jump_used_p): Likewise for local "insn".
7506         (thumb1_expand_prologue): Likewise.
7507         (arm_expand_epilogue_apcs_frame): Likewise.
7508         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
7509         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
7510         from rtx to rtx_code_label *.
7511         (arm_split_atomic_op): Likewise for local "label".
7512         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
7513
7514 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7515
7516         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
7517         first param from rtx to rtx_insn *.
7518         (arc_verify_short): Likewise.
7519         (arc_short_long): Likewise.
7520         (arc_need_delay): Likewise.
7521
7522         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
7523         "target_insn".
7524         (arc_ccfsm_advance): Likewise for param "insn" and locals
7525         "start_insn", "this_insn".
7526         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
7527         (arc_ccfsm_post_advance): Likewise for param "insn".
7528         (arc_next_active_insn): Likewise for return type and param "insn".
7529         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
7530         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
7531         (output_short_suffix): Likewise for local "insn".
7532         (arc_final_prescan_insn): Likewise for param "insn".  Remove
7533         now-redundant checked cast.
7534         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
7535         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
7536         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
7537         for use where lc_set became an insn.
7538         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
7539         rtx to rtx_insn *.
7540         (arc_get_insn_variants): Likewise for local "prev".
7541         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
7542         "next".
7543         (arc_predicate_delay_insns): Likewise for local "insn".
7544         (arc_pad_return): Likewise for local "prev".  For now, add a
7545         checked cast when extracting the insn from "final_sequence".
7546         (arc_short_long): Likewise for param "insn".
7547         (arc_need_delay): Likewise for param "insn" and local "next".
7548         (arc_label_align): Likewise for locals "prev", "next".
7549
7550 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7551
7552         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
7553         "insn" from rtx to rtx_insn *.
7554         (alpha_gp_save_rtx): Likewise for local "seq".
7555         (alpha_instantiate_decls): Likewise for local "top".
7556         (get_some_local_dynamic_name): Likewise for local "insn".
7557         (alpha_does_function_need_gp): Likewise.
7558         (set_frame_related_p): Likewise for return type and for locals
7559         "seq" and "insn".
7560         (emit_frame_store_1): Likewise for local "insn".
7561         (alpha_expand_prologue): Likewise for locals "insn", "seq".
7562         (alpha_end_function): Likewise for local "insn".
7563         (alpha_output_mi_thunk_osf): Likewise.
7564         (alphaev4_insn_pipe): Likewise for param "insn".
7565         (alphaev5_insn_pipe): Likewise.
7566         (alphaev4_next_group): Likewise for return type and param 1
7567         "insn".
7568         (alphaev5_next_group): Likewise.
7569         (alpha_align_insns_1): Likewise for return type and param 1 of
7570         callback param "next_group", and for locals "i", "next", "prev",
7571         "where", "where2", "insn".
7572
7573 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
7574
7575         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
7576         rather than modifying the stmt.
7577
7578 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7579
7580         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
7581         cgraph_state conversion.
7582
7583 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
7584
7585         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7586         Strengthen local "insns" from rtx to rtx_insn *.
7587         (aarch64_set_frame_expr): Likewise for local "insn".
7588         (aarch64_save_or_restore_fprs): Likewise.
7589         (aarch64_save_or_restore_callee_save_registers): Likewise.
7590         (aarch64_expand_prologue): Likewise.
7591         (aarch64_expand_epilogue): Likewise.
7592         (aarch64_output_mi_thunk): Likewise.
7593         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
7594         "label2" from rtx to rtx_code_label *.
7595         (aarch64_split_atomic_op): Likewise for local "label".
7596
7597 2014-08-25  Martin Liska  <mliska@suse.cz>
7598
7599         * cgraph.h (symtab_node):
7600         (bool needed_p (void)): created from decide_is_symbol_needed
7601         (bool referred_to_p (void)): created from referred_to_p
7602         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
7603         * cgraph.h (cgraph_node):
7604         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
7605         (void expand (void)): created from expand_function
7606         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
7607         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
7608         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
7609         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
7610         * cgraph.h (varpool_node):
7611         (static void add (tree decl): created from varpool_add_new_variable
7612         * cgraph.h (cgraph_edge):
7613         void remove (void);
7614         (void remove_caller (void)): created from cgraph_edge_remove_caller
7615         (void remove_callee (void)): created from cgraph_edge_remove_callee
7616         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
7617           created from cgraph_set_call_stmt
7618         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
7619         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
7620         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
7621           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
7622         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
7623           created from cgraph_speculative_call_info
7624         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
7625           int freq_scale, bool update_original)): created from cgraph_clone_edge
7626         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
7627         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
7628         (bool recursive_p (void)): created from cgraph_edge_recursive_p
7629         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
7630         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
7631         (static void rebuild_references (void)): created from cgraph_rebuild_references
7632         * cgraph.h (symbol_table):
7633         (create_reference): renamed from add_reference
7634         (maybe_create_reference): renamed from maybe_add_reference
7635         (void register_symbol (symtab_node *node)): new function
7636         (void clear_asm_symbols (void)): new function
7637         (void unregister (symtab_node *node)): new function
7638         (void release_symbol (cgraph_node *node, int uid)): new function
7639         (cgraph_node * allocate_cgraph_symbol (void)): new function
7640         (void initialize (void)): created from cgraph_init
7641         (symtab_node *first_symbol (void)):new function
7642         (asm_node *first_asm_symbol (void)):new function
7643         (symtab_node *first_defined_symbol (void)):new function
7644         (varpool_node *first_variable (void)):new function
7645         (varpool_node *next_variable (varpool_node *node)):new function
7646         (varpool_node *first_static_initializer (void)):new function
7647         (varpool_node *next_static_initializer (varpool_node *node)):new function
7648         (varpool_node *first_defined_variable (void)):new function
7649         (varpool_node *next_defined_variable (varpool_node *node)):new function
7650         (cgraph_node *first_defined_function (void)):new function
7651         (cgraph_node *next_defined_function (cgraph_node *node)):new function
7652         (cgraph_node *first_function (void)):new function
7653         (cgraph_node *next_function (cgraph_node *node)):new function
7654         (cgraph_node *first_function_with_gimple_body (void)):new function
7655         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
7656         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
7657           created from symtab_remove_unreachable_nodes
7658         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
7659         (void process_new_functions (void)): created from cgraph_process_new_functions
7660         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
7661         (bool output_variables (void)): created from varpool_node::output_variables
7662         (void output_asm_statements (void)): created from output_asm_statements
7663         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
7664         (void compile (void)): created from compile
7665         (void output_weakrefs (void)): created from output_weakrefs
7666         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
7667         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
7668           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
7669         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
7670         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
7671           created from cgraph_next_function_with_gimple_body
7672         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
7673           created from cgraph_remove_edge_removal_hook
7674         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
7675           created from cgraph_add_node_removal_hook
7676         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
7677           created from cgraph_remove_node_removal_hook
7678         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
7679           created from varpool_add_node_removal_hook
7680         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
7681           created from varpool_remove_node_removal_hook
7682         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
7683           created from cgraph_add_function_insertion_hook
7684         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
7685           created from cgraph_remove_function_insertion_hook
7686         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
7687           created from varpool_add_variable_insertion_hook
7688         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
7689           created from varpool_remove_variable_insertion_hook
7690         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
7691           created from cgraph_add_edge_duplication_hook
7692         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
7693           created from cgraph_remove_edge_duplication_hook
7694         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
7695           created from cgraph_add_node_duplication_hook
7696         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
7697           created from cgraph_remove_node_duplication_hook
7698         (void call_edge_removal_hooks (cgraph_edge *e)):
7699           created from cgraph_call_edge_removal_hooks
7700         (void call_cgraph_insertion_hooks (cgraph_node *node)):
7701           created from call_function_insertion_hooks 
7702         (void call_cgraph_removal_hooks (cgraph_node *node)):
7703           created from cgraph_call_node_removal_hooks 
7704         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
7705           created from cgraph_node::call_duplication_hooks 
7706         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
7707           created from cgraph_call_edge_duplication_hooks
7708         (void call_varpool_removal_hooks (varpool_node *node)):
7709           created from varpool_call_node_removal_hooks
7710         (void call_varpool_insertion_hooks (varpool_node *node)):
7711           created from varpool_call_variable_insertion_hooks
7712         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
7713           created from insert_to_assembler_name_hash
7714         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
7715           created from unlink_from_assembler_name_hash
7716         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
7717           created from symtab_prevail_in_asm_name_hash
7718         (void symtab_initialize_asm_name_hash (void)):
7719           created from symtab_initialize_asm_name_hash
7720         (void change_decl_assembler_name (tree decl, tree name)):
7721           created from change_decl_assembler_name
7722         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
7723         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
7724           created from decl_assembler_name_hash
7725         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
7726           created from decl_assembler_name_equal
7727         (static hashval_t hash_node_by_assembler_name (const void *p)):
7728           created from hash_node_by_assembler_name
7729         (static int eq_assembler_name (const void *p1, const void *p2)):
7730           created from eq_assembler_name
7731
7732 2014-08-25  Marek Polacek  <polacek@redhat.com>
7733
7734         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
7735
7736 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
7737
7738         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
7739         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
7740         SWI1248_AVX512BW mode iterator.
7741
7742 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7743
7744         PR target/62111
7745         * config/sh/predicates.md (general_extend_operand): Disable
7746         TRUNCATE before reload completes.
7747
7748 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
7749
7750         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
7751
7752 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
7753
7754         PR target/61996
7755         * config/sh/sh.opt (musermode): Allow negative form.
7756         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
7757         targets that don't support it.
7758         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
7759         Document -mno-usermode option.
7760
7761 2014-08-24  Kito Cheng  <kito@0xlab.org>
7762
7763         * system.h (CALLER_SAVE_PROFITABLE): Poison.
7764         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
7765         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
7766         * doc/tm.texi: Regenerate.
7767
7768 2014-08-24  Kito Cheng  <kito@0xlab.org>
7769
7770         * ira.c: Fix typo in comment.
7771
7772 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
7773
7774         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
7775         Deprecate c++1y. Change language to reflect greater confidence in C++14.
7776
7777 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
7778
7779         PR target/62038
7780         * config/pa/pa.c (pa_output_function_epilogue): Don't set
7781         last_address when the current function is a thunk.
7782         (pa_asm_output_mi_thunk): When we don't have named sections or they
7783         are not being used, check that thunk can reach the stub table with a
7784         short branch.
7785
7786 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7787
7788         * web.c (union_match_dups): Strengthen param "insn" from rtx to
7789         rtx_insn *.
7790         (pass_web::execute): Likewise for local "insn".
7791
7792 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7793
7794         * var-tracking.c (struct micro_operation_def): Strengthen field
7795         "insn" from rtx to rtx_insn *.
7796         (struct emit_note_data_def): Likewise.
7797         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
7798         (vt_stack_adjustments): Likewise for local "insn".
7799         (adjust_insn): Likewise for param "insn".
7800         (val_store): Likewise.
7801         (val_resolve): Likewise.
7802         (struct count_use_info): Likewise for field "insn".
7803         (log_op_type): Likewise for param "insn".
7804         (reverse_op): Likewise.
7805         (prepare_call_arguments): Likewise.
7806         (add_with_sets):  The initial param takes an insn, but we can't
7807         yet strengthen it from rtx to rtx_insn * since it's used as a
7808         cselib_record_sets_hook callback.  For now rename initial param
7809         from "insn" to "uncast_insn", and introduce a local "insn" of
7810         the stronger rtx_insn * type, with a checked cast.
7811         (compute_bb_dataflow): Strengthen local "insn" from rtx to
7812         rtx_insn *.
7813         (emit_note_insn_var_location): Likewise.
7814         (emit_notes_for_changes): Likewise.
7815         (emit_notes_for_differences): Likewise.
7816         (next_non_note_insn_var_location): Likewise for return type and
7817         for param "insn".
7818         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
7819         (vt_initialize): Likewise for local "insn".
7820         (delete_debug_insns): Likewise for locals "insn" and "next".
7821
7822 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7823
7824         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
7825         rtx_insn *.
7826         (mark_constant_pool): Likewise for local "insn".
7827
7828 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7829
7830         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
7831         rtx to rtx_insn *.
7832         (dead_debug_promote_uses): Likewise.
7833         (dead_debug_insert_temp): Likewise.
7834
7835 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
7836
7837         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
7838         from const_rtx to const rtx_insn *.
7839         (store_killed_after): Likewise.  Strengthen locals "last", "act"
7840         from rtx to rtx_insn *.
7841         (store_killed_before): Strengthen param "insn" from const_rtx to
7842         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
7843         (find_moveable_store): Strengthen param "insn" from rtx to
7844         rtx_insn *.
7845         (compute_store_table): Likewise for local "insn".
7846         (insert_insn_start_basic_block): Likewise for param "insn" and
7847         locals "prev", "before", "insn".
7848         (insert_store): For now, add a checked cast to rtx_insn * on the
7849         result of gen_move_insn.
7850         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
7851         to rtx_insn *.
7852         (replace_store_insn): Likewise.  For now, add a checked cast to
7853         rtx_insn * on the result of gen_move_insn.
7854
7855 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7856
7857         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
7858         rtx_insn *.
7859         (expand_sjlj_dispatch_table): Likewise.
7860
7861 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7862
7863         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
7864         "insn" from rtx to rtx_insn *.
7865
7866 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7867
7868         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
7869         "insn" from rtx to rtx_insn *.
7870         (dup_block_and_redirect): Likewise for param 3 "before".
7871
7872         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
7873         from rtx to rtx_insn *.
7874         (move_insn_for_shrink_wrap): Likewise.
7875         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
7876         (dup_block_and_redirect): Likewise for param "before" and local
7877         "insn".
7878         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
7879         "end".
7880         (convert_to_simple_return): Likewise for local "start".
7881
7882         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
7883         Strengthen local "insn" from rtx to rtx_insn *, for use when
7884         invoking requires_stack_frame_p.
7885
7886 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7887
7888         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
7889         rtx_insn *.
7890         (speculate_expr): Likewise for locals "orig_insn_rtx",
7891         "spec_insn_rtx".
7892         (eq_transformed_insns): Likewise for locals "i1", "i2".
7893         (check_for_new_jump): Likewise for return type and local "end".
7894         (find_new_jump): Likewise for return type and local "jump".
7895         (sel_split_edge): Likewise for local "jump".
7896         (sel_create_recovery_block): Likewise.
7897         (sel_redirect_edge_and_branch_force): Likewise.
7898         (sel_redirect_edge_and_branch): Likewise.
7899
7900 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7901
7902         * sel-sched.c (substitute_reg_in_expr): Strengthen local
7903         "new_insn" from rtx to rtx_insn *.
7904         (create_insn_rtx_with_rhs): Likewise for return type and for local
7905         "insn_rtx".
7906         (create_insn_rtx_with_lhs): Likewise.
7907         (create_speculation_check): Likewise for local "insn_rtx".
7908         (implicit_clobber_conflict_p): Likewise for local "insn".
7909         (get_expr_cost): Likewise.
7910         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
7911         (move_cond_jump): Likewise for locals "next", "prev", "link",
7912         "head", "from", "to".
7913
7914 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7915
7916         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
7917         "next" from rtx to rtx_insn *.
7918         (find_conditional_protection): Likewise for local "next".
7919         (is_conditionally_protected): Likewise for local "insn1".
7920         (is_pfree): Likewise for locals "insn1", "insn2".
7921
7922 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7923
7924         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
7925         from rtx to rtx_insn *.
7926
7927         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
7928         locals "insn1", "insn2" from rtx to rtx_insn *.
7929         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
7930         locals "insn", "prev", "last_jump", "next_tail".
7931         (schedule_ebb): Likewise for params "head", "tail".
7932         (schedule_ebbs): Likewise for locals "tail", "head".
7933
7934         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
7935         to rtx_insn on "last_insn" in one of the invocations of
7936         schedule_ebb.
7937
7938 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7939
7940         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
7941         "elem", "insn" from rtx to rtx_insn *.
7942         (change_spec_dep_to_hard): Likewise.
7943         (get_back_and_forw_lists): Likewise for local "con".
7944         (sd_add_dep): Likewise for locals "elem", "insn".
7945         (sd_resolve_dep): Likewise for locals "pro", "con".
7946         (sd_unresolve_dep): Likewise.
7947         (sd_delete_dep): Likewise.
7948         (chain_to_prev_insn): Likewise for local "pro".
7949         (find_inc): Likewise for locals "pro", "con".
7950
7951 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7952
7953         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
7954         to rtx_insn *.
7955         (reg_set_between_p): Strengthen local "insn" from const_rtx to
7956         const rtx_insn *.
7957         (modified_between_p): Strengthen local "insn" from rtx to
7958         rtx_insn *.
7959         (remove_reg_equal_equiv_notes_for_regno): Likewise.
7960         (keep_with_call_p): Strengthen local "i2" from const_rtx to
7961         const rtx_insn *.
7962
7963 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7964
7965         * resource.c (next_insn_no_annul): Strengthen local "next" from
7966         rtx to rtx_insn *.
7967         (mark_referenced_resources): Likewise for local "insn".
7968
7969 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
7970
7971         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
7972         to rtx_insn *.
7973         (find_reloads): Likewise for param 1.
7974         (subst_reloads): Likewise for sole param.
7975         (find_equiv_reg): Likwise for param 2.
7976         (regno_clobbered_p): Likwise for param 2.
7977         (reload): Likewise for param 1.
7978
7979         * caller-save.c (save_call_clobbered_regs): Strengthen local
7980         "insn" from rtx to rtx_insn *.
7981         (insert_one_insn): Likewise for local "insn".
7982
7983         * reload.c (this_insn): Likewise for this global.
7984         (find_reloads): Likewise for param "insn".
7985         (find_reloads_toplev): Likewise.
7986         (find_reloads_address): Likewise.
7987         (subst_reg_equivs): Likewise.
7988         (update_auto_inc_notes): Likewise.
7989         (find_reloads_address_1): Likewise.
7990         (find_reloads_subreg_address): Likewise.
7991         (subst_reloads): Likewise.
7992         (find_equiv_reg): Likewise, also for local "p".
7993         (regno_clobbered_p): Likewise for param "insn".
7994
7995         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
7996         array.
7997         (spill_reg_store): Likewise for the elements of this array.
7998         (remove_init_insns): Likewise for local "equiv_insn".
7999         (will_delete_init_insn_p): Likewise for param "insn".
8000         (reload): Likewise for param ""first" and local "insn".
8001         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
8002         rtx_insn *.
8003         (calculate_elim_costs_all_insns): Likewise.
8004         (delete_caller_save_insns): Likewise.
8005         (spill_failure): Likewise for param "insn".
8006         (delete_dead_insn): Likewise.
8007         (set_label_offsets): Likewise.
8008         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
8009         "prev_insn".
8010         (elimination_costs_in_insn): Likewise for param "insn".
8011         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
8012         when referring to an insn.
8013         (set_initial_label_offsets): Likewise.
8014         (set_offsets_for_label): Strengthen param "insn" from rtx to
8015         rtx_insn *.
8016         (init_eliminable_invariants): Likewise for param "first" and local
8017         "insn".
8018         (fixup_eh_region_note): Likewise for param "insn".
8019         (reload_as_needed): Likewise for locals "prev", "insn",
8020         "old_next", "old_prev", "next".
8021         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
8022         "last".
8023         (reload_inheritance_insn): Strengthen elements of this array from
8024         rtx to rtx_insn *.
8025         (failed_reload): Likewise for param "insn".
8026         (choose_reload_regs): Likewise for local "insn".  Replace use of
8027         NULL_RTX with NULL when referring to an insn.
8028         (input_reload_insns): Strengthen elements of this array from rtx
8029         to rtx_insn *.
8030         (other_input_address_reload_insns): Likewise for this global.
8031         (other_input_reload_insns): Likewise for this global.
8032         (input_address_reload_insns): Likwise for the elements of this
8033         array.
8034         (inpaddr_address_reload_insns): Likwise for the elements of this
8035         array.
8036         (output_reload_insns): Likewise for the elements of this array.
8037         (output_address_reload_insns): Likewise for the elements of this
8038         array.
8039         (outaddr_address_reload_insns): Likewise for the elements of this
8040         array.
8041         (operand_reload_insns): Likewise for this global.
8042         (other_operand_reload_insns): Likewise for this global.
8043         (other_output_reload_insns): Likewise for the elements of this
8044         array.
8045         (new_spill_reg_store): Likewise for the elements of this
8046         array.
8047         (emit_input_reload_insns): Likewise for locals "insn", "temp".
8048         Strengthen local "where" from rtx * to rtx_insn **.
8049         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
8050         from rtx to rtx_insn *.
8051         (do_input_reload): Likewise for local "insn".
8052         (do_output_reload): Likewise for local "insn".
8053         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
8054         (emit_insn_if_valid_for_reload): Likewise for return type and local
8055         "last".  Add checked cast to rtx_insn when returning "insn" since
8056         this has been through emit_insn.
8057         (gen_reload): Strengthen return type and locals "last", "insn", "set"
8058         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
8059         returning "insn" since it's been through
8060         emit_insn_if_valid_for_reload at this point.
8061         (delete_output_reload): Strengthen param "insn" and locals
8062         "output_reload_insn", "i2" from rtx to rtx_insn *.
8063         (delete_address_reloads): Likewise for params "dead_insn",
8064         "current_insn" and locals "prev", "next".
8065         (delete_address_reloads_1): Likewise for params "dead_insn",
8066         "current_insn" and locals "prev", "i2".
8067         (inc_for_reload): Likewise for locals "last", "add_insn".
8068         (add_auto_inc_notes): Strengthen param "insn" from rtx to
8069         rtx_insn *.
8070
8071         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
8072         param of this duplicate of the prototype from reload.h
8073
8074 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8075
8076         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
8077         rtx to rtx_insn *.
8078         (regstat_bb_compute_calls_crossed): Likewise.
8079
8080 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8081
8082         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
8083         to rtx_insn *.
8084         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
8085         with an insn.
8086         (regrename_analyze): Strengthen local "insn" from rtx to
8087         rtx_insn *.
8088         (scan_rtx_reg): Likewise for param "insn".
8089         (scan_rtx_address): Likewise.
8090         (scan_rtx): Likewise.
8091         (restore_operands): Likewise.
8092         (record_out_operands): Likewise.
8093         (build_def_use): Likewise for local "insn".  Replace use of
8094         NULL_RTX with NULL when dealing with an insn.
8095
8096 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8097
8098         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
8099         * reginfo.c (reg_scan): Likewise, also for local "insn".
8100         (reg_scan_mark_refs): Likewise for param "insn".
8101         (init_subregs_of_mode): Likewise for local "insn".
8102
8103 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8104
8105         * regcprop.c (struct queued_debug_insn_change): Strengthen field
8106         "insn" from rtx to rtx_insn *.
8107         (replace_oldest_value_reg): Likewise for param "insn".
8108         (replace_oldest_value_addr): Likewise.
8109         (replace_oldest_value_mem): Likewise.
8110         (apply_debug_insn_changes): Likewise for local "last_insn".
8111         (copyprop_hardreg_forward_1): Likewise for local "insn".
8112
8113 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8114
8115         * reg-stack.c (next_flags_user): Strengthen return type and param
8116         "insn" from rtx to rtx_insn *.
8117         (straighten_stack): Likewise for param "insn".
8118         (check_asm_stack_operands): Likewise.
8119         (remove_regno_note): Likewise.
8120         (emit_pop_insn): Likewise for return type, param "insn", local
8121         "pop_insn".
8122         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
8123         "limit" from rtx to rtx_insn *.
8124         (swap_to_top): Likewise for param "insn".
8125         (move_for_stack_reg): Likewise.
8126         (move_nan_for_stack_reg): Likewise.
8127         (swap_rtx_condition): Likewise.
8128         (compare_for_stack_reg): Likewise.
8129         (subst_all_stack_regs_in_debug_insn): Likewise.
8130         (subst_stack_regs_pat): Likewise, and local "insn2".
8131         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
8132         rtx_insn *.
8133         (subst_stack_regs): Likewise.
8134         (change_stack): Likewise.
8135         (convert_regs_1): Likewise for locals "insn", "next".
8136
8137 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8138
8139         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
8140         rtx_insn *.
8141         (combine_set_extension): Likewise for param "curr_insn".
8142         (transform_ifelse): Likewise for param "def_insn".
8143         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
8144         from vec<rtx> * to vec<rtx_insn *> *.
8145         (is_cond_copy_insn): Likewise for param "insn".
8146         (struct ext_state): Strengthen the four vec fields from vec<rtx>
8147         to vec<rtx_insn *>.
8148         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
8149         local "def_insn" from rtx to rtx_insn *.
8150         (get_sub_rtx): Likewise for param "def_insn".
8151         (merge_def_and_ext): Likewise.
8152         (combine_reaching_defs): Likewise.
8153         (add_removable_extension): Likewise for param "insn".
8154         (find_removable_extensions): Likewise for local "insn".
8155         (find_and_remove_re): Likewise for locals "curr_insn" and
8156         "def_insn".  Strengthen locals "reinsn_del_list" and
8157         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
8158
8159 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8160
8161         * recog.c (split_insn): Strengthen param "insn" and locals
8162         "first", "last" from rtx to rtx_insn *.
8163         (split_all_insns): Likewise for locals "insn", "next".
8164         (split_all_insns_noflow): Likewise.
8165
8166 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8167
8168         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
8169         const rtx_insn *.
8170         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
8171         (debug_rtx_find): Likewise for param 1 "x".
8172
8173         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
8174         const_rtx to const rtx_insn *.  Likewise for local "insn".
8175         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
8176         (debug_rtx_find): Likewise for param 1 "x".
8177         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
8178         from const_rtx to const rtx_insn * within the appropriate cases of
8179         the switch statement.
8180
8181         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
8182         Strengthen local "insns" from rtx to rtx_insn * since this is
8183         passed to a call to debug_rtx_list.
8184
8185 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8186
8187         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
8188         to rtx_insn *.
8189
8190         * function.c (stack_protect_epilogue): Add checked cast to
8191         rtx_insn for now when invoking predict_insn_def.
8192
8193         * predict.c (predict_insn): Strengthen param "insn" from rtx to
8194         rtx_insn *.
8195         (predict_insn_def): Likewise.
8196         (rtl_predict_edge): Likewise for local "last_insn".
8197         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
8198         const rtx_insn *.
8199         (combine_predictions_for_insn): Strengthen param "insn" from rtx
8200         to rtx_insn *.
8201         (bb_estimate_probability_locally): Likewise for local "last_insn".
8202         (expensive_function_p): Likewise for local "insn".
8203
8204         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
8205         local "jmp", since this is used when invoking predict_insn_def.
8206
8207 2014-08-22  Marek Polacek  <polacek@redhat.com>
8208
8209         PR c++/62199
8210         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
8211
8212 2014-08-22  Marek Polacek  <polacek@redhat.com>
8213
8214         PR c/61271
8215         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
8216         a comparison in parens.
8217         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
8218         in parens.
8219
8220 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8221
8222         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
8223         rtx_insn *.
8224
8225         * cprop.c (fis_get_condition): Likewise.
8226
8227         * postreload.c (reload_cse_regs): Likewise for param "first".
8228         (reload_cse_simplify): Likewise for param "insn".
8229         (reload_cse_regs_1): Likewise for local "insn".
8230         (reload_cse_simplify_set): Likewise for param "insn".
8231         (reload_cse_simplify_operands): Likewise.
8232         (struct reg_use): Likewise for field "insn".
8233         (reload_combine_purge_insn_uses): Likewise for param "insn".
8234         (fixup_debug_insns): Likewise for params "from", "to" and local
8235         "insn".
8236         (try_replace_in_use): Likewise for local "use_insn".
8237         (reload_combine_recognize_const_pattern): Likewise for param
8238         "insn" and locals "add_moved_after_insn", "use_insn".
8239         (reload_combine_recognize_pattern): Likewise for param "insn" and
8240         local "prev".
8241         (reload_combine): Likewise for locals "insn", "prev".
8242         (reload_combine_note_use): Likewise for param "insn".
8243         (move2add_use_add2_insn): Likewise.
8244         (move2add_use_add3_insn): Likewise.
8245         (reload_cse_move2add): Likewise, also for local "next".
8246         (move2add_note_store): Likewise for local "insn".
8247
8248 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8249
8250         * postreload-gcse.c (struct occr): Strengthen field "insn" from
8251         rtx to rtx_insn *.
8252         (struct unoccr): Likewise.
8253         (struct modifies_mem): Likewise.
8254         (alloc_mem): Likewise for local "insn".
8255         (insert_expr_in_table): Likewise for param "insn".
8256         (dump_expr_hash_table_entry): Likewise for local "insn".
8257         (oprs_unchanged_p): Likewise for param "insn".
8258         (load_killed_in_block_p): Likewise for local "setter".
8259         (record_last_reg_set_info): Likewise for param "insn".
8260         (record_last_reg_set_info_regno): Likewise.
8261         (record_last_mem_set_info): Likewise.
8262         (record_last_set_info): Likewise for local "last_set_insn".
8263         (record_opr_changes): Likewise for param "insn".
8264         (hash_scan_set): Likewise.
8265         (compute_hash_table): Likewise for local "insn".
8266         (get_avail_load_store_reg): Likewise for param "insn".
8267         (eliminate_partially_redundant_load): Likewise, also for locals
8268         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
8269         RTX for insns.
8270         (eliminate_partially_redundant_loads): Likewise for local "insn".
8271
8272 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8273
8274         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
8275         rtx to rtx_insn *.
8276         (expand_binop): Likewise for locals "entry_last", "last", "insns"
8277         (expand_twoval_unop): Likewise for locals entry_last", "last".
8278         (expand_twoval_binop): Likewise.
8279         (expand_twoval_binop_libfunc): Likewise for local "insns".
8280         (widen_leading): Likewise for local "last".
8281         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
8282         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
8283         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
8284         (expand_parity): Likewise for locals "last" and "seq".
8285         (expand_ffs): Likewise for local "seq".  Strengthen local
8286         "nonzero_label" from rtx to rtx_code_label *.
8287         (expand_absneg_bit): Strengthen local "insns" from rtx to
8288         rtx_insn *.
8289         (expand_unop_direct): Likewise for local "last".
8290         (expand_unop): Likewise for locals "last", "insns".
8291         (expand_abs_nojump): Likewise for local "last".
8292         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
8293         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
8294         rtx_insn *.
8295         (expand_copysign_absneg): Strengthen local "label" from rtx to
8296         rtx_code_label *.
8297         (expand_copysign_bit): Strengthen local "insns" from rtx to
8298         rtx_insn *.
8299         (struct no_conflict_data): Likewise for fields "first", "insn".
8300         (emit_libcall_block_1): Likewise for param "insns" and locals
8301         "next", "last", "insn".
8302         (emit_libcall_block): For now, add a checked cast to rtx_insn *
8303         on "insns" when invoking emit_libcall_block_1.  Ultimately we
8304         want to strengthen insns itself.
8305         (prepare_cmp_insn): Strengthen local "last" from rtx to
8306         rtx_insn *.
8307         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
8308         (prepare_float_lib_cmp): Likewise for local "insns".
8309         (emit_conditional_move): Likewise for local "last".
8310         (emit_conditional_add): Likewise.
8311         (have_sub2_insn): Likewise for local "seq".
8312         (expand_float): Likewise for local "insns".  Strengthen locals
8313         "label", "neglabel" from rtx to rtx_code_label *.
8314         (expand_fix): Likewise for locals "last", "insn", "insns" (to
8315         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
8316         (expand_fixed_convert): Likewise for local "insns" (to
8317         rtx_insn *).
8318         (expand_sfix_optab): Likewise for local "last".
8319         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
8320         to rtx_code_label *.
8321         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
8322         from rtx to rtx_insn *.
8323         (expand_atomic_fetch_op): Likewise for local "insn".
8324         (maybe_legitimize_operand_same_code): Likewise for local "last".
8325         (maybe_legitimize_operands): Likewise.
8326
8327 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8328
8329         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
8330         "insn" from rtx to rtx_insn *.
8331         (ps_rtl_insn): Likewise for return type.
8332         (doloop_register_get): Likewise for params "head", "tail" and
8333         locals "insn", "first_insn_not_to_check".
8334         (schedule_reg_move): Likewise for local "this_insn".
8335         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
8336         of gen_move_insn for now.
8337         (reset_sched_times): Strengthen local "insn" from rtx to
8338         rtx_insn *.
8339         (permute_partial_schedule): Likewise.
8340         (duplicate_insns_of_cycles): Likewise for local "u_insn".
8341         (dump_insn_location): Likewise for param "insn".
8342         (loop_canon_p): Likewise for local "insn".
8343         (sms_schedule): Likewise.
8344         (print_partial_schedule): Likewise.
8345         (ps_has_conflicts): Likewise.
8346
8347 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8348
8349         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
8350         "tailp" from rtx * to rtx_insn **.
8351
8352         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
8353         from rtx to rtx_insn *.
8354         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
8355         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
8356         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
8357         rtx to rtx_insn *.
8358         * modulo-sched.c (const_iteration_count): Strengthen return type
8359         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
8360         use of NULL_RTX with NULL when working with insns.
8361         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
8362         to rtx_insn *.
8363         (sms_schedule): Likewise.
8364         * sched-rgn.c (init_ready_list): Likewise, also for locals
8365         "src_head" and "src_next_tail".
8366         (compute_block_dependences): Likewise.
8367         (free_block_dependencies): Likewise.
8368         (debug_rgn_dependencies): Likewise.
8369         (free_rgn_deps): Likewise.
8370         (compute_priorities): Likewise.
8371         (schedule_region): Likewise.
8372         * sel-sched.c (find_ebb_boundaries): Likewise.
8373
8374         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
8375         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
8376
8377 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8378
8379         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
8380         from rtx to rtx_insn *.
8381         (new_seginfo): Likewise for param "insn".
8382         (create_pre_exit): Likewise for locals "last_insn",
8383         "before_return_copy", "return_copy".
8384         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
8385         "mode_set".
8386
8387 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8388
8389         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
8390         from rtx to rtx_insn *.
8391         (lra_push_insn): Likewise for 1st param.
8392         (lra_push_insn_and_update_insn_regno_info): Likewise.
8393         (lra_pop_insn): Likewise for return type.
8394         (lra_invalidate_insn_data): Likewise for 1st param.
8395         (lra_set_insn_deleted): Likewise.
8396         (lra_delete_dead_insn): Likewise.
8397         (lra_process_new_insns): Likewise for first 3 params.
8398         (lra_set_insn_recog_data): Likewise for 1st param.
8399         (lra_update_insn_recog_data): Likewise.
8400         (lra_set_used_insn_alternative): Likewise.
8401         (lra_invalidate_insn_regno_info): Likewise.
8402         (lra_update_insn_regno_info): Likewise.
8403         (lra_former_scratch_operand_p): Likewise.
8404         (lra_eliminate_regs_1): Likewise.
8405         (lra_get_insn_recog_data): Likewise.
8406
8407         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
8408         rtx to rtx_insn *.
8409
8410         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
8411         "mv1" and "mv2".
8412         (substitute_within_insn): New.
8413         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
8414         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
8415         Replace call to "substitute" with call to substitute_within_insn.
8416
8417         * lra-constraints.c (curr_insn): Strengthen from rtx to
8418         rtx_insn *.
8419         (get_equiv_with_elimination): Likewise for param "insn".
8420         (match_reload): Strengthen params "before" and "after" from rtx *
8421         to rtx_insn **.
8422         (emit_spill_move): Likewise for return type.  Add a checked cast
8423         to rtx_insn * on result of gen_move_insn for now.
8424         (check_and_process_move): Likewise for local "before".  Replace
8425         NULL_RTX with NULL when referring to insns.
8426         (process_addr_reg): Strengthen params "before" and "after" from
8427         rtx * to rtx_insn **.
8428         (insert_move_for_subreg): Likewise.
8429         (simplify_operand_subreg): Strengthen locals "before" and "after"
8430         from rtx to rtx_insn *.
8431         (process_address_1): Strengthen params "before" and "after" from
8432         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
8433         rtx to rtx_insn *.
8434         (process_address): Strengthen params "before" and "after" from
8435         rtx * to rtx_insn **.
8436         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
8437         (curr_insn_transform): Strengthen locals "before" and "after"
8438         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
8439         to insns.
8440         (loc_equivalence_callback): Update cast of "data", changing
8441         resulting type from rtx to rtx_insn *.
8442         (substitute_pseudo_within_insn): New.
8443         (inherit_reload_reg): Strengthen param "insn" from rtx to
8444         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
8445         NULL when referring to insns.  Add a checked cast to rtx_insn *
8446         when using usage_insn to invoke lra_update_insn_regno_info.
8447         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
8448         likewise for locals "restore", "save".  Add checked casts to
8449         rtx_insn * when using usage_insn to invoke
8450         lra_update_insn_regno_info and lra_process_new_insns.  Replace
8451         NULL_RTX with NULL when referring to insns.
8452         (split_if_necessary): Strengthen param "insn" from rtx to
8453         rtx_insn *.
8454         (update_ebb_live_info): Likewise for params "head", "tail" and local
8455         "prev_insn".
8456         (get_last_insertion_point): Likewise for return type and local "insn".
8457         (get_live_on_other_edges): Likewise for local "last".
8458         (inherit_in_ebb): Likewise for params "head", "tail" and locals
8459         "prev_insn", "next_insn", "restore".
8460         (remove_inheritance_pseudos): Likewise for local "prev_insn".
8461         (undo_optional_reloads): Likewise for local "insn".
8462
8463         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
8464         "insn".
8465         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
8466         insns.
8467         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
8468         rtx_insn *.
8469         (spill_pseudos): Likewise for local "insn".
8470         (init_elimination): Likewise.
8471         (process_insn_for_elimination): Likewise for param "insn".
8472
8473         * lra-lives.c (curr_insn): Likewise.;
8474
8475         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
8476         (remove_pseudos): Likewise for param "insn".
8477         (spill_pseudos): Likewise for local "insn".
8478         (lra_final_code_change): Likewise for locals "insn", "curr".
8479
8480         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
8481         (lra_set_insn_deleted): Likewise.
8482         (lra_delete_dead_insn): Likewise, and for local "prev".
8483         (new_insn_reg): Likewise for param "insn".
8484         (lra_set_insn_recog_data): Likewise.
8485         (lra_update_insn_recog_data): Likewise.
8486         (lra_set_used_insn_alternative): Likewise.
8487         (get_insn_freq): Likewise.
8488         (invalidate_insn_data_regno_info): Likewise.
8489         (lra_invalidate_insn_regno_info): Likewise.
8490         (lra_update_insn_regno_info): Likewise.
8491         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
8492         vec<rtx_insn *>.
8493         (lra_push_insn_1): Strengthen param "insn" from rtx to
8494         rtx_insn *.
8495         (lra_push_insn): Likewise.
8496         (lra_push_insn_and_update_insn_regno_info): Likewise.
8497         (lra_pop_insn): Likewise for return type and local "insn".
8498         (push_insns): Likewise for params "from", "to", and local "insn".
8499         (setup_sp_offset): Likewise for params "from", "last" and locals
8500         "before", "insn".
8501         (lra_process_new_insns): Likewise for params "insn", "before",
8502         "after" and local "last".
8503         (struct sloc): Likewise for field "insn".
8504         (lra_former_scratch_operand_p): Likewise for param "insn".
8505         (remove_scratches): Likewise for locals "insn", "last".
8506         (check_rtl): Likewise for local "insn".
8507         (add_auto_inc_notes): Likewise for param "insn".
8508         (update_inc_notes): Likewise for local "insn".
8509         (lra): Replace NULL_RTX with NULL when referring to insn.
8510
8511 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8512
8513         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
8514         to rtx_insn *.
8515         (resolve_reg_notes): Likewise.
8516         (resolve_simple_move): Likewise for return type, param "insn", and
8517         locals "insns", "minsn".
8518         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
8519         (resolve_use): Likewise.
8520         (resolve_debug): Likewise.
8521         (find_decomposable_shift_zext): Likewise.
8522         (resolve_shift_zext): Likewise for return type, param "insn", and
8523         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
8524         (decompose_multiword_subregs): Likewise for local "insn",
8525         "orig_insn", "decomposed_shift", "end".
8526
8527 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8528
8529         * basic-block.h (basic_block split_edge_and_insert): Strengthen
8530         param "insns" from rtx to rtx_insn *.
8531
8532         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
8533         rtx to rtx_insn *.
8534         (struct iv_to_split): Likewise.
8535         (loop_exit_at_end_p): Likewise for local "insn".
8536         (split_edge_and_insert): Likewise for param "insns".
8537         (compare_and_jump_seq): Likewise for return type, param "cinsn",
8538         and locals "seq", "jump".
8539         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
8540         "branch_code"; update invocations of compare_and_jump_seq to
8541         eliminate NULL_RTX in favor of NULL.
8542         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
8543         rtx to rtx_insn *.
8544         (reset_debug_uses_in_loop): Likewise.
8545         (analyze_insn_to_expand_var): Likewise for param "insn".
8546         (analyze_iv_to_split_insn): Likewise.
8547         (analyze_insns_in_loop): Likewise for local "insn".
8548         (insert_base_initialization): Likewise for param
8549         "insn" and local "seq".
8550         (split_iv): Likewise for param "insn" and local "seq".
8551         (expand_var_during_unrolling): Likewise for param "insn".
8552         (insert_var_expansion_initialization): Likewise for local "seq".
8553         (combine_var_copies_in_loop_exit): Likewise.
8554         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
8555         "insn".
8556         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
8557         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
8558         "next".
8559
8560 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8561
8562         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
8563         rtx_insn *.
8564         (iv_analyze_result): Likewise.
8565         (iv_analyze_expr): Likewise.
8566         (biv_p): Likewise.
8567
8568         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
8569         local "def_insn" from rtx to rtx_insn *.
8570         (get_biv_step_1): Likewise for local "insn".
8571         (iv_analyze_expr): Likewise for param "insn".
8572         (iv_analyze_def): Likewise for local "insn".
8573         (iv_analyze_op): Likewise for param "insn".
8574         (iv_analyze): Likewise.
8575         (iv_analyze_result): Likewise.
8576         (biv_p): Likewise.
8577         (suitable_set_for_replacement): Likewise.
8578         (simplify_using_initial_values): Likewise for local "insn".
8579         (iv_number_of_iterations): Likewise for param "insn".
8580         (check_simple_exit): Add checked cast to rtx_insn when invoking
8581         iv_number_of_iterations for now (until get_condition is
8582         strengthened).
8583
8584         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
8585         "insn" from rtx to rtx_insn *.
8586         (analyze_insns_in_loop): Likewise for local "insn".
8587
8588 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8589
8590         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
8591         to rtx_insn *.
8592         (struct invariant): Likewise.
8593         (hash_invariant_expr_1): Likewise for param "insn".
8594         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
8595         (find_exits): Likewise for local "insn".
8596         (create_new_invariant): Likewise for param "insn".
8597         (check_dependencies): Likewise.
8598         (find_invariant_insn): Likewise.
8599         (record_uses): Likewise.
8600         (find_invariants_insn): Likewise.
8601         (find_invariants_bb): Likewise for local "insn".
8602         (get_pressure_class_and_nregs): Likewise for param "insn".
8603         (calculate_loop_reg_pressure): Likewise for local "insn".
8604
8605 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8606
8607         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
8608         to rtx_insn *.
8609         (add_test): Likewise for locals "seq", "jump".
8610         (doloop_modify): Likewise for locals "sequence", "jump_insn".
8611
8612 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8613
8614         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
8615         rtx_insn *.
8616         (rebuild_jump_labels_chain): Likewise for param "chain".
8617
8618         * cfgexpand.c (pass_expand::execute): Add checked cast to
8619         rtx_insn * when calling rebuild_jump_labels_chain in region where
8620         we know e->insns.r is non-NULL.
8621
8622         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
8623         rtx_insn *.
8624         (rebuild_jump_labels): Likewise.
8625         (rebuild_jump_labels_chain): Likewise for param "chain".
8626         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
8627         (init_label_info): Likewise for param "f".
8628         (maybe_propagate_label_ref): Likewise for params "jump_insn",
8629         "prev_nonjump_insn".
8630         (mark_all_labels): Likewise for param "f" and locals "insn",
8631         "prev_nonjump_insn".
8632
8633 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8634
8635         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
8636         from rtx to rtx_insn *insn.
8637         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
8638         (ira_add_allocno_copy): Likewise.
8639         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
8640         rtx to rtx_insn *.
8641         (ira_create_copy): Likewise.
8642         (ira_add_allocno_copy): Likewise.
8643         (create_bb_allocnos): Likewise for local "insn".
8644         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
8645         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
8646         process_regs_for_copy for rtx_insn * param.
8647         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
8648         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
8649         process_regs_for_copy for rtx_insn * param.
8650         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
8651         * ira-costs.c (record_reg_classes): Likewise for param "insn".
8652         (record_operand_costs): Likewise.
8653         (scan_one_insn): Likewise for return type, and for param "insn".
8654         (process_bb_for_costs): Likewise for local "insn".
8655         (process_bb_node_for_hard_reg_moves): Likewise.
8656         * ira-emit.c (struct move): Likewise for field "insn".
8657         (create_move): Eliminate use of NULL_RTX when dealing with an
8658         rtx_insn *.
8659         (emit_move_list): Strengthen return type and locals "result",
8660         "insn" from rtx to rtx_insn *insn.
8661         (emit_moves): Likewise for locals "insns", "tmp".
8662         (ira_emit): Likewise for local "insn".
8663         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
8664         "insn".
8665         (find_call_crossed_cheap_reg): Likewise.
8666         (process_bb_node_lives): Likewise for local "insn".
8667         * ira.c (decrease_live_ranges_number): Likewise.
8668         (compute_regs_asm_clobbered): Likewise.
8669         (build_insn_chain): Likewise.
8670         (find_moveable_pseudos): Likewise, also locals "def_insn",
8671         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
8672         to rtx_insn **.  Add a checked cast when assigning from
8673         "closest_use" into closest_uses array in a region where we know
8674         it's a non-NULL insn.
8675         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
8676         to rtx_insn *.
8677         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
8678         "last_interesting_insn", "uin".
8679         (move_unallocated_pseudos): Likewise for locals "def_insn",
8680         "move_insn", "newinsn".
8681
8682 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8683
8684         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
8685         Strengthen locals "done_label", "do_error" from rtx to
8686         rtx_code_label *.
8687         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
8688         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
8689         rtx_code_label *.
8690         (ubsan_expand_si_overflow_neg_check): Likewise for locals
8691         "done_label", "do_error" to rtx_code_label * and local  "last" to
8692         rtx_insn *.
8693         (ubsan_expand_si_overflow_mul_check): Likewise for locals
8694         "done_label", "do_error", "large_op0", "small_op0_large_op1",
8695         "one_small_one_large", "both_ops_large", "after_hipart_neg",
8696         "after_lopart_neg", "do_overflow", "hipart_different"  to
8697         rtx_code_label * and local  "last" to rtx_insn *.
8698
8699 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8700
8701         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
8702         "insn" and "move_insn" from rtx to rtx_insn *.
8703
8704 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8705
8706         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
8707         rtx_insn *.
8708         (cheap_bb_rtx_cost_p): Likewise.
8709         (first_active_insn): Likewise for return type and local "insn".
8710         (last_active_insn):  Likewise for return type and locals "insn",
8711         "head".
8712         (struct noce_if_info): Likewise for fields "jump", "insn_a",
8713         "insn_b".
8714         (end_ifcvt_sequence): Likewise for return type and locals "insn",
8715         "seq".
8716         (noce_try_move): Likewise for local "seq".
8717         (noce_try_store_flag): Likewise.
8718         (noce_try_store_flag_constants): Likewise.
8719         (noce_try_addcc): Likewise.
8720         (noce_try_store_flag_mask): Likewise.
8721         (noce_try_cmove): Likewise.
8722         (noce_try_minmax): Likewise.
8723         (noce_try_abs): Likewise.
8724         (noce_try_sign_mask): Likewise.
8725         (noce_try_bitop): Likewise.
8726         (noce_can_store_speculate_p): Likewise for local "insn".
8727         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
8728         seq".
8729         (check_cond_move_block): Likewise for local "insn".
8730         (cond_move_convert_if_block): Likewise.
8731         (cond_move_process_if_block): Likewise for locals "seq",
8732         "loc_insn".
8733         (noce_find_if_block): Likewise for local "jump".
8734         (merge_if_block): Likewise for local "last".
8735         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
8736         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
8737         (block_has_only_trap): Likewise for return type and local "trap".
8738         (find_if_case_1): Likewise for local "jump".
8739         (dead_or_predicable): Likewise for locals "head", "end", "jump",
8740         "insn".
8741
8742 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8743
8744         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
8745         "last_insn", "loop_end" from rtx to rtx_insn *.
8746
8747         * hw-doloop.c (scan_loop): Likewise for local "insn".
8748         (discover_loop): Likewise for param "tail_insn".
8749         (discover_loops): Likewise for local "tail".
8750
8751         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
8752         cast to rtx_insn * when assigning from an rtx local to a
8753         hwloop_info's "last_insn" field.
8754
8755 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8756
8757         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
8758         (add_delay_dependencies): Strengthen local "pro" from rtx to
8759         rtx_insn *.
8760         (recompute_todo_spec): Likewise.
8761         (dep_cost_1): Likewise for locals "insn", "used".
8762         (schedule_insn): Likewise for local "dbg".
8763         (schedule_insn): Likewise for locals "pro", "next".
8764         (unschedule_insns_until): Likewise for local "con".
8765         (restore_pattern): Likewise for local "next".
8766         (estimate_insn_tick): Likewise for local "pro".
8767         (resolve_dependencies): Likewise for local "next".
8768         (fix_inter_tick): Likewise.
8769         (fix_tick_ready): Likewise for local "pro".
8770         (add_to_speculative_block): Likewise for locals "check", "twin",
8771         "pro".
8772         (sched_extend_bb): Likewise for locals "end", "insn".
8773         (init_before_recovery): Likewise for local "x".
8774         (sched_create_recovery_block): Likewise for local "barrier".
8775         (create_check_block_twin): Likewise for local "pro".
8776         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
8777         "consumer".
8778         (unlink_bb_notes): Update for change to type of bb_header.
8779         Strengthen locals "prev", "label", "note", "next" from rtx to
8780         rtx_insn *.
8781         (clear_priorities): Likewise for local "pro".
8782
8783 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8784
8785         * gcse.c (struct occr): Strengthen field "insn" from rtx to
8786         rtx_insn *.
8787         (test_insn): Likewise for this global.
8788         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
8789         const rtx_insn *.
8790         (oprs_anticipatable_p): Likewise.
8791         (oprs_available_p): Likewise.
8792         (insert_expr_in_table): Strengthen param "insn" from  rtx to
8793         rtx_insn *.
8794         (hash_scan_set): Likewise.
8795         (hash_scan_clobber): Likewise.
8796         (hash_scan_call): Likewise.
8797         (hash_scan_insn): Likewise.
8798         (compute_hash_table_work): Likewise for local "insn".
8799         (process_insert_insn): Likewise for return type and local "pat".
8800         (insert_insn_end_basic_block): Likewise for locals "new_insn",
8801         "pat", "pat_end", "maybe_cc0_setter".
8802         (pre_edge_insert): Likewise for local "insn".
8803         (pre_insert_copy_insn): Likewise for param "insn".
8804         (pre_insert_copies): Likewise for local "insn".
8805         (struct set_data): Likewise for field "insn".
8806         (single_set_gcse): Likewise for param "insn".
8807         (gcse_emit_move_after): Likewise.
8808         (pre_delete): Likewise for local "insn".
8809         (update_bb_reg_pressure): Likewise for param "from" and local
8810         "insn".
8811         (should_hoist_expr_to_dom): Likewise for param "from".
8812         (hoist_code): Likewise for local "insn".
8813         (get_pressure_class_and_nregs): Likewise for param "insn".
8814         (calculate_bb_reg_pressure): Likewise for local "insn".
8815         (compute_ld_motion_mems): Likewise.
8816
8817 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8818
8819         * genpeep.c (main): Rename param back from "uncast_ins1" to
8820         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
8821         checked cast.
8822
8823         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
8824
8825 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
8826
8827         PR target/62195
8828         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
8829         documentation to state it is only for VSX operations.
8830
8831         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
8832         constraint only active if VSX.
8833
8834         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
8835         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
8836         (lfiwzx): Likewise.
8837
8838 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8839
8840         * fwprop.c (single_def_use_dom_walker::before_dom_children):
8841         Strengthen local "insn" from rtx to rtx_insn *.
8842         (use_killed_between): Likewise for param "target_insn".
8843         (all_uses_available_at): Likewise for param "target_insn" and
8844         local "next".
8845         (update_df_init): Likewise for params "def_insn", "insn".
8846         (update_df): Likewise for param "insn".
8847         (try_fwprop_subst): Likewise for param "def_insn" and local
8848         "insn".
8849         (free_load_extend): Likewise for param "insn".
8850         (forward_propagate_subreg): Likewise for param "def_insn" and
8851         local "use_insn".
8852         (forward_propagate_asm): Likewise for param "def_insn" and local
8853         "use_insn".
8854         (forward_propagate_and_simplify): Likewise for param "def_insn"
8855         and local "use_insn".
8856         (forward_propagate_into): Likewise for locals "def_insn" and
8857         "use_insn".
8858
8859 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8860
8861         * function.c (emit_initial_value_sets): Strengthen local "seq"
8862         from rtx to rtx_insn *.
8863         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
8864         local "seq".
8865         (instantiate_virtual_regs): Likewise for local "insn".
8866         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
8867         (reorder_blocks_1): Likewise for param "insns" and local "insn".
8868         (expand_function_end): Likewise for locals "insn" and "seq".
8869         (epilogue_done): Likewise for local "insn".
8870         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
8871         "last", "trial".
8872         (reposition_prologue_and_epilogue_notes): Likewise for locals
8873         "insn", "last", "note", "first".
8874         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
8875         (pass_match_asm_constraints::execute): Likewise for local "insn".
8876
8877 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8878
8879         * output.h (final_scan_insn): Strengthen return type from rtx to
8880         rtx_insn *.
8881         (final_forward_branch_p): Likewise for param.
8882         (current_output_insn): Likewise for this global.
8883
8884         * final.c (rtx debug_insn): Likewise for this variable.
8885         (current_output_insn): Likewise.
8886         (get_attr_length_1): Rename param "insn" to "uncast_insn",
8887         adding "insn" back in as an rtx_insn * with a checked cast, so
8888         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
8889         first param.
8890         (compute_alignments): Strengthen local "label" from rtx to
8891         rtx_insn *.
8892         (shorten_branches): Rename param from "first" to "uncast_first",
8893         introducing a new local rtx_insn * "first" using a checked cast to
8894         effectively strengthen "first" from rtx to rtx_insn * without
8895         affecting the type signature.  Strengthen locals "insn", "seq",
8896         "next", "label" from rtx to rtx_insn *.
8897         (change_scope): Strengthen param "orig_insn" and local "insn" from
8898         rtx to rtx_insn *.
8899         (final_start_function): Rename param from "first" to "uncast_first",
8900         introducing a new local rtx_insn * "first" using a checked cast to
8901         effectively strengthen "first" from rtx to rtx_insn * without
8902         affecting the type signature.  Strengthen local "insn" from rtx to
8903         rtx_insn *.
8904         (dump_basic_block_info): Strengthen param "insn" from rtx to
8905         rtx_insn *.
8906         (final): Rename param from "first" to "uncast_first",
8907         introducing a new local rtx_insn * "first" using a checked cast to
8908         effectively strengthen "first" from rtx to rtx_insn * without
8909         affecting the type signature.  Strengthen locals "insn", "next"
8910         from rtx to rtx_insn *.
8911         (output_alternate_entry_point): Strengthen param "insn" from rtx to
8912         rtx_insn *.
8913         (call_from_call_insn): Strengthen param "insn" from rtx to
8914         rtx_call_insn *.
8915         (final_scan_insn): Rename param from "insn" to "uncast_insn",
8916         introducing a new local rtx_insn * "insn" using a checked cast to
8917         effectively strengthen "insn" from rtx to rtx_insn * without
8918         affecting the type signature.  Strengthen return type and locals
8919         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
8920         now-redundant checked cast to rtx_insn * from both invocations of
8921         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
8922         introducing a local "call_insn" for use when invoking
8923         call_from_call_insn.
8924         (notice_source_line): Strengthen param "insn" from rtx to
8925         rtx_insn *.
8926         (leaf_function_p): Likewise for local "insn".
8927         (final_forward_branch_p): Likewise.
8928         (leaf_renumber_regs): Likewise for param "first".
8929         (rest_of_clean_state): Likewise for locals "insn" and "next".
8930         (self_recursive_call_p): Likewise for param "insn".
8931         (collect_fn_hard_reg_usage): Likewise for local "insn".
8932         (get_call_fndecl): Likewise for param "insn".
8933         (get_call_cgraph_rtl_info): Likewise.
8934         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
8935         introducing a new local rtx_insn * "insn" using a checked cast to
8936         effectively strengthen "insn" from rtx to rtx_insn * without
8937         affecting the type signature.
8938
8939         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
8940         cast when assigning from param "insn" to current_output_insn.
8941         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
8942         so that we can assign it back to current_output_insn.
8943
8944 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8945
8946         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
8947         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
8948         atmxt540s and atmxt540sreva devices.
8949         * config/avr/avr-tables.opt: Regenerate.
8950         * config/avr/t-multilib: Regenerate.
8951         * doc/avr-mmcu.texi: Regenerate.
8952
8953 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8954
8955         * expr.c (convert_move): Strengthen local "insns" from rtx to
8956         rtx_insn *.
8957         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
8958         "top_label" from rtx to rtx_code_label *.
8959         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
8960         rtx_insn *.
8961         (emit_single_push_insn): Likewise for locals "prev", "last".
8962         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
8963         to rtx_code_label *.
8964         (store_constructor): Likewise for locals "loop_start", "loop_end".
8965         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
8966         rtx_insn *.
8967         (expand_expr_real_2): Likewise.
8968         (expand_expr_real_1): Strengthen local "label" from rtx to
8969         rtx_code_label *.
8970
8971 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8972
8973         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
8974         from rtx to rtx_insn *.
8975         (store_bit_field_1): Likewise.
8976         (extract_bit_field_1): Likewise.
8977         (expand_mult_const): Likewise for local "insns".
8978         (expmed_mult_highpart): Strengthen local "label" from rtx to
8979         rtx_code_label *.
8980         (expand_smod_pow2): Likewise.
8981         (expand_sdiv_pow2): Likewise.
8982         (expand_divmod): Strengthen locals "last", "insn" from rtx to
8983         rtx_insn *.  Strengthen locals "label", "label1", "label2",
8984         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
8985         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
8986         (emit_store_flag): Likewise.
8987         (emit_store_flag_force): Strengthen local "label" from rtx to
8988         rtx_code_label *.
8989         (do_cmp_and_jump): Likewise for param "label".
8990
8991 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
8992
8993         * explow.c (force_reg): Strengthen local "insn" from rtx to
8994         rtx_insn *.
8995         (adjust_stack_1): Likewise.
8996         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
8997         "final_label", "available_label", "space_available" from rtx to
8998         rtx_code_label *.
8999         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
9000         (anti_adjust_stack_and_probe): Likewise.
9001
9002 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9003
9004         * except.h (sjlj_emit_function_exit_after): Strengthen param
9005         "after" from rtx to rtx_insn *.  This is only called with
9006         result of get_last_insn (in function.c) so type-change should be
9007         self-contained.
9008
9009         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
9010         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
9011         to rtx_insn *.  These fields are only used from except.c so this
9012         type-change should be self-contained to this patch.
9013
9014         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
9015         local "last" from rtx to rtx_insn *.
9016         (dw2_build_landing_pads): Likewise for local "seq".
9017         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
9018         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
9019         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
9020         rtx to rtx_insn *.
9021         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
9022         to rtx_insn *.
9023         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
9024         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
9025         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
9026         referring to an insn.  Strengthen local "dispatch_label" from
9027         rtx to rtx_code_label *.
9028         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
9029         rtx_insn *.
9030         (expand_eh_return): Strengthen local "around_label" from
9031         rtx to rtx_code_label *.
9032         (convert_to_eh_region_ranges): Strengthen locals "iter",
9033         "last_action_insn", "first_no_action_insn",
9034         "first_no_action_insn_before_switch",
9035         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
9036
9037 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9038
9039         * dwarf2out.c (last_var_location_insn): Strengthen this variable
9040         from rtx to rtx_insn *.
9041         (cached_next_real_insn): Likewise.
9042         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
9043         working with insns.
9044         (dwarf2out_var_location): Strengthen locals "next_real",
9045         "next_note", "expected_next_loc_note", "last_start", "insn" from
9046         rtx to rtx_insn *.
9047
9048 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9049
9050         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
9051         from rtx to rtx_insn *.
9052         (create_pseudo_cfg): Likewise for local "insn".
9053
9054 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9055
9056         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
9057         from rtx to rtx_insn *.
9058         (df_bb_regno_last_def_find): Likewise.
9059
9060         * df-problems.c (df_rd_bb_local_compute): Likewise.
9061         (df_lr_bb_local_compute): Likewise.
9062         (df_live_bb_local_compute): Likewise.
9063         (df_chain_remove_problem): Likewise.
9064         (df_chain_create_bb): Likewise.
9065         (df_word_lr_bb_local_compute): Likewise.
9066         (df_remove_dead_eq_notes): Likewise for param "insn".
9067         (df_note_bb_compute): Likewise for local "insn".
9068         (simulate_backwards_to_point): Likewise.
9069         (df_md_bb_local_compute): Likewise.
9070
9071         * df-scan.c (df_scan_free_bb_info): Likewise.
9072         (df_scan_start_dump): Likewise.
9073         (df_scan_start_block): Likewise.
9074         (df_install_ref_incremental): Likewise for local "insn".
9075         (df_insn_rescan_all): Likewise.
9076         (df_reorganize_refs_by_reg_by_insn): Likewise.
9077         (df_reorganize_refs_by_insn_bb): Likewise.
9078         (df_recompute_luids): Likewise.
9079         (df_bb_refs_record): Likewise.
9080         (df_update_entry_exit_and_calls): Likewise.
9081         (df_bb_verify): Likewise.
9082
9083 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9084
9085         * ddg.h (struct ddg_node): Strengthen fields "insn" and
9086         "first_note" from rtx to rtx_insn *.
9087         (get_node_of_insn): Likewise for param 2 "insn".
9088         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
9089
9090         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
9091         rtx_insn *.
9092         (mem_write_insn_p): Likewise.
9093         (mem_access_insn_p): Likewise.
9094         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
9095         (def_has_ccmode_p): Likewise for param "insn".
9096         (add_cross_iteration_register_deps): Likewise for locals
9097         "def_insn" and "use_insn".
9098         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
9099         (build_intra_loop_deps): Likewise for local "src_insn".
9100         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
9101         to rtx_insn *.
9102         (get_node_of_insn): Likewise for param "insn".
9103
9104 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9105
9106         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
9107         (deletable_insn_p): Strengthen param "insn" from rtx to
9108         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
9109         find_call_stack_args, since this is guarded by CALL_P (insn).
9110         (marked_insn_p): Strengthen param "insn" from rtx to
9111         rtx_insn *.
9112         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
9113         invoking find_call_stack_args, since this is guarded by
9114         CALL_P (insn).
9115         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
9116         rtx_insn *; we know this is an insn since this was called by
9117         mark_nonreg_stores.
9118         (mark_nonreg_stores_2): Likewise.
9119         (mark_nonreg_stores): Strengthen param "insn" from rtx to
9120         rtx_insn *.
9121         (find_call_stack_args): Strengthen param "call_insn" from rtx to
9122         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
9123         to rtx_insn *.
9124         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
9125         from rtx to rtx_insn *.
9126         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
9127         "next", "ref_insn".
9128         (delete_unmarked_insns): Likewise for locals "insn", "next".
9129         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
9130         (mark_reg_dependencies): Likewise for param "insn".
9131         (rest_of_handle_ud_dce): Likewise for local "insn".
9132         (word_dce_process_block): Likewise.
9133         (dce_process_block): Likewise.
9134
9135 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9136
9137         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
9138         from rtx to rtx_insn *.
9139         (struct change_cc_mode_args): Likewise for field "insn".
9140         (this_insn): Strengthen from rtx to rtx_insn *.
9141         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
9142         with insn.
9143         (validate_canon_reg): Strengthen param "insn" from rtx to
9144         rtx_insn *.
9145         (canon_reg): Likewise.
9146         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
9147         dealing with insn.
9148         (record_jump_equiv): Strengthen param "insn" from rtx to
9149         rtx_insn *.
9150         (try_back_substitute_reg): Likewise, also for locals "prev",
9151         "bb_head".
9152         (find_sets_in_insn): Likewise for param "insn".
9153         (canonicalize_insn): Likewise.
9154         (cse_insn): Likewise.  Add a checked cast.
9155         (invalidate_from_clobbers): Likewise for param "insn".
9156         (invalidate_from_sets_and_clobbers): Likewise.
9157         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
9158         dealing with insn.
9159         (cse_prescan_path): Strengthen local "insn" from rtx to
9160         rtx_insn *.
9161         (cse_extended_basic_block): Likewise for locals "insn" and
9162         "prev_insn".
9163         (cse_main): Likewise for param "f".
9164         (check_for_label_ref): Likewise for local "insn".
9165         (set_live_p): Likewise for second param ("insn").
9166         (insn_live_p): Likewise for first param ("insn") and for local
9167         "next".
9168         (cse_change_cc_mode_insn): Likewise for first param "insn".
9169         (cse_change_cc_mode_insns): Likewise for first and second params
9170         "start" and "end".
9171         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
9172         and "end".
9173         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
9174         "cc_src_insn".
9175
9176 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9177             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9178             Anna Tikhonova  <anna.tikhonova@intel.com>
9179             Ilya Tocar  <ilya.tocar@intel.com>
9180             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9181             Ilya Verbin  <ilya.verbin@intel.com>
9182             Kirill Yukhin  <kirill.yukhin@intel.com>
9183             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9184
9185         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
9186         New.
9187         * config/i386/sse.md
9188         (define_mode_iterator VI248_AVX2): Delete.
9189         (define_mode_iterator VI2_AVX2_AVX512BW): New.
9190         (define_mode_iterator VI48_AVX2): Ditto.
9191         (define_insn <shift_insn><mode>3): Delete.
9192         (define_insn "<shift_insn><mode>3<mask_name>" with
9193         VI2_AVX2_AVX512BW): New.
9194         (define_insn "<shift_insn><mode>3<mask_name>" with
9195         VI48_AVX2): Ditto.
9196
9197 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9198             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9199             Anna Tikhonova  <anna.tikhonova@intel.com>
9200             Ilya Tocar  <ilya.tocar@intel.com>
9201             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9202             Ilya Verbin  <ilya.verbin@intel.com>
9203             Kirill Yukhin  <kirill.yukhin@intel.com>
9204             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9205
9206         * config/i386/sse.md
9207         (define_mode_iterator VI4F_BRCST32x2): New.
9208         (define_mode_attr 64x2_mode): Ditto.
9209         (define_mode_attr 32x2mode): Ditto.
9210         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
9211         with VI4F_BRCST32x2): Ditto.
9212         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
9213         with V16FI mode iterator): Ditto.
9214         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9215         with V16FI): Ditto.
9216         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
9217         with VI8F_BRCST64x2): Ditto.
9218
9219 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9220             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9221             Anna Tikhonova  <anna.tikhonova@intel.com>
9222             Ilya Tocar  <ilya.tocar@intel.com>
9223             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9224             Ilya Verbin  <ilya.verbin@intel.com>
9225             Kirill Yukhin  <kirill.yukhin@intel.com>
9226             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9227
9228         * config/i386/sse.md
9229         (define_mode_iterator VI8_AVX512VL): New.
9230         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
9231
9232 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9233
9234         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
9235         (define_mode_iterator V48_AVX512VL): New.
9236         (define_mode_iterator V12_AVX512VL): Ditto.
9237         (define_insn <avx512>_load<mode>_mask): Split into two similar
9238         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
9239         Refactor output template.
9240         (define_insn "<avx512>_store<mode>_mask"): Ditto.
9241
9242 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9243
9244         * cprop.c (struct occr): Strengthen field "insn" from rtx to
9245         rtx_insn *.
9246         (reg_available_p): Likewise for param "insn".
9247         (insert_set_in_table): Likewise.
9248         (hash_scan_set): Likewise.
9249         (hash_scan_insn): Likewise.
9250         (make_set_regs_unavailable): Likewise.
9251         (compute_hash_table_work): Likewise for local "insn".
9252         (reg_not_set_p): Strengthen param "insn" from const_rtx to
9253         const rtx_insn *.
9254         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
9255         (try_replace_reg): Likewise.
9256         (find_avail_set): Likewise.
9257         (cprop_jump): Likewise for params "setcc", "jump".
9258         (constprop_register): Likewise for param "insn".
9259         (cprop_insn): Likewise.
9260         (do_local_cprop): Likewise.
9261         (local_cprop_pass): Likewise for local "insn".
9262         (bypass_block): Likewise for params "setcc" and "jump".
9263         (bypass_conditional_jumps): Likewise for locals "setcc" and
9264         "insn".
9265         (one_cprop_pass): Likewise for local "insn".
9266
9267 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9268
9269         * compare-elim.c (struct comparison_use): Strengthen field "insn"
9270         from rtx to rtx_insn *.
9271         (struct comparison): Likewise, also for field "prev_clobber".
9272         (conforming_compare): Likewise for param "insn".
9273         (arithmetic_flags_clobber_p): Likewise.
9274         (find_flags_uses_in_insn): Likewise.
9275         (find_comparison_dom_walker::before_dom_children): Likewise for
9276         locals "insn", "next", "last_clobber".
9277         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
9278
9279 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
9280
9281         * combine-stack-adj.c (struct csa_reflist): Strengthen field
9282         "insn" from rtx to rtx_insn *.
9283         (single_set_for_csa): Likewise for param "insn".
9284         (record_one_stack_ref): Likewise.
9285         (try_apply_stack_adjustment): Likewise.
9286         (struct record_stack_refs_data): Likewise for field "insn".
9287         (maybe_move_args_size_note): Likewise for params "last" and "insn".
9288         (prev_active_insn_bb): Likewise for return type and param "insn".
9289         (next_active_insn_bb): Likewise.
9290         (force_move_args_size_note): Likewise for params "prev" and "last"
9291         and locals "test", "next_candidate", "prev_candidate".
9292         (combine_stack_adjustments_for_block): Strengthen locals
9293         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
9294         rtx_insn *.
9295
9296 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9297
9298         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
9299         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
9300         (subst_insn): Likewise for this variable.
9301         (added_links_insn): Likewise.
9302         (struct insn_link): Likewise for field "insn".
9303         (alloc_insn_link): Likewise for param "insn".
9304         (struct undobuf): Likewise for field "other_insn".
9305         (find_single_use): Likewise for param "insn" and local "next".
9306         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
9307         (delete_noop_moves): Likewise for locals "insn", "next".
9308         (create_log_links): Likewise for locals "insn", "use_insn".
9309         Strengthen local "next_use" from rtx * to rtx_insn **.
9310         (insn_a_feeds_b): Likewise for params "a", "b".
9311         (combine_instructions): Likewise for param "f" and locals "insn",
9312         "next", "prev", "first", "last_combined_insn", "link", "link1",
9313         "temp".  Replace use of NULL_RTX with NULL when referring to
9314         insns.
9315         (setup_incoming_promotions): Likewise for param "first"
9316         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
9317         (can_combine_p): Likewise for params "insn", "i3", "pred",
9318         "pred2", "succ", "succ2" and for local "p".
9319         (combinable_i3pat): Likewise for param "i3".
9320         (cant_combine_insn_p): Likewise for param "insn".
9321         (likely_spilled_retval_p): Likewise.
9322         (adjust_for_new_dest): Likewise.
9323         (update_cfg_for_uncondjump): Likewise, also for local "insn".
9324         (try_combine): Likewise for return type and for params "i3", "i2",
9325         "i1", "i0", "last_combined_insn", and for locals "insn",
9326         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
9327         "i0_insn".  Eliminate local "tem" in favor of new locals
9328         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
9329         checked cast for now to rtx_insn * on the return type of
9330         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
9331         insns.
9332         (find_split_point): Strengthen param "insn" from rtx to
9333         rtx_insn *.
9334         (simplify_set): Likewise for local "other_insn".
9335         (recog_for_combine): Likewise for param "insn".
9336         (record_value_for_reg): Likewise.
9337         (record_dead_and_set_regs_1): Likewise for local
9338         "record_dead_insn".
9339         (record_dead_and_set_regs): Likewise for param "insn".
9340         (record_promoted_value): Likewise.
9341         (check_promoted_subreg): Likewise.
9342         (get_last_value_validate): Likewise.
9343         (reg_dead_at_p): Likewise.
9344         (move_deaths): Likewise for param "to_insn".
9345         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
9346         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
9347         in favor of new locals "tem_note" and "tem_insn", the latter being
9348         an rtx_insn *.
9349         (distribute_links): Strengthen locals "place", "insn" from rtx to
9350         rtx_insn *.
9351
9352 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9353
9354         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
9355         than a const_rtx.
9356         (can_delete_label_p): Require a const rtx_code_label * rather than
9357         a const_rtx.
9358         (delete_insn): Add checked cast to rtx_code_label * when we know
9359         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
9360         rtx to rtx_insn *.
9361         (delete_insn_chain): Strengthen locals "prev" and "current" from
9362         rtx to rtx_insn *.  Add a checked cast when assigning from
9363         "finish" (strengthening the params will come later).  Add a
9364         checked cast to rtx_note * in region where we know
9365         NOTE_P (current).
9366         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
9367         rtx_insn *.
9368         (compute_bb_for_insn): Likewise.
9369         (free_bb_for_insn): Likewise for local "insn".
9370         (compute_bb_for_insn): Likewise.
9371         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
9372         local "insn" from rtx to rtx_insn *
9373         (flow_active_insn_p): Require a const rtx_insn * rather than a
9374         const_rtx.
9375         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
9376         rtx_insn *.
9377         (can_fallthru): Likewise for locals "insn" and "insn2".
9378         (bb_note): Likewise for local "note".
9379         (first_insn_after_basic_block_note): Likewise for local "note" and
9380         for return type.
9381         (rtl_split_block): Likewise for locals "insn" and "next".
9382         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
9383         "end".
9384         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
9385         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
9386         "prev", "tmp".
9387         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
9388         them), "kill_from", "barrier", "new_insn".
9389         (patch_jump_insn): Likewise for params "insn", "old_label".
9390         (redirect_branch_edge): Likewise for locals "old_label", "insn".
9391         (force_nonfallthru_and_redirect): Likewise for locals "insn",
9392         "old_label", "new_label".
9393         (rtl_tidy_fallthru_edge): Likewise for local "q".
9394         (rtl_split_edge): Likewise for locals "before", "last".
9395         (commit_one_edge_insertion): Likewise for locals "before",
9396         "after", "insns", "tmp", "last", adding a checked cast where
9397         currently necessary.
9398         (commit_edge_insertions): Likewise.
9399         (rtl_dump_bb): Likewise for locals "insn", "last".
9400         (print_rtl_with_bb): Likewise for local "x".
9401         (rtl_verify_bb_insns): Likewise for local "x".
9402         (rtl_verify_bb_pointers): Likewise for local "insn".
9403         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
9404         "head", "end".
9405         (rtl_verify_fallthru): Likewise for local "insn".
9406         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
9407         (purge_dead_edges): Likewise for local "insn".
9408         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
9409         (skip_insns_after_block): Likewise for return type and for locals
9410         "insn", "last_insn", "next_head", "prev".
9411         (record_effective_endpoints): Likewise for locals "next_insn",
9412         "insn", "end".
9413         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
9414         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
9415         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
9416         (duplicate_insn_chain): For now, add checked cast from rtx to
9417         rtx_insn * when returning insn.
9418         (cfg_layout_duplicate_bb): Likewise for local "insn".
9419         (cfg_layout_delete_block): Likewise for locals "insn", "next",
9420         "prev", "remaints".
9421         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
9422         (rtl_block_empty_p): Likewise.
9423         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
9424         "split_point", "last".
9425         (rtl_block_ends_with_call_p): Likewise for local "insn".
9426         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
9427         const rtx_insn *.
9428         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
9429         "split_at_insn" from rtx to rtx_insn *.
9430         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
9431         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
9432         to const rtx_insn *.
9433         (rtl_account_profile_record): Likewise.
9434
9435 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9436
9437         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
9438         rtx to rtx_insn *.
9439         (average_num_loop_insns): Likewise.
9440         (init_set_costs): Likewise for local "seq".
9441         (seq_cost): Likewise for param "seq", from const_rtx to const
9442         rtx_insn *.
9443
9444 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9445
9446         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
9447         rtx to rtx_insn *.
9448
9449 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9450
9451         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
9452         "f1" and "f2" from rtx * to rtx_insn **.
9453         (flow_find_head_matching_sequence): Likewise.
9454
9455         * cfgcleanup.c (try_simplify_condjump): Strengthen local
9456         "cbranch_insn" from rtx to rtx_insn *.
9457         (thread_jump): Likewise for local "insn".
9458         (try_forward_edges): Likewise for local "last".
9459         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
9460         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
9461         "real_b_end".
9462         (can_replace_by): Likewise for params "i1", "i2".
9463         (old_insns_match_p): Likewise.
9464         (merge_notes): Likewise.
9465         (walk_to_nondebug_insn): Likewise for param "i1".
9466         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
9467         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
9468         "afterlast1", "afterlast2" from rtx to rtx_insn *.
9469         (flow_find_head_matching_sequence): Strengthen params "f1" and
9470         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
9471         "last1", "last2", "beforelast1", "beforelast2" from rtx to
9472         rtx_insn *.
9473         (outgoing_edges_match): Likewise for locals "last1", "last2".
9474         (try_crossjump_to_edge): Likewise for local "insn".
9475         Replace call to for_each_rtx with for_each_rtx_in_insn.
9476
9477         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
9478         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
9479         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
9480         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
9481         (try_optimize_cfg): Strengthen local "last" from rtx to
9482         rtx_insn *.
9483         (delete_dead_jumptables): Likewise for locals "insn", "next",
9484         "label".
9485
9486         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
9487         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
9488         "rtx else_first_tail", to reflect the basic-block.h changes above.
9489
9490 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9491
9492         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
9493         rtx_insn *.
9494         (purge_dead_tablejump_edges): Likewise.
9495         (find_bb_boundaries): Likewise for locals "insn", "end",
9496         "flow_transfer_insn".
9497
9498 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9499
9500         * caller-save.c (save_call_clobbered_regs): Strengthen locals
9501         "ins" and "prev" from rtx to rtx_insn *.
9502
9503 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9504
9505         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
9506         rtx_insn *.
9507         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
9508         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
9509         "scan_start".
9510         (load_register_parameters): Likewise for local "before_arg".
9511         (check_sibcall_argument_overlap): Likewise for param "insn".
9512         (expand_call): Likewise for locals "normal_call_insns",
9513         "tail_call_insns", "insns", "before_call", "after_args",
9514         "before_arg", "last", "prev".  Strengthen one of the "last" from
9515         rtx to rtx_call_insn *.
9516         (fixup_tail_calls): Strengthen local "insn" from rtx to
9517         rtx_insn *.
9518         (emit_library_call_value_1): Likewise for locals "before_call" and
9519         "last".
9520
9521 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9522
9523         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
9524         and "last" from rtx to rtx_insn *.
9525         (expand_builtin_nonlocal_goto): Likewise for local "insn".
9526         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
9527         rtx_call_insn *.
9528         (expand_errno_check): Strengthen local "lab" from rtx to
9529         rtx_code_label *.
9530         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
9531         rtx_insn *.
9532         (expand_builtin_mathfn_2): Likewise.
9533         (expand_builtin_mathfn_ternary): Likewise.
9534         (expand_builtin_mathfn_3): Likewise.
9535         (expand_builtin_interclass_mathfn): Likewise for local "last".
9536         (expand_builtin_int_roundingfn): Likewise for local "insns".
9537         (expand_builtin_int_roundingfn_2): Likewise.
9538         (expand_builtin_strlen): Likewise for local "before_strlen".
9539         (expand_builtin_strncmp): Likewise for local "seq".
9540         (expand_builtin_signbit): Likewise for local "last".
9541         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
9542         from rtx to rtx_code_label *.
9543         (expand_stack_restore):  Strengthen local "prev" from rtx to
9544         rtx_insn *.
9545
9546 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9547
9548         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
9549         to rtx_insn *.
9550         (struct btr_def_s): Likewise.
9551         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
9552         const rtx_insn *.
9553         (add_btr_def): Likewise.
9554         (new_btr_user): Likewise.
9555         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
9556         rtx to rtx_insn *.
9557         (link_btr_uses): Likewise.
9558         (move_btr_def): Likewise for locals "insp", "old_insn",
9559         "new_insn".  Add checked cast to rtx_insn * for now on result of
9560         gen_move_insn.
9561         (can_move_up): Strengthen param "insn" from const_rtx to
9562         const rtx_insn *.
9563
9564 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9565
9566         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
9567         rtx_insn *.
9568         (get_uncond_jump_length): Likewise for locals "label", "jump".
9569         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
9570         "jump", "insn".
9571         (add_labels_and_missing_jumps): Likewise for local "new_jump".
9572         (fix_up_fall_thru_edges): Likewise for local "old_jump".
9573         (find_jump_block): Likewise for local "insn".
9574         (fix_crossing_conditional_branches): Likewise for locals
9575         "old_jump", "new_jump".
9576         (fix_crossing_unconditional_branches): Likewise for locals
9577         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
9578         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
9579
9580 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9581
9582         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
9583         rtx to rtx_insn *.
9584         (struct mem_insn): Likewise for field "insn".
9585         (reg_next_use): Strengthen from rtx * to rtx_insn **.
9586         (reg_next_inc_use): Likewise.
9587         (reg_next_def): Likewise.
9588         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
9589         from rtx to rtx_insn *.
9590         (move_insn_before): Likewise for param "next_insn" and local "insns".
9591         (attempt_change): Likewise for local "mov_insn".
9592         (try_merge): Likewise for param "last_insn".
9593         (get_next_ref): Likewise for return type and local "insn".
9594         Strengthen param "next_array" from rtx * to rtx_insn **.
9595         (parse_add_or_inc): Strengthen param "insn" from rtx to
9596         rtx_insn *.
9597         (find_inc): Likewise for locals "insn" and "other_insn" (three of
9598         the latter).
9599         (merge_in_block): Likewise for locals "insn", "curr",
9600         "other_insn".
9601         (pass_inc_dec::execute): Update allocations of the arrays to
9602         reflect the stronger types.
9603
9604 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9605
9606         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
9607         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
9608         from rtx to rtx_code_label *.
9609
9610 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9611
9612         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
9613         to rtx_insn *.
9614
9615 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
9616
9617         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
9618         generated a warning and prevented bootstrapping the compiler.
9619
9620 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9621
9622         * rtl.h (delete_related_insns): Strengthen return type from rtx to
9623         rtx_insn *.
9624
9625         * jump.c (delete_related_insns): Likewise, also for locals "next"
9626         and "prev".
9627
9628 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9629
9630         * genautomata.c (output_internal_insn_latency_func): When writing
9631         the function "internal_insn_latency" to insn-automata.c,
9632         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
9633         allowing the optional guard function of (define_bypass) clauses to
9634         expect a pair of rtx_insn *, rather than a pair of rtx.
9635         (output_insn_latency_func): When writing the function
9636         "insn_latency", add an "uncast_" prefix to params "insn" and
9637         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
9638         using checked casts from the params, thus enabling the above
9639         change to the generated "internal_insn_latency" function.
9640
9641 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
9642
9643         PR tree-optimization/62091
9644         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
9645         handle correctly arrays.
9646         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
9647         inheritance binfos.
9648         (record_known_type): Walk into inner type.
9649         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
9650         condition on no type changes.
9651
9652 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9653
9654         * genattrtab.c (write_attr_get): Within the generated get_attr_
9655         functions, rename param "insn" to "uncast_insn" and reintroduce
9656         "insn" as an local rtx_insn * using a checked cast, so that "insn"
9657         is an rtx_insn * within insn-attrtab.c
9658
9659 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9660
9661         * output.h (peephole): Strengthen return type from rtx to
9662         rtx_insn *.
9663         * rtl.h (delete_for_peephole): Likewise for both params.
9664         * genpeep.c (main): In generated "peephole" function, strengthen
9665         return type and local "insn" from rtx to rtx_insn *.  For now,
9666         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
9667         rtx_insn *, with a checked cast.
9668         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
9669         locals "insn", "next", "prev" from rtx to rtx_insn *.
9670
9671 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
9672
9673         PR tree-optimization/62112
9674         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
9675         * gimple-iterator.h (gsi_replace): Return bool.
9676         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
9677         moved from ref_may_alias_global_p.
9678         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
9679         New overloads.
9680         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
9681         (stmt_kills_ref_p_1): Rename...
9682         (stmt_kills_ref_p): ... to this.
9683         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
9684         stmt_kills_ref_p): Declare.
9685         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
9686         Move the self-assignment case...
9687         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
9688
9689 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9690
9691         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
9692
9693         * emit-rtl.c (try_split): Likewise, also for locals "before" and
9694         "after".  For now, don't strengthen param "trial", which requires
9695         adding checked casts when returning it.
9696
9697 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9698
9699         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
9700         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
9701         "var_location" hook from rtx to rtx_insn *.
9702         (debug_nothing_rtx): Delete in favor of...
9703         (debug_nothing_rtx_code_label): New prototype.
9704         (debug_nothing_rtx_rtx): Delete unused prototype.
9705         (debug_nothing_rtx_insn): New prototype.
9706
9707         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
9708         invoking debug_hooks->var_location (in two places, one in a NOTE
9709         case of a switch statement, the other guarded by a CALL_P
9710         conditional.  Add checked cast to rtx_code_label * when invoking
9711         debug_hooks->label (within CODE_LABEL case of switch statement).
9712
9713         * dbxout.c (dbx_debug_hooks): Update "label" hook from
9714         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9715         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
9716         (xcoff_debug_hooks): Likewise.
9717         * debug.c (do_nothing_debug_hooks): Likewise.
9718         (debug_nothing_rtx): Delete in favor of...
9719         (debug_nothing_rtx_insn): New function.
9720         (debug_nothing_rtx_rtx): Delete unused function.
9721         (debug_nothing_rtx_code_label): New function.
9722         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
9723         debug_nothing_rtx to debug_nothing_rtx_code_label.
9724         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
9725         to rtx_insn *.
9726         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
9727         debug_nothing_rtx to debug_nothing_rtx_insn.
9728         (sdbout_label): Strengthen param "insn" from rtx to
9729         rtx_code_label *.
9730         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
9731         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
9732         "var_location" hook from debug_nothing_rtx to
9733         debug_nothing_rtx_insn.
9734
9735 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9736
9737         * recog.h (insn_output_fn): Update this function typedef to match
9738         the changes below to the generated output functions, strengthening
9739         the 2nd param from rtx to rtx_insn *.
9740
9741         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
9742         insn when invoking an output function, to match the new signature
9743         of insn_output_fn with a stronger second param.
9744
9745         * genconditions.c (write_header): In the generated code for
9746         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
9747         to match the other changes in this patch.
9748
9749         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
9750         the generated "gen_" functions from rtx to rtx_insn * within their
9751         implementations.
9752
9753         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
9754         the subfunctions within the generated "recog_", "split", "peephole2"
9755         function trees from rtx to rtx_insn *.  For now, the top-level
9756         generated functions ("recog", "split", "peephole2") continue to
9757         take a plain rtx for "insn", to avoid introducing dependencies on
9758         other patches.  Rename this 2nd param from "insn" to
9759         "uncast_insn", and reintroduce "insn" as a local variable of type
9760         rtx_insn *, initialized at the top of the generated function with
9761         a checked cast on "uncast_insn".
9762         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
9763         the generated "gen_" functions from rtx to rtx_insn * within their
9764         prototypes.
9765
9766         * genoutput.c (process_template): Strengthen the 2nd param within
9767         the generated "output_" functions "insn" from rtx to rtx_insn *.
9768
9769 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9770
9771         * tree-profile.c (tree_profiling): Skip external functions
9772         when doing coverage instrumentation.
9773         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
9774
9775 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9776
9777         * config/rs6000/altivec.h (vec_cpsgn): New #define.
9778         (vec_mergee): Likewise.
9779         (vec_mergeo): Likewise.
9780         (vec_cntlz): Likewise.
9781         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
9782         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
9783         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
9784         VMRGEW, and VMRGOW.
9785         * doc/extend.texi: Document various forms of vec_cpsgn,
9786         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
9787         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
9788         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
9789         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
9790         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
9791
9792 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9793
9794         * config/rs6000/rs6000.c (context.h): New include.
9795         (tree-pass.h): Likewise.
9796         (make_pass_analyze_swaps): New decl.
9797         (rs6000_option_override): Register pass_analyze_swaps.
9798         (swap_web_entry): New subsclass of web_entry_base (df.h).
9799         (special_handling_values): New enum.
9800         (union_defs): New function.
9801         (union_uses): Likewise.
9802         (insn_is_load_p): Likewise.
9803         (insn_is_store_p): Likewise.
9804         (insn_is_swap_p): Likewise.
9805         (rtx_is_swappable_p): Likewise.
9806         (insn_is_swappable_p): Likewise.
9807         (chain_purpose): New enum.
9808         (chain_contains_only_swaps): New function.
9809         (mark_swaps_for_removal): Likewise.
9810         (swap_const_vector_halves): Likewise.
9811         (adjust_subreg_index): Likewise.
9812         (permute_load): Likewise.
9813         (permute_store): Likewise.
9814         (handle_special_swappables): Likewise.
9815         (replace_swap_with_copy): Likewise.
9816         (dump_swap_insn_table): Likewise.
9817         (rs6000_analyze_swaps): Likewise.
9818         (pass_data_analyze_swaps): New pass_data.
9819         (pass_analyze_swaps): New rtl_opt_pass.
9820         (make_pass_analyze_swaps): New function.
9821         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
9822
9823 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9824
9825         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
9826         type from rtx to rtx_insn *.
9827         (create_copy_of_insn_rtx): Likewise.
9828         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
9829         (create_copy_of_insn_rtx): Likewise, also for local "res".
9830
9831 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9832
9833         * rtl.h (find_first_parameter_load): Strengthen return type from
9834         rtx to rtx_insn *.
9835         * rtlanal.c (find_first_parameter_load): Strengthen return type
9836         from rtx to rtx_insn *.  Add checked cast for now, to postpone
9837         strengthening the params.
9838
9839 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9840
9841         PR fortran/44054
9842         * diagnostic.c: Set default caret.
9843         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
9844         line is needed.
9845         * diagnostic.h (struct diagnostic_context):
9846
9847 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9848
9849         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
9850         (sel_bb_head): Strengthen return type insn_t (currently just an
9851         rtx) to rtx_insn *.
9852         (sel_bb_end): Likewise.
9853
9854         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
9855         (sel_bb_head): Strengthen return type and local "head" from
9856         insn_t (currently just an rtx) to rtx_insn *.
9857         (sel_bb_end): Likewise for return type.
9858         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
9859         working with insn.
9860
9861 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
9862
9863         * basic-block.h (get_last_bb_insn): Strengthen return type from
9864         rtx to rtx_insn *.
9865         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
9866         end".
9867
9868 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9869
9870         PR fortran/44054
9871         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
9872          to here ...
9873         (diagnostic_report_diagnostic): ... from here.
9874         * toplev.c (general_init): Move code to c-family.
9875
9876 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9877
9878         * df.h (web_entry_base): Replace existing struct web_entry with a
9879         new class web_entry_base with only the predecessor member.
9880         (unionfind_root): Remove declaration and move to class member.
9881         (unionfind_union): Remove declaration and move to friend
9882         function.
9883         (union_defs): Remove declaration.
9884         * web.c (web_entry_base::unionfind_root): Modify to be member
9885         function and adjust accessors.
9886         (unionfind_union): Modify to be friend function and adjust
9887         accessors.
9888         (web_entry): New subclass of web_entry_base containing the reg
9889         member.
9890         (union_match_dups): Modify for struct -> class changes.
9891         (union_defs): Likewise.
9892         (entry_register): Likewise.
9893         (pass_web::execute): Likewise.
9894
9895 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
9896
9897         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
9898         builtin define __VEC_ELEMENT_REG_ORDER__.
9899
9900 2014-08-20  Martin Jambor  <mjambor@suse.cz>
9901             Wei Mi  <wmi@google.com>
9902
9903         PR ipa/60449
9904         PR middle-end/61776
9905         * tree-ssa-operands.c (update_stmt_operands): Remove
9906         MODIFIED_NORETURN_CALLS.
9907         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
9908         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
9909         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
9910         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
9911         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
9912         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
9913         (gimple_call_set_ctrl_altering): New func.
9914         (gimple_call_ctrl_altering_p): Ditto.
9915         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
9916         (make_blocks): Use gimple_call_initialize_ctrl_altering.
9917         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
9918         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
9919         remove MODIFIED_NORETURN_CALLS.
9920
9921 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9922
9923         * coverage.c (coverage_compute_profile_id): Return non-0;
9924         also handle symbols with unique name.
9925         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
9926
9927 2014-08-20  Steve Ellcey  <sellcey@mips.com>
9928
9929         PR middle-end/49191
9930         * doc/sourcebuild.texi (non_strict_align): New.
9931
9932 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
9933
9934         * cgraphunit.c (ipa_passes, compile): Reshedule
9935         symtab_remove_unreachable_nodes passes; update comments.
9936         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
9937         TODO_remove_functions before the pass; the functions ought to be
9938         already removed.
9939         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
9940         TODO_remove_functions.
9941         * passes.c (pass_data_early_local_passes): Do not schedule function
9942         removal.
9943         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
9944
9945 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9946
9947         PR c/59304
9948         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
9949         before setting the option.
9950         * diagnostic.c (diagnostic_classify_diagnostic): Record
9951         command-line status.
9952
9953 2014-08-20  Richard Biener  <rguenther@suse.de>
9954
9955         PR lto/62190
9956         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
9957         to build uint{16,32,64}_type_node.
9958
9959 2014-08-20  Terry Guo  <terry.guo@arm.com>
9960
9961         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
9962         with immediate_operand.
9963
9964 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
9965
9966         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
9967         "insn" from an as_a to a safe_as_a, for the case when "insn" is
9968         NULL.
9969
9970 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9971
9972         PR preprocessor/51303
9973         * incpath.c (remove_duplicates): Use cpp_warning.
9974
9975 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9976
9977         PR c/60975
9978         PR c/53063
9979         * doc/options.texi (CPP): Document it.
9980         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
9981         * optc-gen.awk: Handle CPP.
9982         * opth-gen.awk: Likewise.
9983
9984 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9985
9986         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
9987         rtx_insn *.
9988         (duplicate_insn_chain): Likewise.
9989         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
9990         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
9991         checked cast for now (until we can strengthen the params in the
9992         same way).
9993         (duplicate_insn_chain): Likewise.
9994
9995 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
9996
9997         * rtl.h (next_cc0_user): Strengthen return type from rtx to
9998         rtx_insn *.
9999         (prev_cc0_setter): Likewise.
10000
10001         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
10002         rtx_insn *, adding checked casts for now as necessary.
10003         (prev_cc0_setter): Likewise.
10004
10005 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10006
10007         * expr.h (emit_move_insn): Strengthen return type from rtx to
10008         rtx_insn *.
10009         (emit_move_insn_1): Likewise.
10010         (emit_move_complex_push): Likewise.
10011         (emit_move_complex_parts): Likewise.
10012
10013         * expr.c (emit_move_via_integer): Strengthen return type from rtx
10014         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
10015         with insns.
10016         (emit_move_complex_push): Strengthen return type from rtx to
10017         rtx_insn *.
10018         (emit_move_complex): Likewise, also for local "ret".
10019         (emit_move_ccmode): Likewise.
10020         (emit_move_multi_word): Likewise for return type and locals
10021         "last_insn", "seq".
10022         (emit_move_insn_1): Likewise for return type and locals "result",
10023         "ret".
10024         (emit_move_insn): Likewise for return type and local "last_insn".
10025         (compress_float_constant): Likewise.
10026
10027 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10028
10029         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
10030         from rtx to rtx_insn *.
10031
10032         * rtl.h (emit_insn_before): Likewise.
10033         (emit_insn_before_noloc): Likewise.
10034         (emit_insn_before_setloc): Likewise.
10035         (emit_jump_insn_before): Likewise.
10036         (emit_jump_insn_before_noloc): Likewise.
10037         (emit_jump_insn_before_setloc): Likewise.
10038         (emit_call_insn_before): Likewise.
10039         (emit_call_insn_before_noloc): Likewise.
10040         (emit_call_insn_before_setloc): Likewise.
10041         (emit_debug_insn_before): Likewise.
10042         (emit_debug_insn_before_noloc): Likewise.
10043         (emit_debug_insn_before_setloc): Likewise.
10044         (emit_label_before): Likewise.
10045         (emit_insn_after): Likewise.
10046         (emit_insn_after_noloc): Likewise.
10047         (emit_insn_after_setloc): Likewise.
10048         (emit_jump_insn_after): Likewise.
10049         (emit_jump_insn_after_noloc): Likewise.
10050         (emit_jump_insn_after_setloc): Likewise.
10051         (emit_call_insn_after): Likewise.
10052         (emit_call_insn_after_noloc): Likewise.
10053         (emit_call_insn_after_setloc): Likewise.
10054         (emit_debug_insn_after): Likewise.
10055         (emit_debug_insn_after_noloc): Likewise.
10056         (emit_debug_insn_after_setloc): Likewise.
10057         (emit_label_after): Likewise.
10058         (emit_insn): Likewise.
10059         (emit_debug_insn): Likewise.
10060         (emit_jump_insn): Likewise.
10061         (emit_call_insn): Likewise.
10062         (emit_label): Likewise.
10063         (gen_clobber): Likewise.
10064         (emit_clobber): Likewise.
10065         (gen_use): Likewise.
10066         (emit_use): Likewise.
10067         (emit): Likewise.
10068
10069         (emit_barrier_before): Strengthen return type from rtx to
10070         rtx_barrier *.
10071         (emit_barrier_after): Likewise.
10072         (emit_barrier): Likewise.
10073
10074         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
10075         from rtx to rtx_insn *.  Add checked casts for now when converting
10076         "last" from rtx to rtx_insn *.
10077         (emit_insn_before_noloc): Likewise for return type.
10078         (emit_jump_insn_before_noloc): Likewise.
10079         (emit_call_insn_before_noloc): Likewise.
10080         (emit_debug_insn_before_noloc): Likewise.
10081         (emit_barrier_before): Strengthen return type and local "insn"
10082         from rtx to rtx_barrier *.
10083         (emit_label_before): Strengthen return type from rtx to
10084         rtx_insn *.  Add checked cast for now when returning param
10085         (emit_pattern_after_noloc): Strengthen return type from rtx to
10086         rtx_insn *.  Add checked casts for now when converting "last" from
10087         rtx to rtx_insn *.
10088         (emit_insn_after_noloc): Strengthen return type from rtx to
10089         rtx_insn *.
10090         (emit_jump_insn_after_noloc): Likewise.
10091         (emit_call_insn_after_noloc): Likewise.
10092         (emit_debug_insn_after_noloc): Likewise.
10093         (emit_barrier_after): Strengthen return type from rtx to
10094         rtx_barrier *.
10095         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
10096         Add checked cast for now when converting "label" from rtx to
10097         rtx_insn *.
10098         (emit_pattern_after_setloc): Strengthen return type from rtx to
10099         rtx_insn *.  Add checked casts for now when converting "last" from
10100         rtx to rtx_insn *.
10101         (emit_pattern_after): Strengthen return type from rtx to
10102         rtx_insn *.
10103         (emit_insn_after_setloc): Likewise.
10104         (emit_insn_after): Likewise.
10105         (emit_jump_insn_after_setloc): Likewise.
10106         (emit_jump_insn_after): Likewise.
10107         (emit_call_insn_after_setloc): Likewise.
10108         (emit_call_insn_after): Likewise.
10109         (emit_debug_insn_after_setloc): Likewise.
10110         (emit_debug_insn_after): Likewise.
10111         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
10112         when converting "last" from rtx to rtx_insn *.
10113         (emit_pattern_before): Strengthen return type from rtx to
10114         rtx_insn *.
10115         (emit_insn_before_setloc): Likewise.
10116         (emit_insn_before): Likewise.
10117         (emit_jump_insn_before_setloc): Likewise.
10118         (emit_jump_insn_before): Likewise.
10119         (emit_call_insn_before_setloc): Likewise.
10120         (emit_call_insn_before): Likewise.
10121         (emit_debug_insn_before_setloc): Likewise.
10122         (emit_debug_insn_before): Likewise.
10123         (emit_insn): Strengthen return type and locals "last", "insn",
10124         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
10125         within cases where we know we have an insn.
10126         (emit_debug_insn): Likewise.
10127         (emit_jump_insn): Likewise.
10128         (emit_call_insn): Strengthen return type and local "insn" from rtx
10129         to rtx_insn *.
10130         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
10131         a checked cast to rtx_insn * for now on "label".
10132         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
10133         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
10134         (emit_use): Likewise.
10135         (gen_use): Likewise, also for local "seq".
10136         (emit): Likewise for return type and local "insn".
10137         (rtx_insn): Likewise for return type and local "new_rtx".
10138
10139         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
10140         from rtx to rtx_barrier *.
10141
10142         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
10143         changed return type from rtx to rtx_insn *, we must update
10144         "emit_fn" type, and this in turn means updating...
10145         (frame_insn): ...this.  Strengthen return type from rtx to
10146         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
10147
10148 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10149
10150         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
10151         rtx to rtx_jump_table_data *.  Also for local.
10152         * rtl.h (emit_jump_table_data): Likewise.
10153
10154 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10155
10156         * basic-block.h (create_basic_block_structure): Strengthen third
10157         param "bb_note" from rtx to rtx_note *.
10158         * rtl.h (emit_note_before): Strengthen return type from rtx to
10159         rtx_note *.
10160         (emit_note_after): Likewise.
10161         (emit_note): Likewise.
10162         (emit_note_copy): Likewise.  Also, strengthen param similarly.
10163         * function.h (struct rtl_data): Strengthen field
10164         "x_stack_check_probe_note" from rtx to rtx_note *.
10165
10166         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
10167         from rtx to rtx_note *.
10168         * cfgrtl.c (create_basic_block_structure): Strengthen third param
10169         "bb_note" from rtx to rtx_note *.
10170         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
10171         when calling emit_note_copy.
10172         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
10173         rtx_note *.
10174         (emit_note_after): Likewise.
10175         (emit_note_before): Likewise.
10176         (emit_note_copy): Likewise.  Also, strengthen param similarly.
10177         (emit_note): Likewise.
10178         * except.c (emit_note_eh_region_end): Likewise for return type.
10179         Strengthen local "next" from rtx to rtx_insn *.
10180         (convert_to_eh_region_ranges): Strengthen local "note"
10181         from rtx to rtx_note *.
10182         * final.c (change_scope): Likewise.
10183         (reemit_insn_block_notes): Likewise, for both locals named "note".
10184         Also, strengthen local "insn" from rtx to rtx_insn *.
10185         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
10186         rtx to rtx_note *.
10187         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
10188         strengthen local "seq" from rtx to rtx_insn *.
10189         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
10190         to rtx_note *.
10191         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
10192         vec<rtx_note *>.
10193         (get_bb_note_from_pool): Strengthen return type from rtx to
10194         rtx_note *.
10195         (sel_create_basic_block): Strengthen local "new_bb_note" from
10196         insn_t to rtx_note *.
10197         * var-tracking.c (emit_note_insn_var_location): Strengthen local
10198         "note" from rtx to rtx_note *.
10199         (emit_notes_in_bb): Likewise.
10200
10201 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10202
10203         * function.h (struct rtl_data): Strengthen field
10204         "x_parm_birth_insn" from rtx to rtx_insn *.
10205         * function.c (struct assign_parm_data_all): Strengthen fields
10206         "first_conversion_insn" and "last_conversion_insn" from rtx to
10207         rtx_insn *.
10208
10209 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10210
10211         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
10212         to rtx_insn *; also for local "var_end_seq".
10213         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
10214         (maybe_cleanup_end_of_block): Likewise for param "last" and local
10215         "insn".
10216         (expand_gimple_cond): Likewise for locals "last2" and "last".
10217         (mark_transaction_restart_calls): Likewise for local "insn".
10218         (expand_gimple_stmt): Likewise for return type and locals "last"
10219         and "insn".
10220         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
10221         (avoid_complex_debug_insns): Likewise for param "insn".
10222         (expand_debug_locations): Likewise for locals "insn", "last",
10223         "prev_insn" and "insn2".
10224         (expand_gimple_basic_block): Likewise for local "last".
10225         (construct_exit_block): Likewise for locals "head", "end",
10226         "orig_end".
10227         (pass_expand::execute): Likewise for locals "var_seq",
10228         "var_ret_seq", "next".
10229
10230 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10231
10232         * asan.h (asan_emit_stack_protection): Strengthen return type from
10233         rtx to rtx_insn *.
10234         * asan.c (asan_emit_stack_protection): Likewise.  Add local
10235         "insns" to hold the return value.
10236
10237 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10238
10239         * basic-block.h (bb_note): Strengthen return type from rtx to
10240         rtx_note *.
10241         * sched-int.h (bb_note): Likewise.
10242         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
10243
10244 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10245
10246         * rtl.h (make_insn_raw): Strengthen return type from rtx to
10247         rtx_insn *.
10248
10249         * emit-rtl.c (make_insn_raw): Strengthen return type and local
10250         "insn" from rtx to rtx_insn *.
10251         (make_debug_insn_raw): Strengthen return type from rtx to
10252         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
10253         (make_jump_insn_raw):  Strengthen return type from rtx to
10254         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
10255         (make_call_insn_raw):  Strengthen return type from rtx to
10256         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
10257         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
10258         callback from rtx to rtx_insn *; likewise for local "insn" and
10259         "next", adding a checked cast to rtx_insn in the relevant cases of
10260         the switch statement.
10261         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
10262         callback from rtx to rtx_insn *.
10263         (emit_pattern_after_setloc): Likewise.
10264         (emit_pattern_after): Likewise.
10265         (emit_pattern_before_setloc): Likewise.
10266         (emit_pattern_before): Likewise.
10267
10268 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10269
10270         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
10271         rtx_call_insn *.
10272         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
10273         accepting an rtx_insn *.
10274         (last_call_insn): Strengthen return type from rtx to
10275         rtx_call_insn *.
10276
10277 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10278
10279         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
10280         "insns" from rtx to rtx_insn *.
10281         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
10282         locals "insn" and "prev".
10283
10284 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10285
10286         * rtl.h (tablejump_p): Strengthen third param from rtx * to
10287         rtx_jump_table_data **.
10288
10289         * cfgbuild.c (make_edges): Introduce local "table", using it in
10290         place of "tmp" for jump table data.
10291         (find_bb_boundaries): Strengthen local "table" from rtx to
10292         rtx_jump_table_data *.
10293         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10294         (outgoing_edges_match): Likewise for locals "table1" and "table2".
10295         (try_crossjump_to_edge): Likewise.
10296         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
10297         "table".
10298         (patch_jump_insn): Introduce local "table", using it in place of
10299         "tmp" for jump table data.
10300         (force_nonfallthru_and_redirect): Introduce local "table", so that
10301         call to tablejump_p can receive an rtx_jump_table_data **.  Update
10302         logic around the call to overwrite "note" appropriately if
10303         tablejump_p returns non-zero.
10304         (get_last_bb_insn): Introduce local "table", using it in place of
10305         "tmp" for jump table data.
10306         * dwarf2cfi.c (create_trace_edges): Likewise.
10307
10308         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
10309         from rtx to rtx_jump_table_data *.
10310         (create_fix_barrier): Strengthen local "tmp" from rtx to
10311         rtx_jump_table_data *.
10312         (arm_reorg): Likewise for local "table".
10313
10314         * config/s390/s390.c (s390_chunkify_start): Likewise.
10315
10316         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
10317
10318         * jump.c (delete_related_insns): Strengthen local "lab_next" from
10319         rtx to rtx_jump_table_data *.
10320
10321         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
10322         rtx_jump_table_data **.  Add a checked cast when writing through
10323         the pointer: we know there that local "table" is non-NULL and that
10324         JUMP_TABLE_DATA_P (table) holds.
10325         (label_is_jump_target_p): Introduce local "table", using it in
10326         place of "tmp" for jump table data.
10327
10328 2014-08-19  Marek Polacek  <polacek@redhat.com>
10329
10330         PR c++/62153
10331         * doc/invoke.texi: Document -Wbool-compare.
10332
10333 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10334
10335         * rtl.h (entry_of_function): Strengthen return type from rtx to
10336         rtx_insn *.
10337         * cfgrtl.c (entry_of_function): Likewise.
10338
10339 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10340
10341         * emit-rtl.h (get_insns): Strengthen return type from rtx to
10342         rtx_insn *, adding a checked cast for now.
10343         (get_last_insn): Likewise.
10344
10345 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10346
10347         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
10348         rtx_code_label *.
10349
10350         * emit-rtl.c (gen_label_rtx): Likewise.
10351
10352 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10353
10354         * rtl.h (previous_insn): Strengthen return type from rtx to
10355         rtx_insn *.
10356         (next_insn): Likewise.
10357         (prev_nonnote_insn): Likewise.
10358         (prev_nonnote_insn_bb): Likewise.
10359         (next_nonnote_insn): Likewise.
10360         (next_nonnote_insn_bb): Likewise.
10361         (prev_nondebug_insn): Likewise.
10362         (next_nondebug_insn): Likewise.
10363         (prev_nonnote_nondebug_insn): Likewise.
10364         (next_nonnote_nondebug_insn): Likewise.
10365         (prev_real_insn): Likewise.
10366         (next_real_insn): Likewise.
10367         (prev_active_insn): Likewise.
10368         (next_active_insn): Likewise.
10369
10370         * emit-rtl.c (next_insn): Strengthen return type from rtx to
10371         rtx_insn *, adding a checked cast.
10372         (previous_insn): Likewise.
10373         (next_nonnote_insn): Likewise.
10374         (next_nonnote_insn_bb): Likewise.
10375         (prev_nonnote_insn): Likewise.
10376         (prev_nonnote_insn_bb): Likewise.
10377         (next_nondebug_insn): Likewise.
10378         (prev_nondebug_insn): Likewise.
10379         (next_nonnote_nondebug_insn): Likewise.
10380         (prev_nonnote_nondebug_insn): Likewise.
10381         (next_real_insn): Likewise.
10382         (prev_real_insn): Likewise.
10383         (next_active_insn): Likewise.
10384         (prev_active_insn): Likewise.
10385
10386         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
10387         param "stepfunc" so that it returns an rtx_insn * rather than an
10388         rtx, to track the change to prev_nonnote_insn_bb, which is the
10389         only function this is called with.
10390         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
10391
10392 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
10393
10394         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
10395         assert.
10396
10397 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10398
10399         * coretypes.h (class rtx_debug_insn): Add forward declaration.
10400         (class rtx_nonjump_insn): Likewise.
10401         (class rtx_jump_insn): Likewise.
10402         (class rtx_call_insn): Likewise.
10403         (class rtx_jump_table_data): Likewise.
10404         (class rtx_barrier): Likewise.
10405         (class rtx_code_label): Likewise.
10406         (class rtx_note): Likewise.
10407
10408         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
10409         adding the invariant DEBUG_INSN_P (X).
10410         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
10411         the invariant NONJUMP_INSN_P (X).
10412         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
10413         the invariant JUMP_P (X).
10414         (class rtx_call_insn): New, a subclass of rtx_insn, adding
10415         the invariant CALL_P (X).
10416         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
10417         invariant JUMP_TABLE_DATA_P (X).
10418         (class rtx_barrier): New, a subclass of rtx_insn, adding the
10419         invariant BARRIER_P (X).
10420         (class rtx_code_label): New, a subclass of rtx_insn, adding
10421         the invariant LABEL_P (X).
10422         (class rtx_note): New, a subclass of rtx_insn, adding
10423         the invariant NOTE_P(X).
10424         (is_a_helper <rtx_debug_insn *>::test): New.
10425         (is_a_helper <rtx_nonjump_insn *>::test): New.
10426         (is_a_helper <rtx_jump_insn *>::test): New.
10427         (is_a_helper <rtx_call_insn *>::test): New.
10428         (is_a_helper <rtx_jump_table_data *>::test): New functions,
10429         overloaded for both rtx and rtx_insn *.
10430         (is_a_helper <rtx_barrier *>::test): New.
10431         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
10432         for both rtx and rtx_insn *.
10433         (is_a_helper <rtx_note *>::test): New.
10434
10435 2014-08-19  Marek Polacek  <polacek@redhat.com>
10436
10437         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
10438         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10439         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
10440         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
10441
10442 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10443
10444         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
10445         rtx_insn *.  To help with transition, for now, convert from an
10446         access macro into a pair of functions: BND_TO, returning an
10447         rtx_insn *, and...
10448         (SET_BND_TO): New function, for use where BND_TO is used as an
10449         lvalue.
10450
10451         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
10452         SET_BND_TO.
10453         (BND_TO): New function, adding a checked cast.
10454         (SET_BND_TO): New function.
10455
10456         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
10457         SET_BND_TO.
10458         (compute_av_set_on_boundaries): Likewise.
10459
10460 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10461
10462         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
10463         destination if it is used in source.
10464         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
10465         (*popcount<mode>2_falsedep_1): Likewise.
10466
10467 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
10468
10469         PR other/62168
10470         * configure.ac: Set install_gold_as_default to no first.
10471         * configure: Regenerated.
10472
10473 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10474
10475         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
10476         "note_list" field will eventually be an rtx_insn *.  To help with
10477         transition, for now, convert from an access macro into a pair of
10478         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
10479         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
10480         used as an lvalue.
10481
10482         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
10483         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
10484
10485         * sel-sched-ir.c (init_bb): Likewise.
10486         (sel_restore_notes): Likewise.
10487         (move_bb_info): Likewise.
10488         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
10489         (SET_BB_NOTE_LIST): New function.
10490
10491 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10492
10493         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
10494         field will eventually be an rtx_insn *.  To help with transition,
10495         for now, convert from an access macro into a pair of functions:
10496         VINSN_INSN_RTX, returning an rtx_insn *, and...
10497         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
10498         is used as an lvalue.
10499
10500         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
10501         SET_VINSN_INSN_RTX where it's used as an lvalue.
10502         (VINSN_INSN_RTX): New function.
10503         (SET_VINSN_INSN_RTX): New function.
10504
10505 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10506
10507         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
10508         eventually be rtx_insn *, but to help with transition, for now,
10509         convert from an access macro into a pair of functions: DEP_PRO
10510         returning an rtx_insn * and...
10511         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
10512         lvalue, returning an rtx&.
10513         (DEP_CON): Analogous changes to DEP_PRO above.
10514         (SET_DEP_CON): Likewise.
10515
10516         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
10517         an lvalue to SET_DEP_CON.
10518         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
10519         (sd_copy_back_deps): Likewise for DEP_CON.
10520         (DEP_PRO): New function, adding a checked cast for now.
10521         (DEP_CON): Likewise.
10522         (SET_DEP_PRO): New function.
10523         (SET_DEP_CON): Likewise.
10524
10525 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10526
10527         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
10528         (extra_options): Add i386/cygwin.opt.
10529         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
10530         (CPP_SPEC): Accept -pthread.
10531         (LINK_SPEC): Ditto.
10532         (GOMP_SELF_SPECS): Update comment.
10533         * config/i386/cygwin.opt: New file for -pthread flag.
10534
10535 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10536
10537         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
10538         * df.h (DF_REF_INSN): Convert from a macro to a function, so
10539         that we can return an rtx_insn *.
10540
10541 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
10542
10543         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
10544         when building executables, not DLLs.  Add --large-address-aware
10545         under the same conditions.
10546         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
10547         when building executables, not DLLs.  Add --large-address-aware
10548         under the same conditions when using -m32.
10549
10550         * config/i386/cygwin-stdint.h: Throughout, make type
10551         definitions dependent on target architecture, not host.
10552
10553 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10554
10555         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
10556         the return type from rtx to rtx_insn *,  which will enable various
10557         conversions in followup patches.  For now this is is done by a
10558         checked cast.
10559         (NEXT_INSN): Likewise.
10560         (SET_PREV_INSN): Convert to an inline function.  This is intended
10561         for use as an lvalue, and so returns an rtx& to allow in-place
10562         modification.
10563         (SET_NEXT_INSN): Likewise.
10564
10565 2014-07-08  Mark Wielaard  <mjw@redhat.com>
10566
10567         PR debug/59051
10568         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
10569
10570 2014-08-19  Marek Polacek  <polacek@redhat.com>
10571
10572         PR c/61271
10573         * cgraphunit.c (handle_alias_pairs): Fix condition.
10574
10575 2014-08-19  Richard Biener  <rguenther@suse.de>
10576
10577         * gimple-fold.c (fold_gimple_assign): Properly build a
10578         null-pointer constant when devirtualizing addresses.
10579
10580 2014-07-07  Mark Wielaard  <mjw@redhat.com>
10581
10582         * dwarf2out.c (decl_quals): New function.
10583         (modified_type_die): Take one cv_quals argument instead of two,
10584         one for const and one for volatile.
10585         (add_type_attribute): Likewise.
10586         (generic_parameter_die): Call add_type_attribute with one modifier
10587         argument.
10588         (base_type_for_mode): Likewise.
10589         (add_bounds_info): Likewise.
10590         (add_subscript_info): Likewise.
10591         (gen_array_type_die): Likewise.
10592         (gen_descr_array_type_die): Likewise.
10593         (gen_entry_point_die): Likewise.
10594         (gen_enumeration_type_die): Likewise.
10595         (gen_formal_parameter_die): Likewise.
10596         (gen_subprogram_die): Likewise.
10597         (gen_variable_die): Likewise.
10598         (gen_const_die): Likewise.
10599         (gen_field_die): Likewise.
10600         (gen_pointer_type_die): Likewise.
10601         (gen_reference_type_die): Likewise.
10602         (gen_ptr_to_mbr_type_die): Likewise.
10603         (gen_inheritance_die): Likewise.
10604         (gen_subroutine_type_die): Likewise.
10605         (gen_typedef_die): Likewise.
10606         (force_type_die): Likewise.
10607
10608 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10609
10610         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
10611         if unset.
10612         * configure: Regenerate.
10613
10614 2014-08-19  Richard Biener  <rguenther@suse.de>
10615
10616         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
10617         DECL_EXTERNALs in BLOCKs as non-references.
10618         * tree-streamer-out.c (streamer_write_chain): Likewise.
10619
10620 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10621             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10622             Anna Tikhonova  <anna.tikhonova@intel.com>
10623             Ilya Tocar  <ilya.tocar@intel.com>
10624             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10625             Ilya Verbin  <ilya.verbin@intel.com>
10626             Kirill Yukhin  <kirill.yukhin@intel.com>
10627             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10628
10629         * config/i386/sse.md
10630         (define_mode_iterator VI48_AVX512F): Delete.
10631         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
10632         (define_mode_iterator VI2_AVX512VL): Ditto.
10633         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
10634         Delete.
10635         (define_insn
10636         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
10637         New.
10638         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
10639         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
10640         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10641         with VI48_AVX512F_AVX512VL): New.
10642         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
10643         with VI2_AVX512VL): Ditto.
10644
10645 2014-08-19  Marek Polacek  <polacek@redhat.com>
10646
10647         * doc/invoke.texi: Document -Wc99-c11-compat.
10648
10649 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10650
10651         * rtl.h (PREV_INSN): Split macro in two: the existing one,
10652         for rvalues, and...
10653         (SET_PREV_INSN): New macro, for use as an lvalue.
10654         (NEXT_INSN, SET_NEXT_INSN): Likewise.
10655
10656         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
10657         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
10658         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10659         (fixup_abnormal_edges): Likewise.
10660         (unlink_insn_chain): Likewise.
10661         (fixup_reorder_chain): Likewise.
10662         (cfg_layout_delete_block): Likewise.
10663         (cfg_layout_merge_blocks): Likewise.
10664         * combine.c (update_cfg_for_uncondjump): Likewise.
10665         * emit-rtl.c (link_insn_into_chain): Likewise.
10666         (remove_insn): Likewise.
10667         (delete_insns_since): Likewise.
10668         (reorder_insns_nobb): Likewise.
10669         (emit_insn_after_1): Likewise.
10670         * final.c (rest_of_clean_state): Likewise.
10671         (final_scan_insn): Likewise.
10672         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
10673         * haifa-sched.c (concat_note_lists): Likewise.
10674         (remove_notes): Likewise.
10675         (restore_other_notes): Likewise.
10676         (move_insn): Likewise.
10677         (unlink_bb_notes): Likewise.
10678         (restore_bb_notes): Likewise.
10679         * jump.c (delete_for_peephole): Likewise.
10680         * optabs.c (emit_libcall_block_1): Likewise.
10681         * reorg.c (emit_delay_sequence): Likewise.
10682         (fill_simple_delay_slots): Likewise.
10683         * sel-sched-ir.c (sel_move_insn): Likewise.
10684         (sel_remove_insn): Likewise.
10685         (get_bb_note_from_pool): Likewise.
10686         * sel-sched.c (move_nop_to_previous_block): Likewise.
10687
10688         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
10689         * config/c6x/c6x.c (gen_one_bundle): Likewise.
10690         (c6x_gen_bundles): Likewise.
10691         (hwloop_optimize): Likewise.
10692         * config/frv/frv.c (frv_function_prologue): Likewise.
10693         (frv_register_nop): Likewise.
10694         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
10695         (ia64_reorg): Likewise.
10696         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
10697         (mep_make_bundle): Likewise.
10698         (mep_bundle_insns): Likewise.
10699         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
10700         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
10701         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
10702
10703 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
10704
10705         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
10706         return type from rtx to rtx_insn *.
10707         (BB_END): Likewise.
10708         (BB_HEADER): Likewise.
10709         (BB_FOOTER): Likewise.
10710         (SET_BB_HEAD): Convert to a function.
10711         (SET_BB_END): Likewise.
10712         (SET_BB_HEADER): Likewise.
10713         (SET_BB_FOOTER): Likewise.
10714
10715         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
10716         Strengthen the return type from rtx to rtx_insn *.  For now, this
10717         is done by adding a checked cast, but this will eventually
10718         become a field lookup.
10719         (BB_END): Likewise.
10720         (BB_HEADER): Likewise.
10721         (BB_FOOTER): Likewise.
10722         (SET_BB_HEAD): New function, from macro of same name.  This is
10723         intended for use as an lvalue, and so returns an rtx& to allow
10724         in-place modification.
10725         (SET_BB_END): Likewise.
10726         (SET_BB_HEADER): Likewise.
10727         (SET_BB_FOOTER): Likewise.
10728
10729 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10730
10731         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
10732         for rvalues, and...
10733         (SET_BB_HEAD): New macro, for use as a lvalue.
10734         (BB_END, SET_BB_END): Likewise.
10735         (BB_HEADER, SET_BB_HEADER): Likewise.
10736         (BB_FOOTER, SET_BB_FOOTER): Likewise.
10737
10738         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
10739         of BB_* macros into SET_BB_* macros.
10740         (fix_crossing_unconditional_branches): Likewise.
10741         * caller-save.c (save_call_clobbered_regs): Likewise.
10742         (insert_one_insn): Likewise.
10743         * cfgbuild.c (find_bb_boundaries): Likewise.
10744         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10745         (outgoing_edges_match): Likewise.
10746         (try_optimize_cfg): Likewise.
10747         * cfgexpand.c (expand_gimple_cond): Likewise.
10748         (expand_gimple_tailcall): Likewise.
10749         (expand_gimple_basic_block): Likewise.
10750         (construct_exit_block): Likewise.
10751         * cfgrtl.c (delete_insn): Likewise.
10752         (create_basic_block_structure): Likewise.
10753         (rtl_delete_block): Likewise.
10754         (rtl_split_block): Likewise.
10755         (emit_nop_for_unique_locus_between): Likewise.
10756         (rtl_merge_blocks): Likewise.
10757         (block_label): Likewise.
10758         (try_redirect_by_replacing_jump): Likewise.
10759         (emit_barrier_after_bb): Likewise.
10760         (fixup_abnormal_edges): Likewise.
10761         (record_effective_endpoints): Likewise.
10762         (relink_block_chain): Likewise.
10763         (fixup_reorder_chain): Likewise.
10764         (fixup_fallthru_exit_predecessor): Likewise.
10765         (cfg_layout_duplicate_bb): Likewise.
10766         (cfg_layout_split_block): Likewise.
10767         (cfg_layout_delete_block): Likewise.
10768         (cfg_layout_merge_blocks): Likewise.
10769         * combine.c (update_cfg_for_uncondjump): Likewise.
10770         * emit-rtl.c (add_insn_after): Likewise.
10771         (remove_insn): Likewise.
10772         (reorder_insns): Likewise.
10773         (emit_insn_after_1): Likewise.
10774         * haifa-sched.c (get_ebb_head_tail): Likewise.
10775         (restore_other_notes): Likewise.
10776         (move_insn): Likewise.
10777         (sched_extend_bb): Likewise.
10778         (fix_jump_move): Likewise.
10779         * ifcvt.c (noce_process_if_block): Likewise.
10780         (dead_or_predicable): Likewise.
10781         * ira.c (update_equiv_regs): Likewise.
10782         * reg-stack.c (change_stack): Likewise.
10783         * sel-sched-ir.c (sel_move_insn): Likewise.
10784         * sel-sched.c (move_nop_to_previous_block): Likewise.
10785
10786         * config/c6x/c6x.c (hwloop_optimize): Likewise.
10787         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10788
10789 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10790
10791         * rtl.h (for_each_rtx_in_insn): New function.
10792         * rtlanal.c (for_each_rtx_in_insn): Likewise.
10793
10794 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10795
10796         * coretypes.h (class rtx_insn): Add forward declaration.
10797
10798         * rtl.h: Include is-a.h.
10799         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
10800         workaround to ensure gengtype knows inheritance is occurring,
10801         whilst continuing to use the pre-existing special-casing for
10802         rtx_def.
10803         (class rtx_insn): New subclass of rtx_def, adding the
10804         invariant that we're dealing with something we can sanely use
10805         INSN_UID, NEXT_INSN, PREV_INSN on.
10806         (is_a_helper <rtx_insn *>::test): New.
10807         (is_a_helper <const rtx_insn *>::test): New.
10808
10809 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
10810
10811         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
10812
10813 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10814
10815         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
10816         comdats as extern.
10817
10818 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
10819
10820         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
10821         to BUILT_IN_UNREACHABLE.
10822
10823 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
10824
10825         PR target/62011
10826         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
10827         New tune flag.
10828         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
10829         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
10830         (ffs<mode>2): Do not expand with tzcnt for
10831         TARGET_AVOID_FALSE_DEP_FOR_BMI.
10832         (ffssi2_no_cmove): Ditto.
10833         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
10834         (ctz<mode>2): New expander.
10835         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
10836         (*ctz<mode>2_falsedep): New insn.
10837         (*ctz<mode>2): Rename from ctz<mode>2.
10838         (clz<mode>2_lzcnt): New expander.
10839         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
10840         (*clz<mode>2_lzcnt_falsedep): New insn.
10841         (*clz<mode>2): Rename from ctz<mode>2.
10842         (popcount<mode>2): New expander.
10843         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
10844         (*popcount<mode>2_falsedep): New insn.
10845         (*popcount<mode>2): Rename from ctz<mode>2.
10846         (*popcount<mode>2_cmp): Remove.
10847         (*popcountsi2_cmp_zext): Ditto.
10848
10849 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
10850
10851         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
10852         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
10853         * config/microblaze/microblaze.h
10854         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
10855
10856 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
10857
10858         PR other/62168
10859         * configure.ac: Set install_gold_as_default to no for
10860          --enable-gold=no.
10861          * configure: Regenerated.
10862
10863 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
10864
10865         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
10866         * config.in: Add undef of HAVE_isl.
10867         * configure: Regenerate.
10868         * configure.ac: Add definition of HAVE_isl.
10869         * graphite-blocking.c: Add checking of HAVE_isl.
10870         * graphite-dependences.c: Likewise.
10871         * graphite-interchange.c: Likewise.
10872         * graphite-isl-ast-to-gimple.c: Likewise.
10873         * graphite-optimize-isl.c: Likewise.
10874         * graphite-poly.c: Likewise.
10875         * graphite-scop-detection.c: Likewise.
10876         * graphite-sese-to-poly.c: Likewise.
10877         * graphite.c: Likewise.
10878         * toplev.c: Replace the checking of HAVE_cloog with the checking
10879         of HAVE_isl.
10880
10881 2014-08-18  Richard Biener  <rguenther@suse.de>
10882
10883         PR tree-optimization/62090
10884         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
10885         (fold_builtin_3): Do not fold snprintf.
10886         (fold_builtin_4): Likewise.
10887         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
10888         moved from builtins.c.
10889         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
10890         (gimple_fold_builtin): Do not fold sprintf here.
10891
10892 2014-08-18  Richard Biener  <rguenther@suse.de>
10893
10894         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
10895         code to ...
10896         (maybe_canonicalize_mem_ref_addr): ... this function.
10897         (fold_stmt_1): Apply it here before all simplification.
10898
10899 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
10900
10901         PR ipa/61800
10902         * cgraph.h (cgraph_node::create_indirect_edge): Add
10903         compute_indirect_info param.
10904         * cgraph.c (cgraph_node::create_indirect_edge): Compute
10905         indirect_info only when it is required.
10906         * cgraphclones.c (cgraph_clone_edge): Do not recompute
10907         indirect_info fore cloned indirect edge.
10908
10909 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10910             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10911             Anna Tikhonova  <anna.tikhonova@intel.com>
10912             Ilya Tocar  <ilya.tocar@intel.com>
10913             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10914             Ilya Verbin  <ilya.verbin@intel.com>
10915             Kirill Yukhin  <kirill.yukhin@intel.com>
10916             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10917
10918         * config/i386/sse.md
10919         (define_mode_iterator VI8_AVX2_AVX512BW): New.
10920         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
10921
10922 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10923             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10924             Anna Tikhonova  <anna.tikhonova@intel.com>
10925             Ilya Tocar  <ilya.tocar@intel.com>
10926             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10927             Ilya Verbin  <ilya.verbin@intel.com>
10928             Kirill Yukhin  <kirill.yukhin@intel.com>
10929             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10930
10931         * config/i386/sse.md
10932         (define_mode_iterator VF1_AVX512VL): New.
10933         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
10934         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
10935         New.
10936
10937 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10938             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10939             Anna Tikhonova  <anna.tikhonova@intel.com>
10940             Ilya Tocar  <ilya.tocar@intel.com>
10941             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10942             Ilya Verbin  <ilya.verbin@intel.com>
10943             Kirill Yukhin  <kirill.yukhin@intel.com>
10944             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10945
10946         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
10947         * config/i386/i386.md
10948         (define_code_iterator any_float): New.
10949         (define_code_attr floatsuffix): New.
10950         * config/i386/sse.md
10951         (define_mode_iterator VF1_128_256VL): New.
10952         (define_mode_iterator VF2_512_256VL): New.
10953         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
10954         TARGET check.
10955         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
10956         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
10957         New.
10958         (define_mode_attr qq2pssuff): New.
10959         (define_mode_attr sselongvecmode): New.
10960         (define_mode_attr sselongvecmodelower): New.
10961         (define_mode_attr sseintvecmode3): New.
10962         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
10963         New.
10964         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
10965         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
10966         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
10967         (define_insn "ufloatv2siv2df2<mask_name>"): New.
10968
10969 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10970             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10971             Anna Tikhonova  <anna.tikhonova@intel.com>
10972             Ilya Tocar  <ilya.tocar@intel.com>
10973             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10974             Ilya Verbin  <ilya.verbin@intel.com>
10975             Kirill Yukhin  <kirill.yukhin@intel.com>
10976             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10977
10978         * config/i386/sse.md
10979         (define_mode_iterator VF2_AVX512VL): New.
10980         (define_mode_attr sseintvecmode2): New.
10981         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
10982         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
10983         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
10984         (define_insn
10985         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
10986         Ditto.
10987         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10988         Ditto.
10989         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
10990         Ditto.
10991
10992 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10993             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10994             Anna Tikhonova  <anna.tikhonova@intel.com>
10995             Ilya Tocar  <ilya.tocar@intel.com>
10996             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10997             Ilya Verbin  <ilya.verbin@intel.com>
10998             Kirill Yukhin  <kirill.yukhin@intel.com>
10999             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11000
11001         * config/i386/i386.md
11002         (define_insn "*movoi_internal_avx"): Add evex version.
11003         (define_insn "*movti_internal"): Ditto.
11004
11005 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11006             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11007             Anna Tikhonova  <anna.tikhonova@intel.com>
11008             Ilya Tocar  <ilya.tocar@intel.com>
11009             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11010             Ilya Verbin  <ilya.verbin@intel.com>
11011             Kirill Yukhin  <kirill.yukhin@intel.com>
11012             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11013
11014         * config/i386/i386.md
11015         (define_attr "isa"): Add avx512dq, noavx512dq.
11016         (define_attr "enabled"): Ditto.
11017         * config/i386/sse.md
11018         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
11019
11020 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11021             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11022             Anna Tikhonova  <anna.tikhonova@intel.com>
11023             Ilya Tocar  <ilya.tocar@intel.com>
11024             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11025             Ilya Verbin  <ilya.verbin@intel.com>
11026             Kirill Yukhin  <kirill.yukhin@intel.com>
11027             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11028
11029         * config/i386/i386.c
11030         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
11031         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
11032         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
11033         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
11034         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
11035         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
11036         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
11037         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
11038         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
11039         * config/i386/sse.md
11040         (define_mode_iterator VMOVE): Allow V4TI mode.
11041         (define_mode_iterator V_AVX512VL): New.
11042         (define_mode_iterator V): New handling for AVX512VL.
11043         (define_insn "avx512f_load<mode>_mask"): Delete.
11044         (define_insn "<avx512>_load<mode>_mask"): New.
11045         (define_insn "avx512f_store<mode>_mask"): Delete.
11046         (define_insn "<avx512>_store<mode>_mask"): New.
11047
11048
11049 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
11050
11051         PR sanitizer/62089
11052         * asan.c (instrument_derefs): Fix bitfield check.
11053
11054 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
11055
11056         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
11057         * config/rs6000/htm.md (ttest): Remove clobber.
11058         * config/rs6000/predicates.md (any_mask_operand): New predicate.
11059         (and_operand): Reformat.
11060         (and_2rld_operand): New predicate.
11061         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
11062         parameter.
11063         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
11064         parameter.  Handle AND directly.
11065         (rs6000_split_logical_di): Remove last parameter.
11066         (rs6000_split_logical): Remove last parameter.  Remove obsolete
11067         comment.
11068         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
11069         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
11070         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
11071         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
11072         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
11073         and 5 anonymous splitters):  Delete.
11074         (and<mode>3): New expander.
11075         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
11076         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
11077         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
11078         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
11079         (floatdisf2_internal1): Remove clobbers.
11080         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
11081         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
11082         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
11083         (and<mode>3 for BOOL_128): Remove clobber.
11084         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
11085         rs6000_split_logical.
11086         (*bool<mode>3_internal for BOOL_128): Adjust call of
11087         rs6000_split_logical.
11088         (*boolc<mode>3_internal1 for BOOL_128,
11089         *boolc<mode>3_internal2 for BOOL_128,
11090         *boolcc<mode>3_internal1 for BOOL_128,
11091         *boolcc<mode>3_internal2 for BOOL_128,
11092         *eqv<mode>3_internal1 for BOOL_128,
11093         *eqv<mode>3_internal2 for BOOL_128,
11094         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
11095         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
11096         clobber.
11097         (*vec_reload_and_reg_<mptrsize>): Delete.
11098
11099 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
11100
11101         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
11102         and split, *boolccsi3_internal3 and split): Delete.
11103         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
11104         *boolccdi3_internal3 and split): Delete.
11105         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
11106         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
11107
11108 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
11109
11110         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
11111         and split, *boolcsi3_internal3 and split): Delete.
11112         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
11113         *boolcdi3_internal3 and split): Delete.
11114         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
11115
11116 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
11117
11118         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
11119         <'u'>: Also support printing the low-order 16 bits.
11120         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
11121         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
11122         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
11123         *booldi3_internal3 and split): Delete.
11124         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
11125         *bool<mode>3_dot2): New.
11126         (two anonymous define_splits for non_logical_cint_operand): Merge.
11127
11128 2014-08-17  Marek Polacek  <polacek@redhat.com>
11129             Manuel López-Ibáñez  <manu@gcc.gnu.org>
11130
11131         PR c/62059
11132         * diagnostic.c (adjust_line): Add gcc_checking_assert.
11133         (diagnostic_show_locus): Don't print caret diagnostic
11134         if a column is larger than the line_width.
11135
11136 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
11137
11138         * common.opt: Make the ISL AST generator to be the main code generator
11139         of Graphite.
11140
11141 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
11142
11143         * wide-int.h (generic_wide_int): Declare as class instead of struct.
11144
11145 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
11146
11147         PR target/61641
11148         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
11149         Declare.
11150         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
11151         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
11152         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
11153         Define.
11154         * config/pa/pa.md (begin_brtab): Delete insn.
11155         (end_brtab): Likewise.
11156
11157 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11158
11159         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
11160
11161 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
11162
11163         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
11164         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
11165         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
11166         (get_dynamic_type): Remove.
11167         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
11168         (clear_speculation): Bring to ipa-deivrt.h
11169         (get_class_context): Rename to ...
11170         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
11171         (contains_type_p): Update.
11172         (get_dynamic_type): Rename to ...
11173         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
11174         (possible_polymorphic_call_targets): UPdate.
11175         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
11176         * ipa-prop.c (ipa_analyze_call_uses): Update.
11177
11178 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
11179
11180         * doc/invoke.texi (SH options): Document missing processor variant
11181         options.  Remove references to Hitachi.  Undocument deprecated mspace
11182         option.
11183
11184 2014-08-15  Jason Merrill  <jason@redhat.com>
11185
11186         * tree.c (type_hash_canon): Uncomment assert.
11187
11188 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11189
11190         * input.h (in_system_header_at): Add comment.
11191
11192 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11193
11194         PR fortran/44054
11195         * diagnostic.c (build_message_string): Make it extern.
11196         * diagnostic.h (build_message_string): Make it extern.
11197
11198 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
11199
11200         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
11201         load/store from/to non-floating class pseudo.
11202
11203 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11204
11205         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
11206
11207 2014-08-15  Richard Biener  <rguenther@suse.de>
11208
11209         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
11210         (get_constraint_for_ssa_var): Remove dead code.
11211         (get_constraint_for_1): Adjust.
11212         (find_what_var_points_to): Likewise.
11213         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
11214
11215 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
11216
11217         PR target/61878
11218         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
11219         (_mm512_mask_cmpge_epu32_mask): Ditto.
11220         (_mm512_cmpge_epu32_mask): Ditto.
11221         (_mm512_mask_cmpge_epi64_mask): Ditto.
11222         (_mm512_cmpge_epi64_mask): Ditto.
11223         (_mm512_mask_cmpge_epu64_mask): Ditto.
11224         (_mm512_cmpge_epu64_mask): Ditto.
11225         (_mm512_mask_cmple_epi32_mask): Ditto.
11226         (_mm512_cmple_epi32_mask): Ditto.
11227         (_mm512_mask_cmple_epu32_mask): Ditto.
11228         (_mm512_cmple_epu32_mask): Ditto.
11229         (_mm512_mask_cmple_epi64_mask): Ditto.
11230         (_mm512_cmple_epi64_mask): Ditto.
11231         (_mm512_mask_cmple_epu64_mask): Ditto.
11232         (_mm512_cmple_epu64_mask): Ditto.
11233         (_mm512_mask_cmplt_epi32_mask): Ditto.
11234         (_mm512_cmplt_epi32_mask): Ditto.
11235         (_mm512_mask_cmplt_epu32_mask): Ditto.
11236         (_mm512_cmplt_epu32_mask): Ditto.
11237         (_mm512_mask_cmplt_epi64_mask): Ditto.
11238         (_mm512_cmplt_epi64_mask): Ditto.
11239         (_mm512_mask_cmplt_epu64_mask): Ditto.
11240         (_mm512_cmplt_epu64_mask): Ditto.
11241         (_mm512_mask_cmpneq_epi32_mask): Ditto.
11242         (_mm512_mask_cmpneq_epu32_mask): Ditto.
11243         (_mm512_cmpneq_epu32_mask): Ditto.
11244         (_mm512_mask_cmpneq_epi64_mask): Ditto.
11245         (_mm512_cmpneq_epi64_mask): Ditto.
11246         (_mm512_mask_cmpneq_epu64_mask): Ditto.
11247         (_mm512_cmpneq_epu64_mask): Ditto.
11248         (_mm512_castpd_ps): Ditto.
11249         (_mm512_castpd_si512): Ditto.
11250         (_mm512_castps_pd): Ditto.
11251         (_mm512_castps_si512): Ditto.
11252         (_mm512_castsi512_ps): Ditto.
11253         (_mm512_castsi512_pd): Ditto.
11254         (_mm512_castpd512_pd128): Ditto.
11255         (_mm512_castps512_ps128): Ditto.
11256         (_mm512_castsi512_si128): Ditto.
11257         (_mm512_castpd512_pd256): Ditto.
11258         (_mm512_castps512_ps256): Ditto.
11259         (_mm512_castsi512_si256): Ditto.
11260         (_mm512_castpd128_pd512): Ditto.
11261         (_mm512_castps128_ps512): Ditto.
11262         (_mm512_castsi128_si512): Ditto.
11263         (_mm512_castpd256_pd512): Ditto.
11264         (_mm512_castps256_ps512): Ditto.
11265         (_mm512_castsi256_si512): Ditto.
11266         (_mm512_cmpeq_epu32_mask): Ditto.
11267         (_mm512_mask_cmpeq_epu32_mask): Ditto.
11268         (_mm512_mask_cmpeq_epu64_mask): Ditto.
11269         (_mm512_cmpeq_epu64_mask): Ditto.
11270         (_mm512_cmpgt_epu32_mask): Ditto.
11271         (_mm512_mask_cmpgt_epu32_mask): Ditto.
11272         (_mm512_mask_cmpgt_epu64_mask): Ditto.
11273         (_mm512_cmpgt_epu64_mask): Ditto.
11274         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
11275         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
11276         * config/i386/i386.c (enum ix86_builtins): Add
11277         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
11278         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
11279         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
11280         (bdesc_args): Add __builtin_ia32_si512_256si,
11281         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
11282         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
11283         __builtin_ia32_pd512_pd.
11284         (ix86_expand_args_builtin): Handle new FTYPEs.
11285         * config/i386/sse.md (castmode): Add 512-bit modes.
11286         (AVX512MODE2P): New.
11287         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
11288         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
11289
11290 2014-08-15  Richard Biener  <rguenther@suse.de>
11291
11292         * fold-const.c (tree_swap_operands_p): Put all constants
11293         last, also strip sign-changing NOPs when considering further
11294         canonicalization.  Canonicalize also when optimizing for size.
11295
11296 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11297
11298         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
11299         one_match > zero_match case to just before simple_sequence.
11300
11301 2014-08-15  Richard Biener  <rguenther@suse.de>
11302
11303         * data-streamer.h (streamer_string_index, string_for_index):
11304         Remove.
11305         * data-streamer-out.c (streamer_string_index): Make static.
11306         * data-streamer-in.c (string_for_index): Likewise.
11307         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
11308         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
11309
11310 2014-08-15  Richard Biener  <rguenther@suse.de>
11311
11312         PR tree-optimization/62031
11313         * tree-data-ref.c (dr_analyze_indices): Do not set
11314         DR_UNCONSTRAINED_BASE.
11315         (dr_may_alias_p): All indirect accesses have to go the
11316         formerly DR_UNCONSTRAINED_BASE path.
11317         * tree-data-ref.h (struct indices): Remove
11318         unconstrained_base member.
11319         (DR_UNCONSTRAINED_BASE): Remove.
11320
11321 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
11322
11323         PR middle-end/62092
11324         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
11325         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
11326         in OMP_CLAUSE_MAP in some outer target region.
11327
11328 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
11329
11330         * tree-ssa-loop-ivopts.c (ivopts_data): New field
11331         name_expansion_cache.
11332         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
11333         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
11334         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
11335         (difference_cannot_overflow_p): New parameter.  Use affine
11336         expansion for equality check.
11337         (iv_elimination_compare_lt): Pass new argument.
11338
11339 2014-08-14  DJ Delorie  <dj@redhat.com>
11340
11341         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
11342         variables to the accumulator.
11343
11344         * config/rl78/predicates.md (rl78_near_mem_operand): New.
11345         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
11346         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
11347         with far-far moves.
11348
11349         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
11350         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
11351         (umulqihi3_virt): Likewise.
11352         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
11353         (umulqihi3_real): Likewise.
11354
11355         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
11356
11357 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11358
11359         PR tree-optimization/62091
11360         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
11361         function_entry_reached.
11362         (walk_aliased_vdefs): Clear it here.
11363         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
11364
11365 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
11366
11367         * ipa-utils.h (compare_virtual_tables): Declare.
11368         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
11369
11370 2014-08-14  Marek Polacek  <polacek@redhat.com>
11371
11372         DR 458
11373         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
11374         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
11375
11376 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11377
11378         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
11379
11380 2014-08-14  Tom de Vries  <tom@codesourcery.com>
11381
11382         PR rtl-optimization/62004
11383         PR rtl-optimization/62030
11384         * ifcvt.c (rtx_interchangeable_p): New function.
11385         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
11386         * emit-rtl.h (mem_attrs_eq_p): Declare.
11387
11388 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
11389
11390         * graphite-scop-detection.c:
11391         Add inclusion of cp-tree.h.
11392         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
11393         in case they are pointers to object types
11394
11395 2014-08-14  Richard Biener  <rguenther@suse.de>
11396
11397         * BASE-VER: Change to 5.0.0
11398
11399 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11400             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11401             Anna Tikhonova  <anna.tikhonova@intel.com>
11402             Ilya Tocar  <ilya.tocar@intel.com>
11403             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11404             Ilya Verbin  <ilya.verbin@intel.com>
11405             Kirill Yukhin  <kirill.yukhin@intel.com>
11406             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11407
11408         * config/i386/sse.md (define_mode_attr avx512): New.
11409         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
11410         V4DI modes.
11411         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
11412         (define_mode_attr ssse3_avx2): Ditto.
11413         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
11414         (define_mode_attr avx2_avx512bw): New.
11415         (define_mode_attr ssedoublemodelower): New.
11416         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
11417         V32HI, V64QI modes.
11418         (define_mode_attr ssebytemode): Allow V8DI modes.
11419         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
11420         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
11421         (define_mode_attr ssePSmode2): New.
11422         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
11423         V16HI, V32HI modes.
11424         (define_mode_attr dbpsadbwmode): New.
11425         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
11426         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
11427         (vi8_sse4_1_avx2_avx512): New.
11428         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
11429         mode attribute.
11430         (define_mode_attr blendbits): Move before its immediate use.
11431
11432 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11433             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11434             Anna Tikhonova  <anna.tikhonova@intel.com>
11435             Ilya Tocar  <ilya.tocar@intel.com>
11436             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11437             Ilya Verbin  <ilya.verbin@intel.com>
11438             Kirill Yukhin  <kirill.yukhin@intel.com>
11439             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11440
11441         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
11442         * config/i386/subst.md
11443         (define_mode_iterator SUBST_V): Update.
11444         (define_mode_iterator SUBST_A): Ditto.
11445         (define_subst_attr "mask_operand7"): New.
11446         (define_subst_attr "mask_operand10"): New.
11447         (define_subst_attr "mask_operand_arg34") : New.
11448         (define_subst_attr "mask_expand_op3"): New.
11449         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
11450         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
11451         (define_subst_attr "mask_avx512vl_condition"): New.
11452         (define_subst_attr "round_mask_operand4"): Ditto.
11453         (define_subst_attr "round_mask_scalar_op3"): Delete.
11454         (define_subst_attr "round_mask_op4"): New.
11455         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
11456         V16SImode.
11457         (define_subst_attr "round_modev8sf_condition"): New.
11458         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
11459         <MODE>mode.
11460         (define_subst_attr "round_saeonly_mask_operand4"): New.
11461         (define_subst_attr "round_saeonly_mask_op4"): New.
11462         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
11463         V8DImode, V16SImode.
11464         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
11465         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
11466         (define_subst_attr "mask_expand4_args"): New.
11467         (define_subst "mask_expand4"): New.
11468
11469 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11470             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11471             Anna Tikhonova  <anna.tikhonova@intel.com>
11472             Ilya Tocar  <ilya.tocar@intel.com>
11473             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11474             Ilya Verbin  <ilya.verbin@intel.com>
11475             Kirill Yukhin  <kirill.yukhin@intel.com>
11476             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11477
11478         * config/i386/i386.md
11479         (define_attr "isa"): Add avx512bw,noavx512bw.
11480         (define_attr "enabled"): Ditto.
11481         (define_split): Add 32/64-bit mask logic.
11482         (define_insn "*k<logic>qi"): New.
11483         (define_insn "*k<logic>hi"): New.
11484         (define_insn "*anddi_1"): Add mask version.
11485         (define_insn "*andsi_1"): Ditto.
11486         (define_insn "*<code><mode>_1"): Ditto.
11487         (define_insn "*<code>hi_1"): Ditto.
11488         (define_insn "kxnor<mode>"): New.
11489         (define_insn "kunpcksi"): New.
11490         (define_insn "kunpckdi"): New.
11491         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
11492         (define_insn "*one_cmplhi2_1"): Ditto.
11493
11494 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11495             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11496             Anna Tikhonova  <anna.tikhonova@intel.com>
11497             Ilya Tocar  <ilya.tocar@intel.com>
11498             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11499             Ilya Verbin  <ilya.verbin@intel.com>
11500             Kirill Yukhin  <kirill.yukhin@intel.com>
11501             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11502
11503         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
11504         V32HImode.
11505
11506 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11507             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11508             Anna Tikhonova  <anna.tikhonova@intel.com>
11509             Ilya Tocar  <ilya.tocar@intel.com>
11510             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11511             Ilya Verbin  <ilya.verbin@intel.com>
11512             Kirill Yukhin  <kirill.yukhin@intel.com>
11513             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11514
11515         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
11516         registers.
11517         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
11518         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
11519         xmm/ymm16+ when availble.
11520         * config/i386/i386.h
11521         (HARD_REGNO_NREGS): Add mask regs.
11522         (VALID_AVX512F_REG_MODE): Ditto.
11523         (VALID_AVX512F_REG_MODE) : Define.
11524         (VALID_MASK_AVX512BW_MODE): Ditto.
11525         (reg_class) (MASK_REG_P(X)): Define.
11526         * config/i386/i386.md: Do not split long moves with mask register,
11527         use kmovb if avx512bw is availible.
11528         (movdi_internal): Handle mask registers.
11529
11530 2014-08-14  Richard Biener  <rguenther@suse.de>
11531
11532         PR tree-optimization/62081
11533         * tree-ssa-loop.c (pass_fix_loops): New pass.
11534         (pass_tree_loop::gate):  Do not fixup loops here.
11535         * tree-pass.h (make_pass_fix_loops): Declare.
11536         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
11537
11538 2014-08-14  Richard Biener  <rguenther@suse.de>
11539
11540         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
11541         (type_hash_canon): ... this and avoid 2nd lookup for the add.
11542
11543 2014-08-14  Richard Biener  <rguenther@suse.de>
11544
11545         PR tree-optimization/62090
11546         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
11547         (fold_builtin_2): Do not fold sprintf.
11548         (fold_builtin_3): Likewise.
11549         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
11550         moved from builtins.c.
11551         (gimple_fold_builtin): Fold sprintf.
11552
11553 2014-08-14  Richard Biener  <rguenther@suse.de>
11554
11555         PR rtl-optimization/62079
11556         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
11557         run cleanup_cfg.
11558
11559 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11560
11561         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
11562         current_function_decl.
11563
11564 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
11565
11566         * cgraph.c (cgraph_node::function_symbol): Fix wrong
11567         cgraph_function_node to cgraph_node::function_symbol
11568         refactoring.
11569
11570 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11571
11572         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
11573         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
11574
11575 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
11576
11577         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
11578         warning.
11579
11580 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
11581
11582         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
11583         generator.
11584
11585 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
11586
11587         PR target/62025
11588         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
11589         any registers that are used in mem_insn.
11590
11591 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11592
11593         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler. 
11594
11595 2014-08-12  Steve Ellcey  <sellcey@mips.com>
11596
11597         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
11598         (MULTILIB_DIRNAMES): Ditto.
11599         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
11600         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
11601         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
11602         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
11603         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
11604         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
11605
11606 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11607
11608         PR target/61413
11609         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
11610         of __ARM_SIZEOF_WCHAR_T.
11611
11612 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11613
11614         PR target/62098
11615         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
11616         Remove unnecessary attributes.
11617
11618 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
11619
11620         * internal-fn.c (init_internal_fns): Fix off-by-one.
11621
11622 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11623             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11624             Anna Tikhonova  <anna.tikhonova@intel.com>
11625             Ilya Tocar  <ilya.tocar@intel.com>
11626             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11627             Ilya Verbin  <ilya.verbin@intel.com>
11628             Kirill Yukhin  <kirill.yukhin@intel.com>
11629             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11630
11631         * config/i386/i386.c (standard_sse_constant_opcode): Use
11632         vpxord/vpternlog if avx512 is availible.
11633
11634 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11635
11636         PR middle-end/62103
11637         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
11638         bitfields, that is when size doesn't match the size of type or the
11639         size of the constructor.
11640
11641 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11642
11643         * config/rs6000/constraints.md (wh constraint): New constraint,
11644         for FP registers if direct move is available.
11645         (wi constraint): New constraint, for VSX/FP registers that can
11646         handle 64-bit integers.
11647         (wj constraint): New constraint for VSX/FP registers that can
11648         handle 64-bit integers for direct moves.
11649         (wk constraint): New constraint for VSX/FP registers that can
11650         handle 64-bit doubles for direct moves.
11651         (wy constraint): Make documentation match implementation.
11652
11653         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
11654         scalar_in_vmx_p field to simplify tests of whether SFmode or
11655         DFmode can go in the Altivec registers.
11656         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
11657         (rs6000_setup_reg_addr_masks): Likewise.
11658         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
11659         field, and wh/wi/wj/wk constraints.
11660         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
11661         the wh/wi/wj/wk constraints.
11662         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
11663         upper registers, prefer VSX registers unless the operation is a
11664         memory operation with REG+OFFSET addressing.
11665
11666         * config/rs6000/vsx.md (VSr mode attribute): Add support for
11667         DImode.  Change SFmode to use ww constraint instead of d to allow
11668         SF registers in the upper registers.
11669         (VSr2): Likewise.
11670         (VSr3): Likewise.
11671         (VSr5): Fix thinko in comment.
11672         (VSa): New mode attribute that is an alternative to wa, that
11673         returns the VSX register class that a mode can go in, but may not
11674         be the preferred register class.
11675         (VS_64dm): New mode attribute for appropriate register classes for
11676         referencing 64-bit elements of vectors for direct moves and normal
11677         moves.
11678         (VS_64reg): Likewise.
11679         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
11680         register allocator to only registers the data type can handle.
11681         (vsx_le_perm_load_<mode>): Likewise.
11682         (vsx_le_perm_store_<mode>): Likewise.
11683         (vsx_xxpermdi2_le_<mode>): Likewise.
11684         (vsx_xxpermdi4_le_<mode>): Likewise.
11685         (vsx_lxvd2x2_le_<mode>): Likewise.
11686         (vsx_lxvd2x4_le_<mode>): Likewise.
11687         (vsx_stxvd2x2_le_<mode>): Likewise.
11688         (vsx_add<mode>3): Likewise.
11689         (vsx_sub<mode>3): Likewise.
11690         (vsx_mul<mode>3): Likewise.
11691         (vsx_div<mode>3): Likewise.
11692         (vsx_tdiv<mode>3_internal): Likewise.
11693         (vsx_fre<mode>2): Likewise.
11694         (vsx_neg<mode>2): Likewise.
11695         (vsx_abs<mode>2): Likewise.
11696         (vsx_nabs<mode>2): Likewise.
11697         (vsx_smax<mode>3): Likewise.
11698         (vsx_smin<mode>3): Likewise.
11699         (vsx_sqrt<mode>2): Likewise.
11700         (vsx_rsqrte<mode>2): Likewise.
11701         (vsx_tsqrt<mode>2_internal): Likewise.
11702         (vsx_fms<mode>4): Likewise.
11703         (vsx_nfma<mode>4): Likewise.
11704         (vsx_eq<mode>): Likewise.
11705         (vsx_gt<mode>): Likewise.
11706         (vsx_ge<mode>): Likewise.
11707         (vsx_eq<mode>_p): Likewise.
11708         (vsx_gt<mode>_p): Likewise.
11709         (vsx_ge<mode>_p): Likewise.
11710         (vsx_xxsel<mode>): Likewise.
11711         (vsx_xxsel<mode>_uns): Likewise.
11712         (vsx_copysign<mode>3): Likewise.
11713         (vsx_float<VSi><mode>2): Likewise.
11714         (vsx_floatuns<VSi><mode>2): Likewise.
11715         (vsx_fix_trunc<mode><VSi>2): Likewise.
11716         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
11717         (vsx_x<VSv>r<VSs>i): Likewise.
11718         (vsx_x<VSv>r<VSs>ic): Likewise.
11719         (vsx_btrunc<mode>2): Likewise.
11720         (vsx_b2trunc<mode>2): Likewise.
11721         (vsx_floor<mode>2): Likewise.
11722         (vsx_ceil<mode>2): Likewise.
11723         (vsx_<VS_spdp_insn>): Likewise.
11724         (vsx_xscvspdp): Likewise.
11725         (vsx_xvcvspuxds): Likewise.
11726         (vsx_float_fix_<mode>2): Likewise.
11727         (vsx_set_<mode>): Likewise.
11728         (vsx_extract_<mode>_internal1): Likewise.
11729         (vsx_extract_<mode>_internal2): Likewise.
11730         (vsx_extract_<mode>_load): Likewise.
11731         (vsx_extract_<mode>_store): Likewise.
11732         (vsx_splat_<mode>): Likewise.
11733         (vsx_xxspltw_<mode>): Likewise.
11734         (vsx_xxspltw_<mode>_direct): Likewise.
11735         (vsx_xxmrghw_<mode>): Likewise.
11736         (vsx_xxmrglw_<mode>): Likewise.
11737         (vsx_xxsldwi_<mode>): Likewise.
11738         (vsx_xscvdpspn): Tighten constraints to only use register classes
11739         the types use.
11740         (vsx_xscvspdpn): Likewise.
11741         (vsx_xscvdpspn_scalar): Likewise.
11742
11743         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
11744         wj, and wk constraints.
11745         (GPR_REG_CLASS_P): New helper macro for register classes targeting
11746         general purpose registers.
11747
11748         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
11749         direct moves.
11750         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
11751         DImode instead of wm.  Use wk constraint for direct move of DFmode
11752         instead of wm.
11753         (extendsidi2_lfiwax): Likewise.
11754         (lfiwax): Likewise.
11755         (lfiwzx): Likewise.
11756         (movdi_internal64): Likewise.
11757
11758         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
11759         wk constraints. Make the wy constraint documentation match them
11760         implementation.
11761
11762 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
11763
11764         Replacement of isl_int by isl_val
11765         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
11766         (compute_bounds_for_param): use isl_val instead of isl_int
11767         (compute_bounds_for_loop): likewise
11768         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
11769         (build_linearized_memory_access): use isl_val instead of isl_int
11770         (pdr_stride_in_loop): likewise
11771         * graphite-optimize-isl.c:
11772         (getPrevectorMap): use isl_val instead of isl_int
11773         * graphite-poly.c:
11774         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
11775         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
11776         (extern the_isl_ctx): declare
11777         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
11778         (extract_affine_gmp): likewise
11779         (wrap): likewise
11780         (build_loop_iteration_domains): likewise
11781         (add_param_constraints): likewise
11782
11783 2014-08-11  Richard Biener  <rguenther@suse.de>
11784
11785         PR tree-optimization/62075
11786         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
11787         handle uses in patterns.
11788
11789 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11790             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11791             Anna Tikhonova  <anna.tikhonova@intel.com>
11792             Ilya Tocar  <ilya.tocar@intel.com>
11793             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11794             Ilya Verbin  <ilya.verbin@intel.com>
11795             Kirill Yukhin  <kirill.yukhin@intel.com>
11796             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11797
11798         * common/config/i386/i386-common.c
11799         (OPTION_MASK_ISA_AVX512VL_SET): Define.
11800         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
11801         (ix86_handle_option): Handle OPT_mavx512vl.
11802         * config/i386/cpuid.h (bit_AVX512VL): Define.
11803         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
11804         set -mavx512vl accordingly.
11805         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11806         OPTION_MASK_ISA_AVX512VL.
11807         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
11808         (ix86_option_override_internal): Define PTA_AVX512VL, handle
11809         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
11810         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
11811         * config/i386/i386.h (TARGET_AVX512VL): Define.
11812         (TARGET_AVX512VL_P(x)): Ditto.
11813         * config/i386/i386.opt: Add mavx512vl.
11814
11815 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
11816
11817         PR tree-optimization/62073
11818         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
11819         a basic block.
11820
11821 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11822             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11823             Anna Tikhonova  <anna.tikhonova@intel.com>
11824             Ilya Tocar  <ilya.tocar@intel.com>
11825             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11826             Ilya Verbin  <ilya.verbin@intel.com>
11827             Kirill Yukhin  <kirill.yukhin@intel.com>
11828             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11829
11830         * common/config/i386/i386-common.c
11831         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
11832         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
11833         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
11834         (ix86_handle_option): Handle OPT_mavx512bw.
11835         * config/i386/cpuid.h (bit_AVX512BW): Define.
11836         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
11837         set -mavx512bw accordingly.
11838         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11839         OPTION_MASK_ISA_AVX512BW.
11840         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
11841         (ix86_option_override_internal): Define PTA_AVX512BW, handle
11842         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
11843         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
11844         * config/i386/i386.h (TARGET_AVX512BW): Define.
11845         (TARGET_AVX512BW_P(x)): Ditto.
11846         * config/i386/i386.opt: Add mavx512bw.
11847
11848 2014-08-11  Richard Biener  <rguenther@suse.de>
11849
11850         PR tree-optimization/62070
11851         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
11852         Remove SSA checking.
11853
11854 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11855
11856         * asan.c (asan_check_flags): New enum.
11857         (build_check_stmt_with_calls): Removed function.
11858         (build_check_stmt): Split inlining logic to
11859         asan_expand_check_ifn.
11860         (instrument_derefs): Rename parameter.
11861         (instrument_mem_region_access): Rename parameter.
11862         (instrument_strlen_call): Likewise.
11863         (asan_expand_check_ifn): New function.
11864         (asan_instrument): Remove old code.
11865         (pass_sanopt::execute): Change handling of
11866         asan-instrumentation-with-call-threshold.
11867         (asan_clear_shadow): Fix formatting.
11868         (asan_function_start): Likewise.
11869         (asan_emit_stack_protection): Likewise.
11870         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
11871         Update description.
11872         * internal-fn.c (expand_ASAN_CHECK): New function.
11873         * internal-fn.def (ASAN_CHECK): New internal function.
11874         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
11875         Update description.
11876         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
11877         * tree.c: Small comment fix.
11878
11879 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
11880
11881         * gimple.c (gimple_call_fnspec): Support internal functions.
11882         (gimple_call_return_flags): Use const.
11883         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
11884         * internal-fn.def: Add fnspec information.
11885         * internal-fn.h (internal_fn_fnspec): New function.
11886         (init_internal_fns): Declare new function.
11887         * internal-fn.c (internal_fn_fnspec_array): New global variable.
11888         (init_internal_fns): New function.
11889         * tree-core.h: Update macro call.
11890         * tree.c (build_common_builtin_nodes): Initialize internal fns.
11891
11892 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
11893
11894         * lto-streamer.h (struct output_block::symbol): Change from
11895         struct symtab_node to plain symtab_node.
11896         (referenced_from_this_partition_p): Change first parameter
11897         from struct symtab_node to plain symtab_node.
11898
11899 2014-08-10  Marek Polacek  <polacek@redhat.com>
11900
11901         PR c/51849
11902         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
11903
11904 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
11905
11906         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
11907         DECL correctly; do not give up on types in static storage.
11908
11909 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
11910
11911         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
11912
11913 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
11914
11915         * graphite-isl-ast-to-gimple.c:
11916         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
11917
11918         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
11919
11920 2014-08-08  Guozhi Wei  <carrot@google.com>
11921
11922         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
11923
11924 2014-08-08  Cary Coutant  <ccoutant@google.com>
11925
11926         * dwarf2out.c (get_skeleton_type_unit): Remove.
11927         (output_skeleton_debug_sections): Remove skeleton type units.
11928         (output_comdat_type_unit): Likewise.
11929         (dwarf2out_finish): Likewise.
11930
11931 2014-08-07  Yi Yang  <ahyangyi@google.com>
11932
11933         * predict.c (expr_expected_value_1): Remove the redundant assignment.
11934
11935 2014-08-08  Richard Biener  <rguenther@suse.de>
11936
11937         * lto-streamer.h (struct lto_input_block): Make it a class
11938         with a constructor.
11939         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
11940         (struct lto_function_header, struct lto_simple_header,
11941         struct lto_simple_header_with_strings,
11942         struct lto_decl_header, struct lto_function_header): Make
11943         a simple inheritance hieararchy.  Remove unused fields.
11944         (struct lto_asm_header): Remove.
11945         * lto-streamer-out.c (produce_asm): Adjust.
11946         (lto_output_toplevel_asms): Likewise.
11947         (produce_asm_for_decls): Likewise.
11948         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11949         * data-streamer-in.c (string_for_index): Likewise.
11950         * ipa-inline-analysis.c (inline_read_section): Likewise.
11951         * ipa-prop.c (ipa_prop_read_section): Likewise.
11952         (read_replacements_section): Likewise.
11953         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
11954         * lto-section-in.c (lto_create_simple_input_block): Likewise.
11955         (lto_destroy_simple_input_block): Likewise.
11956         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
11957         (lto_input_toplevel_asms): Likewise.
11958
11959 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
11960             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
11961             Anna Tikhonova  <anna.tikhonova@intel.com>
11962             Ilya Tocar  <ilya.tocar@intel.com>
11963             Andrey Turetskiy  <andrey.turetskiy@intel.com>
11964             Ilya Verbin  <ilya.verbin@intel.com>
11965             Kirill Yukhin  <kirill.yukhin@intel.com>
11966             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
11967
11968         * common/config/i386/i386-common.c
11969         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
11970         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
11971         (ix86_handle_option): Handle OPT_mavx512dq.
11972         * config/i386/cpuid.h (bit_AVX512DQ): Define.
11973         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
11974         set -mavx512dq accordingly.
11975         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11976         OPTION_MASK_ISA_AVX512DQ.
11977         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
11978         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
11979         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
11980         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
11981         * config/i386/i386.h (TARGET_AVX512DQ): Define.
11982         (TARGET_AVX512DQ_P(x)): Ditto.
11983         * config/i386/i386.opt: Add mavx512dq.
11984
11985 2014-08-08  Richard Biener  <rguenther@suse.de>
11986
11987         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
11988         target_percent, target_percent_s): Export.
11989         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
11990         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
11991         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
11992         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
11993         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
11994         Move to gimple-fold.c.
11995         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
11996         strcat and strcpy.
11997         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
11998         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
11999         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
12000         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
12001         (rewrite_call_expr_array): Remove.
12002         (fold_builtin_sprintf_chk): Likewise.
12003         (fold_builtin_snprintf_chk): Likewise.
12004         (fold_builtin_varargs): Remove handling of sprintf_chk,
12005         vsprintf_chk, snprintf_chk and vsnprintf_chk.
12006         (gimple_fold_builtin_sprintf_chk): Remove.
12007         (gimple_fold_builtin_snprintf_chk): Likewise.
12008         (gimple_fold_builtin_varargs): Likewise.
12009         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
12010         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
12011         * gimple.c (gimple_seq_add_seq_without_update): New function.
12012         * gimple.h (gimple_seq_add_seq_without_update): Declare.
12013         * gimple-fold.c: Include output.h.
12014         (gsi_replace_with_seq_vops): New function, split out from ...
12015         (gimplify_and_update_call_from_tree): ... here.
12016         (replace_call_with_value): New function.
12017         (replace_call_with_call_and_fold): Likewise.
12018         (var_decl_component_p): Moved from builtins.c.
12019         (gimple_fold_builtin_memory_op): Moved from builtins.c
12020         fold_builtin_memory_op and rewritten to GIMPLE.
12021         (gimple_fold_builtin_memset): Likewise.
12022         (gimple_fold_builtin_strcpy): Likewise.
12023         (gimple_fold_builtin_strncpy): Likewise.
12024         (gimple_fold_builtin_strcat): Likewise.
12025         (gimple_fold_builtin_fputs): Likewise.
12026         (gimple_fold_builtin_memory_chk): Likewise.
12027         (gimple_fold_builtin_stxcpy_chk): Likewise.
12028         (gimple_fold_builtin_stxncpy_chk): Likewise.
12029         (gimple_fold_builtin_snprintf_chk): Likewise.
12030         (gimple_fold_builtin_sprintf_chk): Likewise.
12031         (gimple_fold_builtin_strlen): New function.
12032         (gimple_fold_builtin_with_strlen): New function split out from
12033         gimple_fold_builtin.
12034         (gimple_fold_builtin): Change signature and handle
12035         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
12036         here.  Call gimple_fold_builtin_with_strlen.
12037         (gimple_fold_call): Adjust.
12038
12039 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
12040
12041         * calls.c (precompute_arguments): Check
12042          promoted_for_signed_and_unsigned_p and set the promoted mode.
12043         (promoted_for_signed_and_unsigned_p): New function.
12044         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
12045         and set the promoted mode.
12046         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
12047         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
12048         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
12049
12050
12051 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
12052
12053         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
12054         instead of SUBREG_PROMOTED_UNSIGNED_SET.
12055         (expand_call): Likewise.
12056         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
12057         to get promoted mode.
12058         * combine.c (record_promoted_value): Skip > 0 comparison with
12059         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
12060         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
12061         of SUBREG_PROMOTED_UNSIGNED_P.
12062         (convert_modes): Likewise.
12063         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
12064         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
12065         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
12066         SUBREG_PROMOTED_UNSIGNED_SET.
12067         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
12068         instead of SUBREG_PROMOTED_UNSIGNED_SET.
12069         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
12070         SUBREG_PROMOTED_SET.
12071         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
12072         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
12073         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
12074         of SUBREG_PROMOTED_UNSIGNED_P.
12075         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
12076         (SUBREG_PROMOTED_SET): New define.
12077         (SUBREG_PROMOTED_GET): Likewise.
12078         (SUBREG_PROMOTED_SIGN): Likewise.
12079         (SUBREG_PROMOTED_SIGNED_P): Likewise.
12080         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
12081         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
12082         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
12083         instead of SUBREG_PROMOTED_UNSIGNED_GET.
12084         (nonzero_bits1): Skip > 0 comparison with the results as
12085         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
12086         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
12087         of !SUBREG_PROMOTED_UNSIGNED_P.
12088         * simplify-rtx.c (simplify_unary_operation_1): Use new
12089         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
12090         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
12091         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
12092         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
12093
12094 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
12095
12096         * ipa-devirt.c: Include gimple-pretty-print.h
12097         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
12098         further tests.
12099         (decl_maybe_in_construction_p): Fix conditional on cdtor check
12100         (get_polymorphic_call_info): Fix return value
12101         (type_change_info): New sturcture based on ipa-prop
12102         variant.
12103         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
12104         based on ipa-prop variant.
12105         (extr_type_from_vtbl_ptr_store): New function
12106         based on ipa-prop variant.
12107         (record_known_type): New function.
12108         (check_stmt_for_type_change): New function.
12109         (get_dynamic_type): New function.
12110         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
12111         * tree-ssa-pre.c: ipa-utils.h
12112         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
12113         machinery; sanity check with ipa-prop devirtualization.
12114         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
12115         polymorphic flag.
12116
12117 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
12118
12119         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
12120         * alias.c, cfgexpand.c, cgraphbuild.c,
12121         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
12122         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
12123         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
12124         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
12125         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
12126         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
12127         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
12128         dse.c, except.c, gengtype.c, gimple-expr.c,
12129         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
12130         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
12131         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
12132         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
12133         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
12134         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
12135         pointer-set.h.
12136         * pointer-set.c: Remove file.
12137         * pointer-set.h: Remove file.
12138
12139 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12140
12141         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
12142         * config/arm/types.md (f_sels, f_seld): Delete.
12143
12144 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12145
12146         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
12147         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
12148         (aarch64_movdi_<mode>high): Likewise.
12149         (aarch64_mov<mode>high_di): Likewise.
12150         (aarch64_movdi_<mode>low): Likewise.
12151         (aarch64_mov<mode>low_di): Likewise.
12152         (aarch64_movtilow_tilow): Likewise.
12153         Add comment explaining usage of fp,simd attributes and of
12154         TARGET_FLOAT and TARGET_SIMD.
12155
12156 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
12157             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12158
12159         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
12160         Use MOVN when one of the half-words is 0xffff.
12161
12162 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
12163
12164         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
12165
12166 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
12167
12168         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
12169         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
12170         (rfs_str): String corresponding to RFS_* constants.
12171         (rank_for_schedule_stats_t): New typedef.
12172         (rank_for_schedule_stats): New static variable.
12173         (rfs_result): New static function.
12174         (rank_for_schedule): Track statistics for deciding heuristics.
12175         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
12176         static functions.
12177         (ready_sort): Use them for debug printouts.
12178         (schedule_block): Init statistics state.  Print statistics on
12179         rank_for_schedule decisions.
12180
12181 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
12182
12183         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
12184
12185 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
12186
12187         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
12188         constraint.
12189
12190 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
12191
12192         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
12193         function to not conflict.
12194         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
12195         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
12196         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
12197         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
12198         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
12199         of pointer_map.
12200
12201 2014-08-07  Marek Polacek  <polacek@redhat.com>
12202
12203         * fold-const.c (fold_binary_loc): Add folding of
12204         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
12205
12206 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
12207
12208         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
12209         instead of type size.
12210         (ASM_FINISH_DECLARE_OBJECT): Likewise.
12211
12212 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
12213
12214         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
12215         (*thumb1_movqi_insn): Likewise.
12216         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
12217
12218 2014-08-07  Tom de Vries  <tom@codesourcery.com>
12219
12220         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12221         (glibc_2_11_or_earlier): Remove effective-target keywords.
12222
12223 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
12224
12225         * config/arm/arm.c (bdesc_2arg): Fix typo.
12226         (arm_atomic_assign_expand_fenv): Remove The default implementation.
12227
12228 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
12229
12230         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
12231
12232 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
12233
12234         PR debug/61923
12235         * haifa-sched.c (advance_one_cycle): Fix dump.
12236         (schedule_block): Don't advance cycle if we are already at the
12237         beginning of the cycle.
12238
12239 2014-08-06  Martin Jambor  <mjambor@suse.cz>
12240
12241         PR ipa/61393
12242         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
12243
12244 2014-08-06  Richard Biener  <rguenther@suse.de>
12245
12246         PR lto/62034
12247         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
12248         SCCs here.
12249         (lto_input_tree): Pop SCCs here.
12250
12251 2014-08-06  Richard Biener  <rguenther@suse.de>
12252
12253         PR tree-optimization/61320
12254         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
12255         handle misaligned loads.
12256
12257 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
12258
12259         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
12260         (aarch64_expand_vec_perm_const): Check for dup before zip.
12261
12262 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12263
12264         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
12265         CONST_INT_P instead of GET_CODE and compare.
12266         (aarch64_select_cc_mode): Likewise.
12267         (aarch64_print_operand): Likewise.
12268         (aarch64_rtx_costs): Likewise.
12269         (aarch64_simd_valid_immediate): Likewise.
12270         (aarch64_simd_check_vect_par_cnst_half): Likewise.
12271         (aarch64_simd_emit_pair_result_insn): Likewise.
12272
12273 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
12274
12275         * gdbhooks.py (find_gcc_source_dir): New helper function.
12276         (class PassNames): New class, locating and parsing passes.def.
12277         (class BreakOnPass): New command "break-on-pass".
12278
12279 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
12280
12281         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
12282         getting olde.
12283
12284 2014-08-05  Richard Biener  <rguenther@suse.de>
12285
12286         PR rtl-optimization/61672
12287         * emit-rtl.h (mem_attrs_eq_p): Declare.
12288         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
12289         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
12290         * cfgcleanup.c (merge_memattrs): Likewise.
12291         Include emit-rtl.h.
12292
12293 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12294
12295         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
12296         rather than singleton vectors.
12297         (vqdmlsls_lane_s32): Likewise.
12298
12299 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12300
12301         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
12302         Use VSDQ_HSI mode iterator.
12303         (aarch64_sqrdmulh_laneq<mode>): Likewise.
12304         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
12305         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
12306         Use BUILTIN_VDQHS macro.
12307         (sqrdmulh_laneq): Likewise.
12308         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
12309         (vqdmlals_laneq_s32): Likewise.
12310         (vqdmlslh_laneq_s16): Likewise.
12311         (vqdmlsls_laneq_s32): Likewise.
12312         (vqdmulhh_laneq_s16): Likewise.
12313         (vqdmulhs_laneq_s32): Likewise.
12314         (vqrdmulhh_laneq_s16): Likewise.
12315         (vqrdmulhs_laneq_s32): Likewise.
12316
12317 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12318
12319         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
12320         (vmuld_laneq_f64): Likewise.
12321         (vmuls_laneq_f32): Likewise.
12322         (vmul_n_f64): Likewise.
12323         (vmuld_lane_f64): Reimplement in C.
12324         (vmuls_lane_f32): Likewise.
12325
12326 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12327
12328         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
12329         to reservation.
12330         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
12331
12332 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12333
12334         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
12335         (rbitsi2): Likewise.
12336         (*arm_rev): Set predicable and predicable_short_it attributes.
12337
12338 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12339
12340         * convert.c (convert_to_integer): Guard transformation to lrint by
12341         -fno-math-errno.
12342
12343 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
12344
12345         * config/aarch64/aarch64-builtins.c
12346         (aarch64_simd_builtin_type_mode): Delete.
12347         (v8qi_UP): Remap to V8QImode.
12348         (v4hi_UP): Remap to V4HImode.
12349         (v2si_UP): Remap to V2SImode.
12350         (v2sf_UP): Remap to V2SFmode.
12351         (v1df_UP): Remap to V1DFmode.
12352         (di_UP): Remap to DImode.
12353         (df_UP): Remap to DFmode.
12354         (v16qi_UP):V16QImode.
12355         (v8hi_UP): Remap to V8HImode.
12356         (v4si_UP): Remap to V4SImode.
12357         (v4sf_UP): Remap to V4SFmode.
12358         (v2di_UP): Remap to V2DImode.
12359         (v2df_UP): Remap to V2DFmode.
12360         (ti_UP): Remap to TImode.
12361         (ei_UP): Remap to EImode.
12362         (oi_UP): Remap to OImode.
12363         (ci_UP): Map to CImode.
12364         (xi_UP): Remap to XImode.
12365         (si_UP): Remap to SImode.
12366         (sf_UP): Remap to SFmode.
12367         (hi_UP): Remap to HImode.
12368         (qi_UP): Remap to QImode.
12369         (aarch64_simd_builtin_datum): Make mode a machine_mode.
12370         (VAR1): Build builtin name.
12371         (aarch64_init_simd_builtins): Remove dead code.
12372
12373 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12374
12375         * graphite-isl-ast-to-gimple.c:
12376         (set_options): New function.
12377         (scop_to_isl_ast): Add calling of set_options.
12378
12379 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
12380
12381         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
12382         (analyze_iv_to_split_insn): Don't initialize them.
12383         (get_ivts_expr): Removed.
12384         (allocate_basic_variable, insert_base_initialization): Use
12385         SET_SRC instead of *get_ivts_expr.
12386         (split_iv): Use &SET_SRC instead of get_ivts_expr.
12387
12388 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
12389
12390         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
12391         (translate_isl_ast_for_loop): Add checking of the
12392         flag_loop_parallelize_all.
12393         (ast_build_before_for): New function.
12394         (scop_to_isl_ast): Add checking of the
12395         flag_loop_parallelize_all.
12396         * graphite-dependences.c: Move the defenition of the
12397         scop_get_dependences from graphite-optimize-isl.c to this file.
12398         (apply_schedule_on_deps): Add checking of the ux's emptiness.
12399         (carries_deps): Add checking of the x's value.
12400         * graphite-optimize-isl.c: Move the defenition of the
12401         scop_get_dependences to graphite-dependences.c.
12402         * graphite-poly.h: Add declarations of scop_get_dependences
12403         and carries_deps.
12404
12405 2014-08-04  Rohit  <rohitarulraj@freescale.com>
12406
12407         PR target/60102
12408         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
12409         names.
12410         (alt_reg_names): Likewise.
12411         (rs6000_dwarf_register_span): For SPE high registers, replace
12412         dwarf register numbers with GCC hard register numbers.
12413         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
12414         (rs6000_dbx_register_number): For SPE high registers, return dwarf
12415         register number for the corresponding GCC hard register number.
12416         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
12417         newly added GCC hard register numbers for SPE high registers.
12418         (DWARF_FRAME_REGISTERS):  Likewise.
12419         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
12420         (DWARF_FRAME_REGNUM): Likewise.
12421         (FIXED_REGISTERS): Likewise.
12422         (CALL_USED_REGISTERS): Likewise.
12423         (CALL_REALLY_USED_REGISTERS): Likewise.
12424         (REG_ALLOC_ORDER): Likewise.
12425         (enum reg_class): Likewise.
12426         (REG_CLASS_NAMES): Likewise.
12427         (REG_CLASS_CONTENTS): Likewise.
12428         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
12429
12430 2014-08-04  Richard Biener  <rguenther@suse.de>
12431
12432         * gimple-fold.h (gimple_fold_builtin): Remove.
12433         * gimple-fold.c (gimple_fold_builtin): Make static.
12434         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
12435         fold_stmt, not gimple_fold_builtin.
12436
12437 2014-08-04  Martin Liska <mliska@suse.cz>
12438
12439         * cgraph.h (csi_end_p): Removed.
12440         (csi_next): Likewise.
12441         (csi_node): Likewise.
12442         (csi_start): Likewise.
12443         (cgraph_node_in_set_p): Likewise.
12444         (cgraph_node_set_size): Likewise.
12445         (vsi_end_p): Likewise.
12446         (vsi_next): Likewise.
12447         (vsi_node): Likewise.
12448         (vsi_start): Likewise.
12449         (varpool_node_set_size): Likewise.
12450         (cgraph_node_set_nonempty_p): Likewise.
12451         (varpool_node_set_nonempty_p): Likewise.
12452         * cgraphunit.c (cgraph_process_new_functions): vec replaces
12453         cgraph_node_set.
12454         * ipa-inline-transform.c: Likewise.
12455         * ipa-utils.c (cgraph_node_set_new): Removed.
12456         (cgraph_node_set_add): Likewise.
12457         (cgraph_node_set_remove): Likewise.
12458         (cgraph_node_set_find): Likewise.
12459         (dump_cgraph_node_set): Likewise.
12460         (debug_cgraph_node_set): Likewise.
12461         (free_cgraph_node_set): Likewise.
12462         (varpool_node_set_new): Likewise.
12463         (varpool_node_set_add): Likewise.
12464         (varpool_node_set_remove): Likewise.
12465         (varpool_node_set_find): Likewise.
12466         (dump_varpool_node_set): Likewise.
12467         (free_varpool_node_set): Likewise.
12468         (debug_varpool_node_set): Likewise.
12469         * tree-emutls.c (struct tls_var_data):
12470         (emutls_index): Removed.
12471         (emutls_decl): Likewise.
12472         (gen_emutls_addr): Function implementation uses newly added
12473         hash_map<varpool_node *, tls_var_data>.
12474         (clear_access_vars): Likewise.
12475         (create_emultls_var): Likewise.
12476         (ipa_lower_emutls): Likewise.
12477         (reset_access): New function.
12478
12479 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12480
12481         * config/i386/i386.c (ix86_option_override_internal): Add
12482         PTA_RDRND and PTA_MOVBE for bdver4.
12483
12484 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12485             James Greenhalgh  <james.greenhalgh@arm.com>
12486
12487         * doc/md.texi (clrsb): Document.
12488         (clz): Change reference to x into operand 1.
12489         (ctz): Likewise.
12490         (popcount): Likewise.
12491
12492 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12493
12494         PR target/61713
12495         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
12496         move to subtarget in serial version if result is ignored.
12497
12498 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12499             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12500
12501         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
12502         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
12503         (sched_analyze_insn): Update use of try_group_insn to
12504         sched_macro_fuse_insns.
12505         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
12506         arguments that are not conditional jumps.
12507
12508 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
12509
12510         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
12511         family information. Handle BTVER2 cpu with cpuid family value.
12512
12513 2014-08-04  Tom de Vries  <tom@codesourcery.com>
12514
12515         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
12516         (glibc_2_11_or_earlier): Document effective-target keywords.
12517
12518 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12519
12520         * ipa-devirt.c (odr_type_warn_count): Add type.
12521         (possible_polymorphic_call_targets): Set it.
12522         (ipa_devirt): Use it.
12523
12524 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
12525
12526         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
12527         Document.
12528         * ipa-devirt.c: Include hash-map.h
12529         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
12530         (clear_speculation): Break out of ...
12531         (get_class_context): ... here; speed up handling obviously useless
12532         speculations.
12533         (odr_type_warn_count, decl_warn_count): New structures.
12534         (final_warning_record): New structure.
12535         (final_warning_records): New static variable.
12536         (possible_polymorphic_call_targets): Cleanup handling of
12537         speculative info; do not build speculation when user do not care;
12538         record info about warnings when asked for.
12539         (add_decl_warning): New function.
12540         (type_warning_cmp): New function.
12541         (decl_warning_cmp): New function.
12542         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
12543         (gate): Enable pass when warnings are requested.
12544         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
12545         options.
12546
12547 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12548
12549         * hash-map.h (default_hashmap_traits::mark_key_deleted):
12550         Fix cast.
12551         (hash_map::remove): New method.
12552         (hash_map::traverse): New method.
12553         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
12554         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
12555         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
12556         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
12557         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
12558         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
12559         pointer_map.
12560
12561 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
12562
12563         * hash-set.h: new File.
12564         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
12565         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
12566         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
12567         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
12568         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
12569         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
12570         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
12571         varpool.c: Use hash_set instead of pointer_set.
12572
12573 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
12574
12575         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
12576
12577 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12578
12579         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
12580         for frame access when strict_p is false.
12581
12582 2014-08-01  Renlin Li <renlin.li@arm.com>
12583 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12584
12585         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
12586         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
12587         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
12588         Declaration.
12589         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
12590         predicate.
12591         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
12592         aarch64_mem_pair_offset.
12593
12594 2014-08-01  Jiong Wang <jiong.wang@arm.com>
12595
12596         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
12597         offset.
12598         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
12599         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
12600
12601 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
12602
12603         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
12604
12605 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
12606
12607         PR regression/61510
12608         * cgraphunit.c (analyze_functions): Use get_create rather than get
12609         for decls which are clones of abstract functions.
12610
12611 2014-08-01  Martin Liska  <mliska@suse.cz>
12612
12613         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
12614         * ipa-prop.h (count_formal_params): Global function created from static.
12615         * ipa-prop.c (count_formal_params): Likewise.
12616         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
12617         profiles for semantically equivalent functions.
12618         * passes.c (do_per_function): If we load body of a function
12619         during WPA, this condition should behave same.
12620         * varpool.c (ctor_for_folding): More tolerant assert for variable
12621         aliases created during WPA.
12622
12623 2014-08-01  Martin Liska  <mliska@suse.cz>
12624
12625         * doc/invoke.texi (Options That Control Optimization): Documentation
12626         for -foptimize-strlen introduced. Optimization levels default options
12627         fixed.
12628
12629 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
12630
12631         * opts.c (common_handle_option): Handle -fsanitize=alignment.
12632         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
12633         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
12634         type to bool.
12635         * stor-layout.h (min_align_of_type): New prototype.
12636         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
12637         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
12638         check.
12639         * ubsan.c: Include builtins.h.
12640         (ubsan_expand_bounds_ifn): Change return type to bool,
12641         always return true.
12642         (ubsan_expand_null_ifn): Change return type to bool, change
12643         argument to gimple_stmt_iterator *.  Handle both null and alignment
12644         sanitization, take type from ckind argument's type rather than
12645         first argument.
12646         (instrument_member_call): Removed.
12647         (instrument_mem_ref): Remove t argument, add mem and base arguments.
12648         Handle both null and alignment sanitization, don't say whole
12649         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
12650         call instead of 2 argument.
12651         (instrument_null): Adjust instrument_mem_ref caller.  Don't
12652         instrument calls here.
12653         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
12654         like SANITIZE_NULL.
12655         * stor-layout.c (min_align_of_type): New function.
12656         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
12657         Or it into SANITIZE_UNDEFINED.
12658         * doc/invoke.texi (-fsanitize=alignment): Document.
12659
12660 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12661
12662         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
12663
12664 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12665
12666         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
12667         inchash.
12668         (vn_reference_compute_hash): Dito.
12669         (vn_nary_op_compute_hash): Dito.
12670         (vn_phi_compute_hash): Dito.
12671         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
12672
12673 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12674
12675         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
12676         Rename to inchash:add_expr_commutative. Convert to inchash.
12677         (iterative_hash_hashable_expr): Rename to
12678         inchash:add_hashable_expr. Convert to inchash.
12679         (avail_expr_hash): Dito.
12680
12681 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12682
12683         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
12684         Convert to inchash.
12685
12686 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12687
12688         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
12689
12690 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12691
12692         * Makefile.in (OBJS): Add rtlhash.o
12693         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
12694         (loc_checksum): Dito.
12695         (loc_checksum_ordered): Dito.
12696         (hash_loc_operands): Dito.
12697         (hash_locs): Dito.
12698         (hash_loc_list): Dito.
12699         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
12700         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
12701         * rtlhash.c: New file.
12702         * rtlhash.h: New file.
12703
12704 2014-07-31  Andi Kleen  <ak@linux.intel.com>
12705
12706         * inchash.h (inchash): Change inchash class to namespace.
12707         (class hash): ... Rename from inchash.
12708         (add_object): Move from macro to class template.
12709         * lto-streamer-out.c (hash_tree): Change inchash
12710         to inchash::hash.
12711         * tree.c (build_type_attribute_qual_variant): Dito.
12712         (type_hash_list): Dito.
12713         (attribute_hash_list): Dito.
12714         (iterative_hstate_expr): Rename to inchash::add_expr
12715         (build_range_type_1): Change inchash to inchash::hash
12716         and use hash::add_expr.
12717         (build_array_type_1): Dito.
12718         (build_function_type): Dito
12719         (build_method_type_directly): Dito.
12720         (build_offset_type): Dito.
12721         (build_complex_type): Dito.
12722         (make_vector_type): Dito.
12723         * tree.h (iterative_hash_expr): Dito.
12724
12725 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
12726
12727         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
12728
12729 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12730
12731         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
12732         correct alphabetical position.
12733         (vpaddd_f64): Rewrite using builtins.
12734         (vpaddd_s64): Move to correct alphabetical position.
12735         (vpaddd_u64): New.
12736
12737 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
12738
12739         PR target/61844
12740         * config/sh/sh.c (sh_legitimate_address_p,
12741         sh_legitimize_reload_address): Handle reg+reg address modes when
12742         ALLOW_INDEXED_ADDRESS is false.
12743         * config/sh/predicates.md (general_movsrc_operand,
12744         general_movdst_operand): Likewise.
12745
12746 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12747
12748         * config/aarch64/aarch64-builtins.c
12749         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
12750         BYTES_BIG_ENDIAN.
12751
12752 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
12753
12754         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
12755         the generated mask based on BYTES_BIG_ENDIAN.
12756         (aarch64_simd_check_vect_par_cnst_half): New.
12757         * config/aarch64/aarch64-protos.h
12758         (aarch64_simd_check_vect_par_cnst_half): New.
12759         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
12760         the check out to aarch64_simd_check_vect_par_cnst_half.
12761         (vect_par_cnst_lo_half): Likewise.
12762         * config/aarch64/aarch64-simd.md
12763         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
12764         (move_hi_quad_<mode>): Always generate a low mask.
12765
12766 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12767
12768         * doc/invoke.texi (AVR Options): Add documentation about
12769         __AVR_DEVICE_NAME__ built-in macro.
12770
12771 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
12772
12773         PR target/61948
12774         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
12775         constraints are satisfied.
12776         (<shift>di3_neon): Likewise.
12777
12778 2014-07-31  Richard Biener  <rguenther@suse.de>
12779
12780         PR tree-optimization/61964
12781         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
12782         by structural equality.
12783
12784 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
12785
12786         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
12787         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
12788         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
12789         New enums.
12790         * gcc.c (sanitize_spec_function): Support new option.
12791         (SANITIZER_SPEC): Remove now redundant check.
12792         * opts.c (common_handle_option): Support new option.
12793         (finish_options): Check for incompatibilities.
12794         * toplev.c (process_options): Split userspace-specific checks.
12795
12796 2014-07-31  Richard Biener  <rguenther@suse.de>
12797
12798         * lto-streamer.h (struct output_block): Remove global.
12799         (struct data_in): Remove labels, num_named_labels and
12800         num_unnamed_labels.
12801         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
12802         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
12803
12804 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
12805
12806         PR c++/60517
12807         * common.opt (-Wreturn-local-addr): Moved from c.opt.
12808         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
12809         (isolate_path): New argument to avoid inserting a trap.
12810         (find_implicit_erroneous_behaviour): Handle returning the address
12811         of a local variable.
12812         (find_explicit_erroneous_behaviour): Likewise.
12813
12814 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
12815
12816         PR lto/61868
12817         * toplev.c (init_random_seed): Move piece of code never called to
12818         set_random_seed.
12819         (set_random_seed): see above.
12820
12821 2014-07-31  Tom de Vries  <tom@codesourcery.com>
12822
12823         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
12824
12825 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
12826
12827         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
12828         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
12829
12830 2014-07-31  Richard Biener  <rguenther@suse.de>
12831
12832         * data-streamer.h (streamer_write_data_stream): Declare here,
12833         renamed from ...
12834         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
12835         * lto-cgraph.c (lto_output_node): Adjust.
12836         (lto_output_varpool_node): Likewise.
12837         * data-streamer-out.c (streamer_string_index): Likewise.
12838         (streamer_write_data_stream, lto_append_block): Move from ...
12839         * lto-section-out.c (lto_output_data_stream,
12840         lto_append_block): ... here.
12841
12842 2014-07-30  Mike Stump  <mikestump@comcast.net>
12843
12844         * configure.ac: Also check for popen.
12845         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
12846         * configure: Regenerate.
12847         * config.in:  Regenerate.
12848
12849 2014-07-30  Martin Jambor  <mjambor@suse.cz>
12850
12851         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
12852         parameter to gimple.
12853
12854 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12855
12856         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
12857         address as second parameter to __tpf_eh_return routine.
12858
12859 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
12860
12861         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
12862         Thumb2.
12863
12864 2014-07-30  Tom Tromey  <tromey@redhat.com>
12865
12866         PR c/59855
12867         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
12868         * doc/extend.texi (Type Attributes): Document designated_init
12869         attribute.
12870
12871 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
12872
12873         * graphite-isl-ast-to-gimple.c:
12874         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
12875         (gcc_expression_from_isl_expression): Pass type to
12876         gcc_expression_from_isl_ast_expr_id.
12877
12878 2014-07-30  Richard Biener  <rguenther@suse.de>
12879
12880         * lto-streamer.h (lto_write_data): New function.
12881         * langhooks.c (lhd_append_data): Do not free block.
12882         * lto-section-out.c (lto_write_data): New function writing
12883         raw data to the current section.
12884         (lto_write_stream): Adjust for langhook semantic change.
12885         (lto_destroy_simple_output_block): Write header directly.
12886         * lto-opts.c (lto_write_options): Write options directly.
12887         * lto-streamer-out.c (produce_asm): Write heaeder directly.
12888         (lto_output_toplevel_asms): Likewise.
12889         (copy_function_or_variable): Copy data directly.
12890         (write_global_references): Output index table directly.
12891         (lto_output_decl_state_refs): Likewise.
12892         (write_symbol): Write data directly.
12893         (produce_symtab): Adjust.
12894         (produce_asm_for_decls): Output header and refs directly.
12895
12896 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12897
12898         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
12899         to speculative_targets
12900         (get_class_context): Fix handling of contextes without outer type;
12901         avoid matching non-polymorphic types in LTO.
12902         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
12903         parameter to speculative_targetsp; handle speculation.
12904         (dump_possible_polymorphic_call_targets): Update dumping.
12905
12906 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
12907
12908         * common.opt (Wodr): Enable by default.
12909
12910 2014-07-29  Olivier Hainque  <hainque@adacore.com>
12911
12912         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
12913
12914 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
12915
12916         PR bootstrap/61914
12917         * gengtype.c (strtoken): New function.
12918         (create_user_defined_type): Replace strtok with strtoken.
12919
12920 2014-07-29  Nathan Sidwell  <nathan@acm.org>
12921
12922         * gcov-io.c (gcov_var): Make hidden.
12923         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
12924         (gcov_do_dump): Declare.
12925         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
12926
12927 2014-07-29  Martin Jambor  <mjambor@suse.cz>
12928
12929         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
12930         parameter to gimple.
12931         (sra_modify_assign): Likewise.
12932
12933 2014-07-29  Richard Biener  <rguenther@suse.de>
12934
12935         PR middle-end/52478
12936         * expr.c (expand_expr_real_2): Revert last change.
12937
12938 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12939
12940         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
12941         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
12942         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
12943         call.
12944         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
12945         (contains_type_p): Forward declare.
12946         (polymorphic_call_target_hasher::hash): Hash speculative info.
12947         (polymorphic_call_target_hasher::equal): Compare speculative info.
12948         (get_class_context): Handle speuclation.
12949         (contains_type_p): Update.
12950         (get_polymorphic_call_info_for_decl): Update.
12951         (walk_ssa_copies): Break out from ...
12952         (get_polymorphic_call_info): ... here; set speculative context
12953         before giving up.
12954         * ipa-prop.c (ipa_write_indirect_edge_info,
12955         ipa_read_indirect_edge_info): Stream speculative context.
12956         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
12957         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
12958         SPECULATIVE_MAYBE_DERIVED_TYPE).
12959         (possible_polymorphic_call_targets overriders): Update.
12960         (dump_possible_polymorphic_call_targets overriders): Update.
12961         (dump_possible_polymorphic_call_target_p overriders): Update.
12962
12963 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
12964
12965         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
12966         ipa-devirt path; fix thinko there.
12967
12968 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
12969
12970         * config/i386/i386.c (ix86_return_in_memory): Replace one
12971         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
12972
12973 2014-07-28  Marek Polacek  <polacek@redhat.com>
12974
12975         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
12976
12977 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
12978
12979         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
12980         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
12981         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
12982         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12983         (USE_LD_AS_NEEDED): Likewise.
12984         (ASM_APP_ON): Likewise.
12985         (ASM_APP_OFF): Likewise.
12986         (TARGET_POSIX_IO): Likewise.
12987         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
12988         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12989         (USE_LD_AS_NEEDED): Likewise.
12990         (ASM_APP_ON): Likewise.
12991         (ASM_APP_OFF): Likewise.
12992         (TARGET_POSIX_IO): Likewise.
12993
12994 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
12995
12996         PR middle-end/61734
12997         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
12998         operators other than the equality operators.
12999
13000 2014-07-28  Richard Biener  <rguenther@suse.de>
13001
13002         PR middle-end/52478
13003         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
13004         sure to register SImode ones, not only >= word_mode ones.
13005         * expr.c (expand_expr_real_2): When expanding -ftrapv
13006         binops do not use OPTAB_LIB_WIDEN.
13007
13008 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
13009
13010         PR middle-end/61919
13011         * tree-outof-ssa.c (insert_partition_copy_on_edge)
13012         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
13013         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
13014         inserting them in the insn stream.
13015
13016 2014-07-28  Marek Polacek  <polacek@redhat.com>
13017
13018         PR middle-end/61913
13019         * common.opt (Wodr): Add Var.
13020
13021 2014-07-28  Richard Biener  <rguenther@suse.de>
13022
13023         PR tree-optimization/61921
13024         * tree-ssa-structalias.c (create_variable_info_for_1): Check
13025         if there is a varpool node before dereferencing it.
13026
13027 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
13028
13029         * graphite-sese-to-poly.c:
13030         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
13031         id of the pbb), which contains pointer to the pbb1.
13032
13033         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
13034
13035 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
13036
13037         * graphite-isl-ast-to-gimple.c:
13038         (graphite_create_new_guard): New function.
13039         (translate_isl_ast_node_if): New function.
13040         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
13041
13042         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
13043
13044 2014-07-27  Anthony Green  <green@moxielogic.com>
13045
13046         * config.gcc: Add moxie-*-moxiebox* configuration.
13047         * config/moxie/moxiebox.h: New file.
13048
13049 2014-07-26  Andrew Pinski  <apinski@cavium.com>
13050
13051         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
13052         from the read only register.
13053
13054 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
13055
13056         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
13057         as the allocation class if it isn't likely to be spilled.
13058
13059 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
13060
13061         * rtl.h (tls_referenced_p): Declare.
13062         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
13063         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
13064         (mips_cannot_force_const_mem): Use tls_referenced_p.
13065         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
13066         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
13067         instead of pa_tls_referenced_p.
13068         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
13069         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
13070         (pa_legitimate_constant_p): Likewise.
13071         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
13072         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
13073         (rs6000_cannot_force_const_mem, rs6000_emit_move)
13074         (rs6000_address_for_altivec): Use tls_referenced_p instead of
13075         rs6000_tls_referenced_p.
13076         (rs6000_tls_symbol_ref_1): Delete.
13077
13078 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
13079
13080         PR target/44551
13081         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
13082         Optimize inverse of a VEC_CONCAT.
13083
13084 2014-07-25  Xinliang David Li  <davidxl@google.com>
13085
13086         * params.def: New parameter.
13087         * coverage.c (get_coverage_counts): Check new flag.
13088         (coverage_compute_profile_id): Check new flag.
13089         (coverage_begin_function): Check new flag.
13090         (coverage_end_function): Check new flag.
13091         * value-prof.c (coverage_node_map_initialized_p): New function.
13092         (init_node_map): Populate map with all functions.
13093         * doc/invoke.texi: Document new parameter.
13094
13095 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
13096             Richard Biener <rguenther@suse.de>
13097
13098         * lto-streamer-out.c (struct sccs): Turn to ...
13099         (class DFS): ... this one; refactor the DFS walk so it can
13100         be re-done on per-SCC basis.
13101         (DFS::DFS): New constructor.
13102         (DFS::~DFS): New destructor.
13103         (hash_tree): Add new MAP argument holding in-SCC hash values;
13104         remove POINTER_TYPE hashing hack.
13105         (scc_entry_compare): Rename to ...
13106         (DFS::scc_entry_compare): ... this one.
13107         (hash_scc): Rename to ...
13108         (DFS::hash_scc): ... this one; pass output_block instead
13109         of streamer_cache; work harder to get unique and stable SCC
13110         hashes.
13111         (DFS_write_tree): Rename to ...
13112         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
13113         (lto_output_tree): Update.
13114
13115 2014-07-25  Andi Kleen  <ak@linux.intel.com>
13116
13117         * lto-streamer-out.c (hash_tree): Convert to inchash.
13118
13119 2014-07-25  Andi Kleen  <ak@linux.intel.com>
13120
13121         * tree.c (build_type_attribute_qual_variant): Use inchash.
13122         (type_hash_list): Dito.
13123         (attribute_hash_list): Dito
13124         (iterative_hstate_expr): Dito.
13125         (iterative_hash_expr): Dito.
13126         (build_range_type_1): Dito.
13127         (build_array_type_1): Dito.
13128         (build_function_type): Dito.
13129         (build_method_type_directly): Dito.
13130         (build_offset_type): Dito.
13131         (build_complex_type): Dito.
13132         (make_vector_type): Dito.
13133         * tree.h (iterative_hash_expr): Add compat wrapper.
13134         (iterative_hstate_expr): Add.
13135
13136 2014-07-25  Andi Kleen  <ak@linux.intel.com>
13137
13138         * Makefile.in (OBJS): Add inchash.o.
13139         (PLUGIN_HEADERS): Add inchash.h.
13140         * ipa-devirt.c: Include inchash.h.
13141         * lto-streamer-out.c: Dito.
13142         * tree-ssa-dom.c: Dito.
13143         * tree-ssa-pre.c: Dito.
13144         * tree-ssa-sccvn.c: Dito.
13145         * tree-ssa-tail-merge.c: Dito.
13146         * asan.c: Dito.
13147         * tree.c (iterative_hash_hashval_t): Move to ...
13148         (iterative_hash_host_wide_int): Move to ...
13149         * inchash.c: Here. New file.
13150         * tree.h (iterative_hash_hashval_t): Move to ...
13151         (iterative_hash_host_wide_int): Move to ...
13152         * inchash.h: Here. New file.
13153
13154 2014-07-25  Richard Biener  <rguenther@suse.de>
13155
13156         PR middle-end/61762
13157         PR middle-end/61894
13158         * fold-const.c (native_encode_int): Add and handle offset
13159         parameter to do partial encodings of expr.
13160         (native_encode_fixed): Likewise.
13161         (native_encode_real): Likewise.
13162         (native_encode_complex): Likewise.
13163         (native_encode_vector): Likewise.
13164         (native_encode_string): Likewise.
13165         (native_encode_expr): Likewise.
13166         * fold-const.c (native_encode_expr): Add offset parameter
13167         defaulting to -1.
13168         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
13169         (fold_ctor_reference): Handle all reads from tcc_constant
13170         ctors.
13171
13172 2014-07-25  Richard Biener  <rguenther@suse.de>
13173
13174         * tree-inline.c (estimate_move_cost): Mark speed_p argument
13175         as possibly unused.
13176
13177 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13178
13179         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
13180
13181 2014-07-24  Kyle McMartin  <kyle@redhat.com>
13182
13183         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
13184
13185 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13186
13187         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
13188         Add prototype.
13189         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
13190         function.
13191         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
13192         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
13193         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
13194
13195 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13196
13197         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
13198         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
13199         aggregate types.  Instead, *all* aggregate types, except for single-
13200         element or homogeneous float/vector aggregates, are quadword-aligned
13201         if required by their type alignment.  Issue -Wpsabi note when a type
13202         is now treated differently than before.
13203
13204 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13205
13206         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
13207         does not fit fully into floating-point registers, and there is still
13208         space in the register parameter area, use GPRs to pass those parts
13209         of the argument.  Issue -Wpsabi note if any parameter is now treated
13210         differently than before.
13211         (rs6000_arg_partial_bytes): Update.
13212
13213 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
13214
13215         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
13216
13217 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13218
13219         * rtl.h (target_rtl): Remove lang_dependent_initialized.
13220         * toplev.c (initialize_rtl): Don't use it.  Move previously
13221         "language-dependent" calls to...
13222         (backend_init): ...here.
13223         (lang_dependent_init_target): Don't set lang_dependent_initialized.
13224         Assert that RTL initialization hasn't happend yet.
13225
13226 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13227
13228         PR rtl-optimization/61629
13229         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
13230         they have already been initialized.
13231
13232 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
13233
13234         PR middle-end/61268
13235         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
13236         DECL_INCOMING_RTL and entry_parm.
13237         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
13238         * calls.c (load_register_parameters): Likewise argument values.
13239         (emit_library_call_value_1, store_one_arg): Likewise argument
13240         save areas.
13241         * config/i386/i386.c (assign_386_stack_local): Likewise the local
13242         stack slot.
13243         * explow.c (validize_mem): Modify the argument in-place.
13244
13245 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13246
13247         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
13248         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
13249
13250 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13251
13252         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
13253         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
13254
13255 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13256
13257         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
13258         (aarch64_save_callee_saves): New parameter "skip_wb".
13259         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
13260
13261 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13262
13263         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
13264         "wb_candidate2".
13265         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
13266
13267 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13268
13269         * graphite-isl-ast-to-gimple.c:
13270         (graphite_create_new_loop): Add calling of isl_id_free to properly
13271         decrement reference counts.
13272
13273         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
13274
13275 2014-07-24  Martin Liska  <mliska@suse.cz>
13276         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
13277         function used.
13278         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
13279         (rs6000_code_end): Likewise.
13280
13281 2014-07-24  Martin Liska  <mliska@suse.cz>
13282
13283         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
13284         symtab_node funtion used.
13285         (rs6000_xcoff_declare_object_name): Likewise.
13286
13287 2014-07-24  Martin Liska  <mliska@suse.cz>
13288
13289         * cgraphunit.c (compile): Correct function used.
13290
13291 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13292
13293         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
13294         as non-indexable.
13295
13296 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
13297
13298         PR lto/61802
13299         * varasm.c (bss_initializer_p): Handle offlined ctors.
13300         (align_variable, get_variable_align): Likewise.
13301         (make_decl_one_only): Likewise.
13302         (default_binds_local_p_1): Likewise.
13303         (decl_binds_to_current_def_p): Likewise.
13304         (get_variable_section): Get constructor if it is offlined.
13305         (assemble_variable_contents): Sanity check that the caller
13306         streamed in the ctor in LTO.
13307
13308 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
13309
13310         * graphite-isl-ast-to-gimple.c:
13311         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
13312         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
13313         isl_ast_op_pdiv_r to the different case.
13314
13315         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
13316
13317 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13318
13319         PR middle-end/61876
13320         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
13321         when flag_errno_math is on.
13322
13323 2014-07-24  Martin Liska  <mliska@suse.cz>
13324
13325         * cgraph.h (varpool_node):
13326         (availability get_availability (void)):
13327         created from cgraph_variable_initializer_availability
13328         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
13329         created from: cgraph_variable_initializer_availability
13330         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
13331         (void finalize_named_section_flags (void)):
13332         created from varpool_finalize_named_section_flags
13333         (bool assemble_decl (void)): created from varpool_assemble_decl
13334         (void analyze (void)): created from varpool_analyze_node
13335         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
13336         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
13337         (void remove_initializer (void)): created from varpool_remove_initializer
13338         (tree get_constructor (void)): created from varpool_get_constructor
13339         (bool externally_visible_p (void)): created from varpool_externally_visible_p
13340         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
13341         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
13342         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
13343         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
13344         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
13345         (static bool output_variables (void)): created from varpool_output_variables
13346         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
13347         created from varpool_extra_name_alias
13348         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
13349         (static void dump_varpool (FILE *f)): created from dump_varpool
13350         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
13351         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
13352         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
13353         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
13354         (void assemble_aliases (void)): created from assemble_aliases
13355
13356 2014-07-24  Martin Liska  <mliska@suse.cz>
13357
13358         * cgraph.h (symtab_node):
13359         (void register_symbol (void)): created from symtab_register_node
13360         (void remove (void)): created from symtab_remove_node
13361         (void dump (FILE *f)): created from dump_symtab_node
13362         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
13363         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
13364         (struct ipa_ref *add_reference (symtab_node *referred_node,
13365         enum ipa_ref_use use_type)): created from add_reference 
13366         (struct ipa_ref *add_reference (symtab_node *referred_node,
13367         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
13368         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
13369         gimple stmt)): created from maybe_add_reference
13370         (bool semantically_equivalent_p (symtab_node *target)): created from
13371         symtab_semantically_equivalent_p
13372         (void remove_from_same_comdat_group (void)): created from
13373         remove_from_same_comdat_group
13374         (void add_to_same_comdat_group (symtab_node *old_node)): created from
13375         symtab_add_to_same_comdat_group
13376         (void dissolve_same_comdat_group_list (void)): created from
13377         symtab_dissolve_same_comdat_group_list
13378         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
13379         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
13380         created from symtab_alias_ultimate_target
13381         (inline symtab_node *next_defined_symbol (void)): created from
13382         symtab_next_defined_symbol
13383         (bool resolve_alias (symtab_node *target)): created from
13384         symtab_resolve_alias
13385         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
13386         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
13387         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
13388         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
13389         (void set_section (const char *section)): created from set_section_1 
13390         (enum availability get_availability (void)): created from symtab_node_availability
13391         (void make_decl_local (void)): created from symtab_make_decl_local
13392         (bool real_symbol_p (void)): created from symtab_read_node
13393         (can_be_discarded_p (void)): created from symtab_can_be_discarded
13394         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
13395         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
13396         symtab_in_same_comdat_p;
13397         (bool address_taken_from_non_vtable_p (void)): created from
13398         address_taken_from_non_vtable_p
13399         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
13400         (static void dump_table (FILE *)): created from dump_symtab
13401         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
13402         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
13403         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
13404         symtab_used_from_object_file_p 
13405         (void dump_base (FILE *)): created from dump_symtab_base
13406         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
13407         (void unregister (void)): created from symtab_unregister_node
13408         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
13409         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
13410         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
13411         symtab_nonoverwritable_alias_1
13412         * cgraph.h (cgraph_node):
13413         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
13414         created from cgraph_remove_node_and_inline_clones
13415         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
13416         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
13417         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
13418         (cgraph_node *function_symbol (enum availability *avail = NULL)):
13419         created from cgraph_function_node
13420         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
13421         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
13422         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
13423         created from cgraph_create_clone 
13424         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
13425         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
13426         created from cgraph_create_virtual_clone
13427         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
13428         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
13429         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
13430         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
13431         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
13432         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
13433         created from cgraph_function_version_info
13434         (struct cgraph_function_version_info *insert_new_function_version (void)):
13435         created from insert_new_cgraph_node_version
13436         (struct cgraph_function_version_info *function_version (void)): created from
13437         get_cgraph_node_version
13438         (void analyze (void)): created from analyze_function
13439         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
13440         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
13441         tree real_alias) cgraph_add_thunk
13442         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
13443         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
13444         created from cgraph_function_or_thunk_node
13445         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
13446         created from expand_thunk
13447         (void reset (void)): created from cgraph_reset_node
13448         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
13449         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
13450         (void remove (void)): created from cgraph_remove_node
13451         (void dump (FILE *f)): created from dump_cgraph_node
13452         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
13453         (bool get_body (void)): created from cgraph_get_body
13454         (void release_body (void)): created from cgraph_release_function_body
13455         (void unnest (void)): created from cgraph_unnest_node
13456         (void make_local (void)): created from cgraph_make_node_local
13457         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
13458         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
13459         gcov_type count, int freq)): created from cgraph_create_edge
13460         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
13461         gcov_type count, int freq)): created from cgraph_create_indirect_edge
13462         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
13463         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
13464         created from cgraph_create_edge_including_clones
13465         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
13466         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
13467         (void remove_callers (void)): created from cgraph_node_remove_callers
13468         (void remove_callees (void)): created from cgraph_node_remove_callees
13469         (enum availability get_availability (void)): created from cgraph_function_body_availability
13470         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
13471         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
13472         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
13473         (void call_duplication_hooks (cgraph_node *node2)): created from
13474         cgraph_call_node_duplication_hooks
13475         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
13476         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
13477         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
13478         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
13479         (void call_function_insertion_hooks (void)):
13480         created from cgraph_call_function_insertion_hooks
13481         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
13482         (bool local_p (void)): created from cgraph_local_node
13483         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
13484         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
13485         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
13486         (inline bool only_called_directly_or_aliased_p (void)):
13487         created from cgraph_only_called_directly_or_aliased_p
13488         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
13489         created from cgraph_will_be_removed_from_program_if_no_direct_calls
13490         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
13491         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
13492         (bool can_remove_if_no_direct_calls_p (void)):
13493         created from cgraph_can_remove_if_no_direct_calls_p
13494         (inline bool has_gimple_body_p (void)):
13495         created from cgraph_function_with_gimple_body_p
13496         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
13497         (static void dump_cgraph (FILE *f)): created from dump_cgraph
13498         (static inline void debug_cgraph (void)): created from debug_cgraph
13499         (static void record_function_versions (tree decl1, tree decl2)):
13500         created from record_function_versions
13501         (static void delete_function_version (tree decl)):
13502         created from delete_function_version
13503         (static void add_new_function (tree fndecl, bool lowered)):
13504         created from cgraph_add_new_function
13505         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
13506         (static cgraph_node * create (tree decl)): created from cgraph_create_node
13507         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
13508         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
13509         (static cgraph_node *get_for_asmname (tree asmname)):
13510         created from cgraph_node_for_asm
13511         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
13512         created from cgraph_same_body_alias 
13513         (static bool used_from_object_file_p_worker (cgraph_node *node,
13514         void *): new function
13515         (static bool non_local_p (cgraph_node *node, void *)):
13516         created from cgraph_non_local_node_p_1
13517         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
13518         created from verify_cgraph
13519         (static bool make_local (cgraph_node *node, void *)):
13520         created from cgraph_make_node_local
13521         (static cgraph_node *create_alias (tree alias, tree target)):
13522         created from cgraph_create_function_alias
13523         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
13524         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
13525         created from cgraph_create_edge_1
13526         * cgraph.h (varpool_node):
13527         (void remove (void)): created from varpool_remove_node
13528         (void dump (FILE *f)): created from dump_varpool_node
13529
13530 2014-07-24  Richard Biener  <rguenther@suse.de>
13531
13532         PR ipa/61823
13533         * tree-ssa-structalias.c (create_variable_info_for_1):
13534         Use varpool_get_constructor.
13535         (create_variable_info_for): Likewise.
13536
13537 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
13538
13539         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
13540         subtract outgoing area size when restoring stack_pointer_rtx.
13541
13542 2014-07-24  Nick Clifton  <nickc@redhat.com>
13543
13544         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
13545         that operations are taking place in parallel.
13546         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
13547
13548 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
13549
13550         * omp-low.c (extract_omp_for_data): Add missing break statement.
13551
13552 2014-07-24  Richard Biener  <rguenther@suse.de>
13553
13554         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
13555         * tree-inline.c (estimate_move_cost): Add speed_p parameter
13556         and adjust MOVE_RATIO query accordingly.
13557         (estimate_num_insns): Adjust callers.
13558         * ipa-prop.c (ipa_populate_param_decls): Likewise.
13559         * ipa-cp.c (gather_context_independent_values,
13560         estimate_local_effects): Likewise.
13561         * ipa-split.c (consider_split): Likewise.
13562
13563 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
13564
13565         * config/i386/driver-i386.c: Remove names of unused arguments and
13566         unnecessary unused attributes.
13567         * config/i386/host-mingw32.c: Likewise.
13568         * config/i386/i386.c: Likewise.
13569         * config/i386/winnt-stubs.c: Likewise.
13570         * config/i386/winnt.c: Likewise.
13571
13572 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13573
13574         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
13575         (aarch64_gen_loadwb_pair): New helper function.
13576         (aarch64_expand_epilogue): Simplify code using new helper functions.
13577         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
13578
13579 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13580
13581         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
13582         (aarch64_gen_storewb_pair): New helper function.
13583         (aarch64_expand_prologue): Simplify code using new helper functions.
13584         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
13585
13586 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13587
13588         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
13589         Rename to aarch64_save_callee_saves, remove restore code.
13590         (aarch64_restore_callee_saves): New function.
13591
13592 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13593
13594         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
13595         (aarch64_save_callee_saves): New function to handle reg save
13596         for both core and vectore regs.
13597
13598 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13599
13600         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
13601         (aarch64_gen_store_pair): New helper function.
13602         (aarch64_save_or_restore_callee_save_registers)
13603         (aarch64_save_or_restore_fprs): Use new helper functions.
13604
13605 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13606
13607         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
13608         (aarch64_save_or_restore_callee_save_registers)
13609         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
13610
13611 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13612
13613         * config/aarch64/aarch64.c
13614         (aarch64_save_or_restore_callee_save_registers)
13615         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
13616
13617 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13618
13619         * config/aarch64/aarch64.c
13620         (aarch64_save_or_restore_callee_save_registers)
13621         (aarch64_save_or_restore_fprs): Remove 'increment'.
13622
13623 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13624
13625         * config/aarch64/aarch64.c
13626         (aarch64_save_or_restore_callee_save_registers)
13627         (aarch64_save_or_restore_fprs): Use register offset in
13628         cfun->machine->frame.reg_offset.
13629
13630 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13631
13632         * config/aarch64/aarch64.c
13633         (aarch64_save_or_restore_callee_save_registers)
13634         (aarch64_save_or_restore_fprs): Remove base_rtx.
13635
13636 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13637
13638         * config/aarch64/aarch64.c
13639         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
13640         to 'start_offset'.  Remove local variable 'start_offset'.
13641
13642 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13643
13644         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
13645         type to HOST_WIDE_INT.
13646
13647 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13648
13649         * config/aarch64/aarch64.c (aarch64_expand_prologue)
13650         (aarch64_save_or_restore_fprs)
13651         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
13652
13653 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13654
13655         * config/arm/t-rtems-eabi: Add
13656         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
13657         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
13658         mbig-endian/mthumb/march=armv7-r, and
13659         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
13660         multilibs.
13661
13662 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13663             Chris Johns <chrisj@rtems.org>
13664             Joel Sherrill <joel.sherrill@oarcorp.com>
13665
13666         * config.gcc: Add nios2-*-rtems*.
13667         * config/nios2/rtems.h: New file.
13668         * gcc/config/nios2/t-rtems: New file.
13669
13670 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
13671
13672         PR target/61396
13673         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
13674         constant numbers, not general constants.
13675         (rs6000_expand_vector_init): Ditto.
13676
13677 2014-07-23  Nathan Sidwell  <nathan@acm.org>
13678
13679         * gcov-tool.c (gcov_list): Declare here.
13680         (set_gcov_list): Remove.
13681         (gcov_output_files): Set gcov_list directly.
13682
13683 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
13684
13685         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
13686
13687 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
13688
13689         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
13690         callee-saved registers are available for padding purpose
13691         and r3 is not mandatory, then prefer use those callee-saved
13692         instead of r3.
13693
13694 2014-07-23  Richard Biener  <rguenther@suse.de>
13695
13696         * params.def (PARAM_MAX_COMBINE_INSNS): New.
13697         * combine.c: Include statistics.h and params.h.
13698         (combine_instructions): Guard three and four insn combines
13699         with max-combine-insns value.  Record statistics for combines
13700         performed.
13701         * doc/invoke.texi (max-combine-insns): Document new param.
13702
13703 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13704
13705         * graphite-isl-ast-to-gimple.c:
13706         (translate_isl_ast_node_block): New function.
13707         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
13708
13709         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
13710         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
13711
13712 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
13713
13714         * graphite-isl-ast-to-gimple.c:
13715         (get_max_schedule_dimensions): New function.
13716         (extend_schedule): Likewise.
13717         (generate_isl_schedule): Add calling of extend_schedule and
13718         get_max_schedule_dimensions.
13719
13720 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13721
13722         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
13723         (case UNSPEC): Handle UNSPEC_RBIT.
13724
13725 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13726
13727         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
13728         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
13729
13730 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13731
13732         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
13733
13734 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
13735
13736         * graphite-isl-ast-to-gimple.c:
13737         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
13738         (ivs_params_clear):
13739         (build_iv_mapping): New function.
13740         (translate_isl_ast_node_user): Likewise.
13741         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
13742
13743         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
13744         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
13745         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
13746
13747 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13748
13749         PR target/55701
13750         * config/arm/arm.md (setmem): New pattern.
13751         * config/arm/arm-protos.h (struct tune_params): New fields.
13752         (arm_gen_setmem): New prototype.
13753         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
13754         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
13755         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
13756         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
13757         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
13758         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
13759         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
13760         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
13761         (arm_const_inline_cost): New function.
13762         (arm_block_set_max_insns): New function.
13763         (arm_block_set_non_vect_profit_p): New function.
13764         (arm_block_set_vect_profit_p): New function.
13765         (arm_block_set_unaligned_vect): New function.
13766         (arm_block_set_aligned_vect): New function.
13767         (arm_block_set_unaligned_non_vect): New function.
13768         (arm_block_set_aligned_non_vect): New function.
13769         (arm_block_set_vect, arm_gen_setmem): New functions.
13770
13771 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
13772
13773         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
13774
13775 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
13776
13777         PR target/61855
13778         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
13779         out of #ifdef __OPTIMIZE__.
13780
13781 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13782
13783         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
13784         different trapping status if -fnon-call-exceptions is enabled.
13785
13786 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
13787
13788         * expr.c (store_field): Handle VOIDmode for calls that return values
13789         in multiple locations.
13790
13791 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13792
13793         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
13794         (altivec_vsldoi_<mode>): Likewise.
13795
13796 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13797
13798         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
13799         to the number of characters in the line.
13800
13801 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
13802
13803         * graphite-isl-ast-to-gimple.c: Add using of
13804         build_nonstandard_integer_type instead of int128_integer_type_node.
13805
13806 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
13807
13808         * toplev.c (output_stack_usage): Adjust the location of the warning.
13809
13810 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
13811
13812         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
13813         (*membar_storeload): Disable for LEON3.
13814
13815 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13816
13817         PR rtl-optimization/61461
13818         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
13819
13820 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
13821
13822         PR target/61794
13823         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
13824         Fix instruction constraint.
13825         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
13826
13827 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
13828
13829         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
13830
13831 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
13832
13833         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
13834         GNU coding standards.
13835         (nds32_register_move_cost): Likewise.
13836         (nds32_memory_move_cost): Likewise.
13837         (nds32_address_cost): Likewise.
13838
13839 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13840
13841         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
13842
13843 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
13844
13845         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
13846         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
13847         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
13848         (HAVE_sync_compare_and_swapqi): Define.
13849         (HAVE_sync_compare_and_swaphi): Likewise.
13850         (HAVE_sync_compare_and_swapsi): Likewise.
13851
13852 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
13853
13854         * config/mips/p5600.md: Add missing cpu tests.
13855
13856 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13857
13858         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
13859         (vmla_f64): Likewise.
13860         (vfms_f64): Likewise.
13861         (vmls_f64): Likewise.
13862
13863 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13864
13865         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
13866         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
13867
13868 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13869
13870         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
13871         (vmlal_high_lane_s32): Likewise.
13872         (vmlal_high_lane_u16): Likewise.
13873         (vmlal_high_lane_u32): Likewise.
13874         (vmlsl_high_lane_s16): Likewise.
13875         (vmlsl_high_lane_s32): Likewise.
13876         (vmlsl_high_lane_u16): Likewise.
13877         (vmlsl_high_lane_u32): Likewise.
13878
13879 2014-07-17  Terry Guo  <terry.guo@arm.com>
13880
13881         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
13882         (alus_reg): Renamed to alus_sreg.
13883         * config/arm/arm-fixed.md: Change type of non-dsp instructions
13884         from alu_reg to alu_sreg.  Change type of dsp instructions from
13885         alu_reg to alu_dsp_reg.
13886         * config/arm/thumb1.md: Likewise.
13887         * config/arm/thumb2.md: Likewise.
13888         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
13889         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
13890         with alu_sreg and alus_sreg.
13891         * config/arm/arm1026ejs.md (alu_op): Likewise.
13892         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
13893         * config/arm/arm926ejs.md (9_alu_op): Likewise.
13894         * config/arm/fa526.md (526_alu_op): Likewise.
13895         * config/arm/fa606te.md (606te_alu_op): Likewise.
13896         * config/arm/fa626te.md (626te_alu_op): Likewise.
13897         * config/arm/fa726te.md (726te_alu_op): Likewise.
13898         * config/arm/fmp626.md (mp626_alu_op): Likewise.
13899         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
13900         alu_sreg, alu_dsp_reg and alus_sreg.
13901         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
13902         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
13903         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
13904         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
13905         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
13906         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
13907         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
13908         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
13909         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
13910         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
13911         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
13912         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
13913         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
13914         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
13915         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
13916         alus_reg to alus_sreg.
13917
13918 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
13919
13920         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
13921         infinity format.
13922
13923 2014-07-17  Richard Biener  <rguenther@suse.de>
13924
13925         PR rtl-optimization/61801
13926         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
13927         don't set reg_pending_barrier if it appears in a debug-insn.
13928
13929 2014-07-16  DJ Delorie  <dj@redhat.com>
13930
13931         * config/rx/rx.c (rx_option_override): Fix alignment values.
13932         (rx_align_for_label): Likewise.
13933
13934 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
13935
13936         PR target/61737.
13937         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
13938         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
13939         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
13940         functions.
13941         (cris_print_index, cris_print_operand, cris_constant_index_p)
13942         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
13943         (cris_address_cost): Ditto last CONSTANT_P.
13944         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
13945         callers changed.  Yield cris_offsettable_symbol for non-PIC
13946         constant symbolic expressions including labels.  Yield cris_unspec
13947         for all unspecs.
13948         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
13949         target to pic_offset_table_rtx for calls that will likely go
13950         through PLT, const0_rtx when they can't.  All callers changed.
13951         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
13952         symbolic expressions to be PICified.  Remove second, redundant,
13953         assert on can_create_pseudo_p returning non-zero.  Use
13954         replace_equiv_address_nv, not replace_equiv_address, for final
13955         operand update.
13956         * config/cris/cris.md ("movsi"): Move variable t to pattern
13957         toplevel. Adjust assert for new cris_symbol_type member.  Use
13958         CONSTANT_P instead of CONSTANT_ADDRESS_P.
13959         ("*movsi_internal") <case 9>: Make check for valid unspec operands
13960         for lapc stricter.
13961         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
13962         ("call", "call_value"): Use second incoming operand as a marker
13963         for pic-offset-table-register being used.
13964         ("*expanded_call_non_v32", "*expanded_call_v32")
13965         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
13966         second incoming operand to CALL, match cris_call_type_marker.
13967         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
13968         ("*expanded_call_side"): Ditto.  Fix typo in comment.
13969         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
13970         CONSTANT_P.
13971         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
13972         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
13973         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
13974         users changed.  Add members cris_offsettable_symbol and cris_unspec.
13975         (cris_symbol_type): Rename from cris_pic_symbol_type.
13976         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
13977         just CONSTANT_P.
13978         * config/cris/cris-protos.h (cris_symbol_type_of,
13979         cris_expand_pic_call_address): Adjust prototypes.
13980         (cris_legitimate_constant_p): New prototype.
13981
13982         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
13983         an existing tmake_file.  Don't add t-slibgcc and t-linux.
13984
13985 2014-07-17  Jason Merrill  <jason@redhat.com>
13986
13987         PR c++/61623
13988         * symtab.c (symtab_remove_from_same_comdat_group): Also
13989         set_comdat_group to NULL_TREE.
13990         (verify_symtab): Fix diagnostic.
13991
13992 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
13993
13994         PR target/61662
13995         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
13996
13997 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
13998
13999         Support location tracking for built-in macro tokens
14000         * input.h (is_location_from_builtin_token): New function declaration.
14001         * input.c (is_location_from_builtin_token): New function definition.
14002         * toplev.c (general_init): Tell libcpp what the pre-defined
14003         spelling location for built-in tokens is.
14004
14005 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
14006
14007         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
14008         on the FUNCTION_DECL.
14009
14010 2014-07-16  Richard Biener  <rguenther@suse.de>
14011
14012         PR other/61782
14013         * doc/extend.texi (always_inline): Clarify.
14014
14015 2014-07-15  Eric Christopher  <echristo@gmail.com>
14016
14017         * doc/invoke.texi (Link Options): Document -z option.
14018
14019 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
14020
14021         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
14022         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
14023
14024 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
14025
14026         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
14027
14028 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
14029
14030         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
14031         varpool_assemble_decl.
14032         * varpool.c (varpool_assemble_decl): Assert that node->definition is
14033         true.
14034
14035 2014-07-15  Michael Matz  <matz@suse.de>
14036
14037         PR rtl-optimization/61772
14038         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
14039
14040 2014-07-15  Richard Biener  <rguenther@suse.de>
14041
14042         * opts.c (default_options_table): Disable bit-ccp at -Og.
14043
14044 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
14045
14046         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
14047
14048 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
14049
14050         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
14051         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
14052         call langhook for unknown declaration.
14053         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
14054         * tree.h (DECL_ARGUMENTS): Update.
14055         * print-tree.c (print_node): Update.
14056         * tree-core.h (tree_decl_non_common): Remove arguments.
14057         (tree_function_decl): Add arguments.
14058
14059 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
14060
14061         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
14062
14063 2014-07-14  Richard Biener  <rguenther@suse.de>
14064
14065         PR tree-optimization/61779
14066         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
14067         simplifying a condition.
14068
14069 2014-07-14  Richard Biener  <rguenther@suse.de>
14070
14071         * builtins.c (c_strlen): Make only_value == 2 really only
14072         affect warning generation.
14073
14074 2014-07-14  Richard Biener  <rguenther@suse.de>
14075
14076         PR tree-optimization/61757
14077         PR tree-optimization/61783
14078         PR tree-optimization/61787
14079         * tree-ssa-dom.c (record_equality): Revert canonicalization
14080         change and add comment.
14081         (propagate_rhs_into_lhs): Revert previous fix, removing
14082         loop depth restriction again.
14083
14084 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14085
14086         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
14087         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
14088         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
14089         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
14090         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
14091         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
14092         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
14093
14094 2014-07-14  Richard Biener  <rguenther@suse.de>
14095
14096         * cgraph.h (decl_in_symtab_p): Make inline.
14097
14098 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
14099
14100         PR middle-end/61294
14101         * doc/invoke.texi (-Wmemset-transposed-args): Document.
14102
14103         PR target/61656
14104         * config/i386/i386.c (classify_argument): Don't merge classes above
14105         number of words.
14106
14107 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
14108
14109         * cgraph.h (symtab_node): Add nonzero_address.
14110         (decl_in_symtab_p): Break out from ...
14111         (symtab_get_node): ... here.
14112         * fold-const.c: Include cgraph.h
14113         (tree_single_nonzero_warnv_p): Use symtab to determine
14114         if symbol is non-zero.
14115         * symtab.c (symtab_node::nonzero_address): New method.
14116
14117 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
14118
14119         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
14120         forgotten in previous commit.
14121
14122 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
14123
14124         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
14125         on builtin types.
14126         * ipa-devirt.c: Include stor-layout.h and intl.h
14127         (odr_subtypes_equivalent_p): New function.
14128         (warn_odr): New function.
14129         (warn_type_mismatch): New function.
14130         (odr_types_equivalent_p): New function.
14131         (add_type_duplicate): Use it.
14132         * common.opt (Wodr): New flag.
14133         * doc/invoke.texi (Wodr): Document new warning.
14134
14135 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
14136
14137         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
14138         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
14139         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
14140         (varpool_get_constructor): Push CTORS_IN timevar.
14141         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
14142
14143 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
14144
14145         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
14146         Remove VOID_FTYPE_PUSHORT.
14147         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
14148         Change code to USHORT_FTYPE_VOID.
14149         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
14150         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
14151         (ix86_atomic_assign_expand_fenv): Update for
14152         __builtin_ia32_fnstsw changes.
14153         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
14154         (fnstsw): Change operand 0 to nonimmediate operand.
14155
14156 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14157
14158         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
14159         (varpool_get_constructor): New function.
14160         (varpool_ctor_useable_for_folding_p): Break out from ...
14161         (ctor_for_folding): ... here; use varpool_get_constructor.
14162         (varpool_assemble_decl): Likewise.
14163         * lto-streamer.h (struct output_block): Turn cgraph_node
14164         to symbol filed.
14165         (lto_input_variable_constructor): Declare.
14166         * ipa-visibility.c (function_and_variable_visibility): Use
14167         varpool_get_constructor.
14168         * cgraph.h (varpool_get_constructor): Declare.
14169         (varpool_ctor_useable_for_folding_p): New function.
14170         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
14171         parameter; return error_mark_node for non-trivial constructors.
14172         (lto_write_tree_1, DFS_write_tree): Update use of
14173         get_symbol_initial_value.
14174         (output_function): Update initialization of symbol.
14175         (output_constructor): New function.
14176         (copy_function): Rename to ..
14177         (copy_function_or_variable): ... this one; handle vars too.
14178         (lto_output): Output variable sections.
14179         * lto-streamer-in.c (input_constructor): New function.
14180         (lto_read_body): Rename from ...
14181         (lto_read_body_or_constructor): ... this one; handle vars too.
14182         (lto_input_variable_constructor): New function.
14183         * ipa-prop.c (ipa_prop_write_jump_functions,
14184         ipa_prop_write_all_agg_replacement): Update.
14185         * lto-cgraph.c (compute_ltrans_boundary): Use it.
14186         (output_cgraph_opt_summary): Set symbol to NULL.
14187
14188 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14189
14190         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
14191         non-polymorphic types.
14192         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
14193         * ipa-devirt.c (types_same_for_odr): Do not explode when one
14194         of types is not polymorphic.
14195
14196 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
14197
14198         * lra-constraints.c (remove_inheritance_pseudos): Process
14199         destination pseudo too.
14200
14201 2014-07-11  Rong Xu  <xur@google.com>
14202
14203         * gcov-tool.c (gcov_output_files): Fix build error introduced in
14204         commit r212448.
14205
14206 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
14207
14208         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
14209         * config/avr/avr-devices.c (AVR_MCU): Same.
14210         (avr_mcu_types): add text start value to end of device list.
14211         * config/avr/avr-mcus.def: Add text section start for all devices.
14212         (ata5782): Add new avr5 device.
14213         (ata5831): Same.
14214         * config/avr/avr-tables.opt: Regenerate.
14215         * config/avr/avr.h: Add declaration for text section start handler.
14216         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
14217         SPEC functions.
14218         (LINK_SPEC): Include text section start handler to linker spec.
14219         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
14220         pass -Ttext option to linker if the text section start for the device
14221         is not zero.
14222         * config/avr/t-multilib: Regenerate.
14223         * doc/avr-mmcu.texi: Regenerate.
14224
14225 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
14226
14227         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
14228         * config/rs6000/aix52.h (LINK_SPEC): Same.
14229         * config/rs6000/aix53.h (LINK_SPEC): Same.
14230         * config/rs6000/aix61.h (LINK_SPEC): Same.
14231         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
14232
14233 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
14234
14235         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
14236         (graphite_verify): New function.
14237         (ivs_params_clear): New function.
14238         (gcc_expression_from_isl_ast_expr_id): New function.
14239         (gcc_expression_from_isl_expr_int): New function.
14240         (binary_op_to_tree): New function.
14241         (ternary_op_to_tree): New function.
14242         (unary_op_to_tree): New function.
14243         (nary_op_to_tree): New function.
14244         (gcc_expression_from_isl_expr_op): New function.
14245         (gcc_expression_from_isl_expression): New function.
14246         (graphite_create_new_loop): New function.
14247         (translate_isl_ast_for_loop): New function.
14248         (get_upper_bound): New function.
14249         (graphite_create_new_loop_guard): New function.
14250         (translate_isl_ast_node_for): New function.
14251         (translate_isl_ast): New function.
14252         (add_parameters_to_ivs_params): New function.
14253         (scop_to_isl_ast): New parameter ip.
14254         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
14255
14256 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
14257
14258         * config/xtensa/predicates.md (call expander): Update for
14259         DECL_SECTION_NAME being string.
14260
14261 2014-07-11  Richard Biener  <rguenther@suse.de>
14262
14263         PR middle-end/61473
14264         * builtins.c (fold_builtin_memory_op): Inline memory moves that
14265         can be implemented with a single load followed by a single store.
14266         (c_strlen): Only warn when only_value is not 2.
14267
14268 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
14269
14270         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
14271
14272 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
14273
14274         PR target/61561
14275         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
14276         (*movhi_bytes): Likewise.
14277         (*arm_movqi_insn): Likewise.
14278
14279 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
14280
14281         PR target/56858
14282         * config/alpha/alpha.c: Include tree-pass.h, context.h
14283         and pass_manager.h.
14284         (pass_data_handle_trap_shadows): New pass.
14285         (pass_handle_trap_shadows::gate): New pass gate function.
14286         (make_pass_handle_trap_shadows): New function.
14287         (rest_of_handle_trap_shadows): Ditto.
14288
14289         (alpha_align_insns_1): Rename from alpha_align_insns.
14290         (pass_data_align_insns): New pass.
14291         (pass_align_insns::gate): New pass gate function.
14292         (make_pass_aling_insns): New function.
14293         (rest_of_align_insns): Ditto.
14294         (alpha_align_insns): Ditto.
14295
14296         (alpha_option_override): Declare handle_trap_shadows info
14297         and align_insns_info.  Register handle_trap_shadows and align_insns
14298         passes here.
14299         (alpha_reorg): Do not call alpha_trap_shadows and
14300         alpha_align_insn from here.
14301
14302         (alpha_pad_function_end): Do not skip BARRIERs.
14303
14304 2014-07-10  Rong Xu  <xur@google.com>
14305
14306         Add gcov-tool: an offline gcda profile processing tool support.
14307         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
14308         (gcov_is_error): Ditto.
14309         (gcov_read_string): Ditto.
14310         (gcov_read_sync): Ditto.
14311         * gcov-io.h: Move counter defines to gcov-counter.def.
14312         * gcov-dump.c (tag_counters): Use gcov-counter.def.
14313         * coverage.c: Ditto.
14314         * gcov-tool.c: Offline gcda profile processing tool.
14315         (unlink_gcda_file): Remove one gcda file.
14316         (unlink_profile_dir): Remove gcda files from the profile path.
14317         (gcov_output_files): Output gcda files to an output dir.
14318         (profile_merge): Merge two profiles in directory.
14319         (print_merge_usage_message): Print merge usage.
14320         (merge_usage): Print merge usage and exit.
14321         (do_merge): Driver for profile merge sub-command.
14322         (profile_rewrite): Rewrite profile.
14323         (print_rewrite_usage_message): Print rewrite usage.
14324         (rewrite_usage): Print rewrite usage and exit.
14325         (do_rewrite): Driver for profile rewrite sub-command.
14326         (print_usage): Print gcov-info usage and exit.
14327         (print_version): Print gcov-info version.
14328         (process_args): Process arguments.
14329         (main): Main routine for gcov-tool.
14330         * Makefile.in: Build and install gcov-tool.
14331         * gcov-counter.def: New file split from gcov-io.h.
14332         * doc/gcc.texi: Include gcov-tool.texi.
14333         * doc/gcov-tool.texi: Document for gcov-tool.
14334
14335 2014-07-10  Richard Biener  <rguenther@suse.de>
14336
14337         PR tree-optimization/61757
14338         * tree-ssa-dom.c (loop_depth_of_name): Restore.
14339         (propagate_rhs_into_lhs): Revert part of last change.
14340
14341 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
14342
14343         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
14344         FUNCTION_DECLs.
14345
14346 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
14347
14348         PR middle-end/53590
14349         * function.c (allocate_struct_function): Revert r188667 change.
14350
14351         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
14352
14353 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
14354
14355         * doc/install.texi: Remove links to defunct package providers for
14356         Solaris.
14357
14358 2014-07-09  Tom de Vries  <tom@codesourcery.com>
14359
14360         * final.c (get_call_fndecl): Declare.
14361         (self_recursive_call_p): New function.
14362         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
14363
14364 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14365
14366         * ipa-devirt.c (record_node): Walk through aliases.
14367
14368 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14369
14370         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
14371
14372 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14373
14374         Revert:
14375         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
14376
14377 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14378
14379         * ipa-visibility.c (function_and_variable_visibility): Remove
14380         temporary hack disabling local aliases on AIX.
14381
14382 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14383
14384         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
14385         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
14386
14387 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14388
14389         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
14390         * rs6000/rs6000.c: Inline output of .set instruction.
14391         (declare_alias_data): New struct.
14392         (rs6000_declare_alias): New function.
14393         (rs6000_xcoff_declare_function_name): Use it.
14394         (rs6000_xcoff_declare_object_name): New function.
14395         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
14396         (ASM_OUTPUT_DEF): Turn to empty definition.
14397
14398 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14399
14400         PR bootstrap/61679
14401         * hash-table.h: use hash_table::value_type instead of
14402         Descriptor::value_type in the return types of several methods.
14403
14404 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14405
14406         * tree-pass.h (pass_data): Remove has_execute member.
14407         * passes.c (execute_one_pass): Don't check pass->has_execute.
14408         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
14409         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
14410         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
14411         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
14412         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
14413         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
14414         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
14415         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
14416         gimple-low.c, gimple-ssa-isolate-paths.c,
14417         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
14418         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
14419         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
14420         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
14421         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
14422         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
14423         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
14424         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
14425         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
14426         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
14427         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
14428         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
14429         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
14430         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
14431         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
14432         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
14433         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
14434         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
14435         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
14436         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
14437         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
14438         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
14439         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
14440         web.c: Remove initializer for pass_data::has_execute.
14441
14442 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
14443
14444         * graphite-htab.h: Use hash_map instead of hash_table.
14445         * graphite-clast-to-gimple.c: Adjust.
14446         * passes.c: Use hash_map instead of hash_table.
14447         * sese.c: Likewise.
14448         * sese.h: Remove now unused code.
14449
14450 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
14451
14452         PR target/61599
14453         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
14454         than zero.
14455
14456 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14457
14458         PR rtl-optimization/61673
14459         * combine.c (simplify_comparison): Test just mode's sign bit
14460         in tmode rather than the sign bit and any bits above it.
14461
14462 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
14463
14464         * graphite-isl-ast-to-gimple.c (generate_isl_context):
14465         Add __isl_give to the declaration.
14466         (generate_isl_schedule): Likewise.
14467         (scop_to_isl_ast): Likewise.
14468
14469 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14470
14471         * config/arm/arm.c (cortexa5_extra_costs): New table.
14472         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
14473
14474 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
14475
14476         PR tree-optimization/61725
14477         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
14478         range, use range_includes_zerop_p instead of integer_zerop on
14479         vr0->min, only use log2 of max if min is not negative.
14480
14481 2014-07-08  Richard Biener  <rguenther@suse.de>
14482
14483         * tree-ssa-dom.h (loop_depth_of_name): Remove.
14484         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
14485         restriction on loop depth difference.
14486         (record_equality): Likewise.
14487         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
14488         (loop_depth_of_name): Remove.
14489         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
14490         restriction on loop depth difference.
14491         (init_copy_prop): Likewise.
14492
14493 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
14494
14495         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
14496         parameter.
14497         (walk_aliased_vdefs): Likewise.
14498         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
14499         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
14500         (detect_type_change_from_memory_writes): Check if entry was reached.
14501
14502 2014-07-08  Richard Biener  <rguenther@suse.de>
14503
14504         PR tree-optimization/61681
14505         * tree-ssa-structalias.c (find_what_var_points_to): Expand
14506         NONLOCAL inside ESCAPED.
14507
14508 2014-07-08  Richard Biener  <rguenther@suse.de>
14509
14510         PR tree-optimization/61680
14511         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14512         Handle properly all read-write dependences with group accesses.
14513
14514 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
14515
14516         PR tree-optimization/61576
14517         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
14518         block containing reduction statement is predecessor of phi basi block.
14519
14520 2014-07-08  Marek Polacek  <polacek@redhat.com>
14521
14522         PR c/60226
14523         * fold-const.c (round_up_loc): Change the parameter type.
14524         Remove assert.
14525         * fold-const.h (round_up_loc): Adjust declaration.
14526         * stor-layout.c (finalize_record_size): Check for too large types.
14527
14528 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
14529
14530         * symtab.c: Include calls.h.
14531         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
14532
14533 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
14534
14535         * config/rs6000/rs6000.c (output_vec_const_move): Handle
14536         little-endian code generation.
14537         * config/rs6000/spe.md (spe_evmergehi): Rename to...
14538         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
14539         (spe_evmergehilo): Rename to...
14540         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
14541         (spe_evmergelo): Rename to...
14542         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
14543         (spe_evmergelohi): Rename to...
14544         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
14545         (spe_evmergehi, spe_evmergehilo): New expanders.
14546         (spe_evmergelo, spe_evmergelohi): Likewise.
14547         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
14548         (*frob_tf_ti): Likewise.
14549         (*frob_<mode>_di_2): Likewise.
14550         (*frob_tf_di_8_2): Likewise.
14551         (*frob_di_<mode>): Likewise.
14552         (*frob_ti_tf): Likewise.
14553         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
14554         (*frob_ti_<mode>_8_2): Likewise.
14555         (*frob_ti_tf_2): Likewise.
14556         (mov_si<mode>_e500_subreg0): Rename to...
14557         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
14558         endianness only.
14559         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
14560         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
14561         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
14562         the big endianness only.
14563         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
14564         (*mov_si<mode>_e500_subreg0_2): Rename to...
14565         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
14566         big big endianness only.
14567         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
14568         (*mov_si<mode>_e500_subreg4): Rename to...
14569         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
14570         endianness only.
14571         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
14572         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
14573         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
14574         the big endianness only.
14575         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
14576         pattern.
14577         (*mov_si<mode>_e500_subreg4_2): Rename to...
14578         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
14579         endianness only.
14580         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
14581         (*mov_sitf_e500_subreg8): Rename to...
14582         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
14583         endianness only.
14584         (*mov_sitf_e500_subreg8_le): New instruction pattern.
14585         (*mov_sitf_e500_subreg8_2): Rename to...
14586         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
14587         endianness only.
14588         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
14589         (*mov_sitf_e500_subreg12): Rename to...
14590         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
14591         endianness only.
14592         (*mov_sitf_e500_subreg12_le): New instruction pattern.
14593         (*mov_sitf_e500_subreg12_2): Rename to...
14594         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
14595         endianness only.
14596         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
14597
14598 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14599
14600         * asan.c (instrument_strlen_call): Do not instrument first byte
14601         in strlen if already instrumented.
14602
14603 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14604
14605         * config/arm/arm.opt (mwords-little-endian): Delete.
14606         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
14607         of TARGET_LITTLE_WORDS.
14608         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
14609         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
14610         warning.
14611         * doc/invoke.texi: Remove references to -mwords-little-endian.
14612
14613 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
14614
14615         * expmed.c (struct init_expmed_rtl): Change all fields but
14616         pow2 and cint from struct rtx_def to rtx.
14617         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
14618         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
14619         at the end again.
14620
14621 2014-07-06  Marek Polacek  <polacek@redhat.com>
14622
14623         PR c/6940
14624         * doc/invoke.texi: Document -Wsizeof-array-argument.
14625
14626 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14627
14628         * wide-int.h (wide_int_storage): Change declaration from struct
14629         to class.
14630
14631 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
14632
14633         * cgraph.c (cgraph_create_indirect_edge): Update call of
14634         get_polymorphic_call_info.
14635         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
14636         (possible_polymorphic_call_targets): Add parameter call.
14637         (decl_maybe_in_construction_p): New predicate.
14638         (get_polymorphic_call_info): Add parameter call;
14639         use decl_maybe_in_construction_p.
14640         * gimple-fold.c (fold_gimple_assign): Update use of
14641         possible_polymorphic_call_targets.
14642         (gimple_fold_call): Likewise.
14643         * ipa-prop.c: Inlcude calls.h
14644         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
14645         (param_type_may_change_p): New predicate.
14646         (detect_type_change_from_memory_writes): Break out from ...
14647         (detect_type_change): ... this one; use param_type_may_change_p.
14648         (detect_type_change_ssa): Use param_type_may_change_p.
14649         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
14650
14651 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
14652
14653         PR target/49423
14654         * config/arm/arm-protos.h (arm_legitimate_address_p,
14655         arm_is_constant_pool_ref): Add prototypes.
14656         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
14657         (arm_is_constant_pool_ref) New function.
14658         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
14659         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
14660         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
14661         operand. Remove pool_range and neg_pool_range attributes.
14662         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
14663         pool_range and neg_pool_range attributes.
14664         * config/arm/constraints.md (Uh): New constraint.
14665         (Uq): Don't allow constant pool references.
14666
14667 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
14668
14669         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
14670         (move_lo_quad_internal_be_<mode>): Likewise.
14671         (move_lo_quad_<mode>): Convert to define_expand.
14672         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
14673         (aarch64_simd_move_hi_quad_be_<mode>): New.
14674         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
14675         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
14676         (aarch64_combinez_be<mode>): New.
14677         (aarch64_combine<mode>): Convert to define_expand.
14678         (aarch64_combine_internal<mode>): New.
14679         (aarch64_simd_combine<mode>): Remove bogus RTL description.
14680
14681 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14682
14683         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
14684         combination of earlyclobber and read/write modifiers.
14685
14686 2014-07-04  Tom de Vries  <tom@codesourcery.com>
14687
14688         * config/aarch64/aarch64-simd.md
14689         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
14690
14691 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
14692
14693         PR target/61714
14694         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
14695
14696 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
14697
14698         PR middle-end/61654
14699         * cgraphunit.c (expand_thunk): Call free_dominance_info.
14700
14701         PR tree-optimization/61684
14702         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
14703         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
14704
14705 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14706             Kito Cheng  <kito@0xlab.org>
14707             Monk Chiang  <sh.chiang04@gmail.com>
14708
14709         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
14710         (nds32_symbol_load_store_p): Move to ...
14711         (nds32_fp_as_gp_check_available): Move to ...
14712         * config/nds32/nds32-fp-as-gp.c: ... here.
14713         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
14714         extern declaration.
14715
14716 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14717             Kito Cheng  <kito@0xlab.org>
14718             Monk Chiang  <sh.chiang04@gmail.com>
14719
14720         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
14721         (nds32_expand_store_multiple): Move to ...
14722         (nds32_expand_movmemqi): Move to ...
14723         * config/nds32/nds32-memory-manipulation.c: ... here.
14724
14725 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14726             Kito Cheng  <kito@0xlab.org>
14727             Monk Chiang  <sh.chiang04@gmail.com>
14728
14729         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
14730         (nds32_output_casesi_pc_relative): Move to ...
14731         (nds32_output_casesi): Move to ...
14732         (nds32_mem_format): Move to ...
14733         (nds32_output_16bit_store): Move to ...
14734         (nds32_output_16bit_load): Move to ...
14735         (nds32_output_32bit_store): Move to ...
14736         (nds32_output_32bit_load): Move to ...
14737         (nds32_output_32bit_load_s): Move to ...
14738         (nds32_output_stack_push): Move to ...
14739         (nds32_output_stack_pop): Move to ...
14740         * config/nds32/nds32-md-auxiliary.c: ... here.
14741
14742 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14743             Ling-Hua Tseng  <uranus@tinlans.org>
14744
14745         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
14746         the purpose of this file.
14747
14748 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14749             Kito Cheng  <kito@0xlab.org>
14750             Monk Chiang  <sh.chiang04@gmail.com>
14751
14752         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
14753         (nds32_address_cost): Move implementation to ...
14754         * config/nds32/nds32-cost.c: ... here.
14755         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
14756         (nds32_address_cost_impl): Declare.
14757
14758 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14759             Kito Cheng  <kito@0xlab.org>
14760             Monk Chiang  <sh.chiang04@gmail.com>
14761
14762         * config/nds32/nds32.c
14763         (nds32_consecutive_registers_load_store_p): Move to ...
14764         (nds32_valid_multiple_load_store): Move to ...
14765         (nds32_valid_stack_push_pop): Move to ...
14766         (nds32_can_use_bclr_p): Move to ...
14767         (nds32_can_use_bset_p): Move to ...
14768         (nds32_can_use_btgl_p): Move to ...
14769         (nds32_can_use_bitci_p): Move to ...
14770         * config/nds32/nds32-predicates.c: ... here.
14771
14772 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14773             Kito Cheng  <kito@0xlab.org>
14774             Monk Chiang  <sh.chiang04@gmail.com>
14775
14776         * config/nds32/nds32.c
14777         (nds32_expand_builtin_null_ftype_reg): Move to ...
14778         (nds32_expand_builtin_reg_ftype_imm): Move to ...
14779         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
14780         (nds32_init_builtins): Move implementation to ...
14781         (nds32_expand_builtin): Move implementation to ...
14782         * config/nds32/nds32-intrinsic.c: ... here.
14783         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
14784         (nds32_expand_builtin_impl): Declare.
14785
14786 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14787             Kito Cheng  <kito@0xlab.org>
14788             Monk Chiang  <sh.chiang04@gmail.com>
14789
14790         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
14791         (nds32_emit_section_tail_template): Move to ...
14792         (nds32_emit_isr_jmptbl_section): Move to ...
14793         (nds32_emit_isr_vector_section): Move to ...
14794         (nds32_emit_isr_reset_conten): Move to ...
14795         (nds32_check_isr_attrs_conflict): Move to ...
14796         (nds32_construct_isr_vectors_information): Move to ...
14797         (nds32_asm_file_start): Move implementation to ...
14798         (nds32_asm_file_end): Move implementation to ...
14799         * config/nds32/nds32-isr.c: ... here.
14800         * config/nds32/nds32-protos.h
14801         (nds32_check_isr_attrs_conflict): Declare.
14802         (nds32_construct_isr_vectors_information): Declare.
14803         (nds32_asm_file_start_for_isr): Declare.
14804         (nds32_asm_file_end_for_isr): Declare.
14805
14806 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
14807             Kito Cheng  <kito@0xlab.org>
14808             Monk Chiang  <sh.chiang04@gmail.com>
14809
14810         * config.gcc (nds32*): Add new modules to extra_objs.
14811         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
14812         (nds32be-*-*): Likewise.
14813         * config/nds32/nds32-cost.c: New file.
14814         * config/nds32/nds32-fp-as-gp.c: New file.
14815         * config/nds32/nds32-intrinsic.c: New file.
14816         * config/nds32/nds32-isr.c: New file.
14817         * config/nds32/nds32-md-auxiliary.c: New file.
14818         * config/nds32/nds32-memory-manipulation.c: New file.
14819         * config/nds32/nds32-pipelines-auxiliary.c: New file.
14820         * config/nds32/nds32-predicates.c: New file.
14821         * config/nds32/t-nds32: New file.
14822
14823 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14824
14825         PR tree-optimization/61682
14826         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
14827         using cases and when one of the operands is equal to 1.
14828
14829 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
14830
14831         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
14832         ashr<mode>3): Correct mode of operands[2].
14833         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
14834         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
14835         Correct mode of operands[2].  Fix split condition.
14836
14837 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
14838
14839         * arm.md (arch): Add armv6_or_vfpv3.
14840         (arch_enabled): Add test for the above.
14841         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
14842         on VFP9.
14843         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
14844
14845 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
14846
14847         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
14848         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
14849         HWI 1 and negate the unsigned value.
14850         * expmed.c (expand_sdiv_pow2): For modes wider than word always
14851         use AND instead of shift.
14852         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
14853
14854 2014-07-03  Marek Polacek  <polacek@redhat.com>
14855
14856         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
14857         (-fsanitize=float-divide-by-zero): Move to the table with
14858         -fsanitize=undefined suboptions.
14859         (-fsanitize=float-cast-overflow): Likewise.
14860
14861 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
14862
14863         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
14864         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
14865         endianness.
14866
14867 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
14868
14869         * loop-invariant.c (struct invariant): Add a new member: eqno;
14870         (find_identical_invariants): Update eqno;
14871         (create_new_invariant): Init eqno;
14872         (get_inv_cost): Compute comp_cost with eqno;
14873
14874 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14875
14876         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
14877         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
14878         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
14879         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
14880         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
14881
14882 2014-07-02  Christian Bruel  <christian.bruel@st.com>
14883
14884         PR target/29349
14885         PR target/53513
14886         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
14887         (make_preds_opaque): Delete.
14888         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
14889         (commit_mode_sets): New function.
14890         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
14891         Process all modes at once.
14892         * basic-block.h (pre_edge_lcm_avs): Declare.
14893         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
14894         Call clear_aux_for_edges. Fix comments.
14895         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
14896         (pre_edge_rev_lcm): Idem.
14897         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
14898         parameter.
14899         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
14900         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
14901         Idem.
14902         * config/i386/i386.c (x96_emit_mode_set): Idem.
14903         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
14904         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
14905         (fpscr_toggle) Disallow from delay slot.
14906         * target.def (emit_mode_set): Add prev_mode parameter.
14907         * doc/tm.texi: Regenerate.
14908
14909 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14910
14911         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
14912         variable i.
14913
14914 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14915
14916         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
14917         vtable_pointer_value_to_vtable): Constify.
14918         (contains_polymorphic_type_p): Declare.
14919         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
14920         vtable_pointer_value_to_vtable): Constify.
14921         (contains_polymorphic_type_p): New predicate.
14922         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
14923         polymorphic types.
14924         (ipa_set_ancestor_jf): Likewise.
14925         (detect_type_change): Return false in easy cases.
14926         (compute_complex_assign_jump_func): Require type to contain
14927         polymorphic type.
14928         (compute_known_type_jump_func): Likewise.
14929
14930 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
14931
14932         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
14933         Remove.
14934         (type_in_anonymous_namespace_p): Constify argument.
14935         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
14936         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
14937         (main_odr_variant): New function.
14938         (hash_type_name): Make static; update assert; do not ICE on
14939         non-records.
14940         (types_same_for_odr): Bring here from tree.c; simplify and remove
14941         old structural comparing code that doesn't work for templates.
14942         (odr_hasher::equal): Update assert.
14943         (add_type_duplicate): Return true when bases should be computed;
14944         replace incomplete loader by complete; do not output duplicated
14945         warnings; do not ICE on non-records; set odr_violated flag.
14946         (get_odr_type): Be ready to replace incomplete type by complete
14947         one; work on ODR variants instead of main variants; reorder item
14948         in array so bases have still smaller indexes.
14949         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
14950         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
14951
14952 2014-07-01  Cary Coutant  <ccoutant@google.com>
14953
14954         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
14955         lookup.
14956         (resolve_addr_in_expr): When replacing the rtx in a location list
14957         entry, get a new address table entry.
14958         (dwarf2out_finish): Call index_location_lists even if there are no
14959         addr_index_table entries yet.
14960
14961 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14962
14963         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
14964         change for not being obvious.
14965
14966 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
14967
14968         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
14969         unused argument.
14970
14971 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14972
14973         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
14974         (vcagt_f64): Likewise.
14975         (vcale_f64): Likewise.
14976         (vcaled_f64): Likewise.
14977         (vcales_f32): Likewise.
14978         (vcalt_f64): Likewise.
14979         (vcaltd_f64): Likewise.
14980         (vcalts_f32): Likewise.
14981
14982 2014-07-01  Marek Polacek  <polacek@redhat.com>
14983
14984         * doc/invoke.texi: Document -Wint-conversion.
14985
14986 2014-07-01  Marek Polacek  <polacek@redhat.com>
14987
14988         PR c/58286
14989         * doc/invoke.texi: Document -Wincompatible-pointer-types.
14990
14991 2014-07-01  Martin Liska  <mliska@suse.cz>
14992
14993         IPA REF alias refactoring
14994         * cgraph.h (iterate_direct_aliases): New function.
14995         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
14996         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
14997         FOR_EACH_ALIAS added.
14998         (cgraph_for_node_and_aliases): Likewise.
14999         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
15000         * ipa-inline.c (reset_edge_caches): Likewise.
15001         (update_caller_keys): Likewise.
15002         * trans-mem.c (ipa_tm_execute): Likewise.
15003         *varpool.c (varpool_analyze_node): Likewise.
15004         (varpool_for_node_and_aliases): Likewise.
15005         * ipa-ref.h (first_alias): New function.
15006         (last_alias): Likewise.
15007         (has_aliases_p): Likewise.
15008         * ipa-ref.c (ipa_ref::remove_reference): Removal function
15009         is sensitive to IPA_REF_ALIASes.
15010         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
15011         are put at the beginning of the list.
15012         (symtab_node::iterate_direct_aliases): New function.
15013
15014 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15015
15016         Revert:
15017         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
15018         type is complete.
15019         (write_ts_type_common_tree_pointers): Do not stream fields not set
15020         for incomplete types; do not stream duplicated fields for variants;
15021         sanity check that variant and type match.
15022         (write_ts_type_non_common_tree_pointers): Likewise.
15023         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
15024         TYPE_SIZE whether type is complete.
15025         (lto_input_ts_type_common_tree_pointers): Do same changes as in
15026         write_ts_type_common_tree_pointers
15027         (lto_input_ts_type_non_common_tree_pointers): Likewise.
15028
15029 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
15030
15031         * var-tracking.c (add_stores): Return instead of asserting if old
15032         and new values for conditional store are the same.
15033
15034 2014-06-30  Richard Henderson  <rth@redhat.com>
15035
15036         PR rtl-opt/61608
15037         PR target/39284
15038         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
15039         the cfg if there were any changes.
15040         * passes.def: Revert move of peephole2 after reorder_blocks;
15041         move duplicate_computed_gotos before peephole2.
15042
15043 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
15044
15045         * except.c (emit_note_eh_region_end): New helper function.
15046         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
15047         emit EH_REGION_END note.
15048         * jump.c (cleanup_barriers): Do not split a call and its
15049         corresponding CALL_ARG_LOCATION note.
15050
15051 2014-06-30  Jeff Law  <law@redhat.com>
15052
15053         PR tree-optimization/61607
15054         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
15055         deeper into the SSA_NAME_VALUE chain.
15056
15057 2014-06-30  Marek Polacek  <polacek@redhat.com>
15058
15059         * convert.c (convert_to_integer): Don't instrument conversions if the
15060         function has no_sanitize_undefined attribute.
15061         * ubsan.c: Don't run the ubsan pass if the function has
15062         no_sanitize_undefined attribute.
15063
15064 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
15065
15066         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
15067         -fsanitize=undefined suboptions.
15068
15069 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
15070
15071         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
15072         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
15073         against bigendian and adjust indices.
15074
15075 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
15076
15077         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
15078
15079 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15080
15081         PR target/61633
15082         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
15083         Add alternative; make early clobber.  Adjust both split patterns
15084         to use operand 0 as the working register.
15085
15086 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
15087
15088         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
15089         as ira_object_id_map might be NULL, or 1.
15090
15091 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15092
15093         * loop-invariant.c (get_inv_cost): Handle register class.
15094         (gain_for_invariant): Check the register pressure of the inv
15095         and its overlapped register class, other than all.
15096
15097 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
15098
15099         * doc/invoke.texi (Optimize Options): Fix descriptions of
15100         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
15101
15102 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
15103
15104         * doc/extend.texi (Function Attributes): Update 'naked' attribute
15105         documentation.
15106
15107 2014-06-29  Tobias Grosser <tobias@grosser.es>
15108
15109         PR bootstrap/61650
15110         * graphite-isl-ast-to-gimple.c: Add missing guards.
15111
15112 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
15113
15114         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
15115         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
15116         * flag-types.h: Add new enum fgraphite_generator.
15117         * graphite-isl-ast-to-gimple.c: New.
15118         * graphite-isl-ast-to-gimple.h: New.
15119         * graphite.c (graphite_transform_loops): Add choice of Graphite
15120         code generator, which depends on flag_graphite_code_gen.
15121
15122 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
15123
15124         * graphite-dependences.c (subtract_commutative_associative_deps):
15125         Add NULL checking of the following variables: must_raw_no_source,
15126         may_raw_no_source, must_war_no_source, may_war_no_source,
15127         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
15128         must_war, may_war, must_waw, may_waw.
15129
15130 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
15131
15132         * graphite-clast-to-gimple.c: gloog is renamed to
15133         graphite_regenerate_ast_cloog.  gloog_error is renamed to
15134         graphite_regenerate_error.
15135         * graphite-clast-to-gimple.h: The definition of the struct
15136         bb_pbb_def is moved to graphite-htab.h.
15137         Add inclusion of the hash-table.h.
15138         * graphite-htab.h: The declaration of the function gloog is moved
15139         to graphite-clast-to-gimple.h and renamed to
15140         graphite_regenerate_ast_cloog.
15141         * graphite.c (graphite_transform_loops): gloog is renamed
15142         to graphite_regenerate_ast_cloog.
15143
15144 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15145
15146         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
15147         type is complete.
15148         (write_ts_type_common_tree_pointers): Do not stream fields not set
15149         for incomplete types; do not stream duplicated fields for variants;
15150         sanity check that variant and type match.
15151         (write_ts_type_non_common_tree_pointers): Likewise.
15152         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
15153         TYPE_SIZE whether type is complete.
15154         (lto_input_ts_type_common_tree_pointers): Do same changes as in
15155         write_ts_type_common_tree_pointers
15156         (lto_input_ts_type_non_common_tree_pointers): Likewise.
15157
15158 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15159
15160         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
15161
15162 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15163
15164         * tree-inline.c (remap_type_1): Do not duplicate fields
15165         that are shared in between type and its main variant.
15166
15167 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15168
15169         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
15170         of the type.
15171         (ipa_set_ancestor_jf) Likewise.
15172         (check_stmt_for_type_change): Check that we work on main variant.
15173         (detect_type_change): Look into main variant.
15174         (compute_known_type_jump_func): Check that main variant has BINFO.
15175
15176 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15177
15178         * ipa-devirt.c (set_type_binfo): New function.
15179         (add_type_duplicate): Use it.
15180         (get_odr_type): Sanity check that binfos points to main variants.
15181         (get_class_context): Be sure the context's outer_type is main variant.
15182         (contains_type_p): Walk main variant.
15183         (get_polymorphic_call_info_for_decl): Set outer_type to be
15184         main variant.
15185         (get_polymorphic_call_info): Likewise.
15186         (possible_polymorphic_call_targets): Sanity check that we operate
15187         on main variant.
15188
15189 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
15190
15191         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
15192
15193 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15194
15195         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
15196         accidental change due to wide-int branch merge.
15197
15198 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15199
15200         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
15201         compressed debug support.
15202         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
15203         * configure: Regenerate.
15204         * config.in: Regenerate.
15205         * common.opt (compressed_debug_sections): New enum.
15206         (gz, gz=): New options.
15207         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
15208         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
15209         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
15210         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
15211         LINK_COMPRESS_DEBUG_SPEC.
15212         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
15213         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
15214         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
15215         (Debugging Options): Document -gz[=type].
15216
15217 2014-06-27  Martin Jambor  <mjambor@suse.cz>
15218
15219         PR ipa/61160
15220         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
15221         args_to_skip, use those from node instead.  Copy args_to_skip and
15222         combined_args_to_skip from node to the new thunk.
15223         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
15224         (cgraph_create_virtual_clone): Moved computation of
15225         combined_args_to_skip...
15226         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
15227
15228 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
15229
15230         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
15231         redundant diagnostic machinary.
15232
15233 2014-06-27  Richard Biener  <rguenther@suse.de>
15234
15235         * tree-ssa-math-opts.c (bswap_replace): Fix
15236         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
15237
15238 2014-06-27  Martin Liska  <mliska@suse.cz>
15239
15240         * gimple.h (gimple_location_safe): New function introduced.
15241         * cgraphunit.c (walk_polymorphic_call_targets): Usage
15242         of gimple_location_safe replaces gimple_location.
15243         (gimple_fold_call): Likewise.
15244         * ipa-devirt.c (ipa_devirt): Likewise.
15245         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
15246         * ipa.c (walk_polymorphic_call_targets): Likewise.
15247         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
15248
15249 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR tree-optimization/57233
15252         PR tree-optimization/61299
15253         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
15254         functions.
15255         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
15256         would be lowered to scalar shifts, check if corresponding
15257         shifts and vector BIT_IOR_EXPR are supported and don't lower
15258         or lower just to narrower vector type in that case.
15259         * expmed.c (expand_shift_1): Fix up handling of vector
15260         shifts and rotates.
15261
15262 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
15263
15264         PR target/61586
15265         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
15266
15267 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
15268
15269         * doc/invoke.texi (-fsemantic-interposition): Document.
15270         * common.opt (fsemantic-interposition): New flag.
15271         * varasm.c (decl_replaceable_p): Use it.
15272
15273 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15274
15275         PR target/61542
15276         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
15277         extraction other than index 3.
15278
15279 2014-06-26  Teresa Johnson  <tejohnson@google.com>
15280
15281         * doc/invoke.texi: Fix typo.
15282         * dumpfile.c: Add support for documented -fdump-* options
15283         optimized/missed/note/optall.
15284
15285 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15286
15287         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
15288         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
15289         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
15290         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
15291         * opts.c (default_options_optimization): Set
15292         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
15293         * doc/invoke.texi (allow-load-data-races)
15294         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
15295         (allow-store-data-races): Document the new default.
15296
15297 2014-06-26  Martin Jambor  <mjambor@suse.cz>
15298
15299         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
15300         renamed to ipa_impossible_devirt_target.  Fix typo.
15301         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
15302         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
15303         ipa_impossible_devirt_target.
15304
15305 2014-06-26  Richard Biener  <rguenther@suse.de>
15306
15307         PR tree-optimization/61607
15308         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
15309         explaining why we restrict copies on loop depth.
15310         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15311         on loop depth.
15312         (record_equivalences_from_phis): Instead add it here.
15313
15314 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
15315
15316         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
15317         (LTO_WRAPPER_OBJS): New variable.
15318         (lto-wrapper$(exeext)): Use it.
15319         * collect2.c: Include "collect-utils.h".
15320         (verbose, debug): Remove variables.
15321         (at_file_supplied): No longer static.
15322         (tool_name): New variable.
15323         (do_wait, fork_execute, maybe_unlink): Don't declare.
15324         (tool_cleanup): No longer static.
15325         (notice): Remove function.
15326         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
15327         fork_execute calls.
15328         (collect_wait, do_wait, collect_execute): Remove functions.
15329         (maybe_unlink): No longer static.
15330         * collect2.h (verbose, debug): Don't declare.
15331         (at_file_supplied): Declare.
15332         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
15333         changed.
15334         (collect_execute): Replace with implementation from collect2, plus a
15335         new arg use_atfile.  All callers changed.
15336         (collect_wait): Replace with implementation from collect2.
15337         (maybe_unlink_file): Remove function.
15338         (fork_execute): Replace with implementation from collect2, plus a
15339         new arg use_atfile.  All callers changed.
15340         (do_wait): Add call to utils_cleanup to the error path.
15341         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
15342         (tool_cleanup): Adjust declarations.
15343         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
15344         * tlink.c: Include "collect-utils.h".
15345         (tlink_execute): New arg use_atfile.  All callers changed.
15346         (tlink_init, tlink_execute): Remove declarations.
15347
15348         * collect-utils.c (save_temps): New variable.
15349         (do_wait): Use it instead of debug.  Use fatal_error.
15350         * collect-utils.h (save_temps): Declare.
15351         * collect2.c (verbose): Rename from vflag.  All uses changed.
15352         (tool_cleanup): New function, copied from collect_atexit.
15353         (collect_atexit, handler): Just call it.
15354         * collect2.h (verbose): Declaration renamed from vflag.
15355         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
15356         debug.
15357
15358         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
15359         (lto-wrapper$(exeext)): Link with collect-utils.o.
15360         * collect-utils.c: New file.
15361         * collect-utils.h: New file.
15362         * lto-wrapper.c: Include "collect-utils.h".
15363         (args_name): Delete variable.
15364         (tool_name): New variable.
15365         (tool_cleanup): New function.
15366         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
15367         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
15368         (fork_execute): Remove functions.
15369
15370 2014-06-26  Nick Clifton  <nickc@redhat.com>
15371
15372         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
15373
15374         * doc/extend.texi (Function Attributes): Fix typo in description
15375         of RX vector attribute.
15376
15377 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15378
15379         * config.gcc (supported_defaults): Error when passing either
15380         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
15381
15382 2014-06-26  Richard Biener  <rguenther@suse.de>
15383
15384         * tree-ssa-dom.c (cprop_operand): Remove restriction on
15385         propagating volatile pointers.
15386
15387 2014-06-26  Richard Biener  <rguenther@suse.de>
15388
15389         PR tree-optimization/61607
15390         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
15391         loop if we redirected its latch edge.
15392         (thread_block_1): Do not cancel loops prematurely.
15393
15394 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
15395
15396         * toplev.c (backend_init_target): Move init_emit_regs and
15397         init_regs to...
15398         (backend_init) ... here; skip ira_init_once and backend_init_target.
15399         (target_reinit) ... and here; clear
15400         this_target_rtl->lang_dependent_initialized.
15401         (lang_dependent_init_target): Clear
15402         this_target_rtl->lang_dependent_initialized;
15403         break out rtl initialization to ...
15404         (initialize_rtl): ... here; call also backend_init_target
15405         and ira_init_once.
15406         * toplev.h (initialize_rtl): New function.
15407         * function.c: Include toplev.h
15408         (init_function_start): Call initialize_rtl.
15409         * rtl.h (target_rtl): Add target_specific_initialized,
15410         lang_dependent_initialized.
15411
15412 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
15413             Jakub Jelinek  <jakub@redhat.com>
15414
15415         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
15416
15417 2014-06-25  Tom de Vries  <tom@codesourcery.com>
15418
15419         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
15420
15421 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15422
15423         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
15424         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
15425         Issue a strict overflow warning if appropriate.
15426
15427 2014-06-25  Martin Liska  <mliska@suse.cz>
15428
15429         IPA REF refactoring
15430         * Makefile.in: Removed header file (ipa-ref-inline.h).
15431         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
15432         called.
15433         (cgraph_speculative_call_info): Likewise.
15434         (cgraph_for_node_thunks_and_aliases): Likewise.
15435         (cgraph_for_node_and_aliases): Likewise.
15436         (verify_cgraph_node): Likewise.
15437         * cgraph.h: Batch of IPA REF functions become member functions of
15438         symtab_node: add_reference, maybe_add_reference, clone_references,
15439         clone_referring, clone_reference, find_reference,
15440         remove_stmt_references, remove_all_references,
15441         remove_all_referring, dump_references, dump_referring,
15442         has_alias_p, iterate_reference, iterate_referring.
15443         * cgraphbuild.c (record_reference): New IPA REF function used.
15444         (record_type_list): Likewise.
15445         (record_eh_tables): Likewise.
15446         (mark_address): Likewise.
15447         (mark_load): Likewise.
15448         (mark_store): Likewise.
15449         (pass_build_cgraph_edges): Likewise.
15450         (rebuild_cgraph_edge): Likewise.
15451         (cgraph_rebuild_references): Likewise.
15452         (pass_remove_cgraph_callee_edges): Likewise.
15453         * cgraphclones.c (cgraph_clone_node): Likewise.
15454         (cgraph_create_virtual_clone): Likewise.
15455         (cgraph_materialize_clone): Likewise.
15456         (cgraph_materialize_all_clones): Likewise.
15457         * cgraphunit.c (cgraph_reset_node): Likewise.
15458         (cgraph_reset_node): Likewise.
15459         (analyze_function): Likewise.
15460         (assemble_thunks_and_aliases): Likewise.
15461         (expand_function): Likewise.
15462         * ipa-comdats.c (propagate_comdat_group): Likewise.
15463         (enqueue_references): Likewise.
15464         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
15465         (create_specialized_node): Likewise.
15466         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
15467         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
15468         * ipa-inline.c (reset_edge_caches): Likewise.
15469         (update_caller_keys): Likewise.
15470         (execute): Likewise.
15471         * ipa-prop.c (remove_described_reference): Likewise.
15472         (propagate_controlled_uses): Likewise.
15473         (ipa_edge_duplication_hook): Likewise.
15474         (ipa_modify_call_arguments): Likewise.
15475         * ipa-pure-const.c (propagate_pure_const): Likewise.
15476         * ipa-ref-inline.h: Header file removed, functions moved
15477         to symtab_node class.
15478         * ipa-ref.c (remove_reference): New class member function.
15479         (cannot_lead_to_return): New class member function.
15480         (referring_ref_list): Likewise.
15481         (referred_ref_list): Likewise.
15482         Rest of functions moved to symtab_node class.
15483         * ipa-ref.h: New member functions remove_reference,
15484         cannot_lead_to_return, referring_ref_list, referred_ref_list added
15485         to ipa_ref class.
15486         ipa_ref_list class has new member functions: first_reference,
15487         first_referring, clear, nreferences.
15488         * ipa-reference.c (analyze_function): New IPA REF function used.
15489         (write_node_summary_p): Likewise.
15490         (ipa_reference_write_optimization_summary): Likewise.
15491         * ipa-split.c (split_function): Likewise.
15492         * ipa-utils.c (ipa_reverse_postorder): Likewise.
15493         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
15494         (function_and_variable_visibility): Likewise.
15495         * ipa.c (has_addr_references_p): Likewise.
15496         (process_references): Argument type changed.
15497         (symtab_remove_unreachable_nodes): New IPA REF function used.
15498         (process_references): Likewise.
15499         (set_writeonly_bit): Likewise.
15500         * lto-cgraph.c: Implementation of new symtab_node member functions
15501         that uses new IPA REF functions.
15502         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
15503         function used.
15504         * lto-streamer-out.c (output_symbol_p): Likewise.
15505         * lto-streamer.h (referenced_from_this_partition_p): Argument type
15506         changed.
15507         * symtab.c: Implementation of new IPA REF API.
15508         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
15509         (ipa_tm_create_version): Likewise.
15510         (ipa_tm_execute): Likewise.
15511         * tree-emutls.c (gen_emutls_addr): Likewise.
15512         * tree-inline.c (copy_bb): Likewise.
15513         (delete_unreachable_blocks_update_callgraph): Likewise.
15514         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
15515         (varpool_for_node_and_aliases): Likewise.
15516
15517 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15518
15519         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
15520
15521 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
15522
15523         PR bootstrap/61598
15524         * fold-const.c (fold_checksum_tree): Use a hash_table of const
15525         tree_node * instead of tree_node *.
15526         (fold): Adjust.
15527         (print_fold_checksum): Likewise.
15528         (fold_check_failed): Likewise.
15529         (debug_fold_checksum): Likewise.
15530         (fold_build1_stat_loc): Likewise.
15531         (fold_build2_stat_loc): Likewise.
15532         (fold_build3_stat_loc): Likewise.
15533         (fold_build_call_array_loc): Likewise.
15534
15535 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
15536
15537         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
15538         implementation with call to...
15539         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
15540         function.
15541         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
15542         Declare.
15543
15544 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
15545
15546         PR tree-optimization/57742
15547         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
15548         after replacing the statement.
15549
15550 2014-06-25  Nick Clifton  <nickc@redhat.com>
15551
15552         * config/v850/v850.c (GHS_default_section_names): Change to const
15553         char * type.
15554         (GHS_current_section_names): Likewise.
15555         (v850_insert_attributes): Do not build strings, just assign the
15556         names directly.  Change the type of 'chosen_section' to const
15557         char*.
15558         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
15559         directly to the array entry.
15560         * config/v850/v850.h (GHS_default_section_names): Change to const
15561         char * type.
15562         (GHS_current_section_names): Likewise.
15563
15564 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
15565
15566         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
15567         (LANG_HOOKS_DECLS): Add it.
15568         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
15569         has correct type.
15570         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
15571         * langhooks.h (struct lang_hooks_for_decls): Add
15572         omp_clause_linear_ctor hook.
15573         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
15574         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
15575         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
15576         combined simd loop use omp_clause_linear_ctor hook.
15577
15578 2014-06-24  Cong Hou  <congh@google.com>
15579
15580         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
15581         pattern recognition.
15582         (type_conversion_p): PROMOTION is true if it's a type promotion
15583         conversion, and false otherwise.  Return true if the given expression
15584         is a type conversion one.
15585         * tree-vectorizer.h: Adjust the number of patterns.
15586         * tree.def: Add SAD_EXPR.
15587         * optabs.def: Add sad_optab.
15588         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
15589         * expr.c (expand_expr_real_2): Likewise.
15590         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
15591         * gimple.c (get_gimple_rhs_num_ops): Likewise.
15592         * optabs.c (optab_for_tree_code): Likewise.
15593         * tree-cfg.c (estimate_operator_cost): Likewise.
15594         * tree-ssa-operands.c (get_expr_operands): Likewise.
15595         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
15596         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
15597         * doc/generic.texi: Add document for SAD_EXPR.
15598         * doc/md.texi: Add document for ssad and usad.
15599
15600 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15601
15602         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
15603         qualification in cast.
15604
15605 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
15606
15607         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
15608         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
15609         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
15610         (tree_function_decl): ... here.
15611         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
15612         streaming of vindex to ...
15613         (write_ts_function_decl_tree_pointers): ... here.
15614         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
15615         Do not stream DECL_VINDEX.
15616         (lto_input_ts_function_decl_tree_pointers): Stream it here.
15617
15618 2014-06-24  Catherine Moore  <clm@codesourcery.com>
15619             Sandra Loosemore  <sandra@codesourcery.com>
15620
15621         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
15622         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
15623         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
15624
15625 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15626
15627         * doc/invoke.texi (Warning Options): Remove duplicated
15628         -Wmaybe-uninitialized.
15629
15630 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
15631
15632         PR tree-optimization/57742
15633         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
15634         (handle_builtin_malloc, handle_builtin_memset): New functions.
15635         (strlen_optimize_stmt): Call them.
15636         * passes.def: Move strlen after loop+dom but before vrp.
15637
15638 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15639
15640         PR target/61570
15641         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
15642         model family 6 CPU with has_longmode never use a CPU without
15643         64-bit support.
15644
15645 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
15646
15647         PR target/61570
15648         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
15649         the last change.
15650
15651 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15652
15653         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
15654         * dominance.c (iterate_fix_dominators): Use hash_map instead of
15655         pointer_map.
15656         * hash-map.h: New file.
15657         * ipa-comdats.c: Use hash_map instead of pointer_map.
15658         * ipa.c: Likewise.
15659         * lto-section-out.c: Adjust.
15660         * lto-streamer.h: Replace pointer_map with hash_map.
15661         * symtab.c (verify_symtab): Likewise.
15662         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
15663         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
15664         * tree-streamer.h: Likewise.
15665         * tree-streamer.c: Adjust.
15666         * pointer-set.h: Remove pointer_map.
15667
15668 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15669
15670         * hash-table.h: Add a template arg to choose between storing values
15671         and storing pointers to values, and then provide partial
15672         specializations for both.
15673         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
15674         should store, not the type values should point to.
15675         * tree-into-ssa.c (var_info_hasher): Likewise.
15676         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15677         * tree-complex.c: Adjust.
15678         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
15679         table instead of int_tree_map *.
15680         * tree-parloops.c: Adjust.
15681         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
15682         type is being stored.
15683         * tree-vectorizer.c: Adjust.
15684
15685 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
15686
15687         * hash-table.h: Remove a layer of indirection from hash_table so that
15688         it contains the hash table's data instead of a pointer to the data.
15689         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
15690         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
15691         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
15692         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
15693         fold-const.c, gcse.c, ggc-common.c,
15694         gimple-ssa-strength-reduction.c, gimplify.c,
15695         graphite-clast-to-gimple.c, graphite-dependences.c,
15696         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
15697         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
15698         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
15699         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
15700         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
15701         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
15702         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
15703         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
15704         tree-ssa-live.c, tree-ssa-loop-im.c,
15705         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
15706         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
15707         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
15708         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
15709         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
15710         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
15711         vtable-verify.c, vtable-verify.h: Adjust.
15712
15713 2014-06-24  Richard Biener  <rguenther@suse.de>
15714
15715         PR tree-optimization/61572
15716         * tree-ssa-sink.c (statement_sink_location): Do not sink
15717         loads from hard registers.
15718
15719 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
15720
15721         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
15722         not mentioned in clauses use private clause if the iterator is
15723         declared in #pragma omp for simd, and when adding lastprivate
15724         instead, add it to the outer #pragma omp for too.  Diagnose
15725         if the variable is private in outer context.  For simd collapse > 1
15726         loops, replace all iterators with temporaries.
15727         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
15728         same even in collapse > 1 loops.
15729
15730         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
15731         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
15732         non-NULL.
15733         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
15734         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
15735         non-NULL.
15736         (gimplify_adjust_omp_clauses): Likewise.
15737         * omp-low.c (lower_rec_simd_input_clauses,
15738         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
15739         safelen the same as safelen(1).
15740         * tree-nested.c (convert_nonlocal_omp_clauses,
15741         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
15742         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
15743         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
15744         Fixup handling of GIMPLE_OMP_TARGET.
15745         (convert_tramp_reference_stmt, convert_gimple_call): Handle
15746         GIMPLE_OMP_TARGET.
15747
15748 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
15749
15750         PR tree-optimization/61554
15751         * tree-ssa-propagate.c: Include "bitmap.h".
15752         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
15753         properly update constructor/destructor.
15754         (substitute_and_fold_dom_walker::before_dom_children):
15755         Remove call to gimple_purge_dead_eh_edges, add bb->index to
15756         need_eh_cleaup instead.
15757         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
15758         need_eh_cleanup.
15759
15760 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15761
15762         * varpool.c (dump_varpool_node): Dump used_by_single_function.
15763         * tree-pass.h (make_pass_ipa_single_use): New pass.
15764         * cgraph.h (used_by_single_function): New flag.
15765         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
15766         Stream it.
15767         * passes.def (pass_ipa_single_use): Scedule.
15768         * ipa.c (BOTTOM): New macro.
15769         (meet): New function
15770         (propagate_single_user): New function.
15771         (ipa_single_use): New function.
15772         (pass_data_ipa_single_use): New pass.
15773         (pass_ipa_single_use): New pass.
15774         (pass_ipa_single_use::gate): New gate.
15775         (make_pass_ipa_single_use): New function.
15776
15777 2014-06-23  Kai Tietz  <ktietz@redhat.com>
15778
15779         PR target/39284
15780         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
15781         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
15782
15783 2014-06-23  Richard Biener  <rguenther@suse.de>
15784
15785         * tree-ssa-loop.c (gate_loop): New function.
15786         (pass_tree_loop::gate): Call it.
15787         (pass_data_tree_no_loop, pass_tree_no_loop,
15788         make_pass_tree_no_loop): New.
15789         * tree-vectorizer.c: Include tree-scalar-evolution.c
15790         (pass_slp_vectorize::execute): Initialize loops and SCEV if
15791         required.
15792         (pass_slp_vectorize::clone): New method.
15793         * timevar.def (TV_TREE_NOLOOP): New.
15794         * tree-pass.h (make_pass_tree_no_loop): Declare.
15795         * passes.def (pass_tree_no_loop): New pass group with
15796         SLP vectorizer.
15797
15798 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
15799
15800         PR target/61570
15801         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
15802         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
15803
15804 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15805
15806         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
15807         "yes" where needed.
15808
15809 2014-06-23  Alan Modra  <amodra@gmail.com>
15810
15811         PR bootstrap/61583
15812         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
15813         to zero on debug statements.
15814
15815 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15816
15817         PR target/60825
15818         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
15819         Ignore third operand if present by marking qualifier_internal.
15820
15821         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
15822
15823         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
15824         vector extension.
15825         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
15826         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
15827         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
15828         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
15829         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
15830         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
15831         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
15832         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
15833         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
15834         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
15835         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
15836         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
15837         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
15838         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
15839         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
15840         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
15841         logic in GCC vector extensions
15842
15843         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
15844         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
15845         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
15846         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
15847         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
15848         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
15849         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
15850         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
15851         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
15852         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
15853
15854         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
15855
15856         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
15857         extensions.
15858
15859         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
15860         (vget_low_s64): Use __GET_LOW macro.
15861         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
15862         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
15863         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
15864         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
15865         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
15866
15867         (vcombine_s64): Use GCC vector extensions; remove cast.
15868         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
15869         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
15870         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
15871         Fix type signature; remove cast.
15872
15873 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
15874
15875         PR target/60825
15876         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
15877         V1DFmode.
15878         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
15879         add V1DFmode
15880         (BUILTIN_VD1): New.
15881         (BUILTIN_VD_RE): Remove.
15882         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
15883         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
15884         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
15885         variant but not df.
15886         (vreinterpretv1df*, vreinterpret*v1df): New.
15887         (vreinterpretdf*, vreinterpret*df): Remove.
15888         * config/aarch64/aarch64-simd.md (aarch64_create,
15889         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
15890         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
15891         (VD1): New.
15892         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
15893         (vcreate_f64): Remove cast, use v1df builtin.
15894         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
15895         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
15896         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
15897         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
15898         vmov_n_f64, vst1_f64): Use gcc vector extensions.
15899         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
15900         add range check using __builtin_aarch64_im_lane_boundsi.
15901         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
15902         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
15903         type signature, use gcc vector extensions.
15904         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
15905         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
15906         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
15907         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
15908         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
15909         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
15910         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
15911         vreinterpret_u64_f64): Use v1df builtin not df.
15912
15913 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
15914
15915         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
15916         vector registers.
15917
15918 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
15919
15920         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
15921         priority directly.
15922
15923 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15924
15925         * loop-invariant.c (pre_check_invariant_p): New function.
15926         (find_invariant_insn): Call pre_check_invariant_p.
15927
15928 2014-06-22  Richard Henderson  <rth@redhat.com>
15929
15930         PR target/61565
15931         * compare-elim.c (struct comparison): Add eh_note.
15932         (find_comparison_dom_walker::before_dom_children): Don't eliminate
15933         a redundant comparison in a different EH region.  Purge EH edges if
15934         necessary.
15935
15936 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15937
15938         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
15939         (var_shift): Use it.
15940         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
15941         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
15942         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
15943         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
15944         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
15945         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
15946         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
15947         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
15948         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
15949         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
15950         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
15951         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
15952         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
15953         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
15954         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
15955         *rotldi3_internal15be): Use the new attribute.  Merge register and
15956         integer alternatives.
15957
15958 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15959
15960         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
15961         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
15962         split, *ashrdi3_internal3 and split): Delete, merge into...
15963         (ashr<mode>3): New expander.
15964         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
15965         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
15966
15967 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15968
15969         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
15970         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
15971         *rotldi3_internal3 and split): Delete, merge into...
15972         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
15973         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
15974         Use "rotlw" extended mnemonic.
15975
15976 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15977
15978         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
15979         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
15980         and split, *ashldi3_internal3 and split): Delete, merge into...
15981         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
15982         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
15983
15984 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15985
15986         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
15987         (lshrsi3, two anonymous define_insns and define_splits,
15988         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
15989         *lshrdi3_internal3 and split): Delete, merge into...
15990         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
15991         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
15992
15993 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
15994
15995         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
15996         Remove "O" alternative.
15997
15998 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
15999
16000         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
16001         (mips_move_from_gpr_cost): Likewise.
16002         (mips_register_move_cost): Update accordingly.
16003         (mips_secondary_reload_class): Remove name of in_p.
16004
16005 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
16006
16007         PR target/61503
16008         * config/i386/i386.md (x86_64_shrd, x86_shrd,
16009         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
16010
16011 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
16012
16013         * config/nios2/nios2.c: Include "builtins.h".
16014
16015 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
16016
16017         * cgraph.h (tls_model_names): New variable.
16018         * print-tree.c (print_node): Simplify.
16019         * varpool.c (tls_model_names): New variable.
16020         (dump_varpool_node): Output tls model.
16021
16022 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
16023
16024         * ipa-visibility.c (function_and_variable_visibility): Disable
16025         temporarily local aliases for some targets.
16026
16027 2014-06-20  Marek Polacek  <polacek@redhat.com>
16028
16029         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
16030         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
16031         into SANITIZE_UNDEFINED.
16032         * doc/invoke.texi: Describe -fsanitize=bounds.
16033         * gimplify.c (gimplify_call_expr): Add gimplification of internal
16034         functions created in the FEs.
16035         * internal-fn.c: Move "internal-fn.h" after "tree.h".
16036         (expand_UBSAN_BOUNDS): New function.
16037         * internal-fn.def (UBSAN_BOUNDS): New internal function.
16038         * internal-fn.h: Don't define internal functions here.
16039         * opts.c (common_handle_option): Add -fsanitize=bounds.
16040         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
16041         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
16042         * tree-core.h: Define internal functions here.
16043         (struct tree_base): Add ifn field.
16044         * tree-pretty-print.c: Include "internal-fn.h".
16045         (dump_generic_node): Handle functions without CALL_EXPR_FN.
16046         * tree.c (get_callee_fndecl): Likewise.
16047         (build_call_expr_internal_loc): New function.
16048         * tree.def (CALL_EXPR): Update description.
16049         * tree.h (CALL_EXPR_IFN): Define.
16050         (build_call_expr_internal_loc): Declare.
16051         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
16052         types.
16053         (ubsan_type_descriptor): Change bool parameter to enum
16054         ubsan_print_style.  Adjust the code.  Add handling of
16055         UBSAN_PRINT_ARRAY.
16056         (ubsan_expand_bounds_ifn): New function.
16057         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
16058         (ubsan_build_overflow_builtin): Likewise.
16059         (instrument_bool_enum_load): Likewise.
16060         (ubsan_instrument_float_cast): Likewise.
16061         * ubsan.h (enum ubsan_print_style): New enum.
16062         (ubsan_expand_bounds_ifn): Declare.
16063         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
16064
16065 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
16066
16067         * config/rs6000/rs6000.md: Append `DONE' to preparation
16068         statements of `bswap' pattern splitters.
16069
16070 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16071
16072         * target.def (call_fusage_contains_non_callee_clobbers): Update
16073         definition.
16074         * doc/tm.texi: Regenerate.
16075
16076 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
16077             Max Ostapenko  <m.ostapenko@partner.samsung.com>
16078
16079         PR sanitizer/61547
16080         * asan.c (instrument_strlen_call): Fixed instrumentation of
16081         trailing byte.
16082
16083 2014-06-20  Martin Jambor  <mjambor@suse.cz>
16084
16085         PR ipa/61540
16086         * ipa-prop.c (impossible_devirt_target): New function.
16087         (try_make_edge_direct_virtual_call): Use it, also instead of
16088         asserting.
16089
16090 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
16091             Max Ostapenko  <m.ostapenko@partner.samsung.com>
16092
16093         PR sanitizer/61530
16094         * asan.c (build_check_stmt): Add condition.
16095
16096 2014-06-20  Martin Jambor  <mjambor@suse.cz>
16097
16098         PR ipa/61211
16099         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
16100         expanded clones.
16101
16102 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16103
16104         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
16105         Update comments.
16106         (VCONQ): Make comment more helpful.
16107         (VCON): Delete.
16108         * config/aarch64/aarch64-simd.md
16109         (aarch64_sqdmulh_lane<mode>):
16110         Use VCOND for operands 2.  Update lane checking and flipping logic.
16111         (aarch64_sqrdmulh_lane<mode>): Likewise.
16112         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
16113         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
16114         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
16115         attribute of operand 3 to VCOND.
16116         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
16117         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
16118         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
16119         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
16120         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
16121         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
16122         define_insn.
16123         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
16124         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
16125         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
16126         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
16127         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
16128         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
16129         operand to VCOND.  Update lane flipping and bounds checking logic.
16130         (aarch64_sqdmlal2_lane<mode>): Likewise.
16131         (aarch64_sqdmlsl_lane<mode>): Likewise.
16132         (aarch64_sqdmull_lane<mode>): Likewise.
16133         (aarch64_sqdmull2_lane<mode>): Likewise.
16134         (aarch64_sqdmlal_laneq<mode>):
16135         Replace VCON usage with VCONQ.
16136         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
16137         (aarch64_sqdmlal2_laneq<mode>): Emit
16138         aarch64_sqdmlal2_laneq<mode>_internal insn.
16139         Replace VCON with VCONQ.
16140         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
16141         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
16142         (aarch64_sqdmull_laneq<mode>): Emit
16143         aarch64_sqdmull_laneq<mode>_internal insn.
16144         Replace VCON with VCONQ.
16145         (aarch64_sqdmull2_laneq<mode>): Emit
16146         aarch64_sqdmull2_laneq<mode>_internal insn.
16147         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
16148         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
16149         of 3rd argument to int16x4_t.
16150         (vqdmlalh_lane_s16): Likewise.
16151         (vqdmlslh_lane_s16): Likewise.
16152         (vqdmull_high_lane_s16): Likewise.
16153         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
16154         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
16155         (vqdmlsl_lane_s16): Likewise.
16156         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
16157         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
16158         (vqdmlals_lane_s32): Likewise.
16159         (vqdmlsls_lane_s32): Likewise.
16160         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
16161         (vqdmulls_lane_s32): Likewise.
16162         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
16163         (vqdmlsl_lane_s32): Likewise.
16164         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
16165         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
16166         (vqrdmulhh_lane_s16): Likewise.
16167         (vqdmlsl_high_lane_s16): Likewise.
16168         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
16169         (vqdmlsl_high_lane_s32): Likewise.
16170         (vqrdmulhs_lane_s32): Likewise.
16171
16172 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16173
16174         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
16175         get_call_reg_set_usage.
16176
16177 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16178
16179         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
16180         it contains all call_used_regs.
16181
16182 2014-06-20  Tom de Vries  <tom@codesourcery.com>
16183
16184         * final.c (collect_fn_hard_reg_usage): Add and use variable
16185         function_used_regs.
16186
16187 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
16188
16189         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
16190         (set_init_priority, get_init_priority, set_fini_priority,
16191         get_fini_priority): New methods.
16192         * tree.c (init_priority_for_decl): Remove.
16193         (init_ttree): Do not initialize init priority.
16194         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
16195         (decl_priority_info): Remove.
16196         (decl_init_priority_insert): Rewrite.
16197         (decl_fini_priority_insert): Rewrite.
16198         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
16199         tree_priority_map_marked_p): Remove.
16200         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
16201         * lto-streamer-out.c (hash_tree): Do not hash priorities.
16202         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
16203         not output priorities.
16204         (pack_ts_function_decl_value_fields): Likewise.
16205         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16206         not input priorities.
16207         (unpack_ts_function_decl_value_fields): Likewise.
16208         * symtab.c (symbol_priority_map): Declare.
16209         (init_priority_hash): Declare.
16210         (symtab_unregister_node): Unregister from priority hash, too.
16211         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
16212         New methods.
16213         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
16214         (symbol_priority_info): New function.
16215         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
16216         New methods.
16217         * tree-core.h (tree_priority_map): Remove.
16218
16219 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
16220
16221         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
16222         0xff to uint64_t before shifting it up.
16223
16224 2014-06-20  Julian Brown  <julian@codesourcery.com>
16225             Chung-Lin Tang  <cltang@codesourcery.com>
16226
16227         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
16228         TARGET_THUMB1_ONLY. Add comments.
16229
16230 2014-06-19  Tom de Vries  <tom@codesourcery.com>
16231
16232         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
16233         return type to void.
16234         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
16235
16236 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
16237
16238         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
16239         as "move", from depends_on.
16240
16241 2014-06-19  Terry Guo  <terry.guo@arm.com>
16242
16243         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
16244         stage.
16245
16246 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16247
16248         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
16249         Remove cr5.
16250         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
16251
16252 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16253
16254         PR target/61550
16255         * config/sh/sh.c (prepare_move_operands): Don't process TLS
16256         addresses here if reload in progress or completed.
16257
16258 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16259
16260         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
16261         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
16262         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
16263         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
16264         (mips_register_priority): New function that implements the target
16265         hook TARGET_REGISTER_PRIORITY.
16266         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
16267         (mips_lra_p): Likewise for TARGET_LRA_P.
16268         (TARGET_REGISTER_PRIORITY): Define macro.
16269         (TARGET_SPILL_CLASS): Likewise.
16270         (TARGET_LRA_P): Likewise.
16271         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
16272         classes.
16273         (REG_CLASS_NAMES): Likewise.
16274         (REG_CLASS_CONTENTS): Likewise.
16275         (BASE_REG_CLASS): Use M16_SP_REGS.
16276         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
16277         New set attribute to enable alternatives depending on the register
16278         allocator used.
16279         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
16280         (*lea64): Disable pattern for MIPS16.
16281         * config/mips/mips.opt (mlra): New option.
16282
16283 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
16284
16285         * lra-constraints.c (base_to_reg): New function.
16286         (process_address): Use new function.
16287
16288 2014-06-18  Tom de Vries  <tom@codesourcery.com>
16289
16290         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
16291         * config/aarch64/aarch64.c
16292         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
16293         (aarch64_emit_call_insn): New function.
16294         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
16295         of emit_call_insn.
16296         * config/aarch64/aarch64.md (define_expand "call_internal")
16297         (define_expand "call_value_internal", define_expand "sibcall_internal")
16298         (define_expand "sibcall_value_internal"): New.
16299         (define_expand "call", define_expand "call_value")
16300         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
16301         expand variant and aarch64_emit_call_insn.
16302
16303 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
16304             Tom de Vries  <tom@codesourcery.com>
16305
16306         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
16307         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
16308         Redefine to true.
16309         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
16310         clobbers to CALL_INSN_FUNCTION_USAGE.
16311         (define_expand "sibcall_internal")
16312         (define_expand "sibcall_value_internal"): New.
16313         (define_expand "call", define_expand "call_value"): Add argument to
16314         arm_emit_call_insn.
16315         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
16316         (define_expand "sibcall_value"): Use sibcall_value_internal and
16317         arm_emit_call_insn.
16318
16319 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16320
16321         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
16322
16323 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16324
16325         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
16326         __udivmoddi4.
16327
16328 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16329
16330         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
16331         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
16332         annotations. Fix DWARF information.
16333
16334 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16335
16336         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
16337         __udivmoddi4, and fixups for negative operands.
16338
16339 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16340
16341         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
16342
16343 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16344
16345         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
16346         to __udivmoddi4.
16347
16348 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16349
16350         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
16351         manipulation.
16352
16353 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16354
16355         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
16356         describing register usage on function entry and exit.
16357
16358 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16359
16360         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
16361         (__aeabi_ldivmod): Fix whitespace.
16362
16363 2014-06-18  Andreas Schwab  <schwab@suse.de>
16364
16365         * doc/md.texi (Standard Names): Use @itemx for grouped items.
16366         Remove blank line after @item.
16367
16368 2014-06-18  Richard Henderson  <rth@redhat.com>
16369
16370         PR target/61545
16371         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
16372
16373 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
16374
16375         * config/arm/arm.c (neon_vector_mem_operand): Allow register
16376         POST_MODIFY for neon loads and stores.
16377         (arm_print_operand): Output post-index register for neon loads and
16378         stores.
16379
16380 2014-06-18  Richard Biener  <rguenther@suse.de>
16381
16382         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
16383
16384 2014-06-18  Richard Biener  <rguenther@suse.de>
16385
16386         * tree-pass.h (make_pass_dce_loop): Remove.
16387         * passes.def: Replace pass_dce_loop with pass_dce.
16388         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
16389         changed free niter estimates and reset the scev cache.
16390         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
16391         make_pass_dce_loop): Remove.
16392         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
16393         (fini_copy_prop): Return whether something changed.  Always
16394         let substitute_and_fold perform DCE and free niter estimates
16395         and reset the scev cache if so.
16396         (execute_copy_prop): If sth changed schedule cleanup-cfg.
16397         (pass_data_copy_prop): Do not unconditionally schedule
16398         cleanup-cfg or update-ssa.
16399
16400 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
16401
16402         PR tree-optimization/61518
16403         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
16404         reduction var is used in reduction stmt or phi-function only.
16405
16406 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16407
16408         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
16409
16410 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16411
16412         PR tree-optimization/61517
16413         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
16414         whose rhs's first tree is the source expression instead of the
16415         expression itself.
16416         (find_bswap_or_nop): Likewise.
16417         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
16418         gimple stmt whose rhs's first tree is the source. In the memory source
16419         case, move the stmt to be replaced close to one of the original load to
16420         avoid the problem of a store between the load and the stmt's original
16421         location.
16422         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
16423         signature.
16424
16425 2014-06-18  Andreas Schwab  <schwab@suse.de>
16426
16427         PR rtl-optimization/54555
16428         * postreload.c (move2add_use_add2_insn): Substitute
16429         STRICT_LOW_PART only if it is cheaper.
16430
16431 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
16432
16433         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
16434         Do not use unspec as call operand.  Use memory_operand instead of
16435         memory_nox32_operand and add "m" operand constraint.  Disable
16436         pattern for TARGET_X32.
16437         (*sibcall_pop_memory): Ditto.
16438         (*sibcall_value_memory): Ditto.
16439         (*sibcall_value_pop_memory): Ditto.
16440         (sibcall peepholes): Merge SImode and DImode patterns using
16441         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
16442         Disable pattern for TARGET_X32.  Check if eliminated register is
16443         really dead after call insn.  Generate call RTX without unspec operand.
16444         (sibcall_value peepholes): Ditto.
16445         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
16446         instead of memory_nox32_operand.  Check if eliminated register is
16447         really dead after call insn. Generate call RTX without unspec operand.
16448         (sibcall_value_pop peepholes): Ditto.
16449         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
16450
16451 2014-06-18  Terry Guo  <terry.guo@arm.com>
16452
16453         PR target/61544
16454         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
16455         reach the head.
16456
16457 2014-06-18  Olivier Hainque  <hainque@adacore.com>
16458
16459         * tree-core.h (tree_block): Add an "end_locus" field, allowing
16460         memorization of the end of block source location.
16461         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
16462         * gimplify.c (gimplify_bind_expr): Propagate the block start and
16463         end source location info we have on the block entry/exit code we
16464         generate.
16465
16466 2014-06-18  Richard Biener  <rguenther@suse.de>
16467
16468         * common.opt (fssa-phiopt): New option.
16469         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
16470         but not with -Og.
16471         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
16472         * doc/invoke.texi (-fssa-phiopt): Document.
16473
16474 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16475
16476         * genattrtab.c (n_bypassed): New variable.
16477         (process_bypasses): Initialise n_bypassed.
16478         Count number of bypassed reservations.
16479         (make_automaton_attrs): Allocate space for bypassed reservations
16480         rather than number of bypasses.
16481
16482 2014-06-18  Richard Biener  <rguenther@suse.de>
16483
16484         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
16485         we propagated anything.
16486         (substitute_and_fold_dom_walker::before_dom_children): Something
16487         changed if we propagated into PHI arguments.
16488         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
16489         we removed a stmt.
16490
16491 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
16492
16493         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
16494         vector case.
16495         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
16496         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
16497         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
16498         Introduces alternative way of loads group permutaions.
16499         (vect_transform_grouped_load): Try alternative way of permutations.
16500
16501 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16502
16503         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
16504         changed in ORT_TARGET region, don't jump to do_outer.
16505         (struct gimplify_adjust_omp_clauses_data): New type.
16506         (gimplify_adjust_omp_clauses_1): Adjust for data being
16507         a struct gimplify_adjust_omp_clauses_data pointer instead
16508         of tree *.  Pass pre_p as a new argument to
16509         lang_hooks.decls.omp_finish_clause hook.
16510         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
16511         splay_tree_foreach to pass both list_p and pre_p.
16512         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
16513         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
16514         gimplify_adjust_omp_clauses callers.
16515         * langhooks.c (lhd_omp_finish_clause): New function.
16516         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
16517         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
16518         * langhooks.h (struct lang_hooks_for_decls): Add a new
16519         gimple_seq * argument to omp_finish_clause hook.
16520         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
16521         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
16522         (scan_omp_parallel, lower_omp_for): When adding
16523         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
16524         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
16525         * tree-nested.c (convert_nonlocal_omp_clauses,
16526         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
16527         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
16528
16529 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
16530
16531         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
16532         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
16533
16534 2014-06-17  Xinliang David Li  <davidxl@google.com>
16535
16536         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
16537         * passes.c (pass_init_dump_file): Do not set initialize
16538         flag to false unconditionally.
16539
16540 2014-06-17  Richard Biener  <rguenther@suse.de>
16541
16542         * genopinit.c (main): Use vec<>::qsort method.
16543         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
16544         Likewise.
16545         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
16546
16547 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
16548
16549         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
16550         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
16551         (mips_move_to_gpr_cost): Remove ST_REGS case.
16552         (mips_move_from_gpr_cost): Likewise.
16553         (mips_register_move_cost): Likewise.
16554         (mips_secondary_reload_class): Likewise.
16555
16556 2014-06-17  Richard Biener  <rguenther@suse.de>
16557
16558         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
16559         (pass_all_optimizations): Move 3rd copy-prop pass from after
16560         fre to before ifcombine/phiopt.
16561
16562 2014-06-17  Richard Biener  <rguenther@suse.de>
16563
16564         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
16565         and allow all blocks to be forwarders.
16566
16567 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
16568
16569         PR target/61483
16570         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
16571         variable 'size'; calculate 'size' right in the front; use
16572         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
16573         pcum->aapcs_stack_words.
16574
16575 2014-06-17  Nick Clifton  <nickc@redhat.com>
16576
16577         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
16578         (umulhi3, mulsidi3, umulsidi3): Likewise.
16579
16580 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
16581
16582         PR middle-end/61508
16583         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
16584         check for section name.
16585
16586 2014-06-17  Richard Biener  <rguenther@suse.de>
16587
16588         * tree-ssa-propagate.c: Include domwalk.h.
16589         (substitute_and_fold): Outline main worker into a domwalker ...
16590         (substitute_and_fold_dom_walker::before_dom_children): ... here.
16591         Schedule stmts we can fully propagate for removal.  Remove
16592         poor-mans DCE.
16593         (substitute_and_fold): Apply a dominator walk to perform
16594         substitution.  Process stmts scheduled for removal here.
16595
16596 2014-06-17  Richard Biener  <rguenther@suse.de>
16597
16598         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
16599         of PHI node moving.
16600
16601 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
16602
16603         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
16604         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
16605         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
16606         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
16607         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
16608         TARGET_HARD_FLOAT.
16609         (get_fpscr) : Likewise.
16610
16611 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16612
16613         PR rtl-optimization/61325
16614         * lra-constraints.c (valid_address_p): Add forward declaration.
16615         (simplify_operand_subreg): Check address validity before and after
16616         alter_reg of memory subreg.
16617
16618 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
16619
16620         * config/i386/i386.c (decide_alg): Correctly handle
16621         maximum size of stringop algorithm.
16622
16623 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16624
16625         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
16626
16627 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
16628
16629         PR rtl-optimization/61522
16630         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
16631
16632 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
16633
16634         Revert:
16635         * symtab.c (symtab_node::reset_section): New method.
16636         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16637         for localization.
16638         * cgraph.h (reset_section): Declare.
16639         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16640         do not consider comdat locals.
16641         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16642         for new symbol.
16643         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16644         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16645         reset sections of symbols dragged out of the comdats.
16646         (function_and_variable_visibility): Reset sections of
16647         localized symbols.
16648
16649 2014-06-16  Richard Biener  <rguenther@suse.de>
16650
16651         PR tree-optimization/61482
16652         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
16653         [-INF(OVF), +INF(OVF)] range.
16654
16655 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16656
16657         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
16658         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
16659         handling 32-bit multiplication.
16660
16661 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
16662
16663         PR middle-end/61430
16664         * lra-lives.c (process_bb_lives): Skip creating copy during
16665         insn scan when src/dest has constrained to same regno.
16666
16667 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16668
16669         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
16670         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
16671
16672 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
16673
16674         * asan.c (check_func): New function.
16675         (maybe_create_ssa_name): Likewise.
16676         (build_check_stmt_with_calls): Likewise.
16677         (use_calls_p): Likewise.
16678         (report_error_func): Change interface.
16679         (build_check_stmt): Allow non-integer lengths; add support
16680         for new parameter.
16681         (asan_instrument): Likewise.
16682         (instrument_mem_region_access): Moved code to build_check_stmt.
16683         (instrument_derefs): Likewise.
16684         (instrument_strlen_call): Likewise.
16685         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
16686         * doc/invoke.texi: Describe new parameter.
16687         * params.def: Define new parameter.
16688         * params.h: Likewise.
16689         * sanitizer.def: Describe new builtins.
16690
16691 2014-06-16  Richard Biener  <rguenther@suse.de>
16692
16693         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16694         Make all defs available at the end.
16695         (eliminate): If we remove a PHI node schedule cfg-cleanup.
16696
16697 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
16698
16699         PR plugins/45078
16700         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
16701
16702 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
16703
16704         PR bootstrap/61516
16705         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
16706         initialization.  Replace remaining use of uid.
16707
16708 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
16709
16710         * c-family/c-common.c (handle_tls_model_attribute): Use
16711         set_decl_tls_model.
16712         * c-family/c-common.c (handle_tls_model_attribute): Use
16713         set_decl_tls_model.
16714         * cgraph.h (struct varpool_node): Add tls_model.
16715         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
16716         * tree.h (DECL_TLS_MODEL): Update.
16717         (DECL_THREAD_LOCAL_P): Check that variable is static.
16718         (decl_tls_model): Declare.
16719         (set_decl_tls_model): Declare.
16720         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
16721         set symbol prorperties.
16722         (get_emutls_init_templ_addr): Cleanup.
16723         (new_emutls_decl): Update.
16724         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
16725         (lto_input_varpool_node): Likewise.
16726         * lto-streamer-out.c (hash_tree): Likewise.
16727         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
16728         not stream DECL_TLS_MODEL.
16729         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
16730         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
16731
16732 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16733
16734         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
16735
16736 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16737
16738         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
16739         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
16740         lists.
16741         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
16742         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
16743         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
16744         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
16745         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
16746         (df_get_artificial_defs, df_get_artificial_uses)
16747         (df_single_def, df_single_use): Update accordingly.
16748         (df_refs_chain_dump): Take the first element in a linked list as
16749         parameter, rather than a pointer to an array of pointers.
16750         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
16751         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
16752         (df_chain_create_bb_process_use): Likewise.
16753         (df_md_bb_local_compute_process_def): Likewise.
16754         * fwprop.c (process_defs, process_uses): Likewise.
16755         (register_active_defs, update_uses): Likewise.
16756         (forward_propagate_asm): Update for new df_ref linking.
16757         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
16758         (df_null_ref_rec, df_null_mw_rec): Likewise.
16759         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
16760         explicitly.
16761         (df_scan_free_bb_info): Remove check for null artificial_defs.
16762         (df_install_ref_incremental): Adjust for new df_ref linking.
16763         Use a single-element insertion rather than a full sort.
16764         (df_ref_chain_delete_du_chain): Take the first element
16765         in a linked list as parameter, rather than a pointer to an array of
16766         pointers.
16767         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
16768         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
16769         (df_insn_info_delete): Remove check for null defs and call to
16770         df_scan_free_mws_vec.
16771         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
16772         null rather than df_null_*_rec.
16773         (df_insn_rescan_debug_internal): Likewise, and update null
16774         checks in the same way.  Remove check for null defs.
16775         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
16776         Move a single element rather doing a full sort.
16777         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
16778         linking.
16779         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
16780         Initialize df_ref and df_mw_hardreg lists to null rather than
16781         df_null_*_rec.
16782         (df_ref_compare): Take df_refs as parameter, transferring the
16783         old interface to...
16784         (df_ref_ptr_compare): ...this new function.
16785         (df_sort_and_compress_refs): Update accordingly.
16786         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
16787         old interface to...
16788         (df_mw_ptr_compare): ...this new function.
16789         (df_sort_and_compress_mws): Update accordingly.
16790         (df_install_refs, df_install_mws): Return a linked list rather than
16791         an array of pointers.
16792         (df_refs_add_to_chains): Assert that old lists are empty rather
16793         than freeing them.
16794         (df_insn_refs_verify): Don't handle null defs speciailly.
16795         * web.c (union_match_dups): Update for new df_ref linking.
16796
16797 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16798
16799         * df.h (df_ref_create, df_ref_remove): Delete.
16800         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
16801         (df_ref_remove): Likewise.
16802
16803 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16804
16805         * df.h (df_single_def, df_single_use): New functions.
16806         * ira.c (find_moveable_pseudos): Use them.
16807
16808 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16809
16810         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
16811         * df-problems.c (df_note_bb_compute): Use it.
16812         * regstat.c (regstat_bb_compute_ri): Likewise.
16813
16814 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16815
16816         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
16817         * cse.c (cse_extended_basic_block): Use them.
16818         * dce.c (mark_artificial_use): Likewise.
16819         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
16820         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16821         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
16822         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
16823         (df_simulate_initialize_backwards): Likewise.
16824         (df_simulate_finalize_backwards): Likewise.
16825         (df_simulate_initialize_forwards): Likewise.
16826         (df_md_simulate_artificial_defs_at_top): Likewise.
16827         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16828         * regrename.c (init_rename_info): Likewise.
16829         * regstat.c (regstat_bb_compute_ri): Likewise.
16830         (regstat_bb_compute_calls_crossed): Likewise.
16831
16832 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
16833
16834         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
16835         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
16836         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
16837         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
16838         * combine.c (create_log_links): Likewise.
16839         * compare-elim.c (find_flags_uses_in_insn): Likewise.
16840         (try_eliminate_compare): Likewise.
16841         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
16842         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
16843         (remove_reg_equal_equiv_notes_for_defs): Likewise.
16844         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
16845         (word_dce_process_block, dce_process_block): Likewise.
16846         * ddg.c (def_has_ccmode_p): Likewise.
16847         * df-core.c (df_bb_regno_first_def_find): Likewise.
16848         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
16849         * df-problems.c (df_rd_simulate_one_insn): Likewise.
16850         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
16851         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
16852         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
16853         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
16854         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
16855         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
16856         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
16857         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
16858         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
16859         * fwprop.c (local_ref_killed_between_p): Likewise.
16860         (all_uses_available_at, free_load_extend): Likewise.
16861         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
16862         * hw-doloop.c (scan_loop): Likewise.
16863         * ifcvt.c (dead_or_predicable): Likewise.
16864         * init-regs.c (initialize_uninitialized_regs): Likewise.
16865         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
16866         (process_bb_node_lives): Likewise.
16867         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
16868         (find_moveable_pseudos): Likewise.
16869         * loop-invariant.c (check_dependencies, record_uses): Likewise.
16870         * recog.c (peep2_find_free_register): Likewise.
16871         * ree.c (get_defs): Likewise.
16872         * regstat.c (regstat_bb_compute_ri): Likewise.
16873         (regstat_bb_compute_calls_crossed): Likewise.
16874         * sched-deps.c (find_inc, find_mem): Likewise.
16875         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
16876         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
16877         * shrink-wrap.c (requires_stack_frame_p): Likewise.
16878         (prepare_shrink_wrap): Likewise.
16879         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
16880         * web.c (union_defs, pass_web::execute): Likewise.
16881         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
16882         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
16883
16884 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
16885
16886         * lra-assign.c (assign_by_spills): Add code to assign vector regs
16887         to inheritance pseudos.
16888         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
16889
16890 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
16891
16892         PR target/61415
16893         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
16894         (BU_MISC_2): Rename to ...
16895         (BU_LDBL128_2): ... this.
16896         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
16897         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
16898         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
16899         RS6000_BTM_LDBL128.
16900         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
16901         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
16902         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
16903         (unpacktf_1): Likewise.
16904         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
16905         (__builtin_longdouble_dw1): Likewise.
16906         * doc/sourcebuild.texi (longdouble128): Document.
16907
16908 2014-06-13  Jeff Law  <law@redhat.com>
16909
16910         PR rtl-optimization/61094
16911         PR rtl-optimization/61446
16912         * ree.c (combine_reaching_defs): Get the mode for the copy from
16913         the extension insn rather than the defining insn.
16914
16915 2014-06-13  Dehao Chen  <dehao@google.com>
16916
16917         * dwarf2out.c (add_linkage_name): Emit more linkage name.
16918
16919 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
16920
16921         * doc/install.texi (--enable-linker-plugin-configure-flags)
16922         (--enable-linker-plugin-flags): Document new flags.
16923
16924 2014-06-13  Martin Jambor  <mjambor@suse.cz>
16925
16926         PR ipa/61186
16927         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
16928         cache_token if returning early.
16929
16930 2014-06-13  Nick Clifton  <nickc@redhat.com>
16931
16932         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
16933         requested alignment is active.
16934         (LABEL_ALIGN): Likewise.
16935         (LOOP_ALIGN): Likewise.
16936
16937 2014-06-13  Richard Biener  <rguenther@suse.de>
16938
16939         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16940         Rewrite to propagate the VN result into all uses where
16941         possible and to remove stmts becoming dead because of that.
16942         (eliminate): Generalize stmt removal handling, remove in
16943         reverse dominator order to support proper debug stmt
16944         generation.  Update stmts before removing stmts.
16945         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
16946
16947 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16948
16949         PR tree-optimization/61375
16950         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
16951         symbolic number cannot be represented in an uint64_t.
16952         (find_bswap_or_nop_1): Likewise.
16953
16954 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16955
16956         * symtab.c (symtab_node::reset_section): New method.
16957         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
16958         for localization.
16959         * cgraph.h (reset_section): Declare.
16960         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
16961         do not consider comdat locals.
16962         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
16963         for new symbol.
16964         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
16965         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
16966         reset sections of symbols dragged out of the comdats.
16967         (function_and_variable_visibility): Reset sections of
16968         localized symbols.
16969
16970 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
16971
16972         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
16973         to use symtab and decl_binds_to_current_def_p
16974         * tree-vectorizer.c (increase_alignment): Increase alignment
16975         of alias target, too.
16976
16977 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
16978
16979         PR middle-end/61486
16980         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
16981         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
16982         if outer combined construct is distribute.
16983         (gimplify_omp_for): For OMP_DISTRIBUTE set
16984         gimplify_omp_ctxp->distribute.
16985         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
16986         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
16987         mapping into decl map.
16988
16989 2014-06-12  Jason Merrill  <jason@redhat.com>
16990
16991         * common.opt (fabi-version): Change default to 0.
16992
16993 2014-06-12  Jason Merrill  <jason@redhat.com>
16994
16995         * toplev.c (process_options): Reject -fabi-version=1.
16996
16997 2014-06-12  Jeff Law  <law@redhat.com>
16998
16999         PR tree-optimization/61009
17000         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
17001         value when we stop processing a block due to problematic PHIs.
17002
17003 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
17004
17005         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
17006         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
17007         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
17008         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
17009         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
17010         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
17011         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
17012         are not in the spec.
17013
17014 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
17015
17016         PR target/59843
17017         * config/aarch64/aarch64-modes.def: Add V1DFmode.
17018         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
17019         Support V1DFmode.
17020
17021 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
17022
17023         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
17024
17025 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
17026
17027         PR target/61443
17028         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
17029         loading from address spaces.
17030
17031 2014-06-12  Martin Liska  <mliska@suse.cz>
17032
17033         PR ipa/61462
17034         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
17035         statement is reachable.
17036
17037 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
17038
17039         * symtab.c (section_hash): New hash.
17040         (symtab_unregister_node): Clear section before freeing.
17041         (hash_section_hash_entry): New haser.
17042         (eq_sections): New function.
17043         (symtab_node::set_section_for_node): New method.
17044         (set_section_1): Update.
17045         (symtab_node::set_section): Take string instead of tree as parameter.
17046         (symtab_resolve_alias): Update.
17047         * cgraph.h (section_hash_entry_d): New structure.
17048         (section_hash_entry): New typedef.
17049         (cgraph_node): Change comdat_group_ to x_comdat_group,
17050         change section_ to x_section and turn into section_hash_entry;
17051         update accestors; put set_section_for_node offline.
17052         * tree.c (decl_section_name): Turn into string.
17053         (set_decl_section_name): Change parameter to be string.
17054         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
17055         * sdbout.c (sdbout_one_type): Update.
17056         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
17057         * varasm.c (IN_NAMED_SECTION, get_named_section,
17058         resolve_unique_section, hot_function_section, get_named_text_section,
17059         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
17060         make_decl_rtl, default_unique_section): Update.
17061         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
17062         (c6x_elf_unique_section): Update.
17063         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
17064         * config/pa/pa.c (pa_function_section): Update.
17065         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
17066         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
17067         * config/arc/arc.c (arc_in_small_data_p): Update.
17068         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
17069         * config/mcore/mcore.c (mcore_unique_section): Update.
17070         * config/mips/mips.c (mips16_build_function_stub): Update.
17071         (mips16_build_call_stub): Update.
17072         (mips_function_rodata_section): Update.
17073         (mips_in_small_data_p): Update.
17074         * config/score/score.c (score_in_small_data_p): Update.
17075         * config/rx/rx.c (rx_in_small_data): Update.
17076         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
17077         (rs6000_xcoff_asm_named_section): Update.
17078         (rs6000_xcoff_unique_section): Update.
17079         * config/frv/frv.c (frv_string_begins_with): Update.
17080         (frv_in_small_data_p): Update.
17081         * config/v850/v850.c (v850_encode_data_area): Update.
17082         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
17083         (bfin_handle_l1_data_attribute): Update.
17084         (bfin_handle_l2_attribute): Update.
17085         * config/mep/mep.c (mep_unique_section): Update.
17086         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
17087         Update.
17088         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
17089         (h8300_handle_tiny_data_attribute): Update.
17090         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
17091         (m32r_in_small_data_p): Update.
17092         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
17093         * config/i386/i386.c (ix86_in_large_data_p): Update.
17094         * config/i386/winnt.c (i386_pe_unique_section): Update.
17095         * config/darwin.c (darwin_function_section): Update.
17096         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
17097         * tree-emutls.c (get_emutls_init_templ_addr): Update.
17098         (new_emutls_decl): Update.
17099         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
17100         input_varpool_node): Update.
17101         (ead_string_cst): Turn to ...
17102         (read_string): ... this one.
17103         * dwarf2out.c (secname_for_decl): Update.
17104         * asan.c (asan_protect_global): Update.
17105
17106 2014-06-11  DJ Delorie  <dj@redhat.com>
17107
17108         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
17109         cache lines.
17110         * config/rx/rx.c (rx_option_override): Likewise.
17111         (rx_align_for_label): Likewise.
17112
17113         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
17114
17115 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
17116
17117         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
17118         prototype.
17119
17120 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17121
17122         * common.md: New file.
17123         * doc/md.texi: Update description of generic, machine-independent
17124         constraints.
17125         * config/s390/constraints.md (e): Delete.
17126         * Makefile.in (md_file): Include common.md.
17127         * config/m32c/t-m32c (md_file): Likewise.
17128         * genpreds.c (general_mem): New array.
17129         (generic_constraint_letters): Remove constraints now defined by
17130         common.md.
17131         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
17132         Allow the first character to be '<' or '>' as well.
17133         * genoutput.c (general_mem): New array.
17134         (indep_constraints): Remove constraints now defined by common.md.
17135         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
17136         Remove special handling of 'm'.
17137         * ira-costs.c (record_reg_classes): Remove special handling of
17138         constraints now defined by common.md.
17139         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
17140         * ira-lives.c (single_reg_class): Likewise.
17141         (ira_implicitly_set_insn_hard_regs): Likewise.
17142         * lra-constraints.c (reg_class_from_constraints): Likewise.
17143         (process_alt_operands, process_address, curr_insn_transform): Likewise.
17144         * postreload.c (reload_cse_simplify_operands): Likewise.
17145         * reload.c (push_secondary_reload, scratch_reload_class)
17146         (find_reloads, alternative_allows_const_pool_ref): Likewise.
17147         * reload1.c (maybe_fix_stack_asms): Likewise.
17148         * targhooks.c (default_secondary_reload): Likewise.
17149         * stmt.c (parse_output_constraint): Likewise.
17150         * recog.c (preprocess_constraints): Likewise.
17151         (constrain_operands, peep2_find_free_register): Likewise.
17152         (asm_operand_ok): Likewise, but add a comment saying why 'o'
17153         must be handled specially.
17154
17155 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17156
17157         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
17158         * genpreds.c (have_const_dbl_constraints): Delete.
17159         (add_constraint): Don't set it.
17160         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
17161         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
17162         constraints using the lookup_constraint logic.
17163         * ira-lives.c (single_reg_class): Likewise.
17164         * ira.c (ira_setup_alts): Likewise.
17165         * lra-constraints.c (process_alt_operands): Likewise.
17166         * recog.c (asm_operand_ok, constrain_operands): Likewise.
17167         * reload.c (find_reloads): Likewise.
17168
17169 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17170
17171         * genpreds.c (const_int_start, const_int_end): New variables.
17172         (choose_enum_order): Output CONST_INT constraints before memory
17173         constraints.
17174         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
17175         Add CT_CONST_INT.
17176         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
17177         * ira.c (ira_setup_alts): Likewise.
17178         * lra-constraints.c (process_alt_operands): Likewise.
17179         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17180         * reload.c (find_reloads): Likewise.
17181
17182 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17183
17184         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
17185         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
17186         * recog.c (preprocess_constraints): Update accordingly.
17187
17188 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17189
17190         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
17191         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
17192         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
17193         * genpreds.c (print_type_tree): New function.
17194         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
17195         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
17196         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
17197         Write out enum constraint_type and get_constraint_type.
17198         * lra-constraints.c (satisfies_memory_constraint_p): Take a
17199         constraint_num rather than a constraint string.
17200         (satisfies_address_constraint_p): Likewise.
17201         (reg_class_from_constraints): Avoid old constraint macros.
17202         (process_alt_operands, process_address_1): Likewise.
17203         (curr_insn_transform): Likewise.
17204         * ira-costs.c (record_reg_classes): Likewise.
17205         (record_operand_costs): Likewise.
17206         * ira-lives.c (single_reg_class): Likewise.
17207         (ira_implicitly_set_insn_hard_regs): Likewise.
17208         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
17209         * postreload.c (reload_cse_simplify_operands): Likewise.
17210         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
17211         (constrain_operands, peep2_find_free_register): Likewise.
17212         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
17213         (find_reloads, alternative_allows_const_pool_ref): Likewise.
17214         * reload1.c (maybe_fix_stack_asms): Likewise.
17215         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
17216         * targhooks.c (default_secondary_reload): Likewise.
17217         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
17218         to EXTRA_CONSTRAINT_STR.
17219         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
17220
17221 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17222
17223         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
17224         (write_constraint_satisfied_p_array): ...this new function.
17225         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
17226         an array.
17227         (write_insn_preds_c): Update accordingly.
17228
17229 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17230
17231         * genpreds.c (write_lookup_constraint): Rename to...
17232         (write_lookup_constraint_1): ...this.
17233         (write_lookup_constraint_array): New function.
17234         (write_tm_preds_h): Define lookup_constraint as an inline function
17235         that uses write_lookup_constraint_array where possible.
17236         (write_insn_preds_c): Update for the changes above.
17237
17238 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
17239
17240         * doc/md.texi (regclass_for_constraint): Rename to...
17241         (reg_class_for_constraint): ...this.
17242         * genpreds.c (num_constraints, enum_order, register_start)
17243         (register_end, satisfied_start, memory_start, memory_end)
17244         (address_start, address_end): New variables.
17245         (add_constraint): Count the number of constraints.
17246         (choose_enum_order): New function.
17247         (write_enum_constraint_num): Iterate over enum_order.
17248         (write_regclass_for_constraint): Rename to...
17249         (write_reg_class_for_constraint_1): ...this and update output
17250         accordingly.
17251         (write_constraint_satisfied_p): Rename to...
17252         (write_constraint_satisfied_p_1): ...this and update output
17253         accordingly.  Do nothing if all extra constraints are register
17254         constraints.
17255         (write_insn_extra_memory_constraint): Delete.
17256         (write_insn_extra_address_constraint): Delete.
17257         (write_range_function): New function.
17258         (write_tm_preds_h): Define constraint_satisfied_p and
17259         reg_class_for_constraint as inline functions that do a range check
17260         before calling the out-of-line function.  Use write_range_function
17261         to implement insn_extra_{register,memory,address}_constraint,
17262         the first of which is new.
17263         (write_insn_preds_c): Update after above changes to write_* functions.
17264         (main): Call choose_enum_order.
17265
17266 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17267
17268         PR tree-optimization/61306
17269         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
17270         expression instead of its size.
17271         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
17272         false to prevent optimization when the result is unpredictable due to
17273         arithmetic right shift of signed type with highest byte is set.
17274         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
17275         (init_symbolic_number): Likewise.
17276         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
17277         when the result is unpredictable due to sign extension.
17278
17279 2014-06-11  Terry Guo  <terry.guo@arm.com>
17280
17281         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
17282         (*thumb1_addsi3): Ditto.
17283         (*thumb_subdi3): Ditto.
17284         (thumb1_subsi3_insn): Ditto.
17285         (*thumb_mulsi3): Ditto.
17286         (*thumb_mulsi3_v6): Ditto.
17287         (*thumb1_andsi3_insn): Ditto.
17288         (thumb1_bicsi3): Ditto.
17289         (*thumb1_iorsi3_insn): Ditto.
17290         (*thumb1_xorsi3_insn): Ditto.
17291         (*thumb1_ashlsi3): Ditto.
17292         (*thumb1_ashrsi3): Ditto.
17293         (*thumb1_lshrsi3): Ditto.
17294         (*thumb1_rotrsi3): Ditto.
17295         (*thumb1_negdi2): Ditto.
17296         (*thumb1_negsi2): Ditto.
17297         (*thumb1_abssi2): Ditto.
17298         (*thumb1_neg_abssi2): Ditto.
17299         (*thumb1_one_cmplsi2): Ditto.
17300         (*thumb1_zero_extendhisi2): Ditto.
17301         (*thumb1_zero_extendqisi2): Ditto.
17302         (*thumb1_zero_extendqisi2_v6): Ditto.
17303         (thumb1_extendhisi2): Ditto.
17304         (thumb1_extendqisi2): Ditto.
17305         (*thumb1_movdi_insn): Ditto.
17306         (*thumb1_movsi_insn): Ditto.
17307         (*thumb1_movhi_insn): Ditto.
17308         (thumb_movhi_clobber): Ditto.
17309         (*thumb1_movqi_insn): Ditto.
17310         (*thumb1_movhf): Ditto.
17311         (*thumb1_movsf_insn): Ditto.
17312         (*thumb_movdf_insn): Ditto.
17313         (movmem12b): Ditto.
17314         (movmem8b): Ditto.
17315         (cbranchqi4): Ditto.
17316         (cbranchsi4_insn): Ditto.
17317         (cbranchsi4_scratch): Ditto.
17318         (*negated_cbranchsi4): Ditto.
17319         (*tbit_cbranch): Ditto.
17320         (*tlobits_cbranch): Ditto.
17321         (*tstsi3_cbranch): Ditto.
17322         (*cbranchne_decr1): Ditto.
17323         (*addsi3_cbranch): Ditto.
17324         (*addsi3_cbranch_scratch): Ditto.
17325         (*thumb_cmpdi_zero): Ditto.
17326         (cstoresi_eq0_thumb1): Ditto.
17327         (cstoresi_ne0_thumb1): Ditto.
17328         (*cstoresi_eq0_thumb1_insn): Ditto.
17329         (*cstoresi_ne0_thumb1_insn): Ditto.
17330         (cstoresi_nltu_thumb1): Ditto.
17331         (cstoresi_ltu_thumb1): Ditto.
17332         (thumb1_addsi3_addgeu): Ditto.
17333         (*thumb_jump): Ditto.
17334         (*call_reg_thumb1_v5): Ditto.
17335         (*call_reg_thumb1): Ditto.
17336         (*call_value_reg_thumb1_v5): Ditto.
17337         (*call_value_reg_thumb1): Ditto.
17338         (*call_insn): Ditto.
17339         (*call_value_insn): Ditto.
17340         (thumb1_casesi_internal_pic): Ditto.
17341         (thumb1_casesi_dispatch): Ditto.
17342         (*thumb1_indirect_jump): Ditto.
17343         (prologue_thumb1_interwork): Ditto.
17344         (*epilogue_insns): Ditto.
17345         (consttable_1): Ditto.
17346         (consttable_2): Ditto.
17347         (tablejump): Ditto.
17348         (*thumb1_tablejump): Ditto.
17349         (thumb_eh_return): Ditto.
17350         (define_peephole2): Two of them are thumb1 only and got moved into
17351         new file thumb1.md.
17352         (define_split): Six of them are thumb1 only and got moved into new
17353         file thumb1.md.
17354         * config/arm/thumb1.md: New file comprised of above thumb1 only
17355         patterns.
17356
17357 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17358
17359         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
17360         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
17361         dependencies.
17362         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
17363         (aarch64_crc_builtin_datum): New struct.
17364         (aarch64_crc_builtin_data): New.
17365         (aarch64_init_crc32_builtins): New function.
17366         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
17367         (aarch64_crc32_expand_builtin): New.
17368         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
17369         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17370         __ARM_FEATURE_CRC32 when appropriate.
17371         (TARGET_CRC32): Define.
17372         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
17373         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
17374         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
17375         (aarch64_<crc_variant>): New pattern.
17376         * config/aarch64/arm_acle.h: New file.
17377         * config/aarch64/iterators.md (CRC): New int iterator.
17378         (crc_variant, crc_mode): New int attributes.
17379         * doc/aarch64-acle-intrinsics.texi: New file.
17380         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
17381         Include aarch64-acle-intrinsics.texi.
17382
17383 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
17384
17385         * tree-vect-data-refs.c (vect_grouped_store_supported): New
17386         check for stores group of length 3.
17387         (vect_permute_store_chain): New permutations for stores group of
17388         length 3.
17389         * tree-vect-stmts.c (vect_model_store_cost): Change cost
17390         of vec_perm_shuffle for the new permutations.
17391
17392 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
17393
17394         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
17395         table rewriting temporarily on targets not supporting ONE_ONLY.
17396
17397 2014-06-11  Richard Biener  <rguenther@suse.de>
17398
17399         PR middle-end/61437
17400         Revert
17401         2014-06-04  Richard Biener  <rguenther@suse.de>
17402
17403         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
17404         TREE_PUBLIC and DECL_EXTERNAL decls.
17405
17406 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17407
17408         * varasm.c (set_implicit_section): New function.
17409         (resolve_unique_section): Use it to set implicit section
17410         for aliases, too.
17411         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
17412         (default_function_section): Likewise.
17413         (decl_binds_to_current_def_p): Constify argument.
17414         * varasm.h (decl_binds_to_current_def_p): Update prototype.
17415         * asan.c (asan_protect_global): Use
17416         symtab_get_node (decl)->implicit_section.
17417         * symtab.c (dump_symtab_base): Dump implicit sections.
17418         (verify_symtab_base): Verify sanity of sectoins and comdats.
17419         (symtab_resolve_alias): Alias share the section of its target.
17420         (set_section_1): New function.
17421         (symtab_node::set_section): Move here, recurse to aliases.
17422         (verify_symtab): Check for duplicated symtab lists.
17423         * tree-core.h (implicit_section_name_p): Remove.
17424         * tree-vect-data-refs.c: Include varasm.h.
17425         (vect_can_force_dr_alignment_p): Fix conditional on when
17426         decl bints to current definition; use
17427         symtab_get_node (decl)->implicit_section.
17428         * cgraph.c (cgraph_make_node_local_1): Fix section set.
17429         * cgraph.h (struct symtab_node): Add implicit_section.
17430         (set_section): Rename to ...
17431         (set_section_for_node): ... this one.
17432         (set_section): Declare.
17433         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
17434         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
17435         input_overwrite_node, input_varpool_node): Stream implicit_section.
17436         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
17437         removal; it will fail in LTO.
17438
17439 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17440
17441         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
17442         Change second alternative type to f_mcr.
17443         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
17444         and 12th alternatives' types to f_mcr and f_mrc.
17445         (*movdi_aarch64): Same for 12th and 13th alternatives.
17446         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
17447         (aarch64_movtilow_tilow): Change type to fmov.
17448
17449 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
17450
17451         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
17452         (aarch64_save_or_restore_callee_save_registers): Fix layout.
17453
17454 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17455
17456         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
17457         New expander.
17458         (aarch64_sqrdmulh_lane<mode>): Likewise.
17459         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17460         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17461         (aarch64_sqdmulh_laneq<mode>): New expander.
17462         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17463         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
17464         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
17465         (aarch64_sqdmulh_lane<mode>): New expander.
17466         (aarch64_sqrdmulh_lane<mode>): Likewise.
17467         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
17468         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
17469         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
17470         (aarch64_sqdmlal_laneq<mode>): Likewise.
17471         (aarch64_sqdmlsl_lane<mode>): Likewise.
17472         (aarch64_sqdmlsl_laneq<mode>): Likewise.
17473         (aarch64_sqdmlal2_lane<mode>): Likewise.
17474         (aarch64_sqdmlal2_laneq<mode>): Likewise.
17475         (aarch64_sqdmlsl2_lane<mode>): Likewise.
17476         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
17477         (aarch64_sqdmull_lane<mode>): Likewise.
17478         (aarch64_sqdmull_laneq<mode>): Likewise.
17479         (aarch64_sqdmull2_lane<mode>): Likewise.
17480         (aarch64_sqdmull2_laneq<mode>): Likewise.
17481
17482 2014-06-10  Richard Biener  <rguenther@suse.de>
17483
17484         PR tree-optimization/61438
17485         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
17486         (eliminate_dom_walker::before_dom_children): Only try to inhibit
17487         insertion of IVs if running PRE.
17488         (eliminate): Adjust.
17489         (pass_pre::execute): Likewise.
17490         (pass_fre::execute): Likewise.
17491
17492 2014-06-10  Richard Biener  <rguenther@suse.de>
17493
17494         PR middle-end/61456
17495         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
17496         Do not use the main variant for the type comparison.
17497         (ncr_compar): Likewise.
17498         (nonoverlapping_component_refs_p): Likewise.
17499
17500 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17501
17502         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
17503         REG_CFA_RESTORE mode.
17504
17505 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
17506
17507         * config/i386/i386.c (expand_vec_perm_pblendv): New.
17508         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
17509         expand_vec_perm_pblendv.
17510
17511 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17512
17513         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
17514         available.
17515         Simplify description of __crc32d and __crc32cd intrinsics.
17516         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
17517         availability.
17518
17519 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
17520
17521         PR lto/61334
17522         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
17523         * config.in: Regenerate.
17524         * configure: Likewise.
17525
17526 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
17527
17528         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
17529         and public vars.
17530         (intersect_static_var_sets): Remove.
17531         (propagate): Do not prune local statics.
17532
17533 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
17534
17535         PR fortran/60928
17536         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
17537         Set lastprivate_firstprivate even if omp_private_outer_ref
17538         langhook returns true.
17539         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
17540         langhook, call unshare_expr on new_var and call
17541         build_outer_var_ref to get the last argument.
17542
17543 2014-06-10  Marek Polacek  <polacek@redhat.com>
17544
17545         PR c/60988
17546         * doc/extend.texi: Add cindex for transparent_union.
17547
17548 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17549
17550         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
17551         init_symbolic_number ().
17552
17553 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
17554
17555         PR middle-end/61141
17556         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
17557         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
17558         (verify_rtl_sharing): Likewise.
17559
17560 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
17561
17562         PR c++/54442
17563         * tree.c (build_qualified_type): Use a canonical type for
17564         TYPE_CANONICAL.
17565
17566 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17567
17568         * config/arm/arm-modes.def: Remove XFmode.
17569
17570 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
17571
17572         PR target/61062
17573         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
17574         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
17575         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
17576         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
17577         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
17578         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
17579         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
17580         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
17581         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
17582
17583 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
17584
17585         * tree-core.h (tree_decl_with_vis): Remove section_name.
17586
17587 2014-06-09  Kito Cheng  <kito@0xlab.org>
17588
17589         * ira.c (ira): Don't call init_caller_save if LRA enabled
17590         since LRA use its own infrastructure to handle that.
17591
17592 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17593
17594         * symtab.c (dump_symtab_base): Update dumping.
17595         (symtab_make_decl_local): Clear only DECL_COMDAT.
17596         * tree-vect-data-refs.c (Check that variable is static before
17597         tampering with sections.
17598         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
17599         (cgraph_create_virtual_clone): Likewise.
17600         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
17601         (decl_section_name, set_decl_section_name): New accessors.
17602         (find_decls_types_r): Do not walk section name
17603         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
17604         (decl_comdat_group, decl_comdat_group_id): Constify.
17605         (decl_section_name, set_decl_section_name): Update.
17606         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
17607         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
17608         (cgraph_make_node_local_1): Clear section and comdat group.
17609         * cgraph.h (set_comdat_group): Sanity check.
17610         (get_section, set_section): New.
17611         * ipa-comdats.c (ipa_comdats): Use get_section.
17612         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
17613         * lto-streamer-out.c: Do not follow section names.
17614         * c-family/c-common.c (handle_section_attribute): Update.
17615         * lto-cgraph.c (lto_output_node): Output section.
17616         (lto_output_varpool_node): Likewise.
17617         (read_comdat_group): Rename to ...
17618         (read_identifier): ... this one.
17619         (read_string_cst): New function.
17620         (input_node, input_varpool_node): Input section names.
17621         * tree-emutls.c (get_emutls_init_templ_addr): Update.
17622         (new_emutls_decl): Update.
17623         (secname_for_decl): Check section names only of static vars.
17624         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
17625         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
17626         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
17627         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
17628         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
17629         * config/mcore/mcore.c (mcore_unique_section): Likewise.
17630         * config/mips/mips.c (mips16_build_function_stub): Likewise.
17631         * config/v850/v850.c (v850_insert_attributes): Likewise.
17632         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
17633         Likewise.
17634         (h8300_handle_tiny_data_attribute): Likewise.
17635         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
17636         (bfin_handle_l2_attribute): Likewise.
17637
17638 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17639
17640         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
17641         remove static initializer.
17642
17643 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17644
17645         * varasm.c (use_blocks_for_decl_p): Check symbol table
17646         instead of alias attribute.
17647         (place_block_symbol): Recurse on aliases.
17648
17649 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17650
17651         * ipa-visibility.c: Include varasm.h
17652         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
17653
17654 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
17655
17656         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
17657         outputting aliases.
17658
17659 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
17660
17661         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
17662         from test_insn into GGC space escape via SET_SRC.
17663
17664 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
17665
17666         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
17667         call statement, if any.
17668         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
17669         statements, if any.  Tidy up.
17670
17671 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
17672
17673         PR target/61431
17674         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
17675         iterators, VSX_D that handles 64-bit types, and VSX_LE that
17676         handles swapping the two 64-bit double words on little endian
17677         systems.  Include V1TImode and optionally TImode in VSX_LE so that
17678         these types are properly swapped.  Change all of the insns and
17679         splits that do the 64-bit swaps to use VSX_LE.
17680         (vsx_le_perm_load_<mode>): Likewise.
17681         (vsx_le_perm_store_<mode>): Likewise.
17682         (splitters for little endian memory operations): Likewise.
17683         (vsx_xxpermdi2_le_<mode>): Likewise.
17684         (vsx_lxvd2x2_le_<mode>): Likewise.
17685         (vsx_stxvd2x2_le_<mode>): Likewise.
17686
17687 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
17688
17689         PR target/61423
17690         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
17691         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
17692         and corresponding splitters.  Zero extend general register
17693         or memory input operand to XMM temporary.  Enable for
17694         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
17695         (floatunssi<mode>2): Update expander predicate.
17696
17697 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
17698
17699         PR rtl-optimization/61325
17700         * lra-constraints.c (process_address_1): Check scale equal to one
17701         to prevent transformation: base + scale * index => base + new_reg.
17702
17703 2014-06-06  Richard Biener  <rguenther@suse.de>
17704
17705         PR tree-optimization/59299
17706         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
17707         a def operand.
17708         (nearest_common_dominator_of_uses): Likewise.
17709         (statement_sink_location): Adjust.  Support sinking loads.
17710
17711 2014-06-06  Martin Jambor  <mjambor@suse.cz>
17712
17713         * ipa-prop.c (get_place_in_agg_contents_list): New function.
17714         (build_agg_jump_func_from_list): Likewise.
17715         (determine_known_aggregate_parts): Renamed to
17716         determine_locally_known_aggregate_parts.  Moved some functionality
17717         to the two functions above, removed bound checks.
17718
17719 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
17720
17721         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
17722         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
17723         (aarch64_progress_pointer): Likewise.
17724         (aarch64_copy_one_part_and_move_pointers): Likewise.
17725         (aarch64_expand_movmen): Likewise.
17726         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
17727         * config/aarch64/aarch64.md (movmem<mode>): New.
17728
17729 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
17730
17731         * targhooks.c (default_add_stmt_cost): Call target specific
17732         hook instead of default one.
17733
17734 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17735
17736         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
17737         endianness instead of host endianness.
17738         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
17739         comments.
17740
17741 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17742
17743         PR debug/53927
17744         * function.c (instantiate_decls): Process the saved static chain.
17745         (expand_function_start): If not optimizing, save the static chain
17746         onto the stack.
17747         * tree-nested.c (convert_all_function_calls): Always create the static
17748         chain for nested functions if not optimizing.
17749
17750 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17751
17752         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
17753
17754 2014-06-06  Richard Biener  <rguenther@suse.de>
17755
17756         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
17757         (construct_init_block): Likewise.
17758         (construct_exit_block): Likewise.
17759         (pass_expand::execute): Likewise.
17760         * graphite.c (graphite_transforms): Replace check for current_loops
17761         with a check for > 1 loops.
17762         (pass_graphite_transforms::execute): Adjust.
17763         * ipa-split.c (split_function): Remove check for current_loops.
17764         * omp-low.c (expand_parallel_call): Likewise.
17765         (expand_omp_for_init_counts): Likewise.
17766         (extract_omp_for_update_vars): Likewise.
17767         (expand_omp_for_generic): Likewise.
17768         (expand_omp_sections): Likewise.
17769         (expand_omp_target): Likewise.
17770         * tracer.c (tail_duplicate): Likewise.
17771         (pass_tracer::execute): Likewise.
17772         * trans-mem.c (expand_transaction): Likewise.
17773         * tree-complex.c (expand_complex_div_wide): Likewise.
17774         * tree-eh.c (lower_resx): Likewise.
17775         (cleanup_empty_eh_merge_phis): Likewise.
17776         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
17777         current_loops with a check for > 1 loops.
17778         (pass_predcom::execute): Adjust.
17779         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
17780         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
17781         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
17782         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
17783         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
17784         * tree-switch-conversion.c (process_switch): Likewise.
17785         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
17786         * tree-vrp.c (vrp_visit_phi_node): Likewise.
17787         (execute_vrp): Likewise.
17788         * ubsan.c (ubsan_expand_null_ifn): Likewise.
17789
17790 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17791
17792         * rtl.h (insn_location): Declare.
17793         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
17794         with UNKNOWN_LOCATION.
17795         * emit-rtl.c (insn_location): New function.
17796         * final.c (notice_source_line): Check that the instruction has a
17797         location before retrieving it and use insn_location.
17798         * modulo-sched.c (loop_single_full_bb_p): Likewise.
17799         * print-rtl.c (print_rtx): Likewise.
17800
17801 2014-06-06  Richard Biener  <rguenther@suse.de>
17802
17803         * passes.def: Move 2nd VRP pass before phi-only-cprop.
17804
17805 2014-06-06  Christian Bruel  <christian.bruel@st.com>
17806
17807         PR tree-optimization/43934
17808         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
17809         cost.
17810
17811 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
17812
17813         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
17814         return NO_REGS for extra address and memory constraints.  Handle
17815         operands that match (or are equivalent to something that matches)
17816         extra constant constraints.  Ignore other non-register operands.
17817
17818 2014-06-06  Alan Modra  <amodra@gmail.com>
17819
17820         PR target/61300
17821         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
17822         * doc/tm.texi: Regenerate.
17823         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
17824         Use throughout in place of REG_PARM_STACK_SPACE.
17825         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
17826         "incoming" param.  Pass to rs6000_function_parms_need_stack.
17827         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
17828         prototype_p when incoming.  Use function decl when incoming
17829         to handle K&R style functions.
17830         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
17831         (INCOMING_REG_PARM_STACK_SPACE): Define.
17832
17833 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17834
17835         PR target/52472
17836         * cfgexpand.c (expand_debug_expr): Use address space of nested
17837         TREE_TYPE for ADDR_EXPR and MEM_REF.
17838
17839 2014-06-05  Jeff Law  <law@redhat.com>
17840
17841         PR tree-optimization/61289
17842         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
17843         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
17844         looking for those which match LHS.  All callers changed.
17845         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
17846         parameters and code which manipulated them.  All callers changed.
17847         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
17848         and DST_MAP parameters.  Simplify invalidation code by just calling
17849         invalidate_equivalences.  All callers changed.
17850         (thread_across_edge): Simplify now that we don't need to maintain
17851         the map of equivalences to invalidate.
17852
17853 2014-06-05  Kai Tietz  <ktietz@redhat.com>
17854             Richard Henderson  <rth@redhat.com>
17855
17856         PR target/46219
17857         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
17858         checking for !TARGET_X32.
17859         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
17860         (sibcall_intern): New define_insn, plus required peepholes.
17861         (sibcall_pop_intern): Likewise.
17862         (sibcall_value_intern): Likewise.
17863         (sibcall_value_pop_intern): Likewise.
17864
17865 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
17866
17867         * tree-inline.c (tree_function_versioning): Check DF info existence
17868         before accessing it.
17869
17870 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17871
17872         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
17873         frame_size.
17874         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
17875         aarch64_frame hard_fp_offset and frame_size.
17876         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
17877         frame_size; remove original_frame_size.
17878         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
17879         (aarch64_initial_elimination_offset): Remove frame_size and
17880         offset.  Use aarch64_frame frame_size.
17881
17882 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17883             Jiong Wang  <jiong.wang@arm.com>
17884             Renlin  <renlin.li@arm.com>
17885
17886         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
17887         initialization of R30 offset.  Update offset.  Iterate core
17888         regisers upto X30.  Remove X29, X30 specific code.
17889
17890 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17891             Jiong Wang  <jiong.wang@arm.com>
17892
17893         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
17894         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
17895         (aarch64_register_saved_on_entry): Adjust test.
17896
17897 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17898
17899         * config/aarch64/aarch64.h (machine_function): Move
17900         saved_varargs_size from here...
17901         (aarch64_frame): ... to here.
17902
17903         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17904         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
17905         (aarch64_initial_elimination_offset)
17906         (aarch64_setup_incoming_varargs): Adjust location of
17907         saved_varargs_size.
17908
17909 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17910
17911         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
17912         layout comment.
17913
17914 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
17915             Prachi Godbole  <Prachi.Godbole@imgtec.com>
17916
17917         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
17918         mips32r5 entry to use PROCESSOR_P5600.
17919         * config/mips/mips-tables.opt: Regenerate.
17920         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
17921         * config/mips/mips.c (mips_fmadd_bypass): New function.
17922         (mips_rtx_cost_data): Add costs for p5600.
17923         (mips_issue_rate): Add support for p5600.
17924         (mips_multipass_dfa_lookahead): Likewise.
17925         * config/mips/mips.h (TUNE_P5600): New define.
17926         (TUNE_MACC_CHAINS): Add TUNE_P5600.
17927         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
17928         * config/mips/mips.md: Include p5600.md.
17929         (processor): Add p5600.
17930         * config/mips/p5600.md: New file.
17931
17932 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
17933
17934         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
17935         * config/i386/predicates.md (palignr_operand): New.
17936         Indicates if permutation is suitable for palignr instruction.
17937
17938 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
17939
17940         PR tree-optimization/61319
17941         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
17942         stmt belongs to loop.
17943
17944 2014-06-05  Richard Biener  <rguenther@suse.de>
17945
17946         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
17947         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
17948         (lookup_tmp_var): Adjust.
17949         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
17950
17951 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17952
17953         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
17954
17955 2014-06-05  Marek Polacek  <polacek@redhat.com>
17956
17957         PR c/49706
17958         * doc/invoke.texi: Document -Wlogical-not-parentheses.
17959
17960 2014-06-04  Tom de Vries  <tom@codesourcery.com>
17961
17962         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
17963         CONST_INT.
17964
17965 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
17966
17967         PR tree-optimization/61385
17968         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
17969
17970 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
17971
17972         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
17973         changed to use fatal_error.
17974         (main): Ensure lto_wrapper_cleanup is run atexit.
17975
17976 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17977
17978         * lra-constraints.c (valid_address_p): Move earlier in file.
17979         (address_eliminator): New structure.
17980         (satisfies_memory_constraint_p): New function.
17981         (satisfies_address_constraint_p): Likewise.
17982         (process_alt_operands, process_address, curr_insn_transform): Use them.
17983
17984 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
17985
17986         * lra-int.h (lra_static_insn_data): Make operand_alternative a
17987         const pointer.
17988         (target_lra_int, default_target_lra_int, this_target_lra_int)
17989         (op_alt_data): Delete.
17990         * lra.h (lra_init): Delete.
17991         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
17992         (init_insn_code_data_once): Remove op_alt_data handling.
17993         (finish_insn_code_data_once): Likewise.
17994         (init_op_alt_data): Delete.
17995         (get_static_insn_data): Initialize operand_alternative to null.
17996         (free_insn_recog_data): Cast operand_alternative before freeing it.
17997         (setup_operand_alternative): Take the operand_alternative as
17998         parameter and assume it isn't already cached in the static
17999         insn data.
18000         (lra_set_insn_recog_data): Update accordingly.
18001         (lra_init): Delete.
18002         * ira.c (ira_init): Don't call lra_init.
18003         * target-globals.h (this_target_lra_int): Declare.
18004         (target_globals): Remove lra_int.
18005         (restore_target_globals): Update accordingly.
18006         * target-globals.c: Don't include lra-int.h.
18007         (default_target_globals, save_target_globals): Remove lra_int.
18008
18009 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
18010
18011         * recog.h (operand_alternative): Convert reg_class, reject,
18012         matched and matches into bitfields.
18013         (preprocess_constraints): New overload.
18014         (preprocess_insn_constraints): New function.
18015         (preprocess_constraints): Take the insn as parameter.
18016         (recog_op_alt): Change into a pointer.
18017         (target_recog): Add x_op_alt.
18018         * recog.c (asm_op_alt): New variable.
18019         (recog_op_alt): Change into a pointer.
18020         (preprocess_constraints): New overload, replacing the old function
18021         definition with one that doesn't use global state.
18022         (preprocess_insn_constraints): New function.
18023         (preprocess_constraints): Use them.  Take the insn as parameter.
18024         Use asm_op_alt for asms.
18025         (recog_init): Free existing x_op_alt entries.
18026         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
18027         pointer const.
18028         (make_early_clobber_and_input_conflicts): Likewise.
18029         (process_bb_node_lives): Pass the insn to process_constraints.
18030         * reg-stack.c (check_asm_stack_operands): Likewise.
18031         (subst_asm_stack_regs): Likewise.
18032         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
18033         * regrename.c (build_def_use): Likewise.
18034         * sched-deps.c (sched_analyze_insn): Likewise.
18035         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
18036         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
18037         (note_invalid_constants): Likewise.
18038         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
18039         (ix86_legitimate_combined_insn): Make operand_alternative pointer
18040         const.
18041
18042 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
18043
18044         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
18045         * ira-lives.c (check_and_make_def_conflict): Check for disabled
18046         alternatives.
18047         (make_early_clobber_and_input_conflicts): Likewise.
18048         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
18049
18050 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
18051
18052         * recog.h (alternative_class): New function.
18053         (which_op_alt): Return a const recog_op_alt.
18054         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
18055         (subst_asm_stack_regs): Likewise.
18056         * config/arm/arm.c (note_invalid_constants): Likewise.
18057         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
18058         the operand_alternative; use alternative class instead.
18059         * sel-sched.c (get_reg_class): Likewise.
18060         * regrename.c (build_def_use): Likewise.
18061         (hide_operands, restore_operands, record_out_operands): Update type
18062         accordingly.
18063
18064 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
18065
18066         * recog.h (recog_op_alt): Convert to a flat array.
18067         (which_op_alt): New function.
18068         * recog.c (recog_op_alt): Convert to a flat array.
18069         (preprocess_constraints): Update accordingly, grouping all
18070         operands of the same alternative together, rather than the
18071         other way around.
18072         * ira-lives.c (check_and_make_def_conflict): Likewise.
18073         (make_early_clobber_and_input_conflicts): Likewise.
18074         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
18075         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
18076         (subst_asm_stack_regs): Likewise.
18077         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
18078         * regrename.c (hide_operands, record_out_operands): Likewise.
18079         (build_def_use): Likewise.
18080         * sel-sched.c (get_reg_class): Likewise.
18081         * config/arm/arm.c (note_invalid_constants): Likewise.
18082
18083 2014-06-04  Jason Merrill  <jason@redhat.com>
18084
18085         PR c++/51253
18086         PR c++/61382
18087         * gimplify.c (gimplify_arg): Non-static.
18088         * gimplify.h: Declare it.
18089
18090 2014-06-04  Richard Biener  <rguenther@suse.de>
18091
18092         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
18093         TREE_PUBLIC and DECL_EXTERNAL decls.
18094
18095 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
18096
18097         * regcprop.c (copyprop_hardreg_forward_1): Account for
18098         HARD_REGNO_CALL_PART_CLOBBERED.
18099
18100 2014-06-04  Richard Biener  <rguenther@suse.de>
18101
18102         * configure.ac: Check whether the underlying type of int64_t
18103         is long or long long.
18104         * configure: Regenerate.
18105         * config.in: Likewise.
18106         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
18107         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18108
18109 2014-06-04  Richard Biener  <rguenther@suse.de>
18110
18111         PR tree-optimization/60098
18112         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
18113         we hit a kill.
18114         (dse_optimize_stmt): Simplify, now that we found a kill
18115         earlier.
18116
18117 2014-06-04  Richard Biener  <rguenther@suse.de>
18118
18119         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
18120         of accesses with non-invariant address.
18121
18122 2014-06-04  Martin Liska  <mliska@suse.cz>
18123
18124         * cgraph.h (cgraph_make_wrapper): New function introduced.
18125         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
18126         * ipa-inline.h (inline_analyze_function): The function is global.
18127         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
18128
18129 2014-06-04  Martin Liska  <mliska@suse.cz>
18130
18131         * tree.h (private_lookup_attribute_starting): New function.
18132         (lookup_attribute_starting): Likewise.
18133         * tree.c (private_lookup_attribute_starting): Likewise.
18134
18135 2014-06-04  Martin Liska  <mliska@suse.cz>
18136
18137         * cgraph.h (expand_thunk): New argument added.
18138         (address_taken_from_non_vtable_p): New global function.
18139         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
18140         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
18141         * cgraphunit.c (analyze_function): Likewise.
18142         (assemble_thunks_and_aliases): Argument added to call.
18143         (expand_thunk): New argument forces to produce GIMPLE thunk.
18144
18145 2014-06-04  Martin Liska  <mliska@suse.cz>
18146
18147         * coverage.h (coverage_compute_cfg_checksum): Argument added.
18148         * coverage.c (coverage_compute_cfg_checksum): Likewise.
18149         * profile.c (branch_prob): Likewise.
18150
18151 2014-06-04  Martin Jambor  <mjambor@suse.cz>
18152
18153         PR ipa/61340
18154         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
18155         handler for switch on an ipa_ref_use enum.
18156         * ipa-reference.c (analyze_function): Likewise.
18157
18158 2014-06-04  Kai Tietz  <ktietz@redhat.com>
18159
18160         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
18161         from old call-instruction.
18162
18163 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
18164
18165         * config/aarch64/aarch64.c (aarch64_classify_address)
18166         (aarch64_legitimize_reload_address): Support full addressing modes
18167         for vector modes.
18168         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
18169         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
18170
18171 2014-06-03  Andrew Pinski  <apinski@cavium.com>
18172
18173         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
18174         for OP0.
18175
18176 2014-06-03  Andrew Pinski  <apinski@cavium.com>
18177
18178         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
18179         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
18180
18181 2014-06-03  Kai Tietz  <ktietz@redhat.com>
18182
18183         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
18184         for 64-bit ms-abi.
18185
18186 2014-06-03  Dehao Chen  <dehao@google.com>
18187
18188         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
18189         the same loop.
18190
18191 2014-06-03  Marek Polacek  <polacek@redhat.com>
18192
18193         PR c/60439
18194         * doc/invoke.texi: Document -Wswitch-bool.
18195         * function.c (stack_protect_epilogue): Cast controlling expression of
18196         the switch to int.
18197         * gengtype.c (walk_type): Generate switch expression with its
18198         controlling expression cast to int.
18199
18200 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
18201
18202         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
18203         and attiny841.
18204         * config/avr/avr-tables.opt: Regenerate.
18205         * config/avr/t-multilib: Regenerate.
18206         * doc/avr-mmcu.texi: Regenerate.
18207
18208 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
18209             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18210
18211         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
18212         (ata6617c, ata664251): Add new avr35 devices.
18213         (ata6612c): Add new avr4 device.
18214         (ata6613c, ata6614q): Add new avr5 devices.
18215         * config/avr/avr-tables.opt: Regenerate.
18216         * config/avr/t-multilib: Regenerate.
18217         * doc/avr-mmcu.texi: Regenerate.
18218
18219 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18220
18221         * gcc/config/aarch64/aarch64-builtins.c
18222         (aarch64_types_binop_ssu_qualifiers): New static data.
18223         (TYPES_BINOP_SSU): Define.
18224         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
18225         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
18226         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
18227         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
18228         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
18229         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
18230         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
18231         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
18232         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
18233         suffix to builtin function name, remove cast.
18234         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
18235         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
18236         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
18237
18238 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18239
18240         * gcc/config/aarch64/aarch64-builtins.c
18241         (aarch64_types_binop_uus_qualifiers,
18242         aarch64_types_shift_to_unsigned_qualifiers,
18243         aarch64_types_unsigned_shiftacc_qualifiers): Define.
18244         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
18245         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
18246         sqshlu_n, uqshl_n): Update qualifiers.
18247         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
18248         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
18249         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
18250         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
18251         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
18252         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
18253         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
18254         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
18255         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
18256         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
18257         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
18258         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
18259         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
18260         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
18261         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
18262         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
18263         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
18264         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
18265         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
18266         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
18267         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
18268         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
18269         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
18270         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
18271         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
18272         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
18273         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
18274
18275 2014-06-03  Teresa Johnson  <tejohnson@google.com>
18276
18277         * tree-sra.c (modify_function): Record caller nodes after rebuild.
18278
18279 2014-06-02  Jason Merrill  <jason@redhat.com>
18280
18281         PR c++/61020
18282         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
18283
18284 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18285
18286         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
18287         location == 0.
18288
18289 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
18290
18291         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
18292         New pattern.
18293         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
18294         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
18295         * config/aarch64/iterators.md (REVERSE): New iterator.
18296         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
18297         (rev_op): New int_attribute.
18298         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
18299         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
18300         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
18301         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
18302         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
18303         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
18304         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
18305         Replace temporary __asm__ with __builtin_shuffle.
18306
18307 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18308
18309         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
18310         mips64r5.
18311         * config/mips/mips-tables.opt: Regenerate.
18312         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
18313         to use mips_isa_rev rather than ISA_MIPS32R2.
18314         * config/mips/mips.h (ISA_MIPS32R3): New define.
18315         (ISA_MIPS32R5): New define.
18316         (ISA_MIPS64R3): New define.
18317         (ISA_MIPS64R5): New define.
18318         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
18319         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
18320         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
18321         and mips64r5.
18322         (MIPS_ISA_SYNCI_SPEC): Likewise.
18323         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
18324         (LINK_SPEC): Added mips32r3 and mips32r5.
18325         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
18326         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
18327         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
18328         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
18329         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
18330         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
18331         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
18332
18333 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18334
18335         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
18336         options.
18337         * config/mips/mips.opt (mxpa): New option.
18338         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
18339         assembler.
18340
18341 2014-06-03  Martin Jambor  <mjambor@suse.cz>
18342
18343         PR ipa/61160
18344         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
18345         thunks.
18346
18347 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18348
18349         PR tree-optimization/61328
18350         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
18351         initialization from find_bswap_or_nop_1.
18352         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
18353         in source_expr2 before using the size value the function sets. Also
18354         make use of init_symbolic_number () in both the old place and
18355         find_bswap_or_nop_load () to avoid reading uninitialized memory when
18356         doing recursion in the GIMPLE_BINARY_RHS case.
18357
18358 2014-06-03  Richard Biener  <rguenther@suse.de>
18359
18360         PR tree-optimization/61383
18361         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
18362         stmts can't trap.
18363
18364 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
18365
18366         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
18367         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
18368         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
18369         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
18370         in this file.
18371         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
18372         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
18373         * system.h: ...here and make it unconditional.
18374         * target.def (conditional_register_usage): Mention
18375         define_register_constraint instead of old-style constraint macros.
18376         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
18377         * doc/tm.texi: Regenerate.
18378         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
18379         protected by !USE_MD_CONSTRAINTS.
18380         * config/frv/frv.md: Remove quote from old version of documentation.
18381         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
18382         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
18383         CONST_DOUBLE_OK_FOR_LETTER.
18384         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
18385
18386 2014-06-02  Andrew Pinski  <apinski@cavium.com>
18387
18388         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
18389         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
18390         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
18391         file whose name depends on -mabi= and -mbig-endian.
18392         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
18393         Handle LP64 better and handle ilp32 too.
18394         (MULTILIB_OPTIONS): Delete.
18395         (MULTILIB_DIRNAMES): Delete.
18396
18397 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
18398
18399         * expr.h: Remove prototypes of functions defined in builtins.c.
18400         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
18401         Remove prototypes of functions defined in builtins.c.
18402         * builtins.h: Update prototype list to include all exported functions.
18403         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
18404         no_c99_libc_has_function): Move to targhooks.c
18405         (build_string_literal, build_call_expr_loc_array,
18406         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
18407         to tree.c.
18408         (expand_builtin_object_size, fold_builtin_object_size): Make static.
18409         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
18410         no_c99_libc_has_function): Relocate from builtins.c.
18411         * tree.c: Include builtins.h.
18412         (build_call_expr_loc_array, build_call_expr_loc_vec,
18413         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
18414         from builtins.c.
18415         * fold-const.h (fold_fma): Move prototype to builtins.h.
18416         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
18417         * asan.c: Include builtins.h.
18418         * cfgexpand.c: Likewise.
18419         * convert.c: Likewise.
18420         * emit-rtl.c: Likewise.
18421         * except.c: Likewise.
18422         * expr.c: Likewise.
18423         * fold-const.c: Likewise.
18424         * gimple-fold.c: Likewise.
18425         * gimple-ssa-strength-reduction.c: Likewise.
18426         * gimplify.c: Likewise.
18427         * ipa-inline.c: Likewise.
18428         * ipa-prop.c: Likewise.
18429         * lto-streamer-out.c: Likewise.
18430         * stmt.c: Likewise.
18431         * tree-inline.c: Likewise.
18432         * tree-object-size.c: Likewise.
18433         * tree-sra.c: Likewise.
18434         * tree-ssa-ccp.c: Likewise.
18435         * tree-ssa-forwprop.c: Likewise.
18436         * tree-ssa-loop-ivcanon.c: Likewise.
18437         * tree-ssa-loop-ivopts.c: Likewise.
18438         * tree-ssa-math-opts.c: Likewise.
18439         * tree-ssa-reassoc.c: Likewise.
18440         * tree-ssa-threadedge.c: Likewise.
18441         * tree-streamer-in.c: Likewise.
18442         * tree-vect-data-refs.c: Likewise.
18443         * tree-vect-patterns.c: Likewise.
18444         * tree-vect-stmts.c: Likewise.
18445         * config/aarch64/aarch64.c: Likewise.
18446         * config/alpha/alpha.c: Likewise.
18447         * config/arc/arc.c: Likewise.
18448         * config/arm/arm.c: Likewise.
18449         * config/avr/avr.c: Likewise.
18450         * config/bfin/bfin.c: Likewise.
18451         * config/c6x/c6x.c: Likewise.
18452         * config/cr16/cr16.c: Likewise.
18453         * config/cris/cris.c: Likewise.
18454         * config/epiphany/epiphany.c: Likewise.
18455         * config/fr30/fr30.c: Likewise.
18456         * config/frv/frv.c: Likewise.
18457         * config/h8300/h8300.c: Likewise.
18458         * config/i386/i386.c: Likewise.
18459         * config/i386/winnt.c: Likewise.
18460         * config/ia64/ia64.c: Likewise.
18461         * config/iq2000/iq2000.c: Likewise.
18462         * config/lm32/lm32.c: Likewise.
18463         * config/m32c/m32c.c: Likewise.
18464         * config/m32r/m32r.c: Likewise.
18465         * config/m68k/m68k.c: Likewise.
18466         * config/mcore/mcore.c: Likewise.
18467         * config/mep/mep.c: Likewise.
18468         * config/microblaze/microblaze.c: Likewise.
18469         * config/mips/mips.c: Likewise.
18470         * config/mmix/mmix.c: Likewise.
18471         * config/mn10300/mn10300.c: Likewise.
18472         * config/moxie/moxie.c: Likewise.
18473         * config/msp430/msp430.c: Likewise.
18474         * config/nds32/nds32.c: Likewise.
18475         * config/pa/pa.c: Likewise.
18476         * config/pdp11/pdp11.c: Likewise.
18477         * config/picochip/picochip.c: Likewise.
18478         * config/rl78/rl78.c: Likewise.
18479         * config/rs6000/rs6000.c: Likewise.
18480         * config/rx/rx.c: Likewise.
18481         * config/s390/s390.c: Likewise.
18482         * config/score/score.c: Likewise.
18483         * config/sh/sh.c: Likewise.
18484         * config/sparc/sparc.c: Likewise.
18485         * config/spu/spu.c: Likewise.
18486         * config/stormy16/stormy16.c: Likewise.
18487         * config/tilegx/tilegx.c: Likewise.
18488         * config/tilepro/tilepro.c: Likewise.
18489         * config/v850/v850.c: Likewise.
18490         * config/vax/vax.c: Likewise.
18491         * config/xtensa/xtensa.c: Likewise.
18492
18493 2014-06-02  Jeff Law  <law@redhat.com>
18494
18495         PR rtl-optimization/61094
18496         * ree.c (combine_reaching_defs): Do not reextend an insn if it
18497         was marked as do_no_reextend.  If a copy is needed to eliminate
18498         an extension, then mark it as do_not_reextend.
18499
18500 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18501
18502         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
18503
18504 2014-06-02  Richard Henderson  <rth@redhat.com>
18505
18506         PR target/61336
18507         * config/alpha/alpha.c (print_operand_address): Allow symbolic
18508         addresses inside asms.  Use output_operand_lossage instead of
18509         gcc_unreachable.
18510
18511 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
18512
18513         PR target/61239
18514         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
18515         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
18516
18517 2014-06-02  Tom de Vries  <tom@codesourcery.com>
18518
18519         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
18520         case that x has VOIDmode.
18521
18522 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
18523
18524         * varasm.c (copy_constant): Delete function.
18525         (build_constant_desc): Don't call it.
18526
18527 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18528
18529         PR target/61154
18530         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
18531         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
18532         with immediate_operand.
18533
18534 2014-06-02  Andreas Schwab  <schwab@suse.de>
18535
18536         * config/ia64/ia64.c
18537         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
18538         pending_data_specs first.
18539
18540 2014-06-02  Richard Biener  <rguenther@suse.de>
18541
18542         PR tree-optimization/61378
18543         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
18544         valueized_anything.
18545
18546 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
18547
18548         * config/i386/constraints.md (Bw): Rename from 'w'.
18549         (Bz): Rename from 'z'.
18550         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
18551
18552 2014-06-01  Kai Tietz  <ktietz@redhat.com>
18553
18554         PR target/61377
18555         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
18556         * config/i386/i386.md (sibcall_insn_operand): Use Bs
18557         instead of m constraint.
18558
18559 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
18560
18561         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
18562         a separate alternative where the scratch operand 2 is marked as
18563         early clobber.
18564
18565 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
18566
18567         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18568         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
18569         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
18570         and __builtins_arm_get_fpscr.
18571         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
18572         __builtins_arm_get_fpscr.
18573         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
18574         __builtins_arm_ldfpscr.
18575         (arm_atomic_assign_expand_fenv): New function.
18576         * config/arm/vfp.md (set_fpscr): New pattern.
18577         (get_fpscr) : Likewise.
18578         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
18579         VUNSPEC_SET_FPSCR.
18580         * doc/extend.texi (AARCH64 Built-in Functions) : Document
18581         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
18582
18583 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
18584
18585         * asan.c (report_error_func): Add SLOW_P argument, use
18586         BUILT_IN_ASAN_*_N if set.
18587         (build_check_stmt): Likewise.
18588         (instrument_derefs): If T has insufficient alignment,
18589         force same handling as for odd sizes.
18590
18591         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
18592         BUILT_IN_ASAN_REPORT_STORE_N): New.
18593         * asan.c (struct asan_mem_ref): Change access_size type to
18594         HOST_WIDE_INT.
18595         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
18596         update_mem_ref_hash_table): Likewise.
18597         (asan_mem_ref_hasher::hash): Hash in a HWI.
18598         (report_error_func): Change size_in_bytes argument to HWI.
18599         Use *_N builtins if size_in_bytes is larger than 16 or not power of
18600         two.
18601         (build_shadow_mem_access): New function.
18602         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
18603         Handle size_in_bytes not power of two or larger than 16.
18604         (instrument_derefs): Don't give up if size_in_bytes is not
18605         power of two or is larger than 16.
18606
18607 2014-05-30  Kai Tietz  <ktietz@redhat.com>
18608
18609         PR target/60104
18610         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
18611         for sibling-tail-calls.
18612         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
18613         to its use.
18614         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
18615         (sibcall_insn_operand): Add check for sibcall_memory_operand.
18616
18617 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
18618
18619         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
18620         * config/avr/avr-tables.opt: Regenerate.
18621         * config/avr/t-multilib: Regenerate.
18622         * doc/avr-mmcu.texi: Regenerate.
18623
18624 2014-05-30  Ian Lance Taylor  <iant@google.com>
18625
18626         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
18627         target("sse").
18628
18629 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18630
18631         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
18632         Redefine as true.
18633
18634 2014-05-30  Tom de Vries  <tom@codesourcery.com>
18635
18636         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18637         * lra.c (initialize_lra_reg_info_element): Add init of
18638         actual_call_used_reg_set field.
18639         (lra): Call lra_create_live_ranges before lra_inheritance for
18640         -fuse-caller-save.
18641         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18642         -fuse-caller-save.
18643         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
18644         instead of call_used_reg_set for -fuse-caller-save.
18645         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18646
18647 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18648
18649         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
18650         to mov_imm.
18651         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
18652
18653 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
18654
18655         * ira.c (ira_get_dup_out_num): Check for output operands at
18656         the start of the loop.  Handle cases where an included alternative
18657         follows an excluded one.
18658
18659 2014-05-29  Mike Stump  <mikestump@comcast.net>
18660
18661         PR debug/61352
18662         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
18663         post ld passes when lto is used.
18664
18665 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
18666
18667         PR rtl-optimization/61325
18668         * lra-constraints.c (process_address): Rename to process_address_1.
18669         (process_address): New function.
18670
18671 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
18672
18673         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
18674         TYPES_BINOPV): New static data.
18675         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
18676         New builtin.
18677         * config/aarch64/aarch64-simd.md (aarch64_ext,
18678         aarch64_im_lane_boundsi): New patterns.
18679         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
18680         patterns for EXT.
18681         (aarch64_evpc_ext): New function.
18682
18683         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
18684
18685         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
18686         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
18687         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
18688         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
18689         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
18690
18691 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18692
18693         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
18694
18695 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
18696             Richard Sandiford  <rdsandiford@googlemail.com>
18697
18698         * arm/iterators.md (shiftable_ops): New code iterator.
18699         (t2_binop0, arith_shift_insn): New code attributes.
18700         * arm/predicates.md (shift_nomul_operator): New predicate.
18701         * arm/arm.md (insn_enabled): Delete.
18702         (enabled): Remove insn_enabled test.
18703         (*arith_shiftsi): Delete.  Replace with ...
18704         (*<arith_shift_insn>_multsi): ... new pattern.
18705         (*<arith_shift_insn>_shiftsi): ... new pattern.
18706         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
18707
18708 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
18709             Tom de Vries  <tom@codesourcery.com>
18710
18711         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
18712         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
18713         clobber.
18714         (mips_split_call): Use POST_CALL_TMP_REG.
18715         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
18716
18717 2014-05-29  Tom de Vries  <tom@codesourcery.com>
18718
18719         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
18720         with #ifdef STACK_REGS.
18721
18722 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
18723
18724         * varasm.c (get_variable_section): Walk aliases.
18725         (place_block_symbol): Walk aliases.
18726
18727 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18728
18729         Revert:
18730         2014-05-28  Tom de Vries  <tom@codesourcery.com>
18731
18732         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18733         * lra.c (initialize_lra_reg_info_element): Add init of
18734         actual_call_used_reg_set field.
18735         (lra): Call lra_create_live_ranges before lra_inheritance for
18736         -fuse-caller-save.
18737         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18738         -fuse-caller-save.
18739         * lra-constraints.c (need_for_call_save_p): Use
18740         actual_call_used_reg_set instead of call_used_reg_set for
18741         -fuse-caller-save.
18742         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18743
18744 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18745
18746         * doc/md.texi: Document that the % constraint character must
18747         be at the beginning of the string.
18748         * genoutput.c (validate_insn_alternatives): Check that '=',
18749         '+' and '%' only appear at the beginning of a constraint.
18750         * ira.c (commutative_constraint_p): Delete.
18751         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
18752         at the start of the string.
18753         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
18754         duplicate '='s.
18755         * config/arm/neon.md (bicdi3_neon): Likewise.
18756         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
18757         (slt_si, sltu_si): Likewise.
18758         * config/vax/vax.md (sbcdi3): Likewise.
18759         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
18760         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
18761         (mul64): Move '%' to beginning of constraint.
18762         * config/arm/arm.md (*xordi3_insn): Likewise.
18763         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
18764         (xorsi3): Likewise.
18765
18766 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18767
18768         * doc/md.texi: Document the restrictions on the "enabled" attribute.
18769
18770 2014-05-28  Jason Merrill  <jason@redhat.com>
18771
18772         PR c++/47202
18773         * cgraph.h (symtab_node::get_comdat_group_id): New.
18774         * cgraphunit.c (analyze_functions): Call it.
18775         * symtab.c (dump_symtab_node): Likewise.
18776         * tree.c (decl_comdat_group_id): New.
18777         * tree.h: Declare it.
18778         * lto-streamer-out.c (write_symbol): Use it.
18779         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
18780
18781 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18782
18783         PR bootstrap/PR61146
18784         * wide-int.cc: Do not include longlong.h when compiling with clang.
18785
18786 2014-05-28  Richard Biener  <rguenther@suse.de>
18787
18788         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
18789         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
18790         (vrp_visit_assignment_or_call): Print less vertical space.
18791         (vrp_visit_stmt): Likewise.
18792         (vrp_visit_phi_node): Likewise.  For a PHI argument with
18793         VR_VARYING range consider recording it as copy.
18794
18795 2014-05-28  Richard Biener  <rguenther@suse.de>
18796
18797         Revert
18798         2014-05-28  Richard Biener  <rguenther@suse.de>
18799
18800         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18801
18802 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18803
18804         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
18805         sufficiently aligned and an offset is used at the same time.
18806         (expand_expr_real_1): Likewise.
18807
18808 2014-05-28  Richard Biener  <rguenther@suse.de>
18809
18810         PR middle-end/61045
18811         * fold-const.c (fold_comparison): When folding
18812         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
18813         the sign of the remaining constant operand stays the same.
18814
18815 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
18816
18817         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
18818         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
18819         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
18820         to the assembler.
18821         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
18822         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
18823         (m32bit-doubles) Likewise.
18824         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
18825         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
18826         option for RL78.
18827
18828 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18829
18830         * configure.ac ($gcc_cv_ld_clearcap): New test.
18831         * configure: Regenerate.
18832         * config.in: Regenerate.
18833         * config/sol2.opt (mclear-hwcap): New option.
18834         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
18835         * config/sol2-clearcap.map: Moved here from
18836         testsuite/gcc.target/i386/clearcap.map.
18837         * config/sol2-clearcapv2.map: Move here from
18838         gcc.target/i386/clearcapv2.map.
18839         * config/t-sol2 (install): Depend on install-clearcap-map.
18840         (install-clearcap-map): New target.
18841         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
18842         -mclear-hwcap.
18843
18844 2014-05-28  Richard Biener  <rguenther@suse.de>
18845
18846         * hwint.h (*_HALF_WIDE_INT*): Move to ...
18847         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
18848         ... here and remove the rest.
18849         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
18850
18851 2014-05-28  Richard Biener  <rguenther@suse.de>
18852
18853         PR tree-optimization/61335
18854         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
18855         new range fails, drop to varying.
18856
18857 2014-05-28  Olivier Hainque  <hainque@adacore.com>
18858
18859         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
18860         (CPP_SPEC): Add entry for -mcpu=8548.
18861         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
18862         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
18863
18864 2014-05-28  Tom de Vries  <tom@codesourcery.com>
18865
18866         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
18867         * lra.c (initialize_lra_reg_info_element): Add init of
18868         actual_call_used_reg_set field.
18869         (lra): Call lra_create_live_ranges before lra_inheritance for
18870         -fuse-caller-save.
18871         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
18872         -fuse-caller-save.
18873         * lra-constraints.c (need_for_call_save_p): Use
18874         actual_call_used_reg_set instead of call_used_reg_set for
18875         -fuse-caller-save.
18876         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
18877
18878 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18879             Tom de Vries  <tom@codesourcery.com>
18880
18881         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
18882         to gccoptlist.
18883         (@item -fuse-caller-save): New item.
18884
18885 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18886             Tom de Vries  <tom@codesourcery.com>
18887
18888         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
18889         OPT_fuse_caller_save.
18890
18891 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18892             Tom de Vries  <tom@codesourcery.com>
18893
18894         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
18895         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
18896         get_call_reg_set_usage.
18897         * resource.c (mark_set_resources, mark_target_live_regs): Use
18898         get_call_reg_set_usage.
18899         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
18900         field.
18901         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
18902         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
18903         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18904         * ira-build.c (ira_create_allocno): Init
18905         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18906         (create_cap_allocno, propagate_allocno_info)
18907         (propagate_some_info_from_allocno)
18908         (copy_info_to_removed_store_destinations): Handle
18909         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18910         * ira-costs.c (ira_tune_allocno_costs): Use
18911         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
18912
18913 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
18914             Tom de Vries  <tom@codesourcery.com>
18915
18916         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
18917         and function_used_regs_valid fields.
18918         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
18919         find_all_hard_reg_sets.
18920         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
18921         (get_call_reg_set_usage): New function.
18922         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
18923         * regs.h (get_call_reg_set_usage): Declare.
18924
18925 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18926
18927         PR libgcc/61152
18928         * config/dbx.h (License): Add Runtime Library Exception.
18929         * config/newlib-stdint.h (License): Same.
18930         * config/rtems.h (License): Same
18931         * config/initfini-array.h (License): Same
18932         * config/v850/v850.h (License): Same.
18933         * config/v850/v850-opts.h (License): Same
18934         * config/v850/rtems.h (License): Same.
18935
18936 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
18937
18938         PR target/61044
18939         * doc/extend.texi (Local Labels): Note that label differences are
18940         not supported for AVR.
18941
18942 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
18943             Olivier Hainque  <hainque@adacore.com>
18944
18945         * rtl.h (set_for_reg_notes): Declare.
18946         * emit-rtl.c (set_for_reg_notes): New function.
18947         (set_unique_reg_note): Use it.
18948         * optabs.c (add_equal_note): Likewise
18949
18950 2014-05-27  Andrew Pinski  <apinski@cavium.com>
18951
18952         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
18953         Use <w> for the register in assembly template.
18954         (stack_protect_test): Use the mode of operands[0] for the result.
18955         (stack_protect_test_<mode>): Use <w> for the register
18956         in assembly template.
18957
18958 2014-05-27  DJ Delorie  <dj@redhat.com>
18959
18960         * config/rx/rx.c (add_vector_labels): New.
18961         (rx_output_function_prologue): Call it.
18962         (rx_handle_func_attribute): Don't require empty arguments.
18963         (rx_handle_vector_attribute): New.
18964         (rx_attribute_table): Add "vector" attribute.
18965         * doc/extend.texi (interrupt, vector): Document new/changed
18966         RX-specific attributes.
18967
18968         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
18969
18970 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18971
18972         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
18973         predicate to detect a negative quotient.
18974
18975 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
18976
18977         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
18978         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
18979         Add X - Y CMP 0 to X CMP Y transformation.
18980         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
18981
18982 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
18983
18984         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
18985         before printing.
18986
18987 2014-05-27  Steve Ellcey  <sellcey@mips.com>
18988
18989         * config/mips/mips.c: Add include of cgraph.h.
18990
18991 2014-05-27  Richard Biener  <rguenther@suse.de>
18992
18993         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
18994
18995 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
18996
18997         PR libgcc/61152
18998         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
18999         * config/arm/arm-cores.def (License): Same.
19000         * config/arm/arm-opts.h (License): Same.
19001         * config/arm/aout.h (License): Same.
19002         * config/arm/bpabi.h (License): Same.
19003         * config/arm/elf.h (License): Same.
19004         * config/arm/linux-elf.h (License): Same.
19005         * config/arm/linux-gas.h (License): Same.
19006         * config/arm/netbsd-elf.h (License): Same.
19007         * config/arm/uclinux-eabi.h (License): Same.
19008         * config/arm/uclinux-elf.h (License): Same.
19009         * config/arm/vxworks.h (License): Same.
19010
19011 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19012
19013         * config/arm/neon.md (neon_bswap<mode>): New pattern.
19014         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
19015         (arm_init_neon_builtins): Handle NEON_BSWAP.
19016         Define required type nodes.
19017         (arm_expand_neon_builtin): Handle NEON_BSWAP.
19018         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
19019         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
19020         * config/arm/iterators.md (VDQHSD): New mode iterator.
19021
19022 2014-05-27  Richard Biener  <rguenther@suse.de>
19023
19024         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
19025         Try using literal operands when comparing value-ranges failed.
19026
19027 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
19028
19029         * ira.c (commutative_operand): Adjust for change to recog_data.
19030         [Missing from previous commit.]
19031
19032 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
19033
19034         * system.h (TEST_BIT): New macro.
19035         * recog.h (alternative_mask): New type.
19036         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
19037         (recog_data_d): Replace alternative_enabled_p array with
19038         enabled_alternatives.
19039         (target_recog): New structure.
19040         (default_target_recog, this_target_recog): Declare.
19041         (get_enabled_alternatives, recog_init): Likewise.
19042         * recog.c (default_target_recog, this_target_recog): New variables.
19043         (get_enabled_alternatives): New function.
19044         (extract_insn): Use it.
19045         (recog_init): New function.
19046         (preprocess_constraints, constrain_operands): Adjust for change to
19047         recog_data.
19048         * postreload.c (reload_cse_simplify_operands): Likewise.
19049         * reload.c (find_reloads): Likewise.
19050         * ira-costs.c (record_reg_classes): Likewise.
19051         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
19052         all alternatives after a disabled one would be skipped.
19053         (ira_implicitly_set_insn_hard_regs): Likewise.
19054         * ira.c (ira_setup_alts): Adjust for change to recog_data.
19055         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
19056         with enabled_alternatives.
19057         * lra.c (free_insn_recog_data): Update accordingly.
19058         (lra_update_insn_recog_data): Likewise.
19059         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
19060         * lra-constraints.c (process_alt_operands): Likewise.  Handle
19061         only_alternative as part of the enabled mask.
19062         * target-globals.h (this_target_recog): Declare.
19063         (target_globals): Add a recog field.
19064         (restore_target_globals): Restore this_target_recog.
19065         * target-globals.c: Include recog.h.
19066         (default_target_globals): Initialize recog field.
19067         (save_target_globals): Likewise.
19068         * reginfo.c (reinit_regs): Call recog_init.
19069         * toplev.c (backend_init_target): Likewise.
19070
19071 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
19072
19073         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
19074         rather than any named insn's code.
19075
19076 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
19077
19078         PR libgcc/61152
19079         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
19080         * config/arm/arm-cores.def (License): Same.
19081
19082 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
19083
19084         * tree.h (decl_comdat_group): Declare.
19085         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
19086         * tree.c (decl_comdat_group): Here.
19087
19088 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
19089
19090         PR rtl-optimization/61222
19091         * combine.c (simplify_shift_const_1): When moving a PLUS outside
19092         the shift, truncate the PLUS operand to the result mode.
19093
19094 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
19095
19096         PR target/61271
19097         * config/i386/i386.c (ix86_rtx_costs)
19098         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
19099         Fix condition.
19100
19101 2014-05-26  Martin Jambor  <mjambor@suse.cz>
19102
19103         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
19104         subreg uses.
19105
19106 2014-05-26  Richard Biener  <rguenther@suse.de>
19107
19108         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
19109         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
19110         Provide specializations.
19111         (wi::int_traits <HOST_WIDE_INT>,
19112         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
19113
19114 2014-05-26  Alan Modra  <amodra@gmail.com>
19115
19116         PR target/61098
19117         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
19118         params and return a bool.  Remove dead code.  Update comment.
19119         Assert we have a const_int source.  Remove bogus code from
19120         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
19121         handling of constants > 2G and reg_equal note, from..
19122         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
19123         return value.  Update comment.  If we can, use a new pseudo
19124         for intermediate calculations.
19125         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
19126         prototype.
19127         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
19128         call to rs6000_emit_set_const in splitter.
19129         (movdi_internal64+2, +3): Likewise.
19130
19131 2014-05-26  Richard Biener  <rguenther@suse.de>
19132
19133         * system.h: Define __STDC_FORMAT_MACROS before
19134         including inttypes.h.
19135         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
19136         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
19137         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
19138         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
19139         HOST_WIDEST_INT_C): Remove.
19140         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
19141         if C99 inttypes.h is not available.
19142         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
19143         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
19144         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
19145         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
19146         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
19147         (struct output_info): Likewise.
19148         (print_statistics): Adjust.
19149         (dump_bitmap_statistics): Likewise.
19150         * bt-load.c (migrate_btr_defs): Print with PRId64.
19151         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
19152         (MAX_SAFE_MULTIPLIER): Adjust.
19153         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
19154         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
19155         dump_cgraph_node): Likewise.
19156         * final.c (dump_basic_block_info): Likewise.
19157         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
19158         * gcov.c (format_gcov): Likewise.
19159         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
19160         for calculation.
19161         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
19162         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
19163         (inline_small_functions, dump_overall_stats, dump_inline_stats):
19164         Use PRId64 for dumping.
19165         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
19166         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
19167         (add_allocno_hard_regs): Adjust.
19168         * loop-doloop.c (doloop_modify): Print using PRId64.
19169         * loop-iv.c (inverse): Compute in uint64_t.
19170         (determine_max_iter, iv_number_of_iterations): Likewise.
19171         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
19172         Print using PRId64.
19173         * lto-streamer-out.c (write_symbol): Use uint64_t.
19174         * mcf.c (CAP_INFINITY): Use int64_t maximum.
19175         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
19176         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
19177         * modulo-sched.c (const_iteration_count): Use int64_t.
19178         (sms_schedule): Dump using PRId64.
19179         * predict.c (dump_prediction): Likewise.
19180         * pretty-print.h (pp_widest_integer): Remove.
19181         * profile.c (get_working_sets, is_edge_inconsistent,
19182         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
19183         * tree-pretty-print.c (pp_double_int): Remove case handling
19184         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
19185         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
19186         and adjust users.
19187         (pass_optimize_bswap::execute): Remove restriction on hosts.
19188         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
19189         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
19190         * tree.c (widest_int_cst_value): Remove.
19191         * tree.h (widest_int_cst_value): Likewise.
19192         * value-prof.c (dump_histogram_value): Print using PRId64.
19193         * gengtype.c (main): Also inject int64_t.
19194         * ggc-page.c (struct max_alignment): Use int64_t.
19195         * alloc-pool.c (struct allocation_object_def): Likewise.
19196         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
19197         for computation.
19198         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
19199         * doc/tm.texi: Regenerated.
19200         * gengtype-lex.l (IWORD): Handle [u]int64_t.
19201         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
19202         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
19203         mmix_output_register_setting): Use [u]int64_t in prototypes.
19204         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
19205         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
19206         mmix_output_octa, mmix_output_shifted_value): Adjust.
19207         (mmix_intval): Adjust.  Remove unreachable case.
19208         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
19209
19210 2014-05-26  Richard Biener  <rguenther@suse.de>
19211
19212         * configure.ac: Drop __int64 type check.  Insist that we
19213         found uint64_t and int64_t.
19214         * hwint.h (HOST_BITS_PER___INT64): Remove.
19215         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
19216         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
19217         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
19218         (HOST_WIDEST_FAST_INT): Remove __int64 case.
19219         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
19220         for dst_q_src_df_rms_cdt.
19221         * configure: Regenerate.
19222         * config.in: Likewise.
19223
19224 2014-05-26  Michael Tautschnig  <mt@debian.org>
19225
19226         PR target/61249
19227         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
19228         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
19229
19230 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19231
19232         PR rtl-optimization/61278
19233         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
19234
19235 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19236
19237         PR rtl-optimization/61220
19238         Part of PR rtl-optimization/61225
19239         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
19240         insn; skip split_edge for a block with only one successor.
19241
19242 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19243
19244         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
19245         for variables.
19246
19247 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19248
19249         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
19250         (update_vtable_references): New function.
19251         (function_and_variable_visibility): Rewrite also vtable initializers.
19252         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
19253
19254 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19255
19256         * ggc.h (ggc_grow): New function.
19257         * ggc-none.c (ggc_grow): New function.
19258         * ggc-page.c (ggc_grow): Likewise.
19259
19260 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19261
19262         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
19263         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
19264         comdat_can_be_unshared_p, cgraph_externally_visible_p,
19265         varpool_externally_visible_p, can_replace_by_local_alias,
19266         update_visibility_by_resolution_info, function_and_variable_visibility,
19267         pass_data_ipa_function_and_variable_visibility,
19268         make_pass_ipa_function_and_variable_visibility,
19269         whole_program_function_and_variable_visibility,
19270         pass_data_ipa_whole_program_visibility,
19271         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
19272         * cgraph.h (cgraph_local_node_p): Declare.
19273         * ipa-visibility.c: New file.
19274         * Makefile.in (OBJS): Add ipa-visiblity.o
19275
19276 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19277
19278         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
19279         that var decl is available.
19280
19281 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19282
19283         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
19284         symtab_node pointer.
19285         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
19286         (find_decls_types_r): Do not walk COMDAT_GROUP.
19287         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
19288         * varasm.c (make_decl_one_only): Use set_comdat_group;
19289         create node if needed.
19290         * ipa-inline-transform.c (save_inline_function_body): Update
19291         way we decl->symtab mapping.
19292         * symtab.c (symtab_hash, hash_node, eq_node
19293         symtab_insert_node_to_hashtable): Remove.
19294         (symtab_register_node): Update.
19295         (symtab_unregister_node): Update.
19296         (symtab_get_node): Reimplement as inline function.
19297         (symtab_add_to_same_comdat_group): Update.
19298         (symtab_dissolve_same_comdat_group_list): Update.
19299         (dump_symtab_base): Update.
19300         (verify_symtab_base): Update.
19301         (symtab_make_decl_local): Update.
19302         (fixup_same_cpp_alias_visibility): Update.
19303         (symtab_nonoverwritable_alias): Update.
19304         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
19305         * ipa.c (update_visibility_by_resolution_info): UPdate.
19306         * bb-reorder.c: Include cgraph.h
19307         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
19308         with comdat groups.
19309         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
19310         * cgraph.c (cgraph_get_create_node): Update.
19311         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
19312         and comdat_group_.
19313         (symtab_get_node): Make inline.
19314         (symtab_insert_node_to_hashtable): Remove.
19315         (symtab_can_be_discarded): Update.
19316         (decl_comdat_group): New function.
19317         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
19318         Update.
19319         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
19320         comdat group name.
19321         (read_comdat_group): New function.
19322         (input_node, input_varpool_node): Use it.
19323         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
19324         comdat groups.
19325         * mips.c (mips_start_unique_function): Likewise.
19326         (ix86_code_end): Likewise.
19327         (rs6000_code_end): Likweise.
19328         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
19329
19330 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19331
19332         * gengtype-state.c (fatal_reading_state): Bring offline.
19333         * optabs.c (widening_optab_handler): Bring offline.
19334         * optabs.h (widening_optab_handler): Likewise.
19335         * final.c (get_attr_length_1): Likewise.
19336
19337 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
19338
19339         * sched-int.h (sd_iterator_cond): Manually tail recurse.
19340
19341 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19342
19343         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
19344         (ppc440-compare): Include shift with dot.
19345         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
19346         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
19347         without dot.
19348         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
19349         without dot.
19350         (e6500_sfx2): Include it.
19351         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
19352         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19353         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
19354         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
19355         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
19356         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
19357         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
19358         *lshiftrt_internal1le, *lshiftrt_internal1be,
19359         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
19360         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
19361         *rotldi3_internal10le, *rotldi3_internal10be,
19362         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
19363         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
19364         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
19365         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
19366         define_insns): Use type "shift" in the appropriate alternatives.
19367
19368 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19369
19370         * config/rs6000/rs6000.md (type): Add "logical".  Delete
19371         "fast_compare".
19372         (dot): Adjust comment.
19373         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
19374         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
19375         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
19376         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
19377         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
19378         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
19379         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
19380         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19381
19382         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19383         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19384         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19385         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19386         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19387         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19388         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19389         * config/rs6000/8540.md (ppc8540_su): Adjust.
19390         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19391         cell-cmp-microcoded): Adjust.
19392         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19393         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19394         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19395         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19396         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19397         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19398         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19399         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19400         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19401         Adjust.
19402         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19403         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
19404         Adjust.  Adjust comment.
19405         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19406         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19407
19408 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19409
19410         * config/rs6000/rs6000.md (type): Add "add".
19411         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
19412         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
19413         define_insns): Use it.
19414         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
19415
19416         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19417         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
19418         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19419         * config/rs6000/601.md (ppc601-integer): Adjust.
19420         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19421         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19422         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19423         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19424         * config/rs6000/8540.md (ppc8540_su): Adjust.
19425         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19426         cell-cmp-microcoded): Adjust.
19427         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
19428         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19429         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
19430         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
19431         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
19432         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19433         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
19434         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
19435         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
19436         Adjust.
19437         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
19438         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
19439         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19440         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
19441
19442 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19443
19444         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
19445         "delayed_compare", "var_delayed_compare".
19446         (var_shift): New attribute.
19447         (cell_micro): Adjust.
19448         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
19449         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
19450         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
19451         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
19452         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
19453         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
19454         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
19455         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
19456         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
19457         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
19458         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
19459         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
19460         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
19461         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
19462         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
19463         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
19464         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
19465         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
19466         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
19467         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
19468         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
19469         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
19470         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
19471         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19472         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19473
19474         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
19475         * config/rs6000/440.md (ppc440-integer): Adjust.
19476         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
19477         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
19478         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
19479         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
19480         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
19481         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
19482         * config/rs6000/8540.md (ppc8540_su): Adjust.
19483         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19484         cell-cmp-microcoded): Adjust.
19485         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
19486         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19487         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
19488         e500mc64_delayed): Adjust.
19489         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
19490         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
19491         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
19492         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
19493         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
19494         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
19495         power6-delayed-compare, power6-var-delayed-compare): Adjust.
19496         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
19497         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
19498         Adjust comment.
19499         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
19500         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19501
19502 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19503
19504         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
19505         (bits): New mode_attr.
19506         (idiv_ldiv): Delete mode_attr.
19507         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
19508         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19509         rs6000_adjust_priority, is_nonpipeline_insn,
19510         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19511
19512         * config/rs6000/40x.md (ppc403-idiv): Adjust.
19513         * config/rs6000/440.md (ppc440-idiv): Adjust.
19514         * config/rs6000/476.md (ppc476-idiv): Adjust.
19515         * config/rs6000/601.md (ppc601-idiv): Adjust.
19516         * config/rs6000/603.md (ppc603-idiv): Adjust.
19517         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
19518         ppc620-ldiv): Adjust.
19519         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
19520         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
19521         * config/rs6000/8540.md (ppc8540_divide): Adjust.
19522         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
19523         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
19524         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
19525         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
19526         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
19527         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
19528         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
19529         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
19530         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
19531         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
19532         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
19533         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
19534         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
19535         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
19536         * config/rs6000/titan.md (titan_fxu_div): Adjust.
19537
19538 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19539
19540         * config/rs6000/rs6000.md (type): Delete "insert_word",
19541         "insert_dword".  Add "insert".
19542         (size): Update comment.
19543         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19544         insn_must_be_first_in_group): Adjust.
19545         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
19546         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
19547         *insvsi_internal6, insvdi_internal): Adjust.
19548
19549         * config/rs6000/40x.md (ppc403-integer): Adjust.
19550         * config/rs6000/440.md (ppc440-integer): Adjust.
19551         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
19552         * config/rs6000/601.md (ppc601-integer): Adjust.
19553         * config/rs6000/603.md (ppc603-integer): Adjust.
19554         * config/rs6000/6xx.md (ppc604-integer): Adjust.
19555         * config/rs6000/7450.md (ppc7450-integer): Adjust.
19556         * config/rs6000/7xx.md (ppc750-integer): Adjust.
19557         * config/rs6000/8540.md (ppc8540_su): Adjust.
19558         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
19559         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
19560         * config/rs6000/e500mc.md (e500mc_su): Adjust.
19561         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
19562         * config/rs6000/e5500.md (e5500_sfx): Adjust.
19563         * config/rs6000/e6500.md (e6500_sfx): Adjust.
19564         * config/rs6000/mpc.md (mpccore-integer): Adjust.
19565         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
19566         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
19567         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
19568         * config/rs6000/power7.md (power7-integer): Adjust.
19569         * config/rs6000/power8.md (power8-1cyc): Adjust.
19570         * config/rs6000/rs64.md (rs64a-integer): Adjust.
19571         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
19572
19573 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19574
19575         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
19576         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
19577         (size): New attribute.
19578         (dot): New attribute.
19579         (cell_micro): Adjust.
19580         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
19581         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
19582         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
19583         umuldi3_highpart): Adjust.
19584         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
19585         rs6000_adjust_priority, is_nonpipeline_insn,
19586         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
19587
19588         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
19589         ppc405-imul3): Adjust.
19590         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
19591         * config/rs6000/476.md (ppc476-imul): Adjust.
19592         * config/rs6000/601.md (ppc601-imul): Adjust.
19593         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
19594         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
19595         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
19596         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
19597         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
19598         Adjust.
19599         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
19600         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
19601         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
19602         cell-imul): Adjust.
19603         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
19604         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
19605         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
19606         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
19607         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
19608         * config/rs6000/mpc.md (mpccore-imul): Adjust.
19609         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
19610         power4-lmul, power4-imul, power4-imul3): Adjust.
19611         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
19612         power5-lmul, power5-imul, power5-imul3): Adjust.
19613         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
19614         power6-lmul, power6-imul, power6-imul3): Adjust.
19615         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
19616         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
19617
19618         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
19619         rs64a-lmul): Adjust.
19620         * config/rs6000/titan.md (titan_imul): Adjust.
19621
19622 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19623
19624         * config/rs6000/rs6000.md (type): Add new value "halfmul".
19625         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
19626         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
19627         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
19628         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
19629         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
19630         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
19631         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
19632         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
19633         * config/rs6000/titan.md: Delete nonsensical comment.
19634         (titan_imul): Add type imul3.
19635         (titan_mulhw): Remove type imul3; add type halfmul.
19636
19637 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
19638
19639         * config/rs6000/rs6000.md (type): Reorder, reformat.
19640
19641 2014-05-23  Martin Jambor  <mjambor@suse.cz>
19642
19643         PR tree-optimization/53787
19644         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
19645         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
19646         analysis_done, update all uses.
19647         * ipa-prop.c: Include domwalk.h
19648         (param_analysis_info): Removed.
19649         (param_aa_status): New type.
19650         (ipa_bb_info): Likewise.
19651         (func_body_info): Likewise.
19652         (ipa_get_bb_info): New function.
19653         (aa_overwalked): Likewise.
19654         (find_dominating_aa_status): Likewise.
19655         (parm_bb_aa_status_for_bb): Likewise.
19656         (parm_preserved_before_stmt_p): Changed to use new param AA info.
19657         (load_from_unmodified_param): Accept func_body_info as a parameter
19658         instead of parms_ainfo.
19659         (parm_ref_data_preserved_p): Changed to use new param AA info.
19660         (parm_ref_data_pass_through_p): Likewise.
19661         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
19662         (compute_complex_assign_jump_func): Changed to use new param AA info.
19663         (compute_complex_ancestor_jump_func): Likewise.
19664         (ipa_compute_jump_functions_for_edge): Likewise.
19665         (ipa_compute_jump_functions): Removed.
19666         (ipa_compute_jump_functions_for_bb): New function.
19667         (ipa_analyze_indirect_call_uses): Likewise, moved variable
19668         declarations down.
19669         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
19670         and info, moved variable declarations down.
19671         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
19672         node and info.
19673         (ipa_analyze_stmt_uses): Likewise.
19674         (ipa_analyze_params_uses): Removed.
19675         (ipa_analyze_params_uses_in_bb): New function.
19676         (ipa_analyze_controlled_uses): Likewise.
19677         (free_ipa_bb_info): Likewise.
19678         (analysis_dom_walker): New class.
19679         (ipa_analyze_node): Handle node-specific forbidden analysis,
19680         initialize and free func_body_info, use dominator walker.
19681         (ipcp_modif_dom_walker): New class.
19682         (ipcp_transform_function): Create and free func_body_info, use
19683         ipcp_modif_dom_walker, moved a lot of functionality there.
19684
19685 2014-05-23  Marek Polacek  <polacek@redhat.com>
19686             Jakub Jelinek  <jakub@redhat.com>
19687
19688         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
19689         * gcc.c (sanitize_spec_function): Likewise.
19690         * convert.c (convert_to_integer): Include "ubsan.h".  Add
19691         floating-point to integer instrumentation.
19692         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
19693         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
19694         SANITIZE_NONDEFAULT.
19695         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
19696         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
19697         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
19698         * ubsan.c: Include "realmpfr.h" and "dfp.h".
19699         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
19700         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
19701         float/double/long double.
19702         (ubsan_instrument_float_cast): New function.
19703         * ubsan.h (ubsan_instrument_float_cast): Declare.
19704
19705 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
19706
19707         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
19708         predicate.
19709         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
19710         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
19711         Adjust for tailcalling through registers.
19712         * config/aarch64/aarch64.h (enum reg_class): New caller save
19713         register class.
19714         (REG_CLASS_NAMES): Likewise.
19715         (REG_CLASS_CONTENTS): Likewise.
19716         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
19717         Allow tailcalling without decls.
19718
19719 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19720
19721         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19722         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
19723
19724         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
19725         gsi, and variables v_* to v*.
19726
19727 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
19728
19729         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
19730
19731 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
19732
19733         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
19734         * omp-low.c: Update accordingly.
19735
19736         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
19737         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
19738         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
19739         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
19740         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
19741         GF_OMP_TARGET_KIND_UPDATE.
19742
19743         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
19744         Explicitly enumerate the expected region types.
19745
19746 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
19747
19748         PR other/56955
19749         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
19750         documentation; the old documentation didn't clearly state the
19751         constraints on the contents of the pointed-to storage.
19752
19753 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19754
19755         Fix bootstrap error on ia64
19756         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
19757         Return default value.
19758
19759 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19760
19761         PR tree-optimization/54733
19762         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
19763         (CMPNOP): Define.
19764         (find_bswap_or_nop_load): New.
19765         (find_bswap_1): Renamed to ...
19766         (find_bswap_or_nop_1): This. Also add support for memory source.
19767         (find_bswap): Renamed to ...
19768         (find_bswap_or_nop): This. Also add support for memory source and
19769         detection of bitwise operations equivalent to load in target
19770         endianness.
19771         (execute_optimize_bswap): Likewise. Also move its leading comment back
19772         in place and split statement transformation into ...
19773         (bswap_replace): This.
19774
19775 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19776
19777         PR rtl-optimization/61215
19778         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
19779         simplify_gen_subreg until final substitution.
19780
19781 2014-05-23  Alan Modra  <amodra@gmail.com>
19782
19783         PR target/61231
19784         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
19785         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
19786         Use "Y" constraint rather than "m".
19787
19788 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
19789
19790         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
19791         define.
19792         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
19793         New function declaration.
19794         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
19795         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
19796         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
19797         (aarch64_init_builtins) : Initialize builtins
19798         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19799         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19800         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
19801         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
19802         and __builtins_aarch64_set_fpsr.
19803         (aarch64_atomic_assign_expand_fenv): New function.
19804         * config/aarch64/aarch64.md (set_fpcr): New pattern.
19805         (get_fpcr) : Likewise.
19806         (set_fpsr) : Likewise.
19807         (get_fpsr) : Likewise.
19808         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
19809          and UNSPECV_SET_FPSR.
19810         * doc/extend.texi (AARCH64 Built-in Functions) : Document
19811         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
19812         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
19813
19814 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
19815
19816         PR rtl-optimization/60969
19817         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
19818         constraints.  Set up mem cost for NO_REGS case.
19819
19820 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
19821
19822         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
19823
19824 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
19825
19826         * config/darwin.c: Include "lto-section-names.h".
19827         (LTO_SEGMENT_NAME): Don't define.
19828         * config/i386/winnt.c: Include "lto-section-names.h".
19829         * lto-streamer.c: Include "lto-section-names.h".
19830         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
19831         * lto-wrapper.c: Include "lto-section-names.h".
19832         (LTO_SECTION_NAME_PREFIX): Don't define.
19833         * lto-section-names.h: New file.
19834         * cgraphunit.c: Include "lto-section-names.h".
19835
19836 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
19837
19838         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
19839
19840 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
19841
19842         PR target/61208
19843         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
19844
19845 2014-05-22  Nick Clifton  <nickc@redhat.com>
19846
19847         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
19848
19849 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
19850
19851         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
19852         -> (T)A transformation to integer types.
19853
19854 2014-05-22  Teresa Johnson  <tejohnson@google.com>
19855
19856         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
19857         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
19858         (gcov_rewrite): Use gcov_nonruntime_assert.
19859         (gcov_open): Ditto.
19860         (gcov_write_words): Ditto.
19861         (gcov_write_length): Ditto.
19862         (gcov_read_words): Use gcov_nonruntime_assert, and remove
19863         gcc_assert from IN_LIBGCOV code.
19864         (gcov_read_summary): Use gcov_error to flag profile corruption.
19865         (gcov_sync): Use gcov_nonruntime_assert.
19866         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
19867         (gcov_histo_index): Use gcov_nonruntime_assert.
19868         (static void gcov_histogram_merge): Ditto.
19869         (compute_working_sets): Ditto.
19870         * gcov-io.h (gcov_nonruntime_assert): Define.
19871         (gcov_error): Define for !IN_LIBGCOV
19872
19873 2014-05-22  Richard Biener  <rguenther@suse.de>
19874
19875         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19876         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
19877         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
19878         and deallocation site.
19879         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19880         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
19881         passing through the incoming points-to set.
19882         (handle_lhs_call): Use flags argument instead of recomputing it.
19883         (find_func_aliases_for_call): Call handle_lhs_call with proper
19884         call return flags.
19885
19886 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
19887
19888         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
19889         all padding bits in REAL_VALUE_TYPE are cleared.
19890
19891 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19892
19893         Cleanup and improve multipass_dfa_lookahead_guard
19894         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
19895         (core2i7_first_cycle_multipass_begin,)
19896         (core2i7_first_cycle_multipass_issue,)
19897         (core2i7_first_cycle_multipass_backtrack): Update signature.
19898         * config/ia64/ia64.c
19899         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
19900         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
19901         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
19902         hook definition.
19903         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
19904         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
19905         values.
19906         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
19907         return values.
19908         * doc/tm.texi: Regenerate.
19909         * doc/tm.texi.in
19910         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
19911         * haifa-sched.c (ready_try): Make signed to allow negative values.
19912         (rebug_ready_list_1): Update.
19913         (choose_ready): Simplify.
19914         (sched_extend_ready_list): Update.
19915
19916 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19917
19918         Remove IA64 speculation tweaking flags
19919         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
19920         speculation tuning flags.
19921         (msched-prefer-non-data-spec-insns,)
19922         (msched-prefer-non-control-spec-insns): Obsolete options.
19923         * haifa-sched.c (choose_ready): Remove handling of
19924         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19925         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
19926         and PREFER_NON_DATA_SPEC.
19927         * sel-sched.c (process_spec_exprs): Remove handling of
19928         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
19929
19930 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19931
19932         Improve scheduling debug output
19933         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
19934         (advance_one_cycle): Update.
19935         (schedule_insn, queue_to_ready): Add debug printouts.
19936         (debug_ready_list_1): New static function.
19937         (debug_ready_list): Update.
19938         (max_issue): Add debug printouts.
19939         (dump_insn_stream): New static function.
19940         (schedule_block): Use it.  Also better indent printouts.
19941
19942 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19943
19944         Fix sched_insn debug counter
19945         * haifa-sched.c (schedule_insn): Update.
19946         (struct haifa_saved_data): Add nonscheduled_insns_begin.
19947         (save_backtrack_point, restore_backtrack_point): Update.
19948         (first_nonscheduled_insn): New static function.
19949         (queue_to_ready, choose_ready): Use it.
19950         (schedule_block): Init nonscheduled_insns_begin.
19951         (sched_emit_insn): Update.
19952
19953
19954 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
19955
19956         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
19957         to GENERAL_REGS.
19958         (aarch64_secondary_reload) : LikeWise.
19959         (aarch64_class_max_nregs) : Remove CORE_REGS.
19960         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
19961         (REG_CLASS_NAMES) : Likewise.
19962         (REG_CLASS_CONTENTS) : LikeWise.
19963         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
19964
19965 2014-05-21  Guozhi Wei  <carrot@google.com>
19966
19967         PR target/61202
19968         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
19969         constraint.
19970         (vqdmulhq_n_s16): Likewise.
19971
19972 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
19973
19974         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
19975
19976 2014-05-21  Marek Polacek  <polacek@redhat.com>
19977
19978         PR sanitizer/61272
19979         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
19980
19981 2014-05-21  Martin Jambor  <mjambor@suse.cz>
19982
19983         * doc/invoke.texi (Optimize Options): Document parameters
19984         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
19985         ipa-cp-array-index-hint-bonus.
19986
19987 2014-05-21  Mark Wielaard  <mjw@redhat.com>
19988
19989         PR debug/16063
19990         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
19991         version >= 3 or not strict DWARF.
19992         * langhooks.h (struct lang_hooks_for_types): Add
19993         enum_underlying_base_type.
19994         * langhooks.c (lhd_enum_underlying_base_type): New function.
19995         * gcc/langhooks.h (struct lang_hooks_for_types): Add
19996         enum_underlying_base_type.
19997         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
19998         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
19999         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
20000
20001 2014-05-21  Richard Biener  <rguenther@suse.de>
20002
20003         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
20004
20005 2014-05-21  John Marino  <gnugcc@marino.st>
20006
20007         * config.gcc (*-*-dragonfly*): New target.
20008         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
20009         * configure: Regenerate.
20010         * config/dragonfly-stdint.h: New.
20011         * config/dragonfly.h: New.
20012         * config/dragonfly.opt: New.
20013         * config/i386/dragonfly.h: New.
20014         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
20015
20016 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
20017
20018         * tree.def (VOID_CST): New.
20019         * tree-core.h (TI_VOID): New.
20020         * tree.h (void_node): New.
20021         * tree.c (tree_node_structure_for_code, tree_code_size)
20022         (iterative_hash_expr): Handle VOID_CST.
20023         (build_common_tree_nodes): Initialize void_node.
20024
20025 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
20026
20027         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
20028         functions.
20029         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
20030
20031         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
20032         more places.
20033
20034         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
20035         flag_reorder_blocks_and_partition.
20036         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
20037
20038 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
20039
20040         PR target/54236
20041         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
20042         constraints.
20043         (*addc_r_t): Add new insn_and_split.
20044
20045 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
20046
20047         PR middle-end/61252
20048         * omp-low.c (handle_simd_reference): New function.
20049         (lower_rec_input_clauses): Use it.  Defer adding reference
20050         initialization even for reduction without placeholder if in simd,
20051         handle it properly later on.
20052
20053 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
20054
20055         PR tree-optimization/60899
20056         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
20057         assume all static symbols will have definition wile parsing and
20058         check the do have definition later in compilation; check that
20059         variable referring symbol will be output before concluding that
20060         reference is safe; be conservative for referring local statics;
20061         be more precise about when comdat is output in other partition.
20062
20063 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
20064
20065         PR bootstrap/60984
20066         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
20067         parameter.
20068         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
20069         (ipa_inline): Loop inline_to_all_callers until no more aliases
20070         are removed.
20071
20072 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
20073
20074         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
20075         set writeonly flag only for vars actually written to.
20076
20077 2014-05-20  Dehao Chen  <dehao@google.com>
20078
20079         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
20080         and callee count to get clone count.
20081         * tree-inline.c (expand_call_inline): Use callee count instead of bb
20082         count in copy_body.
20083
20084 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
20085
20086         PR rtl-optimization/61243
20087         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
20088
20089 2014-05-20  Xinliang David Li  <davidxl@google.com>
20090
20091         * cgraphunit.c (walk_polymorphic_call_targets): Add
20092         dbgcnt and fopt-info support.
20093         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
20094         * ipa-devirt.c (ipa_devirt): Ditto.
20095         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
20096         * ipa.c (walk_polymorphic_call_targets): Ditto.
20097         * gimple-fold.c (fold_gimple_assign): Ditto.
20098         (gimple_fold_call): Ditto.
20099         * dbgcnt.def: New counter.
20100
20101 2014-05-20  DJ Delorie  <dj@redhat.com>
20102
20103         * config/msp430/msp430.md (split): Don't allow subregs when
20104         splitting SImode adds.
20105         (andneghi): Fix subtraction logic.
20106         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
20107
20108 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
20109
20110         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
20111         symbols.
20112         * except.c (switch_to_exception_section, resolve_unique_section,
20113         get_named_text_section, default_function_rodata_section,
20114         align_variable, get_block_for_decl, default_section_type_flags):
20115         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
20116         * symtab.c (symtab_add_to_same_comdat_group,
20117         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
20118         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
20119         Likewise.
20120         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
20121         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
20122         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
20123         (c6x_function_in_section_p): Likewise.
20124         * config/darwin.c (machopic_select_section): Likewise.
20125         * config/arm/arm.c (arm_function_in_section_p): Likewise.
20126         * config/mips/mips.c (mips_function_rodata_section): Likewise.
20127         * config/mep/mep.c (mep_select_section): LIkewise.
20128         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
20129
20130 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
20131
20132         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
20133         EH region of calls to pure functions that can throw an exception.
20134         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
20135         (copy_reference_ops_from_call): Also copy the EH region of the call if
20136         it can throw an exception.
20137
20138 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20139
20140         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
20141         nested VEC_SELECTs that are inverses of each other.
20142
20143 2014-05-20  Richard Biener  <rguenther@suse.de>
20144
20145         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
20146         (extract_and_process_scc_for_name): not here.
20147         (cond_dom_walker::before_dom_children): Only process
20148         stmts that end the BB in interesting ways.
20149         (run_scc_vn): Mark param uses as visited.
20150
20151 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20152
20153         * config/arm/arm.md (arith_shiftsi): Do not predicate for
20154         arm_restrict_it.
20155
20156 2014-05-20  Nick Clifton  <nickc@redhat.com>
20157
20158         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
20159         (msp430_gimplify_va_arg_expr): New function.
20160         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
20161
20162         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
20163         operand 0 in order to prevent confusion about the number of
20164         registers involved.
20165
20166 2014-05-20  Richard Biener  <rguenther@suse.de>
20167
20168         PR tree-optimization/61221
20169         * tree-ssa-pre.c (el_to_update): Remove.
20170         (eliminate_dom_walker::before_dom_children): Handle released
20171         VDEFs by value-numbering them to the associated VUSE.  Update
20172         stmt immediately for substituted call address.
20173         (eliminate): Remove delayed stmt updating code.
20174         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
20175         possibly late re-numbered vuses.
20176         (vn_reference_lookup_2): Adjust.
20177         (vn_reference_lookup_pieces): Likewise.
20178         (vn_reference_lookup): Likewise.
20179
20180 2014-05-20  Richard Biener  <rguenther@suse.de>
20181
20182         * config.gcc: Remove need_64bit_hwint.
20183         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
20184         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
20185         it to be true.
20186         * config.in: Regenerate.
20187         * configure: Likewise.
20188
20189 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
20190
20191         * doc/extend.texi: Create Label Attributes section,
20192         move all label attributes into it and reference it.
20193
20194 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
20195
20196         * arm.c (thumb1_reorg): When scanning backwards skip anything
20197         that's not a proper insn.
20198
20199 2014-05-19  Richard Biener  <rguenther@suse.de>
20200
20201         PR tree-optimization/61221
20202         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20203         Do nothing for unreachable blocks.
20204         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
20205         Improve unreachability detection.
20206
20207 2014-05-19  Richard Biener  <rguenther@suse.de>
20208
20209         PR tree-optimization/61209
20210         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
20211
20212 2014-05-19  Nick Clifton  <nickc@redhat.com>
20213
20214         * except.c (init_eh): Fix computation of builtin setjmp buffer
20215         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
20216
20217 2014-05-19  Richard Biener  <rguenther@suse.de>
20218
20219         PR tree-optimization/61184
20220         * tree-vrp.c (is_negative_overflow_infinity): Use
20221         TREE_OVERFLOW_P and do that check first.
20222         (is_positive_overflow_infinity): Likewise.
20223         (is_overflow_infinity): Likewise.
20224         (vrp_operand_equal_p): Properly treat operands with
20225         differing overflow as not equal.
20226
20227 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
20228
20229         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
20230         shift simplification where it was intended.
20231
20232 2014-05-19  Christian Bruel  <christian.bruel@st.com>
20233
20234         PR target/61195
20235         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
20236
20237 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
20238
20239         PR target/61084
20240         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
20241         than wide_int.
20242
20243 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20244
20245         * reg-notes.def (CROSSING_JUMP): Likewise.
20246         * rtl.h (rtx_def): Update comment for jump flag.
20247         (CROSSING_JUMP_P): Define.
20248         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
20249         of a REG_CROSSING_JUMP note.
20250         * cfghooks.c (tidy_fallthru_edges): Likewise.
20251         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
20252         * emit-rtl.c (try_split): Likewise.
20253         * haifa-sched.c (sched_create_recovery_edges): Likewise.
20254         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
20255         * jump.c (redirect_jump_2): Likewise.
20256         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
20257         (relax_delay_slots): Likewise.
20258         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
20259         (bbit_di): Likewise.
20260         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
20261         * config/sh/sh.md (jump_compact): Likewise.
20262         * bb-reorder.c (rotate_loop): Likewise.
20263         (pass_duplicate_computed_gotos::execute): Likewise.
20264         (add_reg_crossing_jump_notes): Rename to...
20265         (update_crossing_jump_flags): ...this.
20266         (pass_partition_blocks::execute): Update accordingly.
20267
20268 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20269
20270         * tree.h: Remove extraneous template <>.
20271
20272 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20273
20274         * ipa.c (symtab_remove_unreachable_nodes): Remove
20275         symbol from comdat group if its body was eliminated.
20276         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
20277         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
20278         (symtab_unregister_node): ... this one.
20279         (verify_symtab_base): More strict checking of comdats.
20280         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
20281
20282 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20283
20284         * tree-pass.h (make_pass_ipa_comdats): New pass.
20285         * timevar.def (TV_IPA_COMDATS): New timevar.
20286         * passes.def (pass_ipa_comdats): Add.
20287         * Makefile.in (OBJS): Add ipa-comdats.o
20288         * ipa-comdats.c: New file.
20289
20290 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20291
20292         * ipa.c (update_visibility_by_resolution_info): New function.
20293         (function_and_variable_visibility): Use it.
20294
20295 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
20296
20297         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
20298         New functions.
20299         (FOR_EACH_DEFINED_SYMBOL): New macro.
20300         (varpool_first_static_initializer, varpool_next_static_initializer,
20301         varpool_first_defined_variable, varpool_next_defined_variable):
20302         Fix comments.
20303         (symtab_in_same_comdat_p): Correctly deal with inline functions.
20304
20305 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20306
20307         * ggc-page.c (ggc_handle_finalizers): Add comment.
20308
20309 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20310
20311         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
20312         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
20313         (ggc_internal_cleared_alloc): Likewise.
20314         * ggc-page.c (finalizer): New class.
20315         (vec_finalizer): Likewise.
20316         (globals::finalizers): New member.
20317         (globals::vec_finalizers): Likewise.
20318         (ggc_internal_alloc): Record the finalizer if any for the block being
20319         allocated.
20320         (ggc_handle_finalizers): New function.
20321         (ggc_collect): Call ggc_handle_finalizers.
20322         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
20323         finalizer.
20324         (ggc_internal_cleared_alloc): Likewise.
20325         (finalize): New function.
20326         (need_finalization_p): Likewise.
20327         (ggc_alloc): Install the type's destructor as the finalizer if it
20328         might do something.
20329         (ggc_cleared_alloc): Likewise.
20330         (ggc_vec_alloc): Likewise.
20331         (ggc_cleared_vec_alloc): Likewise.
20332
20333 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20334
20335         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
20336
20337 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20338
20339         * alias.c (record_alias_subset): Adjust.
20340         * bitmap.c (bitmap_element_allocate): Likewise.
20341         (bitmap_gc_alloc_stat): Likewise.
20342         * cfg.c (init_flow): Likewise.
20343         (alloc_block): Likewise.
20344         (unchecked_make_edge): Likewise.
20345         * cfgloop.c (alloc_loop): Likewise.
20346         (flow_loops_find): Likewise.
20347         (rescan_loop_exit): Likewise.
20348         * cfgrtl.c (init_rtl_bb_info): Likewise.
20349         * cgraph.c (insert_new_cgraph_node_version): Likewise.
20350         (cgraph_allocate_node): Likewise.
20351         (cgraph_create_edge_1): Likewise.
20352         (cgraph_allocate_init_indirect_info): Likewise.
20353         * cgraphclones.c (cgraph_clone_edge): Likewise.
20354         * cgraphunit.c (add_asm_node): Likewise.
20355         (init_lowered_empty_function): Likewise.
20356         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
20357         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
20358         (alpha_use_linkage): Likewise.
20359         * config/arc/arc.c (arc_init_machine_status): Likewise.
20360         * config/arm/arm.c (arm_init_machine_status): Likewise.
20361         * config/avr/avr.c (avr_init_machine_status): Likewise.
20362         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
20363         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
20364         * config/cris/cris.c (cris_init_machine_status): Likewise.
20365         * config/darwin.c (machopic_indirection_name): Likewise.
20366         (darwin_build_constant_cfstring): Likewise.
20367         (darwin_enter_string_into_cfstring_table): Likewise.
20368         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
20369         * config/frv/frv.c (frv_init_machine_status): Likewise.
20370         * config/i386/i386.c (get_dllimport_decl): Likewise.
20371         (ix86_init_machine_status): Likewise.
20372         (assign_386_stack_local): Likewise.
20373         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
20374         (i386_pe_maybe_record_exported_symbol): Likewise.
20375         (i386_pe_record_stub): Likewise.
20376         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
20377         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
20378         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
20379         (m32c_note_pragma_address): Likewise.
20380         * config/mep/mep.c (mep_init_machine_status): Likewise.
20381         (mep_note_pragma_flag): Likewise.
20382         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
20383         (mips16_local_alias): Likewise.
20384         (mips_init_machine_status): Likewise.
20385         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
20386         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
20387         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
20388         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
20389         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
20390         * config/pa/pa.c (pa_init_machine_status): Likewise.
20391         (pa_get_deferred_plabel): Likewise.
20392         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
20393         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
20394         (rs6000_init_machine_status): Likewise.
20395         (output_toc): Likewise.
20396         * config/s390/s390.c (s390_init_machine_status): Likewise.
20397         * config/score/score.c (score_output_external): Likewise.
20398         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
20399         * config/spu/spu.c (spu_init_machine_status): Likewise.
20400         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
20401         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
20402         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
20403         * coverage.c (coverage_end_function): Likewise.
20404         * dbxout.c (dbxout_init): Likewise.
20405         * doc/gty.texi: Don't mention variable_size attribute.
20406         * dwarf2cfi.c (new_cfi): Adjust.
20407         (new_cfi_row): Likewise.
20408         (copy_cfi_row): Likewise.
20409         (create_cie_data): Likewise.
20410         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
20411         (new_loc_descr): Likewise.
20412         (find_AT_string_in_table): Likewise.
20413         (add_addr_table_entry): Likewise.
20414         (new_die): Likewise.
20415         (add_var_loc_to_decl): Likewise.
20416         (clone_die): Likewise.
20417         (clone_as_declaration): Likewise.
20418         (break_out_comdat_types): Likewise.
20419         (new_loc_list): Likewise.
20420         (add_loc_descr_to_each): Likewise.
20421         (add_location_or_const_value_attribute): Likewise.
20422         (add_linkage_name): Likewise.
20423         (lookup_filename): Likewise.
20424         (dwarf2out_var_location): Likewise.
20425         (new_line_info_table): Likewise.
20426         (dwarf2out_init): Likewise.
20427         (mem_loc_descriptor): Likewise.
20428         (loc_descriptor): Likewise.
20429         (add_const_value_attribute): Likewise.
20430         (tree_add_const_value_attribute): Likewise.
20431         (comp_dir_string): Likewise.
20432         (dwarf2out_vms_debug_main_pointer): Likewise.
20433         (string_cst_pool_decl): Likewise.
20434         * emit-rtl.c (set_mem_attrs): Likewise.
20435         (get_reg_attrs): Likewise.
20436         (start_sequence): Likewise.
20437         (init_emit): Likewise.
20438         (init_emit_regs): Likewise.
20439         * except.c (init_eh_for_function): Likewise.
20440         (gen_eh_region): Likewise.
20441         (gen_eh_region_catch): Likewise.
20442         (gen_eh_landing_pad): Likewise.
20443         (add_call_site): Likewise.
20444         * function.c (add_frame_space): Likewise.
20445         (insert_temp_slot_address): Likewise.
20446         (assign_stack_temp_for_type): Likewise.
20447         (get_hard_reg_initial_val): Likewise.
20448         (allocate_struct_function): Likewise.
20449         (prepare_function_start): Likewise.
20450         (types_used_by_var_decl_insert): Likewise.
20451         * gengtype.c (variable_size_p): Remove function.
20452         (enum alloc_quantity): Remove enum.
20453         (write_typed_alloc_def): Remove function.
20454         (write_typed_struct_alloc_def): Likewise.
20455         (write_typed_typedef_alloc_def): Likewise.
20456         (write_typed_alloc_defns): Likewise.
20457         (main): Adjust.
20458         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
20459         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
20460         * ggc.h (ggc_alloc): new function.
20461         (ggc_cleared_alloc): Likewise.
20462         (ggc_vec_alloc): Template on type of vector element, and remove
20463         element size argument.
20464         (ggc_cleared_vec_alloc): Likewise.
20465         * gimple.c (gimple_build_omp_for): Adjust.
20466         (gimple_copy): Likewise.
20467         * ipa-cp.c (get_replacement_map): Likewise.
20468         (find_aggregate_values_for_callers_subset): Likewise.
20469         (known_aggs_to_agg_replacement_list): Likewise.
20470         * ipa-devirt.c (get_odr_type): Likewise.
20471         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
20472         (read_agg_replacement_chain): Likewise.
20473         * loop-iv.c (get_simple_loop_desc): Likewise.
20474         * lto-cgraph.c (input_node_opt_summary): Likewise.
20475         * lto-section-in.c (lto_new_in_decl_state): Likewise.
20476         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
20477         (input_eh_region): Likewise.
20478         (input_eh_lp): Likewise.
20479         (input_cfg): Likewise.
20480         * optabs.c (set_optab_libfunc): Likewise.
20481         (init_tree_optimization_optabs): Likewise.
20482         (set_conv_libfunc): Likewise.
20483         * passes.c (do_per_function_toporder): Likewise.
20484         * rtl.h: Don't use variable_size gty attribute.
20485         * sese.c (if_region_set_false_region): Adjust.
20486         * stringpool.c (gt_pch_save_stringpool): Likewise.
20487         * target-globals.c (save_target_globals): Likewise.
20488         * toplev.c (general_init): Likewise.
20489         * trans-mem.c (record_tm_replacement): Likewise.
20490         (split_bb_make_tm_edge): Likewise.
20491         * tree-cfg.c (move_sese_region_to_fn): Likewise.
20492         * tree-data-ref.h (lambda_vector_new): Likewise.
20493         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
20494         * tree-iterator.c (tsi_link_before): Likewise.
20495         (tsi_link_after): Likewise.
20496         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
20497         * tree-ssa-loop-niter.c (record_estimate): Likewise.
20498         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
20499         * tree-ssa-operands.h: Don't use variable_size gty attribute.
20500         * tree-ssa.c (init_tree_ssa): Adjust.
20501         * tree-ssanames.c (set_range_info): Likewise.
20502         (get_ptr_info): Likewise.
20503         (duplicate_ssa_name_ptr_info): Likewise.
20504         (duplicate_ssa_name_range_info): Likewise.
20505         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
20506         (unpack_ts_fixed_cst_value_fields): Likewise.
20507         * tree.c (build_fixed): Likewise.
20508         (build_real): Likewise.
20509         (build_string): Likewise.
20510         (decl_priority_info): Likewise.
20511         (decl_debug_expr_insert): Likewise.
20512         (decl_value_expr_insert): Likewise.
20513         (decl_debug_args_insert): Likewise.
20514         (type_hash_add): Likewise.
20515         (build_omp_clause): Likewise.
20516         * ubsan.c (decl_for_type_insert): Likewise.
20517         * varasm.c (get_unnamed_section): Likewise.
20518         (get_noswitch_section): Likewise.
20519         (get_section): Likewise.
20520         (get_block_for_section): Likewise.
20521         (create_block_symbol): Likewise.
20522         (build_constant_desc): Likewise.
20523         (create_constant_pool): Likewise.
20524         (force_const_mem): Likewise.
20525         (record_tm_clone_pair): Likewise.
20526         * varpool.c (varpool_create_empty_node): Likewise.
20527
20528 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
20529
20530         * dwarf2out.c (tree_add_const_value_attribute): Call
20531         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
20532         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
20533         instead of ggc_internal_<x>alloc_stat.
20534         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
20535         (ggc_realloc): Likewise.
20536         * ggc-none.c (ggc_internal_alloc): Likewise.
20537         (ggc_internal_cleared_alloc): Likewise.
20538         * ggc-page.c: Likewise.
20539         * ggc.h (ggc_internal_alloc_stat): Likewise.
20540         (ggc_internal_alloc): Remove macro.
20541         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
20542         (ggc_internal_cleared_alloc): Remove macro.
20543         (GGC_RESIZEVEC): Adjust.
20544         (ggc_resizevar): Remove macro.
20545         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
20546         (ggc_internal_cleared_vec_alloc_stat): Likewise.
20547         (ggc_internal_vec_cleared_alloc): Remove macro.
20548         (ggc_alloc_atomic_stat): Drop _stat suffix.
20549         (ggc_alloc_atomic): Remove macro.
20550         (ggc_alloc_cleared_atomic): Remove macro.
20551         (ggc_alloc_string_stat): Drop _stat suffix.
20552         (ggc_alloc_string): Remove macro.
20553         (ggc_alloc_rtx_def_stat): Adjust.
20554         (ggc_alloc_tree_node_stat): Likewise.
20555         (ggc_alloc_cleared_tree_node_stat): Likewise.
20556         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
20557         (ggc_alloc_cleared_simd_clone_stat): Likewise.
20558         * gimple.c (gimple_build_omp_for): Likewise.
20559         (gimple_copy): Likewise.
20560         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
20561         * toplev.c (realloc_for_line_map): Adjust.
20562         * tree-data-ref.h (lambda_vector_new): Likewise.
20563         * tree-phinodes.c (allocate_phi_node): Likewise.
20564         * tree.c (grow_tree_vec_stat): Likewise.
20565         * vec.h (va_gc::reserve): Adjust.
20566
20567 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
20568
20569         * config/microblaze/microblaze.c (break_handler): New Declaration.
20570         (microblaze_break_function_p,microblaze_is_break_handler): New.
20571         (compute_frame_size): Use microblaze_break_function_p.
20572         Add the test of break_handler.
20573         (microblaze_function_prologue) : Add the test of variable
20574         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
20575         (microblaze_function_epilogue) : Add the test of break_handler.
20576         (microblaze_globalize_label) : Add the test of break_handler.
20577         Check the name by BREAK_HANDLER_NAME.
20578
20579         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
20580
20581         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
20582         microblaze_is_break_handler test.
20583         (call_internal1,call_value_intern): Use microblaze_break_function_p.
20584         Use SYMBOL_REF_DECL.
20585
20586         * config/microblaze/microblaze-protos.h
20587         (microblaze_break_function_p,microblaze_is_break_handler):
20588         New Declaration.
20589
20590         * doc/extend.texi (MicroBlaze break_handler Functions): Document
20591         new MicroBlaze break_handler functions.
20592
20593 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20594
20595         * doc/extend.texi (Size of an asm): Move node text according
20596         to its @menu entry position.
20597
20598 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
20599
20600         PR tree-optimization/61140
20601         PR tree-optimization/61150
20602         PR tree-optimization/61197
20603         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
20604
20605 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
20606
20607         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
20608
20609 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
20610
20611         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
20612         __SIZEOF_INT128__ is defined.
20613
20614 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20615
20616         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
20617         (rs6000_delegitimize_address): Use it.
20618
20619 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
20620
20621         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
20622         inplace argument.  Store the new address in the original MEM when true.
20623         * emit-rtl.c (change_address_1): Likewise.
20624         (adjust_address_1, adjust_automodify_address_1, offset_address):
20625         Update accordingly.
20626         * rtl.h (plus_constant): Add an inplace argument.
20627         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
20628         when true.  Avoid generating (plus X (const_int 0)).
20629         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
20630         in-place.  Pass true to plus_constant.
20631         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
20632
20633 2014-05-16  Dehao Chen  <dehao@google.com>
20634
20635         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
20636
20637 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20638
20639         PR target/54089
20640         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
20641         patterns.
20642         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
20643
20644 2014-05-16  Dehao Chen  <dehao@google.com>
20645
20646         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
20647         optimize_function_for_size_p.
20648         * regs.h (REG_FREQ_FROM_BB): Likewise.
20649
20650 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20651
20652         PR target/51244
20653         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
20654         negt_reg_operand cases.
20655         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
20656         predicate.
20657         * config/sh/predicates.md (cbranch_treg_value): Simplify.
20658
20659 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
20660
20661         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
20662         target variants.
20663
20664 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
20665
20666         Revert:
20667         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
20668
20669         * tree-cfg.c (dump_function_to_file): Dump the return type of
20670         functions, in a line to itself before the function body, mimicking
20671         the layout of a C function.
20672
20673 2014-05-16  Dehao Chen  <dehao@google.com>
20674
20675         * cfghooks.c (make_forwarder_block): Use direct computation to
20676         get fall-through edge's count and frequency.
20677
20678 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
20679
20680         * config/arc/arc.c (arc_init): Fix typo in error message.
20681         * config/i386/i386.c (ix86_expand_builtin): Likewise.
20682         (split_stack_prologue_scratch_regno): Likewise.
20683         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
20684         word from error message.
20685
20686 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
20687
20688         * ira-costs.c: Fix typo in comment.
20689
20690 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
20691
20692         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
20693
20694 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
20695
20696         * varpool.c (dump_varpool_node): Dump write-only flag.
20697         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
20698         write-only flag.
20699         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
20700         write-only variables.
20701         * ipa.c (process_references): New function.
20702         (set_readonly_bit): New function.
20703         (set_writeonly_bit): New function.
20704         (clear_addressable_bit): New function.
20705         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
20706         fix handling of aliases.
20707         * cgraph.h (struct varpool_node): Add writeonly flag.
20708
20709 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
20710
20711         PR rtl-optimization/60969
20712         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
20713         Calculate costs for this case.
20714
20715 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
20716
20717         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
20718         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
20719
20720 2014-05-16  Richard Biener  <rguenther@suse.de>
20721
20722         PR tree-optimization/61194
20723         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
20724         bool patterns ending in a COND_EXPR.
20725
20726 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20727
20728         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
20729
20730 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20731
20732         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
20733         where we were unable to cost an RTX.
20734
20735 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20736
20737         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
20738         HIGH, LO_SUM.
20739
20740 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20741             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20742
20743         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
20744
20745 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20746             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20747
20748         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
20749         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
20750
20751 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20752             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20753
20754         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
20755         operators.
20756
20757 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20758             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20759
20760         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20761         DIV/MOD.
20762
20763 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20764             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20765
20766         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
20767         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
20768
20769 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20770             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20771
20772         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
20773         rotates and shifts.
20774
20775 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20776             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20777
20778         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
20779         ZERO_EXTEND and SIGN_EXTEND better.
20780
20781 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20782             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20783
20784         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
20785         logical operations.
20786
20787 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20788             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20789
20790         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
20791         costs when costing loads and stores to memory.
20792
20793 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20794             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
20795
20796         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
20797         for SET RTX.
20798
20799 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20800
20801         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
20802
20803 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20804             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20805
20806         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
20807         to...
20808         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
20809         well formed.
20810         (aarch64_rtx_mult_cost): New.
20811         (aarch64_rtx_costs): Use it, refactor as appropriate.
20812
20813 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20814             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
20815
20816         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
20817         emit instructions, return number of instructions which would
20818         be emitted.
20819         (aarch64_add_constant): Update call to aarch64_build_constant.
20820         (aarch64_output_mi_thunk): Likewise.
20821         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
20822         a CONST_DOUBLE.
20823
20824 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20825
20826         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
20827         (TARGET_RTX_COSTS): Call it.
20828
20829 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20830
20831         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
20832         (cortexa57_vector_cost): Likewise.
20833         (cortexa57_tunings): Use them.
20834
20835 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
20836
20837         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
20838         (cpu_addrcost_table): Use it.
20839         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
20840         (aarch64_address_cost): Rewrite using aarch64_classify_address,
20841         move it.
20842
20843 2014-05-16  Richard Biener  <rguenther@suse.de>
20844
20845         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
20846         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
20847         (visit_phi): Ignore edges marked as not executable.
20848         (class cond_dom_walker): New.
20849         (cond_dom_walker::before_dom_children): Value-number
20850         control statements and mark successor edges as not
20851         executable if possible.
20852         (run_scc_vn): First walk all control statements in
20853         dominator order, marking edges as not executable.
20854         * tree-inline.c (copy_edges_for_bb): Be not confused
20855         about random edge flags.
20856
20857 2014-05-16  Richard Biener  <rguenther@suse.de>
20858
20859         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
20860
20861 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
20862
20863         PR target/61193
20864         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
20865         (__TM_simple_begin): Use it.
20866         (__TM_begin): Likewise.
20867
20868 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20869
20870         PR ipa/61085
20871         * ipa-prop.c (update_indirect_edges_after_inlining): Check
20872         type_preserved flag when the indirect edge is polymorphic.
20873
20874 2014-05-15  Martin Jambor  <mjambor@suse.cz>
20875
20876         PR tree-optimization/61090
20877         * tree-sra.c (sra_modify_expr): Pass the current gsi to
20878         build_ref_for_model.
20879
20880 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20881
20882         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
20883         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
20884
20885 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
20886
20887         PR tree-optimization/61158
20888         * fold-const.c (fold_binary_loc): If X is zero-extended and
20889         shiftc >= prec, make sure zerobits is all ones instead of
20890         invoking undefined behavior.
20891
20892 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20893
20894         * regcprop.h: New file.
20895         * regcprop.c (skip_debug_insn_p): New decl.
20896         (replace_oldest_value_reg): Check skip_debug_insn_p.
20897         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
20898         * shrink-wrap.c: Include regcprop.h.
20899         (prepare_shrink_wrap): Call
20900         copyprop_hardreg_forward_bb_without_debug_insn.
20901
20902 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20903
20904         * shrink-wrap.h: Update comment.
20905         * shrink-wrap.c: Update comment.
20906         (next_block_for_reg): Rename to live_edge_for_reg.
20907         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
20908         (move_insn_for_shrink_wrap): Split live_edge.
20909         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
20910
20911 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
20912
20913         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
20914         Delete.
20915         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
20916         * config/sparc/sparc.md (fptype_ut699): New attribute.
20917         (in_branch_delay): Return false if -mfix-ut699 is specified and
20918         fptype_ut699 is set to single.
20919         (truncdfsf2): Add fptype_ut699 attribute.
20920         (fix_truncdfsi2): Likewise.
20921         (floatsisf2): Change fptype attribute.
20922         (fix_truncsfsi2): Likewise.
20923         (negtf2_notv9): Delete.
20924         (negtf2_v9): Likewise.
20925         (negtf2_hq): New instruction.
20926         (negtf2): New instruction and splitter.
20927         (negdf2_notv9): Rewrite.
20928         (abstf2_notv9): Delete.
20929         (abstf2_hq_v9): Likewise.
20930         (abstf2_v9): Likewise.
20931         (abstf2_hq): New instruction.
20932         (abstf2): New instruction and splitter.
20933         (absdf2_notv9): Rewrite.
20934
20935 2014-05-14  Cary Coutant  <ccoutant@google.com>
20936
20937         PR debug/61013
20938         * opts.c (common_handle_option): Don't special-case "-g".
20939         (set_debug_level): Default to at least level 2 with "-g".
20940
20941 2014-05-14  DJ Delorie  <dj@redhat.com>
20942
20943         * config/msp430/msp430.c (msp430_builtin): Add
20944         MSP430_BUILTIN_DELAY_CYCLES.
20945         (msp430_init_builtins): Register void __delay_cycles(long long).
20946         (msp430_builtin_decl): Add it.
20947         (cg_magic_constant): New.
20948         (msp430_expand_delay_cycles): New.
20949         (msp430_expand_builtin): Call it.
20950         (msp430_print_operand_raw): Change integer printing from "int" to
20951         HOST_WIDE_INT.
20952         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
20953         (delay_cycles_start): New.
20954         (delay_cycles_end): New.
20955         (delay_cycles_32): New.
20956         (delay_cycles_32x): New.
20957         (delay_cycles_16): New.
20958         (delay_cycles_16x): New.
20959         (delay_cycles_2): New.
20960         (delay_cycles_1): New.
20961         * doc/extend.texi: Document __delay_cycles().
20962
20963 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
20964
20965         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
20966         length attribute computation.
20967
20968 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
20969
20970         PR debug/61188
20971         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
20972
20973 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
20974
20975         PR target/61084
20976         * config/sparc/sparc.md: Fix types of low and high in DI constant
20977         splitter.  Use gen_int_mode in some other splitters.
20978
20979 2014-05-14  Martin Jambor  <mjambor@suse.cz>
20980
20981         PR ipa/60897
20982         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
20983
20984 2014-05-14  James Norris  <jnorris@codesourcery.com>
20985
20986         * omp-low.c (expand_parallel_call): Remove shadow variable.
20987         (expand_omp_taskreg): Likewise.
20988
20989 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
20990
20991         * common/config/i386/i386-common.c
20992         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
20993         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
20994         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
20995         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
20996         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
20997         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
20998         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
20999         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
21000         xsavecintrin.h, xsavesintrin.h.
21001         (x86_64-*-*): Ditto.
21002         * config/i386/clflushoptintrin.h: New.
21003         * config/i386/xsavecintrin.h: Ditto.
21004         * config/i386/xsavesintrin.h: Ditto.
21005         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
21006         (bit_XSAVES): Ditto.
21007         (bit_XSAVES): Ditto.
21008         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
21009         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
21010         -mno-clflushopt.
21011         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
21012         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
21013         OPTION_MASK_ISA_XSAVES.
21014         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
21015         -mxsavec, -mxsaves.
21016         (PTA_CLFLUSHOPT) Define.
21017         (PTA_XSAVEC): Ditto.
21018         (PTA_XSAVES): Ditto.
21019         (ix86_option_override_internal): Handle new options.
21020         (ix86_valid_target_attribute_inner_p): Ditto.
21021         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
21022         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
21023         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
21024         (bdesc_special_args): Add __builtin_ia32_xsaves,
21025         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
21026         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
21027         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
21028         (ix86_expand_builtin): Handle new builtins.
21029         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
21030         (TARGET_CLFLUSHOPT_P): Ditto.
21031         (TARGET_XSAVEC): Ditto.
21032         (TARGET_XSAVEC_P): Ditto.
21033         (TARGET_XSAVES): Ditto.
21034         (TARGET_XSAVES_P): Ditto.
21035         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
21036         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
21037         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
21038         (ANY_XRSTOR): New.
21039         (ANY_XRSTOR64): Ditto.
21040         (xrstor): Ditto.
21041         (xrstor): Change into <xrstor>.
21042         (xrstor_rex64): Change into <xrstor>_rex64.
21043         (xrstor64): Change into <xrstor>64
21044         (clflushopt): New.
21045         * config/i386/i386.opt (mclflushopt): New.
21046         (mxsavec): Ditto.
21047         (mxsaves): Ditto.
21048         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
21049         xsavecintrin.h.
21050         * doc/invoke.texi: Document new options.
21051
21052 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
21053
21054         PR rtl-optimization/60866
21055         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
21056         Default it to -1.  Pass it down to init_simplejump_data.
21057         (init_simplejump_data): New parameter old_seqno.  Pass it down
21058         to get_seqno_for_a_jump.
21059         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
21060         initializing new jump seqno as a last resort.  Add comment.
21061         (sel_redirect_edge_and_branch): Save old seqno of the conditional
21062         jump and pass it down to sel_init_new_insn.
21063         (sel_redirect_edge_and_branch_force): Likewise.
21064
21065 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
21066
21067         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
21068         shifted values to avoid build warning.
21069
21070 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
21071
21072         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
21073         * cfgrtl.c (rtl_merge_blocks): Fix comment.
21074         (cfg_layout_merge_blocks): Likewise.
21075         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
21076
21077 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
21078
21079         PR rtl-optimization/60901
21080         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
21081         bb predecessor belongs to the same scheduling region.  Adjust comment.
21082
21083 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
21084
21085         * doc/sourcebuild.texi: (dfp_hw): Document.
21086         (p8vector_hw): Likewise.
21087         (powerpc_eabi_ok): Likewise.
21088         (powerpc_elfv2): Likewise.
21089         (powerpc_htm_ok): Likewise.
21090         (ppc_recip_hw): Likewise.
21091         (vsx_hw): Likewise.
21092
21093 2014-05-13  Cary Coutant  <ccoutant@google.com>
21094
21095         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
21096
21097 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
21098
21099         * gengtype-parse.c (require3): Eliminate in favor of...
21100         (require4): New.
21101         (require_template_declaration): Update to support optional single *
21102         on a type.
21103
21104         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
21105         (create_user_defined_type): Handle a single level of explicit
21106         pointerness within template arguments.
21107         (struct write_types_data): Add field "kind".
21108         (filter_type_name): Handle "*" character.
21109         (write_user_func_for_structure_ptr): Require a write_types_data
21110         rather than just a prefix string, so that we can look up the kind
21111         of the wtd and use it as an index into wrote_user_func_for_ptr,
21112         ensuring that such functions are written at most once.  Support
21113         subclasses by invoking the marking function of the ultimate base class.
21114         (write_user_func_for_structure_body): Require a write_types_data
21115         rather than just a prefix string, so that we can pass this to
21116         write_user_func_for_structure_ptr.
21117         (write_func_for_structure): Likewise.
21118         (ggc_wtd): Add initializer of new "kind" field.
21119         (pch_wtd): Likewise.
21120
21121         * gengtype.h (enum write_types_kinds): New.
21122         (struct type): Add field wrote_user_func_for_ptr to the "s"
21123         union member.
21124
21125 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
21126
21127         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
21128         instead of const_binop.
21129         (fold_binary_loc): Likewise.
21130
21131 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
21132
21133         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
21134         calculation to match get_ref_base_and_extent.
21135
21136 2014-05-13  Catherine Moore  <clm@codesourcery.com>
21137             Sandra Loosemore  <sandra@codesourcery.com>
21138
21139         * configure.ac: Fix assembly for explicit JALR relocation check.
21140         * configure: Regenerate.
21141
21142 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21143
21144         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
21145         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
21146         Remove associated type declarations and initialisations.
21147         (arm_expand_neon_builtin): Likewise.
21148         (neon_emit_pair_result_insn): Delete.
21149         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
21150         * config/arm/neon.md (neon_vtrn<mode>): Delete.
21151         (neon_vzip<mode>): Likewise.
21152         (neon_vuzp<mode>): Likewise.
21153
21154 2014-05-13  Richard Biener  <rguenther@suse.de>
21155
21156         PR ipa/60973
21157         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
21158         it needs revisiting whether the call still may be tail-called.
21159
21160 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21161
21162         * rtl.def (SYMBOL_REF): Remove middle "0" field.
21163         * rtl.h (block_symbol): Reduce number of fields to 2.
21164         (rtx_def): Add u2.symbol_ref_flags.
21165         (SYMBOL_REF_FLAGS): Use it.
21166         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
21167         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
21168         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
21169         Lower index of SYMBOL_REF_DATA.
21170         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
21171         Print SYMBOL_REF_FLAGS at the same time.
21172         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
21173
21174 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21175
21176         * rtl.def (VAR_LOCATION): Remove "i" field.
21177         * rtl.h (rtx_def): Add u2.var_location_status.
21178         (PAT_VAR_LOCATION_STATUS): Use it.
21179         (gen_rtx_VAR_LOCATION): Declare.
21180         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
21181         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
21182         * var-tracking.c (emit_note_insn_var_location): Remove casts.
21183
21184 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21185
21186         * rtl.def (scratch): Fix outdated comment and remove "0" field.
21187         * gengtype.c (adjust_field_rtx_def): Update accordingly.
21188
21189 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21190
21191         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
21192         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
21193         * rtl.h (rtx_def): Add insn_uid to u2 field.
21194         (RTX_FLAG_CHECK8): Delete in favor of...
21195         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
21196         (INSN_DELETED_P): Update accordingly.
21197         (INSN_UID): Use u2.insn_uid.
21198         (INSN_CHAIN_CODE_P): Define.
21199         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
21200         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
21201         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
21202         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
21203         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
21204         indices accordingly.
21205         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
21206         Update indices for insn-chain rtxes.
21207         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
21208         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
21209         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
21210         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
21211         * combine.c (try_combine): Likewise.
21212         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21213
21214 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21215
21216         * rtl.def (REG): Remove middle field.
21217         * rtl.h (rtx_def): Add orignal_regno to u2.
21218         (ORIGINAL_REGNO): Use it instead of field 1.
21219         (REG_ATTRS): Lower field index accordingly.
21220         * gengtype.c (adjust_field_rtx_def): Remove handling of
21221         ORIGINAL_REGNO.  Move REG_ATTRS index down.
21222         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
21223         code that prints the REGNO.
21224
21225 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21226
21227         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
21228         GENERATOR_FILE.
21229
21230 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
21231
21232         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
21233
21234 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
21235
21236         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
21237         (alloc_iv): Lower base expressions containing ADDR_EXPR.
21238
21239 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
21240
21241         * config/aarch64/aarch64-protos.h
21242         (aarch64_hard_regno_caller_save_mode): New prototype.
21243         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
21244         New function.
21245         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
21246
21247 2014-05-13  Christian Bruel  <christian.bruel@st.com>
21248
21249         * target.def (mode_switching): New hook vector.
21250         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
21251         (mode_exit, modepriority_to_mode): Likewise.
21252         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
21253         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21254         * target.h: Include tm.h and hard-reg-set.h.
21255         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
21256         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
21257         * doc/tm.texi Regenerate.
21258         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21259         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21260         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
21261         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
21262         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
21263         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21264         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
21265         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
21266         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
21267         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
21268         (ix86_emit_mode_set): Hookify.
21269         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
21270         Delete.
21271         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
21272         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
21273         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
21274         (epiphany_mode_priority_to_mode): Remove declaration.
21275         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
21276         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
21277         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
21278         Likewise.
21279         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
21280         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
21281         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
21282
21283 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
21284
21285         PR target/61060
21286         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
21287         is const0_rtx, return immediately.  Don't test count == 0 when
21288         it is always true.
21289
21290 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21291
21292         * Makefile.in: add shrink-wrap.o.
21293         * config/i386/i386.c: include "shrink-wrap.h"
21294         * function.c: Likewise.
21295         (requires_stack_frame_p, next_block_for_reg,
21296         move_insn_for_shrink_wrap, prepare_shrink_wrap,
21297         dup_block_and_redirect): Move to shrink-wrap.c
21298         (thread_prologue_and_epilogue_insns): Extract three code segments
21299         as functions in shrink-wrap.c
21300         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
21301         shrink-wrap.h
21302         * shrink-wrap.c: New file.
21303         * shrink-wrap.h: New file.
21304
21305 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21306
21307         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
21308         reference to Solaris.
21309
21310 2014-05-12  Mike Stump  <mikestump@comcast.net>
21311
21312         PR other/31778
21313         * genattrtab.c (filename): Add.
21314         (convert_set_attr_alternative): Improve error message.
21315         (check_defs): Restore read_md_filename for error messages.
21316         (gen_insn): Save filename.
21317
21318 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
21319
21320         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
21321         -fno-local-ivars and -fivar-visibility.
21322         * c-family/c.opt: Make -Wshadow also implicitly enable
21323         -Wshadow-ivar.
21324
21325 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
21326
21327         * doc/tm.texi: Remove reference to deleted macro.
21328         * doc/tm.texi.in: Likewise.
21329
21330 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
21331
21332         PR target/60991
21333         * config/avr/avr.c (avr_out_store_psi): Use correct constant
21334         to restore Y.
21335
21336 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
21337
21338         PR libgcc/61152
21339         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
21340         * config/arm/aout.h (License): Same.
21341         * config/arm/bpabi.h (License): Same.
21342         * config/arm/elf.h (License): Same.
21343         * config/arm/linux-elf.h (License): Same.
21344         * config/arm/linux-gas.h (License): Same.
21345         * config/arm/netbsd-elf.h (License): Same.
21346         * config/arm/uclinux-eabi.h (License): Same.
21347         * config/arm/uclinux-elf.h (License): Same.
21348         * config/arm/vxworks.h (License): Same.
21349
21350 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
21351
21352         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
21353         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
21354         number of operands to 3.
21355         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
21356         * tree-nested.c (convert_nonlocal_omp_clauses,
21357         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
21358         * gimplify.c (gimplify_scan_omp_clauses): Handle
21359         OMP_CLAUSE_LINEAR_STMT.
21360         * omp-low.c (lower_rec_input_clauses): Fix typo.
21361         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
21362         cast between Fortran boolean_type_node and C _Bool if
21363         needed.
21364
21365 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
21366
21367         PR tree-optimization/61136
21368         * wide-int.h (multiple_of_p): Define a version that doesn't return
21369         the quotient.
21370         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
21371         integer_zerop/const_binop pair.
21372         (multiple_of_p): Likewise, converting both operands to widest_int
21373         precision.
21374
21375 2014-05-09  Teresa Johnson  <tejohnson@google.com>
21376
21377         * cgraphunit.c (analyze_functions): Use correct dump file.
21378
21379 2014-05-09  Florian Weimer  <fweimer@redhat.com>
21380
21381         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
21382         expand_used_vars.
21383         (stack_protect_return_slot_p): New function.
21384         (expand_used_vars): Call stack_protect_decl_p and
21385         stack_protect_return_slot_p for -fstack-protector-strong.
21386
21387 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
21388         Andrew Haley <aph@redhat.com>
21389         Richard Sandiford <rdsandiford@googlemail.com>
21390
21391         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
21392         pages.
21393
21394 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
21395
21396         PR middle-end/61111
21397         * fold-const.c (fold_binary_loc): Changed width of mask.
21398
21399 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21400
21401         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
21402         unsigned int initializers for regno_in, regno_out.
21403
21404 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
21405
21406         PR target/61055
21407         * config/avr/avr.md (cc): Add new attribute set_vzn.
21408         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
21409         Set cc insn attribute to set_vzn instead of set_zn for alternatives
21410         with INC, DEC or NEG.
21411         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
21412         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
21413         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
21414
21415 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21416
21417         Revert:
21418         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21419
21420         * wide-int.cc (UTItype): Define.
21421         (UDWtype): Define for appropriate W_TYPE_SIZE.
21422
21423 2014-05-09  Richard Biener  <rguenther@suse.de>
21424
21425         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
21426         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
21427         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
21428         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
21429         ssa_propagate): Adjust.
21430
21431 2014-05-08  Jeff Law  <law@redhat.com>
21432
21433         PR tree-optimization/61009
21434         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
21435         tri-state rather than a boolean.  When a block is too big to
21436         thread through, inform caller via negative return value.
21437         (thread_across_edge): If a block was too big for normal threading,
21438         then it's too big for a joiner too, so remove temporary equivalences
21439         and return immediately.
21440
21441 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21442             Matthias Klose  <doko@ubuntu.com>
21443
21444         PR driver/61106
21445         * optc-gen.awk: Fix option handling for -Wunused-parameter.
21446
21447 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21448
21449         PR target/59952
21450         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
21451
21452 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
21453
21454         PR target/61092
21455         * config/alpha/alpha.c: Include gimple-iterator.h.
21456         (alpha_gimple_fold_builtin): New function.  Move
21457         ALPHA_BUILTIN_UMULH folding from ...
21458         (alpha_fold_builtin): ... here.
21459         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
21460
21461 2014-05-08  Wei Mi  <wmi@google.com>
21462
21463         PR target/58066
21464         * config/i386/i386.c (ix86_compute_frame_layout): Update
21465         preferred_stack_boundary for call, expanded from tls descriptor.
21466         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
21467         to depend on SP register.
21468         (*tls_local_dynamic_base_32_gnu): Ditto.
21469         (*tls_local_dynamic_32_once): Ditto.
21470         (tls_global_dynamic_64_<mode>): Set
21471         ix86_tls_descriptor_calls_expanded_in_cfun.
21472         (tls_local_dynamic_base_64_<mode>): Ditto.
21473         (tls_global_dynamic_32): Set
21474         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
21475         to depend on SP register.
21476         (tls_local_dynamic_base_32): Ditto.
21477
21478 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21479
21480         * config/arm/arm_neon.h: Update comment.
21481         * config/arm/neon-docgen.ml: Delete.
21482         * config/arm/neon-gen.ml: Delete.
21483         * doc/arm-neon-intrinsics.texi: Update comment.
21484
21485 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21486
21487         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
21488         and v4sf versions.
21489         (vand, vorr, veor, vorn, vbic): Remove.
21490         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
21491         iterator.
21492         (neon_vsub_unspec): Likewise.
21493         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
21494
21495 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21496
21497         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
21498         (vadd_s16): Likewise.
21499         (vadd_s32): Likewise.
21500         (vadd_f32): Likewise.
21501         (vadd_u8): Likewise.
21502         (vadd_u16): Likewise.
21503         (vadd_u32): Likewise.
21504         (vadd_s64): Likewise.
21505         (vadd_u64): Likewise.
21506         (vaddq_s8): Likewise.
21507         (vaddq_s16): Likewise.
21508         (vaddq_s32): Likewise.
21509         (vaddq_s64): Likewise.
21510         (vaddq_f32): Likewise.
21511         (vaddq_u8): Likewise.
21512         (vaddq_u16): Likewise.
21513         (vaddq_u32): Likewise.
21514         (vaddq_u64): Likewise.
21515         (vmul_s8): Likewise.
21516         (vmul_s16): Likewise.
21517         (vmul_s32): Likewise.
21518         (vmul_f32): Likewise.
21519         (vmul_u8): Likewise.
21520         (vmul_u16): Likewise.
21521         (vmul_u32): Likewise.
21522         (vmul_p8): Likewise.
21523         (vmulq_s8): Likewise.
21524         (vmulq_s16): Likewise.
21525         (vmulq_s32): Likewise.
21526         (vmulq_f32): Likewise.
21527         (vmulq_u8): Likewise.
21528         (vmulq_u16): Likewise.
21529         (vmulq_u32): Likewise.
21530         (vsub_s8): Likewise.
21531         (vsub_s16): Likewise.
21532         (vsub_s32): Likewise.
21533         (vsub_f32): Likewise.
21534         (vsub_u8): Likewise.
21535         (vsub_u16): Likewise.
21536         (vsub_u32): Likewise.
21537         (vsub_s64): Likewise.
21538         (vsub_u64): Likewise.
21539         (vsubq_s8): Likewise.
21540         (vsubq_s16): Likewise.
21541         (vsubq_s32): Likewise.
21542         (vsubq_s64): Likewise.
21543         (vsubq_f32): Likewise.
21544         (vsubq_u8): Likewise.
21545         (vsubq_u16): Likewise.
21546         (vsubq_u32): Likewise.
21547         (vsubq_u64): Likewise.
21548         (vand_s8): Likewise.
21549         (vand_s16): Likewise.
21550         (vand_s32): Likewise.
21551         (vand_u8): Likewise.
21552         (vand_u16): Likewise.
21553         (vand_u32): Likewise.
21554         (vand_s64): Likewise.
21555         (vand_u64): Likewise.
21556         (vandq_s8): Likewise.
21557         (vandq_s16): Likewise.
21558         (vandq_s32): Likewise.
21559         (vandq_s64): Likewise.
21560         (vandq_u8): Likewise.
21561         (vandq_u16): Likewise.
21562         (vandq_u32): Likewise.
21563         (vandq_u64): Likewise.
21564         (vorr_s8): Likewise.
21565         (vorr_s16): Likewise.
21566         (vorr_s32): Likewise.
21567         (vorr_u8): Likewise.
21568         (vorr_u16): Likewise.
21569         (vorr_u32): Likewise.
21570         (vorr_s64): Likewise.
21571         (vorr_u64): Likewise.
21572         (vorrq_s8): Likewise.
21573         (vorrq_s16): Likewise.
21574         (vorrq_s32): Likewise.
21575         (vorrq_s64): Likewise.
21576         (vorrq_u8): Likewise.
21577         (vorrq_u16): Likewise.
21578         (vorrq_u32): Likewise.
21579         (vorrq_u64): Likewise.
21580         (veor_s8): Likewise.
21581         (veor_s16): Likewise.
21582         (veor_s32): Likewise.
21583         (veor_u8): Likewise.
21584         (veor_u16): Likewise.
21585         (veor_u32): Likewise.
21586         (veor_s64): Likewise.
21587         (veor_u64): Likewise.
21588         (veorq_s8): Likewise.
21589         (veorq_s16): Likewise.
21590         (veorq_s32): Likewise.
21591         (veorq_s64): Likewise.
21592         (veorq_u8): Likewise.
21593         (veorq_u16): Likewise.
21594         (veorq_u32): Likewise.
21595         (veorq_u64): Likewise.
21596         (vbic_s8): Likewise.
21597         (vbic_s16): Likewise.
21598         (vbic_s32): Likewise.
21599         (vbic_u8): Likewise.
21600         (vbic_u16): Likewise.
21601         (vbic_u32): Likewise.
21602         (vbic_s64): Likewise.
21603         (vbic_u64): Likewise.
21604         (vbicq_s8): Likewise.
21605         (vbicq_s16): Likewise.
21606         (vbicq_s32): Likewise.
21607         (vbicq_s64): Likewise.
21608         (vbicq_u8): Likewise.
21609         (vbicq_u16): Likewise.
21610         (vbicq_u32): Likewise.
21611         (vbicq_u64): Likewise.
21612         (vorn_s8): Likewise.
21613         (vorn_s16): Likewise.
21614         (vorn_s32): Likewise.
21615         (vorn_u8): Likewise.
21616         (vorn_u16): Likewise.
21617         (vorn_u32): Likewise.
21618         (vorn_s64): Likewise.
21619         (vorn_u64): Likewise.
21620         (vornq_s8): Likewise.
21621         (vornq_s16): Likewise.
21622         (vornq_s32): Likewise.
21623         (vornq_s64): Likewise.
21624         (vornq_u8): Likewise.
21625         (vornq_u16): Likewise.
21626         (vornq_u32): Likewise.
21627         (vornq_u64): Likewise.
21628
21629 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21630
21631         * wide-int.cc (UTItype): Define.
21632         (UDWtype): Define for appropriate W_TYPE_SIZE.
21633
21634 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
21635
21636         PR tree-optimization/59100
21637         * tree-ssa-phiopt.c: Include tree-inline.h.
21638         (neutral_element_p, absorbing_element_p): New functions.
21639         (value_replacement): Handle conditional binary operations with a
21640         neutral or absorbing element.
21641
21642 2014-05-08  Richard Biener  <rguenther@suse.de>
21643
21644         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
21645         folding the expression.
21646         (valueize_expr): Remove.
21647         (visit_reference_op_load): Do not valueize the result of
21648         vn_get_expr_for.
21649         (simplify_binary_expression): Likewise.
21650         (simplify_unary_expression): Likewise.
21651
21652 2014-05-08  Richard Biener  <rguenther@suse.de>
21653
21654         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
21655         looking at TYPE_ARG_TYPES.
21656
21657 2014-05-08  Richard Biener  <rguenther@suse.de>
21658
21659         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
21660         pointer propagation special-case.
21661
21662 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
21663
21664         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
21665         core part of address expressions.
21666
21667 2014-05-08  Alan Modra  <amodra@gmail.com>
21668
21669         PR target/60737
21670         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
21671         loads and stores when -mno-strict-align at any alignment.
21672         (expand_block_clear): Similarly.  Also correct calculation of
21673         instruction count.
21674
21675 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21676
21677         PR middle-end/39246
21678         * tree-complex.c (expand_complex_move): Keep line info when expanding
21679         complex move.
21680         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
21681         of complex expression. Use new argument to display correct location
21682         for values coming from phi statement.
21683         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
21684         (warn_uninitialized_phi): Pass location of phi argument to
21685         warn_uninit.
21686         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
21687         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
21688
21689 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
21690
21691         * config/rs6000/predicates.md (indexed_address_mem): New.
21692         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
21693         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
21694         fpstore_ux, fpstore_u.
21695         (sign_extend, indexed, update): New.
21696         (cell_micro): Adjust.
21697         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
21698         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
21699         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
21700         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
21701         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
21702         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
21703         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
21704         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
21705         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
21706         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
21707         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
21708         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
21709         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
21710         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
21711         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
21712
21713         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
21714         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
21715         *vsx_extract_<mode>_store): Adjust.
21716         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
21717         is_cracked_insn, insn_must_be_first_in_group,
21718         insn_must_be_last_in_group): Adjust.
21719
21720         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
21721         Adjust.
21722         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
21723         ppc440-fpstore): Adjust.
21724         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
21725         ppc476-fpstore): Adjust.
21726         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
21727         ppc601-fpstore): Adjust.
21728         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
21729         Adjust.
21730         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
21731         Adjust.
21732         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
21733         ppc7450-fpstore): Adjust.
21734         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
21735         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
21736         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
21737         Adjust.
21738         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
21739         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
21740         cell-fpstore, cell-fpstore-update): Adjust.
21741         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
21742         ppce300c3_store, ppce300c3_fpstore): Adjust.
21743         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
21744         e500mc_fpstore): Adjust.
21745         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
21746         e500mc64_store, e500mc64_fpstore): Adjust.
21747         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
21748         e5500_fpstore): Adjust.
21749         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
21750         e6500_fpstore): Adjust.
21751         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
21752         Adjust.
21753         * config/rs6000/power4.md (power4-load, power4-load-ext,
21754         power4-load-ext-update, power4-load-ext-update-indexed,
21755         power4-load-update-indexed, power4-load-update, power4-fpload,
21756         power4-fpload-update, power4-store, power4-store-update,
21757         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
21758         Adjust.
21759         * config/rs6000/power5.md (power5-load, power5-load-ext,
21760         power5-load-ext-update, power5-load-ext-update-indexed,
21761         power5-load-update-indexed, power5-load-update, power5-fpload,
21762         power5-fpload-update, power5-store, power5-store-update,
21763         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
21764         Adjust.
21765         * config/rs6000/power6.md (power6-load, power6-load-ext,
21766         power6-load-update, power6-load-update-indexed,
21767         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
21768         power6-fpload-update, power6-store, power6-store-update,
21769         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
21770         Adjust.
21771         * config/rs6000/power7.md (power7-load, power7-load-ext,
21772         power7-load-update, power7-load-update-indexed,
21773         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
21774         power7-fpload-update, power7-store, power7-store-update,
21775         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
21776         Adjust.
21777         * config/rs6000/power8.md (power8-load, power8-load-update,
21778         power8-load-ext, power8-load-ext-update, power8-fpload,
21779         power8-fpload-update, power8-store, power8-store-update-indexed,
21780         power8-fpstore, power8-fpstore-update): Adjust.
21781         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
21782         Adjust.
21783         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
21784         titan_lsu_store, titan_lsu_fpstore): Adjust.
21785         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
21786
21787 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
21788
21789         PR target/60884
21790         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
21791         unrolled byte insns.  Emit address increments after move insns.
21792
21793 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
21794
21795         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
21796         const_gimple, rather than a gimple.
21797         (gimple_call_builtin_p): Likewise, for the three variants.
21798
21799         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
21800         (gimple_call_builtin_p): Likewise, for the three variants.
21801
21802 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
21803
21804         PR tree-optimization/61095
21805         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
21806
21807 2014-05-07  Richard Biener  <rguenther@suse.de>
21808
21809         PR tree-optimization/61034
21810         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
21811         (maybe_skip_until): Use translate to take into account
21812         lattices when trying to do disambiguations.
21813         (get_continuation_for_phi_1): Likewise.
21814         (get_continuation_for_phi): Adjust for added translate arguments.
21815         (walk_non_aliased_vuses): Likewise.
21816         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
21817         (walk_non_aliased_vuses): Likewise.
21818         (call_may_clobber_ref_p_1): Declare.
21819         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
21820         calls.  Stop early if we are only supposed to disambiguate.
21821         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
21822
21823 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
21824
21825         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
21826         Emit an error when the function has arguments.
21827
21828 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21829
21830         * cfgloop.h (unswitch_loops): Remove.
21831         * doc/passes.texi: Remove references to loop-unswitch.c
21832         * timevar.def (TV_LOOP_UNSWITCH): Remove.
21833
21834 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
21835
21836         * tree-vect-data-refs.c (vect_grouped_load_supported): New
21837         check for loads group of length 3.
21838         (vect_permute_load_chain): New permutations for loads group of
21839         length 3.
21840         * tree-vect-stmts.c (vect_model_load_cost): Change cost
21841         of vec_perm_shuffle for the new permutations.
21842
21843 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
21844
21845         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
21846         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
21847         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
21848         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
21849         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
21850         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
21851         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
21852         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
21853
21854 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
21855
21856         * loop-unswitch.c: Delete.
21857
21858 2014-05-07  Richard Biener  <rguenther@suse.de>
21859
21860         * config.gcc: Always set need_64bit_hwint to yes.
21861
21862 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
21863
21864         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
21865         of using optimize_size.
21866
21867 2014-05-06  Mike Stump  <mikestump@comcast.net>
21868
21869         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
21870
21871 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
21872
21873         * config/i386/sse.md (*mov<mode>_internal)
21874         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
21875         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
21876         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
21877         (*<code><mode>3, *andnot<mode>3<mask_name>)
21878         (<mask_codefor><code><mode>3<mask_name>): Only consider
21879         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
21880
21881 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21882
21883         Revert:
21884         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
21885
21886         * lra-constraints.c (valid_address_p): Move earlier in file.
21887         Add a constraint argument to the address_info version.
21888         (satisfies_memory_constraint_p): New function.
21889         (satisfies_address_constraint_p): Likewise.
21890         (process_alt_operands, curr_insn_transform): Use them.
21891         (process_address): Pass the constraint to valid_address_p when
21892         checking address operands.
21893
21894 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
21895
21896         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
21897         to their respective blocks.  Fix inadvertent use of "node".
21898
21899 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
21900
21901         * emit-rtl.c (init_derived_machine_modes): New functionm, split
21902         out from...
21903         (init_emit_once): ...here.
21904         * rtl.h (init_derived_machine_modes): Declare.
21905         * toplev.c (do_compile): Call it even if no_backend.
21906
21907 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
21908             Mike Stump  <mikestump@comcast.net>
21909             Richard Sandiford  <rdsandiford@googlemail.com>
21910             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21911
21912         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
21913         (rtx_equal_for_memref_p): Update comment.
21914         (adjust_offset_for_component_ref): Use wide-int interfaces.
21915         * builtins.c (get_object_alignment_2): Likewise.
21916         (c_readstr): Likewise.
21917         (target_char_cast): Add comment.
21918         (determine_block_size): Use wide-int interfaces.
21919         (expand_builtin_signbit): Likewise.
21920         (fold_builtin_int_roundingfn): Likewise.
21921         (fold_builtin_bitop): Likewise.
21922         (fold_builtin_bswap): Likewise.
21923         (fold_builtin_logarithm): Use signop.
21924         (fold_builtin_pow): Likewise.
21925         (fold_builtin_memory_op): Use wide-int interfaces.
21926         (fold_builtin_object_size): Likewise.
21927         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
21928         nb_iterations_estimate.
21929         (record_niter_bound): Use wide-int interfaces.
21930         (get_estimated_loop_iterations_int): Likewise.
21931         (get_estimated_loop_iterations): Likewise.
21932         (get_max_loop_iterations): Likewise.
21933         * cfgloop.h: Include wide-int.h.
21934         (struct nb_iter_bound): Change bound to widest_int.
21935         (struct loop): Change nb_iterations_upper_bound and
21936         nb_iterations_estimate to widest_int.
21937         (record_niter_bound): Switch to use widest_int.
21938         (get_estimated_loop_iterations): Likewise.
21939         (get_max_loop_iterations): Likewise.
21940         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
21941         update for wide-int.
21942         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
21943         * combine.c (try_combine): Likewise.
21944         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
21945         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
21946         interfaces.
21947         (aarch64_float_const_representable_p): Likewise.
21948         * config/arc/arc.c: Include wide-int.h.
21949         (arc_can_use_doloop_p): Use wide-int interfaces.
21950         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
21951         (vfp3_const_double_index): Likewise.
21952         * config/avr/avr.c (avr_out_round): Likewise.
21953         (avr_fold_builtin): Likewise.
21954         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
21955         (bfin_can_use_doloop_p): Likewise.
21956         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
21957         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
21958         * config/i386/i386.c: Include wide-int.h.
21959         (ix86_data_alignment): Use wide-int interfaces.
21960         (ix86_local_alignment): Likewise.
21961         (ix86_emit_swsqrtsf): Update real_from_integer.
21962         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
21963         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
21964         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
21965         (zero_constant): Likewise.
21966         (input_operand): Likewise.
21967         (splat_input_operand): Likewise.
21968         (non_logical_cint_operand): Change const_double to const_wide_int.
21969         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
21970         (easy_altivec_constant): Remove comment.
21971         (paired_expand_vector_init): Use CONSTANT_P.
21972         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
21973         (rs6000_emit_move): Update checks.
21974         (rs6000_aggregate_candidate): Use wide-int interfaces.
21975         (rs6000_expand_ternop_builtin): Likewise.
21976         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
21977         (rs6000_assemble_integer): Likewise.
21978         (rs6000_hash_constant): Likewise.
21979         (output_toc): Likewise.
21980         (rs6000_rtx_costs): Likewise.
21981         (rs6000_emit_swrsqrt); Update call to real_from_integer.
21982         * config/rs6000/rs6000-c.c: Include wide-int.h.
21983         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
21984         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
21985         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
21986         Handle CONST_WIDE_INT.
21987         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
21988         Use tree_fits_uhwi_p.
21989         * config/sparc/sparc.c: Include wide-int.h.
21990         (sparc_fold_builtin): Use wide-int interfaces.
21991         * config/vax/vax.c: Include wide-int.h.
21992         (vax_float_literal): Use real_from_integer.
21993         * coretypes.h (struct hwivec_def): New.
21994         (hwivec): New.
21995         (const_hwivec): New.
21996         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
21997         (equiv_constant): Handle CONST_WIDE_INT.
21998         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
21999         (cselib_hash_rtx): Handle CONST_WIDE_INT.
22000         * dbxout.c (stabstr_U): Use wide-int interfaces.
22001         (dbxout_type): Update to use cst_fits_shwi_p.
22002         * defaults.h (LOG2_BITS_PER_UNIT): Define.
22003         (TARGET_SUPPORTS_WIDE_INT): Add default.
22004         * dfp.c: Include wide-int.h.
22005         (decimal_real_to_integer2): Use wide-int interfaces and rename to
22006         decimal_real_to_integer.
22007         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
22008         decimal_real_to_integer.
22009         * doc/generic.texi (Constant expressions): Update for wide_int.
22010         * doc/rtl.texi (const_double): Likewise.
22011         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
22012         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
22013         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
22014         (REAL_VALUE_FROM_INT): Remove.
22015         (TARGET_SUPPORTS_WIDE_INT): New.
22016         * doc/tm.texi: Regenerate.
22017         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
22018         * double-int.h: Include wide-int.h.
22019         (struct wi::int_traits): New.
22020         * dwarf2out.c (get_full_len): New.
22021         (dw_val_equal_p): Add case dw_val_class_wide_int.
22022         (size_of_loc_descr): Likewise.
22023         (output_loc_operands): Likewise.
22024         (insert_double): Remove.
22025         (insert_wide_int): New.
22026         (add_AT_wide): New.
22027         (print_die): Add case dw_val_class_wide_int.
22028         (attr_checksum): Likewise.
22029         (attr_checksum_ordered): Likewise.
22030         (same_dw_val_p): Likewise.
22031         (size_of_die): Likewise.
22032         (value_format): Likewise.
22033         (output_die): Likewise.
22034         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
22035         Use wide-int.
22036         (clz_loc_descriptor): Use wide-int interfaces.
22037         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
22038         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
22039         (round_up_to_align): Use wide-int interfaces.
22040         (field_byte_offset): Likewise.
22041         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
22042         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
22043         CONST_DOUBLE handling.  Use wide-int interfaces.
22044         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
22045         (gen_enumeration_type_die): Use add_AT_wide.
22046         (hash_loc_operands): Add case dw_val_class_wide_int.
22047         (compare_loc_operands): Likewise.
22048         * dwarf2out.h: Include wide-int.h.
22049         (wide_int_ptr): New.
22050         (enum dw_val_class): Add dw_val_class_wide_int.
22051         (struct dw_val_struct): Add val_wide.
22052         * emit-rtl.c (const_wide_int_htab): New.
22053         (const_wide_int_htab_hash): New.
22054         (const_wide_int_htab_eq): New.
22055         (lookup_const_wide_int): New.
22056         (const_double_htab_hash): Use wide-int interfaces.
22057         (const_double_htab_eq): Likewise.
22058         (rtx_to_double_int): Conditionally compile for wide-int.
22059         (immed_double_int_const): Rename to immed_wide_int_const and
22060         update for wide-int.
22061         (immed_double_const): Conditionally compile for wide-int.
22062         (init_emit_once): Use wide-int interfaces.
22063         * explow.c (plus_constant): Likewise.
22064         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
22065         (lshift_value): Use wide-int interfaces.
22066         (expand_mult): Likewise.
22067         (choose_multiplier): Likewise.
22068         (expand_smod_pow2): Likewise.
22069         (make_tree): Likewise.
22070         * expr.c (convert_modes): Consolidate handling of constants.
22071         Use wide-int interfaces.
22072         (emit_group_load_1): Add note.
22073         (store_expr): Update comment.
22074         (get_inner_reference): Use wide-int interfaces.
22075         (expand_constructor): Update comment.
22076         (expand_expr_real_2): Use wide-int interfaces.
22077         (expand_expr_real_1): Likewise.
22078         (reduce_to_bit_field_precision): Likewise.
22079         (const_vector_from_tree): Likewise.
22080         * final.c: Include wide-int-print.h.
22081         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
22082         * fixed-value.c: Include wide-int.h.
22083         (fixed_from_string): Use wide-int interfaces.
22084         (fixed_to_decimal): Likewise.
22085         (fixed_convert_from_real): Likewise.
22086         (real_convert_from_fixed): Likewise.
22087         * fold-const.h (mem_ref_offset): Return an offset_int.
22088         (div_if_zero_remainder): Remove code parameter.
22089         * fold-const.c (div_if_zero_remainder): Remove code parameter.
22090         Use wide-int interfaces.
22091         (may_negate_without_overflow_p): Use wide-int interfaces.
22092         (negate_expr_p): Likewise.
22093         (fold_negate_expr): Likewise.
22094         (int_const_binop_1): Likewise.
22095         (const_binop): Likewise.
22096         (fold_convert_const_int_from_int): Likewise.
22097         (fold_convert_const_int_from_real): Likewise.
22098         (fold_convert_const_int_from_fixed): Likewise.
22099         (fold_convert_const_fixed_from_int): Likewise.
22100         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
22101         (sign_bit_p): Use wide-int interfaces.
22102         (make_range_step): Likewise.
22103         (build_range_check): Likewise.  Pass an integer of the correct type
22104         instead of using integer_one_node.
22105         (range_predecessor): Pass an integer of the correct type instead
22106         of using integer_one_node.
22107         (range_successor): Likewise.
22108         (merge_ranges): Likewise.
22109         (unextend): Use wide-int interfaces.
22110         (extract_muldiv_1): Likewise.
22111         (fold_div_compare): Likewise.
22112         (fold_single_bit_test): Likewise.
22113         (fold_sign_changed_comparison): Likewise.
22114         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
22115         (fold_plusminus_mult_expr): Use wide-int interfaces.
22116         (native_encode_int): Likewise.
22117         (native_interpret_int): Likewise.
22118         (fold_unary_loc): Likewise.
22119         (pointer_may_wrap_p): Likewise.
22120         (size_low_cst): Likewise.
22121         (mask_with_tz): Likewise.
22122         (fold_binary_loc): Likewise.
22123         (fold_ternary_loc): Likewise.
22124         (multiple_of_p): Likewise.
22125         (tree_call_nonnegative_warnv_p): Update calls to
22126         tree_int_cst_min_precision and real_from_integer.
22127         (fold_negate_const): Use wide-int interfaces.
22128         (fold_abs_const): Likewise.
22129         (fold_relational_const): Use tree_int_cst_lt.
22130         (round_up_loc): Use wide-int interfaces.
22131         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
22132         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
22133         * gengtype.c: Remove include of double-int.h.
22134         (do_typedef): Use wide-int interfaces.
22135         (open_base_files): Add wide-int.h.
22136         (main): Add offset_int and widest_int typedefs.
22137         * gengtype-lex.l: Handle "^".
22138         (CXX_KEYWORD): Add "static".
22139         * gengtype-parse.c (require3): New.
22140         (require_template_declaration): Handle constant template arguments
22141         and nested templates.
22142         * gengtype-state.c: Don't include "double-int.h".
22143         * genpreds.c (write_one_predicate_function): Update comment.
22144         (write_tm_constrs_h): Add check for hval and lval use in
22145         CONST_WIDE_INT.
22146         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
22147         (add_to_sequence): Likewise.
22148         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
22149         and const_double_operand.
22150         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
22151         interfaces.
22152         * gimple-fold.c (get_base_constructor): Likewise.
22153         (fold_array_ctor_reference): Likewise.
22154         (fold_nonarray_ctor_reference): Likewise.
22155         (fold_const_aggregate_ref_1): Likewise.
22156         (gimple_val_nonnegative_real_p): Likewise.
22157         (gimple_fold_indirect_ref): Likewise.
22158         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
22159         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
22160         (struct slsr_cand_d): Change index to be widest_int.
22161         (struct incr_info_d): Change incr to be widest_int.
22162         (alloc_cand_and_find_basis): Use wide-int interfaces.
22163         (slsr_process_phi): Likewise.
22164         (backtrace_base_for_ref): Likewise.  Return a widest_int.
22165         (restructure_reference): Take a widest_int instead of a double_int.
22166         (slsr_process_ref): Use wide-int interfaces.
22167         (create_mul_ssa_cand): Likewise.
22168         (create_mul_imm_cand): Likewise.
22169         (create_add_ssa_cand): Likewise.
22170         (create_add_imm_cand): Take a widest_int instead of a double_int.
22171         (slsr_process_add): Use wide-int interfaces.
22172         (slsr_process_cast): Likewise.
22173         (slsr_process_copy): Likewise.
22174         (dump_candidate): Likewise.
22175         (dump_incr_vec): Likewise.
22176         (replace_ref): Likewise.
22177         (cand_increment): Likewise.  Return a widest_int.
22178         (cand_abs_increment): Likewise.
22179         (replace_mult_candidate): Take a widest_int instead of a double_int.
22180         (replace_unconditional_candidate): Use wide-int interfaces.
22181         (incr_vec_index): Take a widest_int instead of a double_int.
22182         (create_add_on_incoming_edge): Likewise.
22183         (create_phi_basis): Use wide-int interfaces.
22184         (replace_conditional_candidate): Likewise.
22185         (record_increment): Take a widest_int instead of a double_int.
22186         (record_phi_increments): Use wide-int interfaces.
22187         (phi_incr_cost): Take a widest_int instead of a double_int.
22188         (lowest_cost_path): Likewise.
22189         (total_savings): Likewise.
22190         (analyze_increments): Use wide-int interfaces.
22191         (ncd_with_phi): Take a widest_int instead of a double_int.
22192         (ncd_of_cand_and_phis): Likewise.
22193         (nearest_common_dominator_for_cands): Likewise.
22194         (insert_initializers): Use wide-int interfaces.
22195         (all_phi_incrs_profitable): Likewise.
22196         (replace_one_candidate): Likewise.
22197         (replace_profitable_candidates): Likewise.
22198         * godump.c: Include wide-int-print.h.
22199         (go_output_typedef): Use wide-int interfaces.
22200         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
22201         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
22202         (build_loop_iteration_domains): Likewise.
22203         * hooks.h: Include wide-int.h rather than double-int.h.
22204         (hook_bool_dint_dint_uint_bool_true): Delete.
22205         (hook_bool_wint_wint_uint_bool_true): Declare.
22206         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
22207         (hook_bool_wint_wint_uint_bool_true): New.
22208         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
22209         interfaces.
22210         (ubsan_expand_si_overflow_mul_check): Likewise.
22211         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
22212         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
22213         (get_ancestor_addr_info): Likewise.
22214         (ipa_modify_call_arguments): Likewise.
22215         * loop-doloop.c (doloop_modify): Likewise.
22216         (doloop_optimize): Likewise.
22217         * loop-iv.c (iv_number_of_iterations): Likewise.
22218         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
22219         (unroll_loop_constant_iterations): Likewise.
22220         (decide_unroll_runtime_iterations): Likewise.
22221         (unroll_loop_runtime_iterations): Likewise.
22222         (decide_peel_simple): Likewise.
22223         (decide_unroll_stupid): Likewise.
22224         * lto-streamer-in.c (streamer_read_wi): Add.
22225         (input_cfg): Use wide-int interfaces.
22226         (lto_input_tree_1): Likewise.
22227         * lto-streamer-out.c (streamer_write_wi): Add.
22228         (hash_tree): Use wide-int interfaces.
22229         (output_cfg): Likewise.
22230         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
22231         (GTFILES): Add wide-int.h and signop.h.
22232         (TAGS): Look for .cc files too.
22233         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
22234         * optabs.c (expand_subword_shift): Likewise.
22235         (expand_doubleword_shift): Likewise.
22236         (expand_absneg_bit): Likewise.
22237         (expand_copysign_absneg): Likewise.
22238         (expand_copysign_bit): Likewise.
22239         * postreload.c (reload_cse_simplify_set): Likewise.
22240         * predict.c (predict_iv_comparison): Likewise.
22241         * pretty-print.h: Include wide-int-print.h.
22242         (pp_wide_int) New.
22243         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
22244         * print-tree.c: Include wide-int-print.h.
22245         (print_node_brief): Use wide-int interfaces.
22246         (print_node): Likewise.
22247         * read-rtl.c (validate_const_wide_int): New.
22248         (read_rtx_code): Add CONST_WIDE_INT case.
22249         * real.c: Include wide-int.h.
22250         (real_to_integer2): Delete.
22251         (real_to_integer): New function, returning a wide_int.
22252         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22253         (ten_to_ptwo): Update call to real_from_integer.
22254         (real_digit): Likewise.
22255         * real.h: Include signop.h, wide-int.h and insn-modes.h.
22256         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
22257         (REAL_VALUE_TO_INT): Delete.
22258         (real_to_integer): Declare a wide-int form.
22259         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
22260         * recog.c (const_int_operand): Improve comment.
22261         (const_scalar_int_operand): New.
22262         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
22263         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
22264         (split_double): Likewise.
22265         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
22266         (rtx_size): Likewise.
22267         (rtx_alloc_stat_v): New.
22268         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
22269         (cwi_output_hex): New.
22270         (iterative_hash_rtx): Handle CONST_WIDE_INT.
22271         (cwi_check_failed_bounds): New.
22272         * rtl.def (CONST_WIDE_INT): New.
22273         * rtl.h: Include <utility> and wide-int.h.
22274         (struct hwivec_def): New.
22275         (CWI_GET_NUM_ELEM): New.
22276         (CWI_PUT_NUM_ELEM): New.
22277         (struct rtx_def): Add num_elem and hwiv.
22278         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
22279         (CASE_CONST_UNIQUE): Likewise.
22280         (CASE_CONST_ANY): Likewise.
22281         (CONST_SCALAR_INT_P): Likewise.
22282         (CONST_WIDE_INT_P): New.
22283         (CWI_ELT): New.
22284         (HWIVEC_CHECK): New.
22285         (cwi_check_failed_bounds): New.
22286         (CWI_ELT): New.
22287         (HWIVEC_CHECK): New.
22288         (CONST_WIDE_INT_VEC) New.
22289         (CONST_WIDE_INT_NUNITS) New.
22290         (CONST_WIDE_INT_ELT) New.
22291         (rtx_mode_t): New type.
22292         (wi::int_traits <rtx_mode_t>): New.
22293         (wi::shwi): New.
22294         (wi::min_value): New.
22295         (wi::max_value): New.
22296         (rtx_alloc_v) New.
22297         (const_wide_int_alloc): New.
22298         (immed_wide_int_const): New.
22299         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
22300         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
22301         * signop.h: New file.
22302         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
22303         (simplify_const_unary_operation): Use wide-int interfaces.
22304         (simplify_binary_operation_1): Likewise.
22305         (simplify_const_binary_operation): Likewise.
22306         (simplify_const_relational_operation): Likewise.
22307         (simplify_immed_subreg): Likewise.
22308         * stmt.c (expand_case): Likewise.
22309         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
22310         signop rather than a bool.
22311         * stor-layout.c (layout_type): Use wide-int interfaces.
22312         (initialize_sizetypes): Update calls to
22313         set_min_and_max_values_for_integral_type.
22314         (set_min_and_max_values_for_integral_type): Take a signop rather
22315         than a bool.  Use wide-int interfaces.
22316         (fixup_signed_type): Update accordingly.  Remove
22317         HOST_BITS_PER_DOUBLE_INT limit.
22318         (fixup_unsigned_type): Likewise.
22319         * system.h (STATIC_CONSTANT_P): New.
22320         (STATIC_ASSERT): New.
22321         * target.def (can_use_doloop_p): Take widest_ints rather than
22322         double_ints.
22323         * target.h: Include wide-int.h rather than double-int.h.
22324         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
22325         than double_ints.
22326         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
22327         rather than INT_CST_LT_UNSIGNED.
22328         (can_use_doloop_if_innermost): Take widest_ints rather than
22329         double_ints.
22330         * tree-affine.c: Include wide-int-print.h.
22331         (double_int_ext_for_comb): Delete.
22332         (wide_int_ext_for_comb): New.
22333         (aff_combination_zero): Use wide-int interfaces.
22334         (aff_combination_const): Take a widest_int instead of a double_int.
22335         (aff_combination_elt): Use wide-int interfaces.
22336         (aff_combination_scale): Take a widest_int instead of a double_int.
22337         (aff_combination_add_elt): Likewise.
22338         (aff_combination_add_cst): Likewise.
22339         (aff_combination_add): Use wide-int interfaces.
22340         (aff_combination_convert): Likewise.
22341         (tree_to_aff_combination): Likewise.
22342         (add_elt_to_tree): Take a widest_int instead of a double_int.
22343         (aff_combination_to_tree): Use wide-int interfaces.
22344         (aff_combination_remove_elt): Likewise.
22345         (aff_combination_add_product): Take a widest_int instead of
22346         a double_int.
22347         (aff_combination_mult): Use wide-int interfaces.
22348         (aff_combination_expand): Likewise.
22349         (double_int_constant_multiple_p): Delete.
22350         (wide_int_constant_multiple_p): New.
22351         (aff_combination_constant_multiple_p): Take a widest_int pointer
22352         instead of a double_int pointer.
22353         (print_aff): Use wide-int interfaces.
22354         (get_inner_reference_aff): Take a widest_int pointer
22355         instead of a double_int pointer.
22356         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
22357         * tree-affine.h: Include wide-int.h.
22358         (struct aff_comb_elt): Change type of coef to widest_int.
22359         (struct affine_tree_combination): Change type of offset to widest_int.
22360         (double_int_ext_for_comb): Delete.
22361         (wide_int_ext_for_comb): New.
22362         (aff_combination_const): Use widest_int instead of double_int.
22363         (aff_combination_scale): Likewise.
22364         (aff_combination_add_elt): Likewise.
22365         (aff_combination_constant_multiple_p): Likewise.
22366         (get_inner_reference_aff): Likewise.
22367         (aff_comb_cannot_overlap_p): Likewise.
22368         (aff_combination_zero_p): Use wide-int interfaces.
22369         * tree.c: Include tree.h.
22370         (init_ttree): Use make_int_cst.
22371         (tree_code_size): Removed code for INTEGER_CST case.
22372         (tree_size): Add INTEGER_CST case.
22373         (make_node_stat): Update comment.
22374         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
22375         (build_int_cst_type): Use wide-int interfaces.
22376         (double_int_to_tree): Likewise.
22377         (double_int_fits_to_tree_p): Delete.
22378         (force_fit_type_double): Delete.
22379         (force_fit_type): New.
22380         (int_cst_hash_hash): Use wide-int interfaces.
22381         (int_cst_hash_eq): Likewise.
22382         (build_int_cst_wide): Delete.
22383         (wide_int_to_tree): New.
22384         (cache_integer_cst): Use wide-int interfaces.
22385         (build_low_bits_mask): Likewise.
22386         (cst_and_fits_in_hwi): Likewise.
22387         (real_value_from_int_cst): Likewise.
22388         (make_int_cst_stat): New.
22389         (integer_zerop): Use wide_int interfaces.
22390         (integer_onep): Likewise.
22391         (integer_all_onesp): Likewise.
22392         (integer_pow2p): Likewise.
22393         (integer_nonzerop): Likewise.
22394         (tree_log2): Likewise.
22395         (tree_floor_log2): Likewise.
22396         (tree_ctz): Likewise.
22397         (int_size_in_bytes): Likewise.
22398         (mem_ref_offset): Return an offset_int rather than a double_int.
22399         (build_type_attribute_qual_variant): Use wide_int interfaces.
22400         (type_hash_eq): Likewise
22401         (tree_int_cst_equal): Likewise.
22402         (tree_int_cst_lt): Delete.
22403         (tree_int_cst_compare): Likewise.
22404         (tree_fits_shwi_p): Use wide_int interfaces.
22405         (tree_fits_uhwi_p): Likewise.
22406         (tree_int_cst_sign_bit): Likewise.
22407         (tree_int_cst_sgn): Likewise.
22408         (tree_int_cst_min_precision): Take a signop rather than a bool.
22409         (simple_cst_equal): Use wide_int interfaces.
22410         (compare_tree_int): Likewise.
22411         (iterative_hash_expr): Likewise.
22412         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
22413         INT_CST_LT.
22414         (get_type_static_bounds): Use wide_int interfaces.
22415         (tree_int_cst_elt_check_failed): New.
22416         (build_common_tree_nodes): Reordered to set prec before filling in
22417         value.
22418         (int_cst_value): Check cst_and_fits_in_hwi.
22419         (widest_int_cst_value): Use wide_int interfaces.
22420         (upper_bound_in_type): Likewise.
22421         (lower_bound_in_type): Likewise.
22422         (num_ending_zeros): Likewise.
22423         (drop_tree_overflow): Likewise.
22424         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
22425         (gen_conditions_for_pow_cst_base): Likewise.
22426         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
22427         (group_case_labels_stmt): Use wide-int interfaces.
22428         (verify_gimple_assign_binary): Likewise.
22429         (print_loop): Likewise.
22430         * tree-chrec.c (tree_fold_binomial): Likewise.
22431         * tree-core.h (struct tree_base): Add int_length.
22432         (struct tree_int_cst): Change rep of value.
22433         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
22434         (dr_may_alias_p): Likewise.
22435         (max_stmt_executions_tree): Likewise.
22436         * tree.def (INTEGER_CST): Update comment.
22437         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
22438         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
22439         * tree-dump.c: Include wide-int.h and wide-int-print.h.
22440         (dequeue_and_dump): Use wide-int interfaces.
22441         * tree.h: Include wide-int.h.
22442         (NULL_TREE): Moved to earlier loc in file.
22443         (TREE_INT_CST_ELT_CHECK): New.
22444         (tree_int_cst_elt_check_failed): New.
22445         (TYPE_SIGN): New.
22446         (TREE_INT_CST): Delete.
22447         (TREE_INT_CST_LOW): Use wide-int interfaces.
22448         (TREE_INT_CST_HIGH): Delete.
22449         (TREE_INT_CST_NUNITS): New.
22450         (TREE_INT_CST_EXT_NUNITS): Likewise.
22451         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
22452         (TREE_INT_CST_ELT): Likewise.
22453         (INT_CST_LT): Delete.
22454         (tree_int_cst_elt_check): New (two forms).
22455         (type_code_size): Update comment.
22456         (make_int_cst_stat, make_int_cst): New.
22457         (tree_to_double_int): Delete.
22458         (double_int_fits_to_tree_p): Delete.
22459         (force_fit_type_double): Delete.
22460         (build_int_cstu): Replace with out-of-line function.
22461         (build_int_cst_wide): Delete.
22462         (tree_int_cst_lt): Define inline.
22463         (tree_int_cst_le): New.
22464         (tree_int_cst_compare): Define inline.
22465         (tree_int_cst_min_precision): Take a signop rather than a bool.
22466         (wi::int_traits <const_tree>): New.
22467         (wi::int_traits <tree>): New.
22468         (wi::extended_tree): New.
22469         (wi::int_traits <wi::extended_tree>): New.
22470         (wi::to_widest): New.
22471         (wi::to_offset): New.
22472         (wi::fits_to_tree_p): New.
22473         (wi::min_value): New.
22474         (wi::max_value): New.
22475         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
22476         (copy_tree_body_r): Likewise.
22477         * tree-object-size.c (compute_object_offset): Likewise.
22478         (addr_object_size): Likewise.
22479         * tree-predcom.c: Include wide-int-print.h.
22480         (struct dref_d): Change type of offset to widest_int.
22481         (dump_dref): Call wide-int printer.
22482         (aff_combination_dr_offset): Use wide-int interfaces.
22483         (determine_offset): Take a widest_int pointer rather than a
22484         double_int pointer.
22485         (split_data_refs_to_components): Use wide-int interfaces.
22486         (suitable_component_p): Likewise.
22487         (order_drefs): Likewise.
22488         (add_ref_to_chain): Likewise.
22489         (valid_initializer_p): Likewise.
22490         (determine_roots_comp): Likewise.
22491         * tree-pretty-print.c: Include wide-int-print.h.
22492         (dump_generic_node): Use wide-int interfaces.
22493         * tree-sra.c (sra_ipa_modify_expr): Likewise.
22494         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
22495         (move_fixed_address_to_symbol): Likewise.
22496         (move_hint_to_base): Likewise.
22497         (move_pointer_to_base): Likewise.
22498         (move_variant_to_index): Likewise.
22499         (most_expensive_mult_to_index): Likewise.
22500         (addr_to_parts): Likewise.
22501         (copy_ref_info): Likewise.
22502         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
22503         (indirect_refs_may_alias_p): Likewise.
22504         (stmt_kills_ref_p_1): Likewise.
22505         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
22506         * tree-ssa-ccp.c: Update comment at top of file.  Include
22507         wide-int-print.h.
22508         (struct prop_value_d): Change type of mask to widest_int.
22509         (extend_mask): New function.
22510         (dump_lattice_value): Use wide-int interfaces.
22511         (get_default_value): Likewise.
22512         (set_constant_value): Likewise.
22513         (set_value_varying): Likewise.
22514         (valid_lattice_transition): Likewise.
22515         (set_lattice_value): Likewise.
22516         (value_to_double_int): Delete.
22517         (value_to_wide_int): New.
22518         (get_value_from_alignment): Use wide-int interfaces.
22519         (get_value_for_expr): Likewise.
22520         (do_dbg_cnt): Likewise.
22521         (ccp_finalize): Likewise.
22522         (ccp_lattice_meet): Likewise.
22523         (bit_value_unop_1): Use widest_ints rather than double_ints.
22524         (bit_value_binop_1): Likewise.
22525         (bit_value_unop): Use wide-int interfaces.
22526         (bit_value_binop): Likewise.
22527         (bit_value_assume_aligned): Likewise.
22528         (evaluate_stmt): Likewise.
22529         (ccp_fold_stmt): Likewise.
22530         (visit_cond_stmt): Likewise.
22531         (ccp_visit_stmt): Likewise.
22532         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
22533         (constant_pointer_difference): Likewise.
22534         (associate_pointerplus): Likewise.
22535         (combine_conversions): Likewise.
22536         * tree-ssa-loop.h: Include wide-int.h.
22537         (struct tree_niter_desc): Change type of max to widest_int.
22538         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
22539         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
22540         (remove_redundant_iv_tests): Likewise.
22541         (canonicalize_loop_induction_variables): Likewise.
22542         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
22543         (constant_multiple_of): Take a widest_int pointer instead of
22544         a double_int pointer.
22545         (get_computation_aff): Use wide-int interfaces.
22546         (ptr_difference_cost): Likewise.
22547         (difference_cost): Likewise.
22548         (get_loop_invariant_expr_id): Likewise.
22549         (get_computation_cost_at): Likewise.
22550         (iv_elimination_compare_lt): Likewise.
22551         (may_eliminate_iv): Likewise.
22552         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
22553         instead of double_int.
22554         (max_loop_iterations): Likewise.
22555         (max_stmt_executions): Likewise.
22556         (estimated_stmt_executions): Likewise.
22557         * tree-ssa-loop-niter.c: Include wide-int-print.h.
22558         (split_to_var_and_offset): Use wide-int interfaces.
22559         (determine_value_range): Likewise.
22560         (bound_difference_of_offsetted_base): Likewise.
22561         (bounds_add): Take a widest_int instead of a double_int.
22562         (number_of_iterations_ne_max): Use wide-int interfaces.
22563         (number_of_iterations_ne): Likewise.
22564         (number_of_iterations_lt_to_ne): Likewise.
22565         (assert_loop_rolls_lt): Likewise.
22566         (number_of_iterations_lt): Likewise.
22567         (number_of_iterations_le): Likewise.
22568         (number_of_iterations_cond): Likewise.
22569         (number_of_iterations_exit): Likewise.
22570         (finite_loop_p): Likewise.
22571         (derive_constant_upper_bound_assign): Likewise.
22572         (derive_constant_upper_bound): Return a widest_int.
22573         (derive_constant_upper_bound_ops): Likewise.
22574         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
22575         (record_estimate): Take a widest_int rather than a double_int.
22576         (record_nonwrapping_iv): Use wide-int interfaces.
22577         (double_int_cmp): Delete.
22578         (wide_int_cmp): New.
22579         (bound_index): Take a widest_int rather than a double_int.
22580         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
22581         (maybe_lower_iteration_bound): Likewise.
22582         (estimate_numbers_of_iterations_loop): Likewise.
22583         (estimated_loop_iterations): Take a widest_int pointer than than
22584         a double_int pointer.
22585         (estimated_loop_iterations_int): Use wide-int interfaces.
22586         (max_loop_iterations): Take a widest_int pointer than than
22587         a double_int pointer.
22588         (max_loop_iterations_int): Use wide-int interfaces.
22589         (max_stmt_executions): Take a widest_int pointer than than
22590         a double_int pointer.
22591         (estimated_stmt_executions): Likewise.
22592         (n_of_executions_at_most): Use wide-int interfaces.
22593         (scev_probably_wraps_p): Likewise.
22594         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
22595         to real_to_integer.
22596         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
22597         interfaces.
22598         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
22599         double_ints.  Adjust for trailing_wide_ints <3> representation.
22600         (set_nonzero_bits): Likewise.
22601         (get_range_info): Return wide_ints rather than double_ints.
22602         Adjust for trailing_wide_ints <3> representation.
22603         (get_nonzero_bits): Likewise.
22604         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
22605         representation.
22606         * tree-ssanames.h (struct range_info_def): Replace min, max and
22607         nonzero_bits with a trailing_wide_ints <3>.
22608         (set_range_info): Use wide_int_refs rather than double_ints.
22609         (set_nonzero_bits): Likewise.
22610         (get_range_info): Return wide_ints rather than double_ints.
22611         (get_nonzero_bits): Likewise.
22612         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
22613         * tree-ssa-pre.c (phi_translate_1): Likewise.
22614         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
22615         (acceptable_pow_call): Likewise.
22616         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
22617         interfaces.
22618         (vn_reference_fold_indirect): Likewise.
22619         (vn_reference_maybe_forwprop_address): Likewise.
22620         (valueize_refs_1): Likewise.
22621         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
22622         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
22623         tree_int_cst_lt and tree_int_cst_le.
22624         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
22625         interfaces.
22626         (streamer_alloc_tree): Likewise.
22627         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
22628         (streamer_write_tree_header): Likewise.
22629         (streamer_write_integer_cst): Likewise.
22630         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
22631         (build_constructors): Likewise.
22632         (array_value_type): Likewise.
22633         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
22634         (vect_check_gather): Likewise.
22635         * tree-vect-generic.c (build_replicated_const): Likewise.
22636         (expand_vector_divmod): Likewise.
22637         * tree-vect-loop.c (vect_transform_loop): Likewise.
22638         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
22639         (vect_do_peeling_for_alignment): Likewise.
22640         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
22641         * tree-vrp.c: Include wide-int.h.
22642         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
22643         (extract_range_from_assert): Use wide-int interfaces.
22644         (vrp_int_const_binop): Likewise.
22645         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
22646         double_int pointers.
22647         (ranges_from_anti_range): Use wide-int interfaces.
22648         (quad_int_cmp): Delete.
22649         (quad_int_pair_sort): Likewise.
22650         (extract_range_from_binary_expr_1): Use wide-int interfaces.
22651         (extract_range_from_unary_expr_1): Likewise.
22652         (adjust_range_with_scev): Likewise.
22653         (masked_increment): Take and return wide_ints rather than double_ints.
22654         (register_edge_assert_for_2): Use wide-int interfaces.
22655         (check_array_ref): Likewise.
22656         (search_for_addr_array): Likewise.
22657         (maybe_set_nonzero_bits): Likewise.
22658         (union_ranges): Pass an integer of the correct type instead of
22659         using integer_one_node.
22660         (intersect_ranges): Likewise.
22661         (simplify_truth_ops_using_ranges): Likewise.
22662         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
22663         (range_fits_type_p): Likewise.
22664         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
22665         a bool.
22666         (simplify_conversion_using_ranges): Use wide-int interfaces.
22667         (simplify_float_conversion_using_ranges): Likewise.
22668         (vrp_finalize): Likewise.
22669         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
22670         (gimple_stringops_transform): Likewise.
22671         * varasm.c (decode_addr_const): Likewise.
22672         (const_hash_1): Likewise.
22673         (const_rtx_hash_1): Likewise
22674         (output_constant): Likewise.
22675         (array_size_for_constructor): Likewise.
22676         (output_constructor_regular_field): Likewise.
22677         (output_constructor_bitfield): Likewise.
22678         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
22679         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
22680         GENERATOR_FILEs.
22681         * gencheck.c: Define BITS_PER_UNIT.
22682         * wide-int.cc: New.
22683         * wide-int.h: New.
22684         * wide-int-print.cc: New.
22685         * wide-int-print.h: New.
22686
22687 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22688
22689         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
22690
22691 2014-05-06  Richard Biener  <rguenther@suse.de>
22692
22693         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
22694         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
22695         (TODO_verify_all): Adjust.
22696         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
22697         TODO_verify_stmts and TODO_verify_rtl_sharing.
22698         * bb-reorder.c: Likewise.
22699         * cfgexpand.c: Likewise.
22700         * cprop.c: Likewise.
22701         * cse.c: Likewise.
22702         * function.c: Likewise.
22703         * fwprop.c: Likewise.
22704         * gcse.c: Likewise.
22705         * gimple-ssa-isolate-paths.c: Likewise.
22706         * gimple-ssa-strength-reduction.c: Likewise.
22707         * ipa-split.c: Likewise.
22708         * loop-init.c: Likewise.
22709         * loop-unroll.c: Likewise.
22710         * lower-subreg.c: Likewise.
22711         * modulo-sched.c: Likewise.
22712         * postreload-gcse.c: Likewise.
22713         * predict.c: Likewise.
22714         * recog.c: Likewise.
22715         * sched-rgn.c: Likewise.
22716         * store-motion.c: Likewise.
22717         * tracer.c: Likewise.
22718         * trans-mem.c: Likewise.
22719         * tree-call-cdce.c: Likewise.
22720         * tree-cfg.c: Likewise.
22721         * tree-cfgcleanup.c: Likewise.
22722         * tree-complex.c: Likewise.
22723         * tree-eh.c: Likewise.
22724         * tree-emutls.c: Likewise.
22725         * tree-if-conv.c: Likewise.
22726         * tree-into-ssa.c: Likewise.
22727         * tree-loop-distribution.c: Likewise.
22728         * tree-object-size.c: Likewise.
22729         * tree-parloops.c: Likewise.
22730         * tree-pass.h: Likewise.
22731         * tree-sra.c: Likewise.
22732         * tree-ssa-ccp.c: Likewise.
22733         * tree-ssa-copy.c: Likewise.
22734         * tree-ssa-copyrename.c: Likewise.
22735         * tree-ssa-dce.c: Likewise.
22736         * tree-ssa-dom.c: Likewise.
22737         * tree-ssa-dse.c: Likewise.
22738         * tree-ssa-forwprop.c: Likewise.
22739         * tree-ssa-ifcombine.c: Likewise.
22740         * tree-ssa-loop-ch.c: Likewise.
22741         * tree-ssa-loop-ivcanon.c: Likewise.
22742         * tree-ssa-loop.c: Likewise.
22743         * tree-ssa-math-opts.c: Likewise.
22744         * tree-ssa-phiopt.c: Likewise.
22745         * tree-ssa-phiprop.c: Likewise.
22746         * tree-ssa-pre.c: Likewise.
22747         * tree-ssa-reassoc.c: Likewise.
22748         * tree-ssa-sink.c: Likewise.
22749         * tree-ssa-strlen.c: Likewise.
22750         * tree-ssa-tail-merge.c: Likewise.
22751         * tree-ssa-uncprop.c: Likewise.
22752         * tree-switch-conversion.c: Likewise.
22753         * tree-tailcall.c: Likewise.
22754         * tree-vect-generic.c: Likewise.
22755         * tree-vectorizer.c: Likewise.
22756         * tree-vrp.c: Likewise.
22757         * tsan.c: Likewise.
22758         * var-tracking.c: Likewise.
22759         * bt-load.c: Likewise.
22760         * cfgcleanup.c: Likewise.
22761         * combine-stack-adj.c: Likewise.
22762         * combine.c: Likewise.
22763         * compare-elim.c: Likewise.
22764         * config/epiphany/resolve-sw-modes.c: Likewise.
22765         * config/i386/i386.c: Likewise.
22766         * config/mips/mips.c: Likewise.
22767         * config/s390/s390.c: Likewise.
22768         * config/sh/sh_treg_combine.cc: Likewise.
22769         * config/sparc/sparc.c: Likewise.
22770         * dce.c: Likewise.
22771         * dse.c: Likewise.
22772         * final.c: Likewise.
22773         * ifcvt.c: Likewise.
22774         * mode-switching.c: Likewise.
22775         * passes.c: Likewise.
22776         * postreload.c: Likewise.
22777         * ree.c: Likewise.
22778         * reg-stack.c: Likewise.
22779         * regcprop.c: Likewise.
22780         * regrename.c: Likewise.
22781         * web.c: Likewise.
22782
22783 2014-05-06  Richard Biener  <rguenther@suse.de>
22784
22785         PR middle-end/61070
22786         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
22787         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
22788
22789 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
22790
22791         PR ipa/60965
22792         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
22793
22794 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
22795             Tom de Vries  <tom@codesourcery.com>
22796
22797         * target.def (call_fusage_contains_non_callee_clobbers): New
22798         DEFHOOKPOD.
22799         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
22800         Hooks to @menu.
22801         (@node Miscellaneous Register Hooks): New node.
22802         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
22803         * doc/tm.texi: Regenerate.
22804
22805 2014-05-05  Marek Polacek  <polacek@redhat.com>
22806
22807         PR driver/61065
22808         * opts.c (common_handle_option): Call error_at instead of warning_at.
22809
22810 2014-05-05  Richard Biener  <rguenther@suse.de>
22811
22812         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
22813         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
22814         under the TODO_verify_il umbrella.
22815
22816 2014-05-05  Richard Biener  <rguenther@suse.de>
22817
22818         * passes.c (execute_function_todo): Move TODO_verify_flow under
22819         the TODO_verify_ul umbrella.
22820
22821 2014-05-05  Richard Biener  <rguenther@suse.de>
22822
22823         PR middle-end/61010
22824         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
22825         X & CST away from a CST that is the mask of a mode.
22826
22827 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22828
22829         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
22830         int argument to enum machine_mode.
22831         (picochip_class_max_nregs): Ditto.
22832         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
22833         (picochip_class_max_nregs): Ditto.
22834
22835 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22836
22837         * target.def: Add new target hook.
22838         * doc/tm.texi: Regenerate.
22839         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
22840         * targhooks.c (default_keep_leaf_when_profiled): New function.
22841
22842         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
22843         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
22844
22845 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
22846
22847         PR tree-optimization/60363
22848         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
22849         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
22850         (update_destination_phis): New parameter.
22851         (create_edge_and_update_destination_phis): Ditto.
22852         (ssa_fix_duplicate_block_edges): Pass new arguments.
22853         (thread_single_edge): Ditto.
22854
22855 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
22856
22857         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
22858         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
22859         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
22860         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
22861         Use RS6000_BTM_HARD_FLOAT.
22862         (BU_MISC_2): Likewise.
22863         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
22864         RS6000_BTM_HARD_FLOAT.
22865         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
22866         is explicitly used.
22867         (rs6000_invalid_builtin): Add hard floating builtin support.
22868         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
22869         hard float builtins.
22870         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
22871
22872 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22873
22874         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
22875         Add missing function* argument.
22876
22877 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22878
22879         * lra-constraints.c (valid_address_p): Move earlier in file.
22880         Add a constraint argument to the address_info version.
22881         (satisfies_memory_constraint_p): New function.
22882         (satisfies_address_constraint_p): Likewise.
22883         (process_alt_operands, curr_insn_transform): Use them.
22884         (process_address): Pass the constraint to valid_address_p when
22885         checking address operands.
22886
22887 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
22888
22889         * config/mips/mips.c (mips_isa_rev): New variable.
22890         (mips_set_architecture): Set it.
22891         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
22892         from mips_isa_rev.
22893         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
22894         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
22895         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
22896         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
22897         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
22898         conditions in terms of mips_isa_rev.
22899         (mips_isa_rev): Declare.
22900
22901 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22902
22903         * config/sh/sh-mem.cc: Use tabs instead of spaces.
22904         (prob_unlikely, prob_likely): Make variables const.
22905
22906 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
22907
22908         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
22909
22910 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22911
22912         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
22913
22914 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22915
22916         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
22917         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
22918         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
22919         functions.
22920         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
22921         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
22922         sh_pass_in_reg_p.
22923         Replace usage of ROUND_REG with sh_round_reg.
22924         Use CEIL instead of ROUND_ADVANCE.
22925
22926 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
22927
22928         PR target/61026
22929         * config/sh/sh.c: Include stdlib headers before everything else.
22930
22931 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
22932
22933         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
22934         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
22935         (gimplify_adjust_omp_clauses): Simd region is never
22936         directly nested in combined parallel.  Instead, for linear
22937         with copyin/copyout, if in combined for simd loop, make decl
22938         firstprivate/lastprivate on OMP_FOR.
22939         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
22940         expand_omp_for_static_chunk): When setting endvar, also set
22941         fd->loop.v to the same value.
22942
22943 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
22944
22945         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
22946
22947 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
22948
22949         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
22950         expression.
22951
22952 2014-05-02  Marek Polacek  <polacek@redhat.com>
22953
22954         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
22955
22956 2014-05-02  Kito Cheng  <kito@0xlab.org>
22957
22958         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
22959         to a C expression marco.
22960         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
22961         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
22962         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
22963         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
22964         HONOR_REG_ALLOC_ORDER.
22965         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
22966
22967 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22968
22969         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
22970
22971 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
22972
22973         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
22974
22975 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
22976
22977         * tree-if-conv.c (is_cond_scalar_reduction): New function.
22978         (convert_scalar_cond_reduction): Likewise.
22979         (predicate_scalar_phi): Add recognition and transformation
22980         of simple conditioanl reduction to be vectorizable.
22981
22982 2014-05-01  Marek Polacek  <polacek@redhat.com>
22983
22984         PR c/43245
22985         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
22986
22987 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
22988
22989         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
22990         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
22991         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
22992         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
22993         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
22994         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
22995         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
22996         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
22997
22998 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
22999
23000         * config/arc/arc.opt (mlra): Move comment above option name
23001         to avoid mis-parsing as language options.
23002
23003 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23004
23005         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
23006         * config/sol2.h: ... here.
23007         * config/sol2-10.h: Remove.
23008
23009         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
23010         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
23011         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
23012         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
23013         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
23014         * config/sol2.h: ... here.
23015         (SECTION_NAME_FORMAT): Don't redefine.
23016         (STARTFILE_ARCH32_SPEC): Rename to ...
23017         (STARTFILE_ARCH_SPEC): ... this.
23018         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
23019         * config/sparc/sol2.h: ... here.
23020         (SECTION_NAME_FORMAT): Don't undef.
23021         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
23022         (SUBTARGET_EXTRA_SPECS): Remove.
23023         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
23024
23025         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
23026         (MD_STARTFILE_PREFIX): Remove.
23027         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
23028         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
23029         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
23030         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
23031         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
23032         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
23033         * config/i386/sol2.h: ... here.
23034         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
23035         * config/i386/sol2-bi.h: Remove.
23036         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
23037         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
23038
23039         * config/i386/t-sol2-64: Rename to ...
23040         * config/i386/t-sol2: ... this.
23041         * config/sparc/t-sol2-64: Rename to ...
23042         * config/sparc/t-sol2: ... this.
23043
23044         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
23045         sol2_tm_file_head, sol2_tm_file_tail.
23046         Include ${cpu_type}/sol2.h before sol2.h.
23047         Remove sol2-10.h.
23048         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
23049         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
23050         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
23051         Reflect i386/t-sol2-64 renaming.
23052         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
23053         Reflect sparc/t-sol2-64 renaming.
23054
23055 2014-04-30  Richard Biener  <rguenther@suse.de>
23056
23057         * passes.c (execute_function_todo): Move TODO_verify_stmts
23058         and TODO_verify_ssa under the TODO_verify_il umbrella.
23059         * tree-ssa.h (verify_ssa): Adjust prototype.
23060         * tree-ssa.c (verify_ssa): Add parameter to tell whether
23061         we should verify SSA operands.
23062         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
23063         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
23064         whether we should verify whether not throwing stmts have EH info.
23065         * graphite-scop-detection.c (create_sese_edges): Adjust.
23066         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
23067         * tree-eh.c (lower_try_finally_switch): Do not add the
23068         default case label twice.
23069
23070 2014-04-30  Marek Polacek  <polacek@redhat.com>
23071
23072         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
23073         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
23074         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
23075         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
23076
23077 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23078
23079         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
23080         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
23081         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
23082         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
23083         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
23084         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
23085         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
23086         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
23087
23088 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
23089
23090         * tree-cfg.c (dump_function_to_file): Dump the return type of
23091         functions, in a line to itself before the function body, mimicking
23092         the layout of a C function.
23093
23094 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
23095
23096         PR tree-optimization/60971
23097         * tree-tailcall.c (process_assignment): Reject conversions which
23098         reduce precision.
23099
23100 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
23101
23102         * calls.c (initialize_argument_information): Always treat
23103         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
23104         (expand_call): Likewise.
23105         (emit_library_call_calue_1): Likewise.
23106         * expr.c (PUSH_ARGS_REVERSED): Do not define.
23107         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
23108         code accordingly.
23109
23110 2014-04-29  Nick Clifton  <nickc@redhat.com>
23111
23112         * config/msp430/msp430.md (umulsidi): Fix typo.
23113         (mulhisi3): Enable even inside interrupt handlers.
23114         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
23115         bigger return address pushed in large mode.
23116
23117 2014-04-29  Nick Clifton  <nickc@redhat.com>
23118
23119         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
23120         (arc_init_reg_tables): Use a machine_mode enum to iterate over
23121         available modes.
23122         * config/m32r/m32r.c (init_reg_tables): Likewise.
23123         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
23124         enum to hold the modes.
23125
23126 2014-04-29  Richard Biener  <rguenther@suse.de>
23127
23128         * dominance.c (free_dominance_info): Add overload with
23129         function parameter.
23130         (dom_info_state): Likewise.
23131         (dom_info_available_p): Likewise.
23132         * basic-block.h (free_dominance_info, dom_info_state,
23133         dom_info_available_p): Declare overloads.
23134         * passes.c (execute_function_todo): Verify that verifiers
23135         don't change dominator info state.  Drop dominator info
23136         for IPA pass invocations.
23137         * cgraph.c (release_function_body): Restore asserts that
23138         dominator information is released.
23139
23140 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
23141
23142         * doc/invoke.texi: Fix typo.
23143         * tree-vrp.c: Fix typos.
23144         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
23145
23146 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23147
23148         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
23149
23150 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
23151
23152         * config/aarch64/aarch64-builtins.c
23153         (aarch64_types_storestruct_lane_qualifiers): New.
23154         (TYPES_STORESTRUCT_LANE): Likewise.
23155         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
23156         (st3_lane): Likewise.
23157         (st4_lane): Likewise.
23158         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
23159         (vec_store_lanesci_lane<mode>): Likewise.
23160         (vec_store_lanesxi_lane<mode>): Likewise.
23161         (aarch64_st2_lane<VQ:mode>): Likewise.
23162         (aarch64_st3_lane<VQ:mode>): Likewise.
23163         (aarch64_st4_lane<VQ:mode>): Likewise.
23164         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
23165         * config/aarch64/arm_neon.h
23166         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
23167         use new macro arguments.
23168         (__ST3_LANE_FUNC): Likewise.
23169         (__ST4_LANE_FUNC): Likewise.
23170         * config/aarch64/iterators.md (V_TWO_ELEM): New.
23171         (V_THREE_ELEM): Likewise.
23172         (V_FOUR_ELEM): Likewise.
23173
23174 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
23175
23176         * doc/gimple.texi: Replace the description of the now-defunct
23177         union gimple_statement_d with a diagram showing the
23178         gimple_statement_base class hierarchy and its relationships to
23179         the GSS_ and GIMPLE_ enums.
23180
23181 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
23182
23183         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
23184         * config/aarch64/aarch64.c
23185         (aarch64_cannot_change_mode_class): Weaken conditions.
23186         (aarch64_modes_tieable_p): New.
23187         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
23188
23189 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
23190
23191         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
23192         (loadsync_<mode>): Change mode.
23193         (load_quadpti, store_quadpti): New.
23194         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
23195         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
23196
23197 2014-04-28  Martin Jambor  <mjambor@suse.cz>
23198
23199         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
23200         same alias type as the original statement.
23201         (subreplacement_assignment_data): New type.
23202         (handle_unscalarized_data_in_subtree): New type of parameter,
23203         generate new memory accesses with same alias type as the original
23204         statement.
23205         (load_assign_lhs_subreplacements): Likewise.
23206         (sra_modify_constructor_assign): Generate new memory accesses with
23207         same alias type as the original statement.
23208
23209 2014-04-28  Richard Biener  <rguenther@suse.de>
23210
23211         * tree-pass.h (TODO_verify_il): Define.
23212         (TODO_verify_all): Complete properly.
23213         * passes.c (execute_function_todo): Move existing loop-closed
23214         SSA verification under TODO_verify_il.
23215         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
23216         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
23217         Fix tree sharing issue.
23218
23219 2014-04-28  Richard Biener  <rguenther@suse.de>
23220
23221         PR middle-end/60092
23222         * builtins.def (DEF_C11_BUILTIN): Add.
23223         (BUILT_IN_ALIGNED_ALLOC): Likewise.
23224         * coretypes.h (enum function_class): Add function_c11_misc.
23225         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
23226         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
23227         (call_may_clobber_ref_p_1): Likewise.
23228         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
23229         (mark_all_reaching_defs_necessary_1): Likewise.
23230         (propagate_necessity): Likewise.
23231         (eliminate_unnecessary_stmts): Likewise.
23232         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
23233
23234 2014-04-28  Richard Biener  <rguenther@suse.de>
23235
23236         * tree-vrp.c (vrp_var_may_overflow): Remove.
23237         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
23238         with overflow immediately bump to one before that value and
23239         let iteration figure out overflow status.
23240
23241 2014-04-28  Richard Biener  <rguenther@suse.de>
23242
23243         * configure.ac: Do valgrind header checks unconditionally.
23244         Add --enable-valgrind-annotations.
23245         * system.h: Guard valgrind header inclusion with
23246         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
23247         * alloc-pool.c (pool_alloc, pool_free): Use
23248         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
23249         to guard possibly dead code.
23250         * config.in: Regenerated.
23251         * configure: Likewise.
23252
23253 2014-04-28  Jeff Law  <law@redhat.com>
23254
23255         PR tree-optimization/60902
23256         * tree-ssa-threadedge.c
23257         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
23258         over real defs when invalidating outputs from statements that do not
23259         produce useful outputs for threading.
23260
23261 2014-04-28  Richard Biener  <rguenther@suse.de>
23262
23263         PR tree-optimization/60979
23264         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
23265         SCOPs that end in a block with a successor with abnormal
23266         predecessors.
23267
23268 2014-04-28  Richard Biener  <rguenther@suse.de>
23269
23270         * tree-pass.h (execute_pass_list): Adjust prototype.
23271         * passes.c (pass_manager::execute_early_local_passes): Adjust.
23272         (do_per_function): Change callback signature, push all actual
23273         work to the callbals.
23274         (do_per_function_toporder): Likewise.
23275         (execute_function_dump): Adjust.
23276         (execute_function_todo): Likewise.
23277         (clear_last_verified): Likewise.
23278         (verify_curr_properties): Likewise.
23279         (update_properties_after_pass): Likewise.
23280         (execute_pass_list_1): Split out from ...
23281         (execute_pass_list): ... here.  Adjust.
23282         (execute_ipa_pass_list): Likewise.
23283         * cgraphunit.c (cgraph_add_new_function): Adjust.
23284         (analyze_function): Likewise.
23285         (expand_function): Likewise.
23286         * cgraph.c (release_function_body): Free dominance info
23287         here instead of asserting it was magically freed elsewhere.
23288
23289 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23290
23291         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
23292         * configure: Regenerate.
23293         * config/sparc/sparc.opt (muser-mode): New option.
23294         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
23295         for LEON3.
23296         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
23297         * doc/invoke.texi (SPARC options): Document -muser-mode.
23298
23299 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
23300
23301         * cselib.c (find_slot_memmode): Delete.
23302         (cselib_hasher): Change compare_type to a struct.
23303         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
23304         constants.
23305         (preserve_constants_and_equivs): Adjust for new compare_type.
23306         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
23307         (wrap_constant): Delete.
23308         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
23309
23310 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
23311
23312         * doc/install.texi (Building with profile feedback): Remove
23313         outdated sentence.
23314
23315 2014-04-26  Tom de Vries  <tom@codesourcery.com>
23316
23317         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
23318         array accesses.
23319
23320 2014-04-25  Cary Coutant  <ccoutant@google.com>
23321
23322         PR debug/60929
23323         * dwarf2out.c (should_move_die_to_comdat): A type definition
23324         can contain a subprogram definition, but don't move it to a
23325         comdat unit.
23326         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
23327         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
23328         from original DIE.
23329         (clone_tree_hash): Rename to...
23330         (clone_tree_partial): ...this; change callers.  Copy
23331         DW_TAG_subprogram DIEs as declarations.
23332         (copy_decls_walk): Don't copy children of a declaration into a
23333         type unit.
23334
23335 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
23336
23337         PR target/60969
23338         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
23339         alternative 12.
23340
23341 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
23342
23343         * config/arm/predicates.md (call_insn_operand): Add long_call check.
23344         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
23345         reg for long_call.
23346         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
23347         restriction.
23348
23349 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23350
23351         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
23352
23353 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23354
23355         PR tree-optimization/60930
23356         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
23357         creating a multiply candidate by folding two constant
23358         multiplicands when the result overflows.
23359
23360 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
23361
23362         PR tree-optimization/60960
23363         * tree-vect-generic.c (expand_vector_operation): Only call
23364         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
23365
23366 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23367
23368         * expr.c (clobber_reg_mode): New function.
23369         * expr.h (clobber_reg): New function.
23370
23371 2014-04-25  Tom de Vries  <tom@codesourcery.com>
23372
23373         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
23374         clobbers.
23375
23376 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
23377             Tom de Vries  <tom@codesourcery.com>
23378
23379         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
23380         handle.
23381         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
23382         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
23383         new argument to find_all_hard_reg_sets call.
23384
23385 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23386
23387         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
23388         Use HOST_WIDE_INT_C for mask literal.
23389         (aarch_rev16_shleft_mask_imm_p): Likewise.
23390
23391 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
23392
23393         PR target/60941
23394         * config/sparc/sparc.md (ashlsi3_extend): Delete.
23395
23396 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
23397
23398         PR preprocessor/56540
23399         * config/i386/i386-c.c (ix86_target_macros): Define
23400         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
23401
23402 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23403
23404         * configure.ac (tga_func): Remove.
23405         (LIB_TLS_SPEC): Remove.
23406         * configure: Regenerate.
23407         * config.in: Regenerate.
23408         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
23409
23410 2014-04-25  Richard Biener  <rguenther@suse.de>
23411
23412         PR ipa/60912
23413         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
23414         call stmt use/clobber sets during stmt walk instead of
23415         walking the possibly incomplete set of caller edges.
23416
23417 2014-04-25  Richard Biener  <rguenther@suse.de>
23418
23419         PR ipa/60911
23420         * passes.c (apply_ipa_transforms): Inline into only caller ...
23421         (execute_one_pass): ... here.  Properly bring in function
23422         bodies for nodes we want to apply IPA transforms to.
23423
23424 2014-04-24  Cong Hou  <congh@google.com>
23425
23426         PR tree-optimization/60896
23427         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
23428         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
23429         (vect_mark_pattern_stmts): Set the def type of all statements in
23430         PATTERN_DEF_SEQ as vect_internal_def.
23431
23432 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23433
23434         * doc/extend.texi (PowerPC Built-in Functions): Document new
23435         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
23436         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
23437
23438         * config/rs6000/predicates.md (const_0_to_3_operand): New
23439         predicate to match 0..3 integer constants.
23440
23441         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
23442         to support adding miscellaneous builtin functions.
23443         (BU_DFP_MISC_2): Likewise.
23444         (BU_P7_MISC_1): Likewise.
23445         (BU_P7_MISC_2): Likewise.
23446         (BU_P8V_MISC_3): Likewise.
23447         (BU_MISC_1): Likewise.
23448         (BU_MISC_2): Likewise.
23449         (DIVWE): Add extended divide builtin functions.
23450         (DIVWEO): Likewise.
23451         (DIVWEU): Likewise.
23452         (DIVWEUO): Likewise.
23453         (DIVDE): Likewise.
23454         (DIVDEO): Likewise.
23455         (DIVDEU): Likewise.
23456         (DIVDEUO): Likewise.
23457         (DXEX): Add decimal floating-point builtin functions.
23458         (DXEXQ): Likewise.
23459         (DDEDPD): Likewise.
23460         (DDEDPDQ): Likewise.
23461         (DENBCD): Likewise.
23462         (DENBCDQ): Likewise.
23463         (DIEX): Likewise.
23464         (DIEXQ): Likewise.
23465         (DSCLI): Likewise.
23466         (DSCLIQ): Likewise.
23467         (DSCRI): Likewise.
23468         (DSCRIQ): Likewise.
23469         (CDTBCD): Add new BCD builtin functions.
23470         (CBCDTD): Likewise.
23471         (ADDG6S): Likewise.
23472         (BCDADD): Likewise.
23473         (BCDADD_LT): Likewise.
23474         (BCDADD_EQ): Likewise.
23475         (BCDADD_GT): Likewise.
23476         (BCDADD_OV): Likewise.
23477         (BCDSUB): Likewise.
23478         (BCDSUB_LT): Likewise.
23479         (BCDSUB_EQ): Likewise.
23480         (BCDSUB_GT): Likewise.
23481         (BCDSUB_OV): Likewise.
23482         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
23483         (UNPACK_TD): Likewise.
23484         (PACK_TF): Likewise.
23485         (UNPACK_TF): Likewise.
23486         (UNPACK_TF_0): Likewise.
23487         (UNPACK_TF_1): Likewise.
23488         (PACK_V1TI): Likewise.
23489         (UNPACK_V1TI): Likewise.
23490
23491         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
23492         support for decimal floating point builtin functions.
23493         (rs6000_expand_ternop_builtin): Add checks for the new builtin
23494         functions that take constant arguments.
23495         (rs6000_invalid_builtin): Add decimal floating point builtin support.
23496         (rs6000_init_builtins): Setup long double, _Decimal64, and
23497         _Decimal128 types for new builtin functions.
23498         (builtin_function_type): Set the unsigned flags appropriately for
23499         the new builtin functions.
23500         (rs6000_opt_masks): Add support for decimal floating point builtin
23501         functions.
23502
23503         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
23504         floating point builtin functions.
23505         (RS6000_BTM_COMMON): Likewise.
23506         (RS6000_BTI_long_double): Likewise.
23507         (RS6000_BTI_dfloat64): Likewise.
23508         (RS6000_BTI_dfloat128): Likewise.
23509         (long_double_type_internal_node): Likewise.
23510         (dfloat64_type_internal_node): Likewise.
23511         (dfloat128_type_internal_node): Likewise.
23512
23513         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
23514         2.07 bcd arithmetic instructions.
23515         (UNSPEC_BCDSUB): Likewise.
23516         (UNSPEC_BCD_OVERFLOW): Likewise.
23517         (UNSPEC_BCD_ADD_SUB): Likewise.
23518         (bcd_add_sub): Likewise.
23519         (BCD_TEST): Likewise.
23520         (bcd<bcd_add_sub>): Likewise.
23521         (bcd<bcd_add_sub>_test): Likewise.
23522         (bcd<bcd_add_sub>_test2): Likewise.
23523         (bcd<bcd_add_sub>_<code>): Likewise.
23524         (peephole2 for combined bcd ops): Likewise.
23525
23526         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
23527         decimal floating point builtin functions.
23528         (UNSPEC_DENBCD): Likewise.
23529         (UNSPEC_DXEX): Likewise.
23530         (UNSPEC_DIEX): Likewise.
23531         (UNSPEC_DSCLI): Likewise.
23532         (UNSPEC_DSCRI): Likewise.
23533         (D64_D128): Likewise.
23534         (dfp_suffix): Likewise.
23535         (dfp_ddedpd_<mode>): Likewise.
23536         (dfp_denbcd_<mode>): Likewise.
23537         (dfp_dxex_<mode>): Likewise.
23538         (dfp_diex_<mode>): Likewise.
23539         (dfp_dscli_<mode>): Likewise.
23540         (dfp_dscri_<mode>): Likewise.
23541
23542         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
23543         builtin functions.
23544         (UNSPEC_CDTBCD): Likewise.
23545         (UNSPEC_CBCDTD): Likewise.
23546         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
23547         (UNSPEC_DIVEO): Likewise.
23548         (UNSPEC_DIVEU): Likewise.
23549         (UNSPEC_DIVEUO): Likewise.
23550         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
23551         pack/unpack 128-bit types.
23552         (UNSPEC_PACK_128BIT): Likewise.
23553         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
23554         (udiv<mode>3): Use idiv_ldiv mode attribute.
23555         (div<mode>3): Likewise.
23556         (addg6s): Add new BCD builtin functions.
23557         (cdtbcd): Likewise.
23558         (cbcdtd): Likewise.
23559         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
23560         (div_extend): Likewise.
23561         (div<div_extend>_<mode>"): Likewise.
23562         (FP128_64): Add support for new builtin functions to pack/unpack
23563         128-bit types.
23564         (unpack<mode>): Likewise.
23565         (unpacktf_0): Likewise.
23566         (unpacktf_1): Likewise.
23567         (unpack<mode>_dm): Likewise.
23568         (unpack<mode>_nodm): Likewise.
23569         (pack<mode>): Likewise.
23570         (unpackv1ti): Likewise.
23571         (packv1ti): Likewise.
23572
23573 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
23574
23575         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
23576         is disabled.
23577
23578 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
23579
23580         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
23581         * gimplify.c (omp_is_private): Change last argument's type to int.
23582         Only diagnose lastprivate if the simd argument is 1, only diagnose
23583         linear if the simd argument is 2.
23584         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
23585         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
23586         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
23587         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
23588         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
23589         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23590         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
23591         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
23592         * tree-nested.c (convert_nonlocal_omp_clauses,
23593         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
23594
23595 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
23596
23597         PR target/60822
23598         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
23599         operand 1.
23600
23601 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
23602
23603         * flag-types.h (enum ivar_visibility): Add.
23604
23605 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
23606
23607         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
23608         function * argument.
23609
23610 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
23611
23612         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
23613
23614 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23615             Tom de Vries  <tom@codesourcery.com>
23616
23617         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
23618         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
23619         reg-note.
23620         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
23621         * emit-rtl.c (try_split): Same.
23622
23623 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
23624             Tom de Vries  <tom@codesourcery.com>
23625
23626         * common.opt (fuse-caller-save): New option.
23627
23628 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
23629
23630         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
23631         elements for big-endian.
23632
23633 2014-04-24  Richard Biener  <rguenther@suse.de>
23634
23635         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
23636         during TER and instead use the sepops interface for expanding
23637         non-GIMPLE_SINGLE_RHS.
23638
23639 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23640
23641         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
23642         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
23643
23644 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23645
23646         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
23647         assembler 64-bit option.
23648         * configure: Regenerate.
23649
23650 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23651
23652         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
23653         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
23654         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
23655         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
23656         (TARGET_CRYPTO): Take TARGET_SIMD into account.
23657
23658 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23659
23660         * config/aarch64/aarch64-builtins.c
23661         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
23662         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
23663         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
23664         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
23665         builtins.
23666         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
23667         (Vrevsuff): New mode attribute.
23668
23669 2014-04-24  Terry Guo  <terry.guo@arm.com>
23670
23671         * config/arm/arm.h (machine_function): Define variable
23672         after_arm_reorg here.
23673         * config/arm/arm.c (after_arm_reorg): Remove the definition.
23674         (arm_split_constant): Update the way to access variable
23675         after_arm_reorg.
23676         (arm_reorg): Ditto.
23677         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
23678
23679 2014-04-23  Tom de Vries  <tom@codesourcery.com>
23680
23681         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
23682
23683 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
23684
23685         * is-a.h: Update comments to reflect the following changes to the
23686         "pointerness" of the API, making the template parameter match the
23687         return type, allowing use of is-a.h with typedefs of pointers.
23688         (is_a_helper::cast): Return a T rather then a pointer to a T, so
23689         that the return type matches the parameter to the is_a_helper.
23690         (as_a): Likewise.
23691         (dyn_cast): Likewise.
23692
23693         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
23694         pointer from the is-a.h API.
23695
23696         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
23697         (is_a_helper <cgraph_node *>::test): ...this, matching change to
23698         is-a.h API.
23699         (is_a_helper <varpool_node>::test): Likewise, convert to...
23700         (is_a_helper <varpool_node *>::test): ...this.
23701
23702         (varpool_first_variable): Update for removal of implicit pointer
23703         from the is-a.h API.
23704         (varpool_next_variable): Likewise.
23705         (varpool_first_static_initializer): Likewise.
23706         (varpool_next_static_initializer): Likewise.
23707         (varpool_first_defined_variable): Likewise.
23708         (varpool_next_defined_variable): Likewise.
23709         (cgraph_first_defined_function): Likewise.
23710         (cgraph_next_defined_function): Likewise.
23711         (cgraph_first_function): Likewise.
23712         (cgraph_next_function): Likewise.
23713         (cgraph_first_function_with_gimple_body): Likewise.
23714         (cgraph_next_function_with_gimple_body): Likewise.
23715         (cgraph_alias_target): Likewise.
23716         (varpool_alias_target): Likewise.
23717         (cgraph_function_or_thunk_node): Likewise.
23718         (varpool_variable_node): Likewise.
23719         (symtab_real_symbol_p): Likewise.
23720         * cgraphunit.c (referred_to_p): Likewise.
23721         (analyze_functions): Likewise.
23722         (handle_alias_pairs): Likewise.
23723         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
23724         * gimple-ssa.h (gimple_vuse_op): Likewise.
23725         (gimple_vdef_op): Likewise.
23726         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
23727         * gimple.c (gimple_build_asm_1): Likewise.
23728         (gimple_build_try): Likewise.
23729         (gimple_build_resx): Likewise.
23730         (gimple_build_eh_dispatch): Likewise.
23731         (gimple_build_omp_for): Likewise.
23732         (gimple_omp_for_set_clauses): Likewise.
23733
23734         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
23735         (is_a_helper <gimple_statement_asm *>::test): ...this.
23736         (is_a_helper <gimple_statement_bind>::test): Convert to...
23737         (is_a_helper <gimple_statement_bind *>::test): ...this.
23738         (is_a_helper <gimple_statement_call>::test): Convert to...
23739         (is_a_helper <gimple_statement_call *>::test): ...this.
23740         (is_a_helper <gimple_statement_catch>::test): Convert to...
23741         (is_a_helper <gimple_statement_catch *>::test): ...this.
23742         (is_a_helper <gimple_statement_resx>::test): Convert to...
23743         (is_a_helper <gimple_statement_resx *>::test): ...this.
23744         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
23745         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
23746         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
23747         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
23748         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
23749         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
23750         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
23751         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
23752         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
23753         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
23754         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
23755         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
23756         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
23757         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
23758         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
23759         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
23760         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
23761         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
23762         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
23763         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
23764         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
23765         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
23766         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
23767         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
23768         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
23769         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
23770         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
23771         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
23772         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
23773         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
23774         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
23775         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
23776         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
23777         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
23778         (is_a_helper <gimple_statement_phi>::test): Convert to...
23779         (is_a_helper <gimple_statement_phi *>::test): ...this.
23780         (is_a_helper <gimple_statement_transaction>::test): Convert to...
23781         (is_a_helper <gimple_statement_transaction *>::test): ...this.
23782         (is_a_helper <gimple_statement_try>::test): Convert to...
23783         (is_a_helper <gimple_statement_try *>::test): ...this.
23784         (is_a_helper <gimple_statement_wce>::test): Convert to...
23785         (is_a_helper <gimple_statement_wce *>::test): ...this.
23786         (is_a_helper <const gimple_statement_asm>::test): Convert to...
23787         (is_a_helper <const gimple_statement_asm *>::test): ...this.
23788         (is_a_helper <const gimple_statement_bind>::test): Convert to...
23789         (is_a_helper <const gimple_statement_bind *>::test): ...this.
23790         (is_a_helper <const gimple_statement_call>::test): Convert to...
23791         (is_a_helper <const gimple_statement_call *>::test): ...this.
23792         (is_a_helper <const gimple_statement_catch>::test): Convert to...
23793         (is_a_helper <const gimple_statement_catch *>::test): ...this.
23794         (is_a_helper <const gimple_statement_resx>::test): Convert to...
23795         (is_a_helper <const gimple_statement_resx *>::test): ...this.
23796         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
23797         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
23798         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
23799         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
23800         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
23801         Convert to...
23802         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
23803         ...this.
23804         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
23805         Convert to...
23806         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
23807         ...this.
23808         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
23809         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
23810         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
23811         to...
23812         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
23813         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
23814         to...
23815         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
23816         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
23817         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
23818         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
23819         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
23820         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
23821         to...
23822         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
23823         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
23824         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
23825         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
23826         to...
23827         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
23828         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
23829         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
23830         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
23831         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
23832         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
23833         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
23834         (is_a_helper <const gimple_statement_phi>::test): Convert to...
23835         (is_a_helper <const gimple_statement_phi *>::test): ...this.
23836         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
23837         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
23838         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
23839         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
23840         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
23841         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
23842         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
23843         to...
23844         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
23845         ...this.
23846         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
23847         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
23848
23849         (gimple_use_ops): Update for removal of implicit pointer from the
23850         is-a.h API.
23851         (gimple_set_use_ops): Likewise.
23852         (gimple_vuse): Likewise.
23853         (gimple_vdef): Likewise.
23854         (gimple_vuse_ptr): Likewise.
23855         (gimple_vdef_ptr): Likewise.
23856         (gimple_set_vuse): Likewise.
23857         (gimple_set_vdef): Likewise.
23858         (gimple_omp_return_set_lhs): Likewise.
23859         (gimple_omp_return_lhs): Likewise.
23860         (gimple_omp_return_lhs_ptr): Likewise.
23861         (gimple_call_fntype): Likewise.
23862         (gimple_call_set_fntype): Likewise.
23863         (gimple_call_set_internal_fn): Likewise.
23864         (gimple_call_use_set): Likewise.
23865         (gimple_call_clobber_set): Likewise.
23866         (gimple_bind_vars): Likewise.
23867         (gimple_bind_set_vars): Likewise.
23868         (gimple_bind_body_ptr): Likewise.
23869         (gimple_bind_set_body): Likewise.
23870         (gimple_bind_add_stmt): Likewise.
23871         (gimple_bind_block): Likewise.
23872         (gimple_bind_set_block): Likewise.
23873         (gimple_asm_ninputs): Likewise.
23874         (gimple_asm_noutputs): Likewise.
23875         (gimple_asm_nclobbers): Likewise.
23876         (gimple_asm_nlabels): Likewise.
23877         (gimple_asm_input_op): Likewise.
23878         (gimple_asm_input_op_ptr): Likewise.
23879         (gimple_asm_output_op): Likewise.
23880         (gimple_asm_output_op_ptr): Likewise.
23881         (gimple_asm_set_output_op): Likewise.
23882         (gimple_asm_clobber_op): Likewise.
23883         (gimple_asm_set_clobber_op): Likewise.
23884         (gimple_asm_label_op): Likewise.
23885         (gimple_asm_set_label_op): Likewise.
23886         (gimple_asm_string): Likewise.
23887         (gimple_catch_types): Likewise.
23888         (gimple_catch_types_ptr): Likewise.
23889         (gimple_catch_handler_ptr): Likewise.
23890         (gimple_catch_set_types): Likewise.
23891         (gimple_catch_set_handler): Likewise.
23892         (gimple_eh_filter_types): Likewise.
23893         (gimple_eh_filter_types_ptr): Likewise.
23894         (gimple_eh_filter_failure_ptr): Likewise.
23895         (gimple_eh_filter_set_types): Likewise.
23896         (gimple_eh_filter_set_failure): Likewise.
23897         (gimple_eh_must_not_throw_fndecl): Likewise.
23898         (gimple_eh_must_not_throw_set_fndecl): Likewise.
23899         (gimple_eh_else_n_body_ptr): Likewise.
23900         (gimple_eh_else_e_body_ptr): Likewise.
23901         (gimple_eh_else_set_n_body): Likewise.
23902         (gimple_eh_else_set_e_body): Likewise.
23903         (gimple_try_eval_ptr): Likewise.
23904         (gimple_try_cleanup_ptr): Likewise.
23905         (gimple_try_set_eval): Likewise.
23906         (gimple_try_set_cleanup): Likewise.
23907         (gimple_wce_cleanup_ptr): Likewise.
23908         (gimple_wce_set_cleanup): Likewise.
23909         (gimple_phi_capacity): Likewise.
23910         (gimple_phi_num_args): Likewise.
23911         (gimple_phi_result): Likewise.
23912         (gimple_phi_result_ptr): Likewise.
23913         (gimple_phi_set_result): Likewise.
23914         (gimple_phi_arg): Likewise.
23915         (gimple_phi_set_arg): Likewise.
23916         (gimple_resx_region): Likewise.
23917         (gimple_resx_set_region): Likewise.
23918         (gimple_eh_dispatch_region): Likewise.
23919         (gimple_eh_dispatch_set_region): Likewise.
23920         (gimple_omp_critical_name): Likewise.
23921         (gimple_omp_critical_name_ptr): Likewise.
23922         (gimple_omp_critical_set_name): Likewise.
23923         (gimple_omp_for_clauses): Likewise.
23924         (gimple_omp_for_clauses_ptr): Likewise.
23925         (gimple_omp_for_set_clauses): Likewise.
23926         (gimple_omp_for_collapse): Likewise.
23927         (gimple_omp_for_index): Likewise.
23928         (gimple_omp_for_index_ptr): Likewise.
23929         (gimple_omp_for_set_index): Likewise.
23930         (gimple_omp_for_initial): Likewise.
23931         (gimple_omp_for_initial_ptr): Likewise.
23932         (gimple_omp_for_set_initial): Likewise.
23933         (gimple_omp_for_final): Likewise.
23934         (gimple_omp_for_final_ptr): Likewise.
23935         (gimple_omp_for_set_final): Likewise.
23936         (gimple_omp_for_incr): Likewise.
23937         (gimple_omp_for_incr_ptr): Likewise.
23938         (gimple_omp_for_set_incr): Likewise.
23939         (gimple_omp_for_pre_body_ptr): Likewise.
23940         (gimple_omp_for_set_pre_body): Likewise.
23941         (gimple_omp_parallel_clauses): Likewise.
23942         (gimple_omp_parallel_clauses_ptr): Likewise.
23943         (gimple_omp_parallel_set_clauses): Likewise.
23944         (gimple_omp_parallel_child_fn): Likewise.
23945         (gimple_omp_parallel_child_fn_ptr): Likewise.
23946         (gimple_omp_parallel_set_child_fn): Likewise.
23947         (gimple_omp_parallel_data_arg): Likewise.
23948         (gimple_omp_parallel_data_arg_ptr): Likewise.
23949         (gimple_omp_parallel_set_data_arg): Likewise.
23950         (gimple_omp_task_clauses): Likewise.
23951         (gimple_omp_task_clauses_ptr): Likewise.
23952         (gimple_omp_task_set_clauses): Likewise.
23953         (gimple_omp_task_child_fn): Likewise.
23954         (gimple_omp_task_child_fn_ptr): Likewise.
23955         (gimple_omp_task_set_child_fn): Likewise.
23956         (gimple_omp_task_data_arg): Likewise.
23957         (gimple_omp_task_data_arg_ptr): Likewise.
23958         (gimple_omp_task_set_data_arg): Likewise.
23959         (gimple_omp_taskreg_clauses): Likewise.
23960         (gimple_omp_taskreg_clauses_ptr): Likewise.
23961         (gimple_omp_taskreg_set_clauses): Likewise.
23962         (gimple_omp_taskreg_child_fn): Likewise.
23963         (gimple_omp_taskreg_child_fn_ptr): Likewise.
23964         (gimple_omp_taskreg_set_child_fn): Likewise.
23965         (gimple_omp_taskreg_data_arg): Likewise.
23966         (gimple_omp_taskreg_data_arg_ptr): Likewise.
23967         (gimple_omp_taskreg_set_data_arg): Likewise.
23968         (gimple_omp_task_copy_fn): Likewise.
23969         (gimple_omp_task_copy_fn_ptr): Likewise.
23970         (gimple_omp_task_set_copy_fn): Likewise.
23971         (gimple_omp_task_arg_size): Likewise.
23972         (gimple_omp_task_arg_size_ptr): Likewise.
23973         (gimple_omp_task_set_arg_size): Likewise.
23974         (gimple_omp_task_arg_align): Likewise.
23975         (gimple_omp_task_arg_align_ptr): Likewise.
23976         (gimple_omp_task_set_arg_align): Likewise.
23977         (gimple_omp_single_clauses): Likewise.
23978         (gimple_omp_single_clauses_ptr): Likewise.
23979         (gimple_omp_single_set_clauses): Likewise.
23980         (gimple_omp_target_clauses): Likewise.
23981         (gimple_omp_target_clauses_ptr): Likewise.
23982         (gimple_omp_target_set_clauses): Likewise.
23983         (gimple_omp_target_child_fn): Likewise.
23984         (gimple_omp_target_child_fn_ptr): Likewise.
23985         (gimple_omp_target_set_child_fn): Likewise.
23986         (gimple_omp_target_data_arg): Likewise.
23987         (gimple_omp_target_data_arg_ptr): Likewise.
23988         (gimple_omp_target_set_data_arg): Likewise.
23989         (gimple_omp_teams_clauses): Likewise.
23990         (gimple_omp_teams_clauses_ptr): Likewise.
23991         (gimple_omp_teams_set_clauses): Likewise.
23992         (gimple_omp_sections_clauses): Likewise.
23993         (gimple_omp_sections_clauses_ptr): Likewise.
23994         (gimple_omp_sections_set_clauses): Likewise.
23995         (gimple_omp_sections_control): Likewise.
23996         (gimple_omp_sections_control_ptr): Likewise.
23997         (gimple_omp_sections_set_control): Likewise.
23998         (gimple_omp_for_set_cond): Likewise.
23999         (gimple_omp_for_cond): Likewise.
24000         (gimple_omp_atomic_store_set_val): Likewise.
24001         (gimple_omp_atomic_store_val): Likewise.
24002         (gimple_omp_atomic_store_val_ptr): Likewise.
24003         (gimple_omp_atomic_load_set_lhs): Likewise.
24004         (gimple_omp_atomic_load_lhs): Likewise.
24005         (gimple_omp_atomic_load_lhs_ptr): Likewise.
24006         (gimple_omp_atomic_load_set_rhs): Likewise.
24007         (gimple_omp_atomic_load_rhs): Likewise.
24008         (gimple_omp_atomic_load_rhs_ptr): Likewise.
24009         (gimple_omp_continue_control_def): Likewise.
24010         (gimple_omp_continue_control_def_ptr): Likewise.
24011         (gimple_omp_continue_set_control_def): Likewise.
24012         (gimple_omp_continue_control_use): Likewise.
24013         (gimple_omp_continue_control_use_ptr): Likewise.
24014         (gimple_omp_continue_set_control_use): Likewise.
24015         (gimple_transaction_body_ptr): Likewise.
24016         (gimple_transaction_label): Likewise.
24017         (gimple_transaction_label_ptr): Likewise.
24018         (gimple_transaction_set_body): Likewise.
24019         (gimple_transaction_set_label): Likewise.
24020
24021         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
24022         * ipa-inline-analysis.c (inline_write_summary): Likewise.
24023         * ipa-ref.c (ipa_record_reference): Likewise.
24024         * ipa-reference.c (analyze_function): Likewise.
24025         (ipa_reference_write_optimization_summary): Likewise.
24026         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
24027         (address_taken_from_non_vtable_p): Likewise.
24028         (comdat_can_be_unshared_p_1): Likewise.
24029         * lto-cgraph.c (lto_output_ref): Likewise.
24030         (add_references): Likewise.
24031         (compute_ltrans_boundary): Likewise.
24032         (output_symtab): Likewise.
24033         (input_ref): Likewise.
24034         (input_cgraph_1): Likewise.
24035         (output_cgraph_opt_summary): Likewise.
24036         * lto-streamer-out.c (lto_output): Likewise.
24037         (output_symbol_p): Likewise.
24038         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
24039         (lsei_start_function_in_partition): Likewise.
24040         (lsei_next_variable_in_partition): Likewise.
24041         (lsei_start_variable_in_partition): Likewise.
24042         * symtab.c (insert_to_assembler_name_hash): Likewise.
24043         (unlink_from_assembler_name_hash): Likewise.
24044         (symtab_unregister_node): Likewise.
24045         (symtab_remove_node): Likewise.
24046         (dump_symtab_node): Likewise.
24047         (verify_symtab_base): Likewise.
24048         (verify_symtab_node): Likewise.
24049         (symtab_make_decl_local): Likewise.
24050         (symtab_alias_ultimate_target): Likewise.
24051         (symtab_resolve_alias): Likewise.
24052         (symtab_get_symbol_partitioning_class): Likewise.
24053         * tree-phinodes.c (allocate_phi_node): Likewise.
24054         (reserve_phi_args_for_new_edge): Likewise.
24055         (remove_phi_args): Likewise.
24056         * varpool.c (varpool_node_for_asm): Likewise.
24057         (varpool_remove_unreferenced_decls): Likewise.
24058
24059 2014-04-23  Jeff Law  <law@redhat.com>
24060
24061         PR tree-optimization/60902
24062         * tree-ssa-threadedge.c
24063         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
24064         invalidate outputs from statements that do not produce useful
24065         outputs for threading.
24066
24067 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
24068
24069         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
24070         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
24071         machine descriptions for Stack Smashing Protector.
24072
24073 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
24074
24075         * aarch64.md (<optab>_rol<mode>3): New pattern.
24076         (<optab>_rolsi3_uxtw): Likewise.
24077         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
24078
24079 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
24080
24081         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
24082         (arm_cortex_a12_tune): Likewise.
24083
24084 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24085
24086         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
24087
24088 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24089
24090         * config/arm/arm.md (arm_rev16si2): New pattern.
24091         (arm_rev16si2_alt): Likewise.
24092         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
24093
24094 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24095
24096         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
24097         (rev16<mode>2_alt): Likewise.
24098         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
24099         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
24100         (aarch_rev16_shleft_mask_imm_p): Likewise.
24101         (aarch_rev16_p_1): Likewise.
24102         (aarch_rev16_p): Likewise.
24103         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
24104         (aarch_rev16_shright_mask_imm_p): Likewise.
24105         (aarch_rev16_shleft_mask_imm_p): Likewise.
24106
24107 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24108
24109         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
24110         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
24111         rev cost.
24112         (cortex_a53_extra_costs): Likewise.
24113         (cortex_a57_extra_costs): Likewise.
24114         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
24115         (cortexa7_extra_costs): Likewise.
24116         (cortexa8_extra_costs): Likewise.
24117         (cortexa12_extra_costs): Likewise.
24118         (cortexa15_extra_costs): Likewise.
24119         (v7m_extra_costs): Likewise.
24120         (arm_new_rtx_costs): Handle BSWAP.
24121
24122 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24123
24124         * config/arm/arm.c (cortexa8_extra_costs): New table.
24125         (arm_cortex_a8_tune): New tuning struct.
24126         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
24127
24128 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24129
24130         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
24131
24132 2014-04-23  Richard Biener  <rguenther@suse.de>
24133
24134         * Makefile.in (OBJS): Remove loop-unswitch.o.
24135         * tree-pass.h (make_pass_rtl_unswitch): Remove.
24136         * passes.def (pass_rtl_unswitch): Likewise.
24137         * loop-init.c (gate_rtl_unswitch): Likewise.
24138         (rtl_unswitch): Likewise.
24139         (pass_data_rtl_unswitch): Likewise.
24140         (pass_rtl_unswitch): Likewise.
24141         (make_pass_rtl_unswitch): Likewise.
24142         * rtl.h (reversed_condition): Likewise.
24143         (compare_and_jump_seq): Likewise.
24144         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
24145         and make static.
24146         * loop-unroll.c (compare_and_jump_seq): Likewise.
24147
24148 2014-04-23  Richard Biener  <rguenther@suse.de>
24149
24150         PR tree-optimization/60903
24151         * tree-ssa-loop-im.c (analyze_memory_references): Remove
24152         commented code block.
24153         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
24154         loop flags to newly created BBs and edges.
24155
24156 2014-04-23  Nick Clifton  <nickc@redhat.com>
24157
24158         * config/msp430/msp430.c (msp430_handle_option): Move function
24159         to msp430-common.c
24160         (msp430_option_override): Simplify mcu and mcpu option handling.
24161         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
24162         support for -mhwmult command line option.
24163         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
24164         -mhwmult command line option.
24165         (msp430_hwmult_enabled): Delete.
24166         (msp43o_output_labelref): Add support for -mhwmult command line option.
24167         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
24168         (umulsidi3): Likewise.
24169         * config/msp430/msp430.opt (mmcu): Add Report attribute.
24170         (mcpu, mlarge, msmall): Likewise.
24171         (mhwmult): New option.
24172         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
24173         prototype.
24174         (msp430_is_f5_mcu): Remove prototype.
24175         (msp430_use_f5_series_hwmult): Add prototype.
24176         * config/msp430/msp430-opts.h: New file.
24177         * common/config/msp430: New directory.
24178         * common/config/msp430/msp430-common.c: New file.
24179         * config.gcc (msp430): Remove target_has_targetm_common.
24180         * doc/invoke.texi: Document -mhwmult command line option.
24181
24182 2014-04-23  Nick Clifton  <nickc@redhat.com>
24183
24184         * config/i386/cygwin.h (ENDFILE_SPEC): Include
24185         default-manifest.o if it can be found in the search path.
24186         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
24187
24188 2014-04-23  Terry Guo  <terry.guo@arm.com>
24189
24190         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
24191
24192 2014-04-23  Richard Biener  <rguenther@suse.de>
24193
24194         PR middle-end/60895
24195         * tree-inline.c (declare_return_variable): Use mark_addressable.
24196
24197 2014-04-23  Richard Biener  <rguenther@suse.de>
24198
24199         PR middle-end/60891
24200         * loop-init.c (loop_optimizer_init): Make sure to apply
24201         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
24202
24203 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24204
24205         PR sanitizer/60275
24206         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
24207         New options.
24208         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
24209         if flag_sanitize_undefined_trap_on_error.
24210         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
24211         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
24212         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
24213         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
24214         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
24215         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
24216         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
24217         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
24218         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
24219         * ubsan.c (ubsan_instrument_unreachable): Return
24220         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
24221         (ubsan_expand_null_ifn): Emit __builtin_trap ()
24222         if flag_sanitize_undefined_trap_on_error and
24223         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
24224         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
24225         instrument_bool_enum_load): Emit __builtin_trap () if
24226         flag_sanitize_undefined_trap_on_error and
24227         __builtin_handle_*_abort () if !flag_sanitize_recover.
24228         * doc/invoke.texi (-fsanitize-recover,
24229         -fsanitize-undefined-trap-on-error): Document.
24230
24231 2014-04-22  Christian Bruel  <christian.bruel@st.com>
24232
24233         * config/sh/sh.md (mov<mode>): Replace movQIHI.
24234          Force immediates to SImode.
24235
24236 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
24237
24238         * config/nios2/nios2.md (UNSPEC_ROUND): New.
24239         (lroundsfsi2): New.
24240         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
24241         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
24242         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
24243         (nios2_fpu_insn): Add entry for round.
24244         (N2FPU_NO_ERRNO_P): Define.
24245         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
24246         flag_errno_math.
24247         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
24248
24249 2014-04-22  Richard Henderson  <rth@redhat.com>
24250
24251         * config/aarch64/aarch64 (addti3, subti3): New expanders.
24252         (add<GPI>3_compare0): Remove leading * from name.
24253         (add<GPI>3_carryin): Likewise.
24254         (sub<GPI>3_compare0): Likewise.
24255         (sub<GPI>3_carryin): Likewise.
24256         (<su_optab>mulditi3): New expander.
24257         (multi3): New expander.
24258         (madd<GPI>): Remove leading * from name.
24259
24260 2014-04-22  Martin Jambor  <mjambor@suse.cz>
24261
24262         * cgraphclones.c (cgraph_function_versioning): Copy
24263         ipa_transforms_to_apply instead of asserting it is empty.
24264
24265 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
24266
24267         PR target/60868
24268         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
24269         on count_exp to get mode.
24270
24271 2014-04-22  Andrew Pinski  <apinski@cavium.com>
24272
24273         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24274         Handle TLS for ILP32.
24275         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
24276         (tlsie_small_<mode>): this and handle PTR.
24277         (tlsie_small_sidi): New pattern.
24278         (tlsle_small): Change to an expand to handle ILP32.
24279         (tlsle_small_<mode>): New pattern.
24280         (tlsdesc_small): Rename to ...
24281         (tlsdesc_small_<mode>): this and handle PTR.
24282
24283 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24284
24285         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
24286
24287 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24288
24289         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24290         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
24291         (aarch64_types_signed_poly_qualifiers): Likewise.
24292         (aarch64_types_unsigned_signed_qualifiers): Likewise.
24293         (aarch64_types_poly_signed_qualifiers): Likewise.
24294         (TYPES_REINTERP_SS): Type macro added.
24295         (TYPES_REINTERP_SU): Likewise.
24296         (TYPES_REINTERP_SP): Likewise.
24297         (TYPES_REINTERP_US): Likewise.
24298         (TYPES_REINTERP_PS): Likewise.
24299         (aarch64_fold_builtin): New expression folding added.
24300         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
24301         Declarations removed.
24302         (REINTERP_SS): Declarations added.
24303         (REINTERP_US): Likewise.
24304         (REINTERP_PS): Likewise.
24305         (REINTERP_SU): Likewise.
24306         (REINTERP_SP): Likewise.
24307         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
24308         (vreinterpretq_p8_f64): Likewise.
24309         (vreinterpret_p16_f64): Likewise.
24310         (vreinterpretq_p16_f64): Likewise.
24311         (vreinterpret_f32_f64): Likewise.
24312         (vreinterpretq_f32_f64): Likewise.
24313         (vreinterpret_f64_f32): Likewise.
24314         (vreinterpret_f64_p8): Likewise.
24315         (vreinterpret_f64_p16): Likewise.
24316         (vreinterpret_f64_s8): Likewise.
24317         (vreinterpret_f64_s16): Likewise.
24318         (vreinterpret_f64_s32): Likewise.
24319         (vreinterpret_f64_s64): Likewise.
24320         (vreinterpret_f64_u8): Likewise.
24321         (vreinterpret_f64_u16): Likewise.
24322         (vreinterpret_f64_u32): Likewise.
24323         (vreinterpret_f64_u64): Likewise.
24324         (vreinterpretq_f64_f32): Likewise.
24325         (vreinterpretq_f64_p8): Likewise.
24326         (vreinterpretq_f64_p16): Likewise.
24327         (vreinterpretq_f64_s8): Likewise.
24328         (vreinterpretq_f64_s16): Likewise.
24329         (vreinterpretq_f64_s32): Likewise.
24330         (vreinterpretq_f64_s64): Likewise.
24331         (vreinterpretq_f64_u8): Likewise.
24332         (vreinterpretq_f64_u16): Likewise.
24333         (vreinterpretq_f64_u32): Likewise.
24334         (vreinterpretq_f64_u64): Likewise.
24335         (vreinterpret_s64_f64): Likewise.
24336         (vreinterpretq_s64_f64): Likewise.
24337         (vreinterpret_u64_f64): Likewise.
24338         (vreinterpretq_u64_f64): Likewise.
24339         (vreinterpret_s8_f64): Likewise.
24340         (vreinterpretq_s8_f64): Likewise.
24341         (vreinterpret_s16_f64): Likewise.
24342         (vreinterpretq_s16_f64): Likewise.
24343         (vreinterpret_s32_f64): Likewise.
24344         (vreinterpretq_s32_f64): Likewise.
24345         (vreinterpret_u8_f64): Likewise.
24346         (vreinterpretq_u8_f64): Likewise.
24347         (vreinterpret_u16_f64): Likewise.
24348         (vreinterpretq_u16_f64): Likewise.
24349         (vreinterpret_u32_f64): Likewise.
24350         (vreinterpretq_u32_f64): Likewise.
24351
24352 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24353
24354         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
24355         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
24356         (vreinterpret_p8_s8): Likewise.
24357         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
24358         (vreinterpret_p8_s16): Likewise.
24359         (vreinterpret_p8_s32): Likewise.
24360         (vreinterpret_p8_s64): Likewise.
24361         (vreinterpret_p8_f32): Likewise.
24362         (vreinterpret_p8_u8): Likewise.
24363         (vreinterpret_p8_u16): Likewise.
24364         (vreinterpret_p8_u32): Likewise.
24365         (vreinterpret_p8_u64): Likewise.
24366         (vreinterpret_p8_p16): Likewise.
24367         (vreinterpretq_p8_s8): Likewise.
24368         (vreinterpretq_p8_s16): Likewise.
24369         (vreinterpretq_p8_s32): Likewise.
24370         (vreinterpretq_p8_s64): Likewise.
24371         (vreinterpretq_p8_f32): Likewise.
24372         (vreinterpretq_p8_u8): Likewise.
24373         (vreinterpretq_p8_u16): Likewise.
24374         (vreinterpretq_p8_u32): Likewise.
24375         (vreinterpretq_p8_u64): Likewise.
24376         (vreinterpretq_p8_p16): Likewise.
24377         (vreinterpret_p16_s8): Likewise.
24378         (vreinterpret_p16_s16): Likewise.
24379         (vreinterpret_p16_s32): Likewise.
24380         (vreinterpret_p16_s64): Likewise.
24381         (vreinterpret_p16_f32): Likewise.
24382         (vreinterpret_p16_u8): Likewise.
24383         (vreinterpret_p16_u16): Likewise.
24384         (vreinterpret_p16_u32): Likewise.
24385         (vreinterpret_p16_u64): Likewise.
24386         (vreinterpret_p16_p8): Likewise.
24387         (vreinterpretq_p16_s8): Likewise.
24388         (vreinterpretq_p16_s16): Likewise.
24389         (vreinterpretq_p16_s32): Likewise.
24390         (vreinterpretq_p16_s64): Likewise.
24391         (vreinterpretq_p16_f32): Likewise.
24392         (vreinterpretq_p16_u8): Likewise.
24393         (vreinterpretq_p16_u16): Likewise.
24394         (vreinterpretq_p16_u32): Likewise.
24395         (vreinterpretq_p16_u64): Likewise.
24396         (vreinterpretq_p16_p8): Likewise.
24397         (vreinterpret_f32_s8): Likewise.
24398         (vreinterpret_f32_s16): Likewise.
24399         (vreinterpret_f32_s32): Likewise.
24400         (vreinterpret_f32_s64): Likewise.
24401         (vreinterpret_f32_u8): Likewise.
24402         (vreinterpret_f32_u16): Likewise.
24403         (vreinterpret_f32_u32): Likewise.
24404         (vreinterpret_f32_u64): Likewise.
24405         (vreinterpret_f32_p8): Likewise.
24406         (vreinterpret_f32_p16): Likewise.
24407         (vreinterpretq_f32_s8): Likewise.
24408         (vreinterpretq_f32_s16): Likewise.
24409         (vreinterpretq_f32_s32): Likewise.
24410         (vreinterpretq_f32_s64): Likewise.
24411         (vreinterpretq_f32_u8): Likewise.
24412         (vreinterpretq_f32_u16): Likewise.
24413         (vreinterpretq_f32_u32): Likewise.
24414         (vreinterpretq_f32_u64): Likewise.
24415         (vreinterpretq_f32_p8): Likewise.
24416         (vreinterpretq_f32_p16): Likewise.
24417         (vreinterpret_s64_s8): Likewise.
24418         (vreinterpret_s64_s16): Likewise.
24419         (vreinterpret_s64_s32): Likewise.
24420         (vreinterpret_s64_f32): Likewise.
24421         (vreinterpret_s64_u8): Likewise.
24422         (vreinterpret_s64_u16): Likewise.
24423         (vreinterpret_s64_u32): Likewise.
24424         (vreinterpret_s64_u64): Likewise.
24425         (vreinterpret_s64_p8): Likewise.
24426         (vreinterpret_s64_p16): Likewise.
24427         (vreinterpretq_s64_s8): Likewise.
24428         (vreinterpretq_s64_s16): Likewise.
24429         (vreinterpretq_s64_s32): Likewise.
24430         (vreinterpretq_s64_f32): Likewise.
24431         (vreinterpretq_s64_u8): Likewise.
24432         (vreinterpretq_s64_u16): Likewise.
24433         (vreinterpretq_s64_u32): Likewise.
24434         (vreinterpretq_s64_u64): Likewise.
24435         (vreinterpretq_s64_p8): Likewise.
24436         (vreinterpretq_s64_p16): Likewise.
24437         (vreinterpret_u64_s8): Likewise.
24438         (vreinterpret_u64_s16): Likewise.
24439         (vreinterpret_u64_s32): Likewise.
24440         (vreinterpret_u64_s64): Likewise.
24441         (vreinterpret_u64_f32): Likewise.
24442         (vreinterpret_u64_u8): Likewise.
24443         (vreinterpret_u64_u16): Likewise.
24444         (vreinterpret_u64_u32): Likewise.
24445         (vreinterpret_u64_p8): Likewise.
24446         (vreinterpret_u64_p16): Likewise.
24447         (vreinterpretq_u64_s8): Likewise.
24448         (vreinterpretq_u64_s16): Likewise.
24449         (vreinterpretq_u64_s32): Likewise.
24450         (vreinterpretq_u64_s64): Likewise.
24451         (vreinterpretq_u64_f32): Likewise.
24452         (vreinterpretq_u64_u8): Likewise.
24453         (vreinterpretq_u64_u16): Likewise.
24454         (vreinterpretq_u64_u32): Likewise.
24455         (vreinterpretq_u64_p8): Likewise.
24456         (vreinterpretq_u64_p16): Likewise.
24457         (vreinterpret_s8_s16): Likewise.
24458         (vreinterpret_s8_s32): Likewise.
24459         (vreinterpret_s8_s64): Likewise.
24460         (vreinterpret_s8_f32): Likewise.
24461         (vreinterpret_s8_u8): Likewise.
24462         (vreinterpret_s8_u16): Likewise.
24463         (vreinterpret_s8_u32): Likewise.
24464         (vreinterpret_s8_u64): Likewise.
24465         (vreinterpret_s8_p8): Likewise.
24466         (vreinterpret_s8_p16): Likewise.
24467         (vreinterpretq_s8_s16): Likewise.
24468         (vreinterpretq_s8_s32): Likewise.
24469         (vreinterpretq_s8_s64): Likewise.
24470         (vreinterpretq_s8_f32): Likewise.
24471         (vreinterpretq_s8_u8): Likewise.
24472         (vreinterpretq_s8_u16): Likewise.
24473         (vreinterpretq_s8_u32): Likewise.
24474         (vreinterpretq_s8_u64): Likewise.
24475         (vreinterpretq_s8_p8): Likewise.
24476         (vreinterpretq_s8_p16): Likewise.
24477         (vreinterpret_s16_s8): Likewise.
24478         (vreinterpret_s16_s32): Likewise.
24479         (vreinterpret_s16_s64): Likewise.
24480         (vreinterpret_s16_f32): Likewise.
24481         (vreinterpret_s16_u8): Likewise.
24482         (vreinterpret_s16_u16): Likewise.
24483         (vreinterpret_s16_u32): Likewise.
24484         (vreinterpret_s16_u64): Likewise.
24485         (vreinterpret_s16_p8): Likewise.
24486         (vreinterpret_s16_p16): Likewise.
24487         (vreinterpretq_s16_s8): Likewise.
24488         (vreinterpretq_s16_s32): Likewise.
24489         (vreinterpretq_s16_s64): Likewise.
24490         (vreinterpretq_s16_f32): Likewise.
24491         (vreinterpretq_s16_u8): Likewise.
24492         (vreinterpretq_s16_u16): Likewise.
24493         (vreinterpretq_s16_u32): Likewise.
24494         (vreinterpretq_s16_u64): Likewise.
24495         (vreinterpretq_s16_p8): Likewise.
24496         (vreinterpretq_s16_p16): Likewise.
24497         (vreinterpret_s32_s8): Likewise.
24498         (vreinterpret_s32_s16): Likewise.
24499         (vreinterpret_s32_s64): Likewise.
24500         (vreinterpret_s32_f32): Likewise.
24501         (vreinterpret_s32_u8): Likewise.
24502         (vreinterpret_s32_u16): Likewise.
24503         (vreinterpret_s32_u32): Likewise.
24504         (vreinterpret_s32_u64): Likewise.
24505         (vreinterpret_s32_p8): Likewise.
24506         (vreinterpret_s32_p16): Likewise.
24507         (vreinterpretq_s32_s8): Likewise.
24508         (vreinterpretq_s32_s16): Likewise.
24509         (vreinterpretq_s32_s64): Likewise.
24510         (vreinterpretq_s32_f32): Likewise.
24511         (vreinterpretq_s32_u8): Likewise.
24512         (vreinterpretq_s32_u16): Likewise.
24513         (vreinterpretq_s32_u32): Likewise.
24514         (vreinterpretq_s32_u64): Likewise.
24515         (vreinterpretq_s32_p8): Likewise.
24516         (vreinterpretq_s32_p16): Likewise.
24517         (vreinterpret_u8_s8): Likewise.
24518         (vreinterpret_u8_s16): Likewise.
24519         (vreinterpret_u8_s32): Likewise.
24520         (vreinterpret_u8_s64): Likewise.
24521         (vreinterpret_u8_f32): Likewise.
24522         (vreinterpret_u8_u16): Likewise.
24523         (vreinterpret_u8_u32): Likewise.
24524         (vreinterpret_u8_u64): Likewise.
24525         (vreinterpret_u8_p8): Likewise.
24526         (vreinterpret_u8_p16): Likewise.
24527         (vreinterpretq_u8_s8): Likewise.
24528         (vreinterpretq_u8_s16): Likewise.
24529         (vreinterpretq_u8_s32): Likewise.
24530         (vreinterpretq_u8_s64): Likewise.
24531         (vreinterpretq_u8_f32): Likewise.
24532         (vreinterpretq_u8_u16): Likewise.
24533         (vreinterpretq_u8_u32): Likewise.
24534         (vreinterpretq_u8_u64): Likewise.
24535         (vreinterpretq_u8_p8): Likewise.
24536         (vreinterpretq_u8_p16): Likewise.
24537         (vreinterpret_u16_s8): Likewise.
24538         (vreinterpret_u16_s16): Likewise.
24539         (vreinterpret_u16_s32): Likewise.
24540         (vreinterpret_u16_s64): Likewise.
24541         (vreinterpret_u16_f32): Likewise.
24542         (vreinterpret_u16_u8): Likewise.
24543         (vreinterpret_u16_u32): Likewise.
24544         (vreinterpret_u16_u64): Likewise.
24545         (vreinterpret_u16_p8): Likewise.
24546         (vreinterpret_u16_p16): Likewise.
24547         (vreinterpretq_u16_s8): Likewise.
24548         (vreinterpretq_u16_s16): Likewise.
24549         (vreinterpretq_u16_s32): Likewise.
24550         (vreinterpretq_u16_s64): Likewise.
24551         (vreinterpretq_u16_f32): Likewise.
24552         (vreinterpretq_u16_u8): Likewise.
24553         (vreinterpretq_u16_u32): Likewise.
24554         (vreinterpretq_u16_u64): Likewise.
24555         (vreinterpretq_u16_p8): Likewise.
24556         (vreinterpretq_u16_p16): Likewise.
24557         (vreinterpret_u32_s8): Likewise.
24558         (vreinterpret_u32_s16): Likewise.
24559         (vreinterpret_u32_s32): Likewise.
24560         (vreinterpret_u32_s64): Likewise.
24561         (vreinterpret_u32_f32): Likewise.
24562         (vreinterpret_u32_u8): Likewise.
24563         (vreinterpret_u32_u16): Likewise.
24564         (vreinterpret_u32_u64): Likewise.
24565         (vreinterpret_u32_p8): Likewise.
24566         (vreinterpret_u32_p16): Likewise.
24567         (vreinterpretq_u32_s8): Likewise.
24568         (vreinterpretq_u32_s16): Likewise.
24569         (vreinterpretq_u32_s32): Likewise.
24570         (vreinterpretq_u32_s64): Likewise.
24571         (vreinterpretq_u32_f32): Likewise.
24572         (vreinterpretq_u32_u8): Likewise.
24573         (vreinterpretq_u32_u16): Likewise.
24574         (vreinterpretq_u32_u64): Likewise.
24575         (vreinterpretq_u32_p8): Likewise.
24576         (vreinterpretq_u32_p16): Likewise.
24577
24578 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24579
24580         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
24581         Pattern extended.
24582         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
24583         (sqabs): Likewise.
24584         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
24585         (vqnegd_s64): Likewise.
24586         (vqabs_s64): Likewise.
24587         (vqabsd_s64): Likewise.
24588
24589 2014-04-22  Richard Henderson  <rth@redhat.com>
24590
24591         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
24592         computation to the top of the loop.
24593
24594 2014-04-22  Renlin  <renlin.li@arm.com>
24595             Jiong Wang  <jiong.wang@arm.com>
24596
24597         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
24598         * config/aarch64/aarch64.c (aarch64_layout_frame)
24599         (aarch64_initial_elimination_offset): Likewise.
24600
24601 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24602
24603         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
24604         Fix indentation.
24605
24606 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
24607
24608         * machmode.h (bitwise_mode_for_mode): Declare.
24609         * stor-layout.h (bitwise_type_for_mode): Likewise.
24610         * stor-layout.c (bitwise_mode_for_mode): New function.
24611         (bitwise_type_for_mode): Likewise.
24612         * builtins.c (fold_builtin_memory_op): Use it instead of
24613         int_mode_for_mode and build_nonstandard_integer_type.
24614
24615 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24616
24617         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
24618         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
24619         (*-*-solaris2*): Simplify.
24620         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
24621         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
24622         *-*-solaris2.9* handling.
24623
24624         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
24625         as bug.
24626         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
24627         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
24628         handling, simplify.
24629         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
24630         * configure: Regenerate.
24631
24632         * config/i386/sol2-9.h: Remove.
24633
24634         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
24635         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
24636         Remove Solaris 9 references.
24637
24638 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
24639
24640         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
24641         (floatuns<GPI:mode><GPF:mode>2): Remove.
24642         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
24643         and floatuns conversions.
24644         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
24645         and floatuns conversions.
24646         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
24647         (w1,w2): New mode attributes for inequal width conversions.
24648
24649 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
24650
24651         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
24652         the output asm format.
24653
24654 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
24655
24656         * config/aarch64/aarch64-simd.md
24657         (aarch64_cm<optab>di): Always split.
24658         (*aarch64_cm<optab>di): New.
24659         (aarch64_cmtstdi): Always split.
24660         (*aarch64_cmtstdi): New.
24661
24662 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24663
24664         PR tree-optimization/60823
24665         * omp-low.c (ipa_simd_modify_function_body): Go through
24666         all SSA_NAMEs and for those refering to vector arguments
24667         which are going to be replaced adjust SSA_NAME_VAR and,
24668         if it is a default definition, change it into a non-default
24669         definition assigned at the beginning of function from new_decl.
24670         (ipa_simd_modify_stmt_ops): Rewritten.
24671         * tree-dfa.c (set_ssa_default_def): When removing default def,
24672         check for NULL loc instead of NULL *loc.
24673
24674 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24675
24676         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
24677         restrictions on core registers for DImode values in Thumb2.
24678
24679 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24680
24681         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
24682         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
24683
24684 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24685
24686         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
24687         (*iordi_notzesidi_di): Likewise.
24688         (*iordi_notsesidi_di): Likewise.
24689
24690 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
24691
24692         * config/arm/arm-protos.h (tune_params): New struct members.
24693         * config/arm/arm.c: Initialise tune_params per processor.
24694         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
24695         for speed, based on new tune_params.
24696
24697 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
24698
24699         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
24700         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
24701         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
24702         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
24703         * config/aarch64/arm_neon.h (vrnd_f64): Added.
24704         (vrnda_f64): Likewise.
24705         (vrndi_f64): Likewise.
24706         (vrndm_f64): Likewise.
24707         (vrndn_f64): Likewise.
24708         (vrndp_f64): Likewise.
24709         (vrndx_f64): Likewise.
24710
24711 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24712
24713         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
24714         GET_MODE_SIZE argument is enum machine_mode.
24715
24716 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
24717
24718         PR target/60910
24719         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
24720         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
24721
24722 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
24723
24724         PR middle-end/60281
24725         * asan.c (asan_emit_stack_protection): Force the base to align to
24726         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
24727         appropriate bits if STRICT_ALIGNMENT.
24728         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
24729         when asan is on.
24730         (expand_used_vars): Leave a space in the stack frame for alignment
24731         if STRICT_ALIGNMENT.
24732
24733 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
24734
24735         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
24736         than a gimple.
24737         (gimple_store_p): Likewise.
24738         (gimple_assign_load_p): Likewise.
24739         (gimple_assign_cast_p): Likewise.
24740         (gimple_clobber_p): Likewise.
24741
24742         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
24743         rather than a gimple.
24744         (gimple_assign_cast_p): Likewise.
24745
24746 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
24747
24748         PR target/60735
24749         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
24750         If mode is DDmode and TARGET_E500_DOUBLE allow move.
24751
24752         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
24753         more debug information for E500 if -mdebug=reg.
24754
24755 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
24756
24757         PR target/60909
24758         * config/i386/i386.c (ix86_expand_builtin)
24759         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
24760         register for target RTX.
24761         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
24762
24763 2014-04-18  Cong Hou  <congh@google.com>
24764
24765         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
24766         the widen-mult pattern by handling two operands with different sizes,
24767         and operands whose size is smaller than half of the result type.
24768
24769 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24770
24771         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
24772         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
24773         (do_estimate_edge_time): Compute it.
24774         * ipa-inline.c (want_inline_small_function_p): Bypass
24775         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
24776
24777 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
24778
24779         * ipa-inline.c (spec_rem): New static variable.
24780         (dump_overall_stats): New function.
24781         (dump_inline_stats): New function.
24782
24783 2014-04-18  Richard Henderson  <rth@redhat.com>
24784
24785         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
24786         to GET_MODE_SIZE, not a reg_class_t.
24787
24788 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24789
24790         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
24791         (vsx_xxmrglw_<mode>): Likewise.
24792
24793 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
24794
24795         PR target/60876
24796         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
24797         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
24798         (rs6000_init_hard_regno_mode_ok): Likewise.
24799
24800 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
24801
24802         * ipa-inline.c (inline_small_functions): Account only non-cold
24803         functions.
24804         * doc/invoke.texi (inline-unit-growth): Update documentation.
24805
24806 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
24807
24808         * config/rs6000/rs6000.md (addti3, subti3): New.
24809
24810 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24811
24812         PR target/60863
24813         * config/i386/i386.c (ix86_expand_clear): Remove outdated
24814         comment.  Check optimize_insn_for_size_p instead of
24815         optimize_insn_for_speed_p.
24816
24817 2014-04-17  Martin Jambor  <mjambor@suse.cz>
24818
24819         * gimple-iterator.c (gsi_start_edge): New function.
24820         * gimple-iterator.h (gsi_start_edge): Declare.
24821         * tree-sra.c (single_non_eh_succ): New function.
24822         (disqualify_ops_if_throwing_stmt): Renamed to
24823         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
24824         having one non-EH successor BB.
24825         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
24826         generate loads into replacements.
24827         (sra_modify_assign): Likewise and and also use the simple path for
24828         such statements.
24829         (sra_modify_function_body): Commit statements on edges.
24830
24831 2014-04-17  Richard Biener  <rguenther@suse.de>
24832
24833         PR middle-end/60849
24834         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
24835         comparison results and add clarifying comment.
24836
24837 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
24838
24839         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
24840         (blank_mode): Initialize it.
24841         (emit_mode_size_inline, emit_mode_nunits_inline,
24842         emit_mode_inner_inline): New functions.
24843         (emit_insn_modes_h): Call them and surround their output with
24844         #if GCC_VERSION >= 4001 ... #endif.
24845         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
24846         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
24847         mode_* arrays if the argument is __builtin_constant_p.
24848         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
24849         is enum machine_mode.
24850
24851 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24852
24853         * passes.c (opt_pass::execute): Adjust.
24854         (pass_manager::execute_pass_mode_switching): Likewise.
24855         (early_local_passes::execute): Likewise.
24856         (execute_one_pass): Pass cfun to the pass's execute method.
24857         * tree-pass.h (opt_pass::execute): Add function * argument.
24858         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24859         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24860         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24861         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24862         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24863         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
24864         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
24865         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24866         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24867         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
24868         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
24869         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
24870         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
24871         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
24872         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24873         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24874         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24875         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
24876         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
24877         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24878         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24879         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24880         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24881         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24882         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24883         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24884         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24885         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24886         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24887         Adjust.
24888
24889 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24890
24891         * passes.c (opt_pass::gate): Take function * argument.
24892         (gate_all_early_local_passes): Merge into
24893         (early_local_passes::gate): this.
24894         (gate_all_early_optimizations): Merge into
24895         (all_early_optimizations::gate): this.
24896         (gate_all_optimizations): Mege into
24897         (all_optimizations::gate): this.
24898         (gate_all_optimizations_g): Merge into
24899         (all_optimizations_g::gate): this.
24900         (gate_rest_of_compilation): Mege into
24901         (rest_of_compilation::gate): this.
24902         (gate_postreload): Merge into
24903         (postreload::gate): this.
24904         (dump_one_pass): Pass cfun to the pass's gate method.
24905         (execute_ipa_summary_passes): Likewise.
24906         (execute_one_pass): Likewise.
24907         (ipa_write_summaries_2): Likewise.
24908         (ipa_write_optimization_summaries_1): Likewise.
24909         (ipa_read_summaries_1): Likewise.
24910         (ipa_read_optimization_summaries_1): Likewise.
24911         (execute_ipa_stmt_fixups): Likewise.
24912         * tree-pass.h (opt_pass::gate): Add function * argument.
24913         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
24914         combine-stack-adj.c, combine.c, compare-elim.c,
24915         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24916         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
24917         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
24918         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
24919         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
24920         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
24921         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24922         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
24923         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
24924         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
24925         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
24926         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
24927         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
24928         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24929         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24930         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24931         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24932         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24933         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24934         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24935         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24936         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24937         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
24938         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
24939         var-tracking.c, vtable-verify.c, web.c: Adjust.
24940
24941 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24942
24943         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
24944         * configure: Regenerate.
24945
24946 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24947
24948         * passes.c (dump_one_pass): don't check pass->has_gate.
24949         (execute_ipa_summary_passes): Likewise.
24950         (execute_one_pass): Likewise.
24951         (ipa_write_summaries_2): Likewise.
24952         (ipa_write_optimization_summaries_1): Likewise.
24953         (ipa_read_optimization_summaries_1): Likewise.
24954         (execute_ipa_stmt_fixups): Likewise.
24955         * tree-pass.h (pass_data::has_gate): Remove.
24956         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
24957         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
24958         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
24959         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
24960         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
24961         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
24962         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
24963         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
24964         gimple-low.c, gimple-ssa-isolate-paths.c,
24965         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
24966         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
24967         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
24968         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
24969         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
24970         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
24971         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
24972         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
24973         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
24974         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
24975         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
24976         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
24977         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
24978         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
24979         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
24980         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
24981         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
24982         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
24983         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
24984         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
24985         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
24986         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
24987         Adjust.
24988
24989 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24990
24991         * pass_manager.h (pass_manager::register_dump_files_1): Remove
24992         declaration.
24993         * passes.c (pass_manager::register_dump_files_1): Merge into
24994         (pass_manager::register_dump_files): this, and remove its handling of
24995         properties since the pass always has the properties anyway.
24996         (pass_manager::pass_manager): Adjust.
24997
24998 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
24999
25000         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
25001         * passes.c (pass_manager::register_dump_files_1): Remove dead code
25002         dealing with properties.
25003         (pass_manager::register_dump_files): Adjust.
25004
25005 2014-03-20  Mark Wielaard  <mjw@redhat.com>
25006
25007         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
25008         then represent the bound as normal constant value.
25009
25010 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
25011
25012         PR target/60847
25013         Forward port from 4.8 branch
25014         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
25015
25016         * config/i386/bmiintrin.h (_blsi_u32): New.
25017         (_blsi_u64): Ditto.
25018         (_blsr_u32): Ditto.
25019         (_blsr_u64): Ditto.
25020         (_blsmsk_u32): Ditto.
25021         (_blsmsk_u64): Ditto.
25022         (_tzcnt_u32): Ditto.
25023         (_tzcnt_u64): Ditto.
25024
25025 2014-04-17  Kito Cheng  <kito@0xlab.org>
25026
25027         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
25028
25029 2014-04-17  Richard Biener  <rguenther@suse.de>
25030
25031         PR middle-end/60849
25032         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
25033         boolean results for comparisons.
25034
25035 2014-04-17  Richard Biener  <rguenther@suse.de>
25036
25037         PR tree-optimization/60836
25038         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
25039         initial PHI args to be gimple values.
25040
25041 2014-04-17  Richard Biener  <rguenther@suse.de>
25042
25043         PR tree-optimization/60841
25044         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
25045         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
25046         of stmts to SLP build.
25047         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
25048         (vect_analyze_slp): Likewise.
25049         (vect_analyze_slp_instance): Likewise.
25050         (vect_build_slp_tree): Limit overall SLP tree growth.
25051         * tree-vectorizer.h (vect_analyze_data_refs,
25052         vect_analyze_slp): Adjust prototypes.
25053
25054 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
25055
25056         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
25057         Silvermont.
25058
25059 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
25060
25061         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
25062         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
25063         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
25064         for TARGET_SLOW_PSHUFB
25065
25066 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
25067
25068         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
25069         * config/i386/i386.c (intel_cost): Ditto.
25070
25071 2014-04-17  Joey Ye  <joey.ye@arm.com>
25072
25073         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
25074
25075 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
25076
25077         * opts.c (common_handle_option): Disable -fipa-reference coorectly
25078         with -fuse-profile.
25079
25080 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
25081
25082         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
25083         (type_all_derivations_known_p): New predicate.
25084         (type_all_ctors_visible_p): New predicate.
25085         (type_possibly_instantiated_p): New predicate.
25086         (get_odr_type): Compute all_derivations_known.
25087         (dump_odr_type): Dump the flag.
25088         (maybe_record_type): Cleanup.
25089         (record_target_from_binfo): Add bases_to_consider array;
25090         record bases for types w/o instances and skip CXX destructor.
25091         (possible_polymorphic_call_targets_1): Add bases_to_consider
25092         and consider_construction parameters; check if type may have instance.
25093         (get_polymorphic_call_info): Set maybe_in_construction to true
25094         when we know nothing.
25095         (record_targets_from_bases): Skip CXX destructors; they are
25096         never called for types in construction.
25097         (possible_polymorphic_call_targets): Do not record target when
25098         type may not have instance.
25099
25100 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
25101
25102         PR ipa/60854
25103         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
25104         external aliases alive, too.
25105
25106 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
25107
25108         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
25109         definition.
25110
25111 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
25112
25113         * final.c (compute_alignments): Do not apply loop alignment to a block
25114         falling through to the exit.
25115
25116 2014-04-16  Catherine Moore  <clm@codesourcery.com>
25117
25118         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
25119         Adjust constraints for microMIPS store patterns.
25120
25121 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
25122
25123         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
25124
25125 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
25126
25127         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
25128         (append_use): Run at -O0.
25129         (append_vdef): Likewise.
25130         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
25131         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
25132
25133 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
25134
25135         PR tree-optimization/60844
25136         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
25137         (propagate_op_to_single_use, remove_visited_stmt_chain,
25138         linearize_expr, repropagate_negates, reassociate_bb): Use it
25139         instead of gsi_remove.
25140
25141 2014-04-16  Martin Jambor  <mjambor@suse.cz>
25142
25143         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
25144         ipa_transforms_to_apply.
25145         (cgraph_function_versioning): Assert that old_node has empty
25146         ipa_transforms_to_apply.
25147         * trans-mem.c (ipa_tm_create_version): Likewise.
25148         * tree-inline.c (tree_function_versioning): Do not duplicate
25149         ipa_transforms_to_apply.
25150
25151 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25152
25153         PR target/60817
25154         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
25155         x86_64-*-* cases.
25156         Pass necessary as flags on 64-bit Solaris/x86.
25157         Use lowercase relocs for x86_64-*-*.
25158         * configure: Regenerate.
25159
25160 2014-04-15  Jan Hubicka  <jh@suse.cz>
25161
25162         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
25163         (maybe_record_node, likely_target_p): Use it.
25164
25165 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25166
25167         PR target/60839
25168         Revert following patch
25169
25170         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25171
25172         PR target/60735
25173         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25174         software floating point or no floating point registers, do not
25175         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25176         in GPRs that occurs after we tested for GPRs that would never be
25177         true.
25178
25179         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25180         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25181         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25182         specifically allow DDmode, since that does not use the SPE SIMD
25183         instructions.
25184
25185 2014-03-21  Mark Wielaard  <mjw@redhat.com>
25186
25187         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
25188         as unsigned or int depending on type and value used.
25189
25190 2014-04-15  Richard Biener  <rguenther@suse.de>
25191
25192         PR rtl-optimization/56965
25193         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
25194         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
25195         ... here.
25196         * alias.c (true_dependence_1): Do not call
25197         nonoverlapping_component_refs_p.
25198         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
25199         nonoverlapping_component_refs_p.
25200         (indirect_refs_may_alias_p): Likewise.
25201
25202 2014-04-15  Teresa Johnson  <tejohnson@google.com>
25203
25204         * cfg.c (dump_bb_info): Fix flags check.
25205         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
25206
25207 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25208
25209         PR rtl-optimization/60663
25210         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
25211         avoid 0 cost.
25212
25213 2014-04-15  Richard Biener  <rguenther@suse.de>
25214
25215         * lto-streamer.h (LTO_major_version): Bump to 4.
25216
25217 2014-04-15  Richard Biener  <rguenther@suse.de>
25218
25219         * common.opt (lto_partition_model): New enum.
25220         (flto-partition=): Merge separate options with a single with argument,
25221         add -flto-partition=one support.
25222         * flag-types.h (enum lto_partition_model): Declare.
25223         * opts.c (finish_options): Remove duplicate -flto-partition=
25224         option check.
25225         * lto-wrapper.c (run_gcc): Adjust.
25226
25227 2014-04-15  Richard Biener  <rguenther@suse.de>
25228
25229         * alias.c (ncr_compar): New function.
25230         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
25231
25232 2014-04-15  Richard Biener  <rguenther@suse.de>
25233
25234         * alias.c (record_component_aliases): Do not walk BINFOs.
25235
25236 2014-04-15  Richard Biener  <rguenther@suse.de>
25237
25238         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25239         Add struct function argument and adjust.
25240         (find_func_aliases_for_call): Likewise.
25241         (find_func_aliases): Likewise.
25242         (find_func_clobbers): Likewise.
25243         (intra_create_variable_infos): Likewise.
25244         (compute_points_to_sets): Likewise.
25245         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
25246
25247 2014-04-15  Richard Biener  <rguenther@suse.de>
25248
25249         * tree.c (iterative_hash_expr): Use enum tree_code_class
25250         to store TREE_CODE_CLASS.
25251         (tree_block): Likewise.
25252         (tree_set_block): Likewise.
25253         * tree.h (fold_build_pointer_plus_loc): Use
25254         convert_to_ptrofftype_loc.
25255
25256 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
25257
25258         PR plugins/59335
25259         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
25260         added in 4.9.
25261
25262 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
25263
25264         * cfgloop.h (struct loop): Move force_vectorize down.
25265         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
25266         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
25267         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
25268         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
25269         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
25270         * tree-core.h (enum annot_expr_kind): Add new kind values.
25271         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
25272         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
25273         kinds.
25274         * tree.def (ANNOTATE_EXPR): Tweak comment.
25275
25276 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25277
25278         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
25279         cxa_pure_virtual).
25280
25281 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
25282
25283         * tree.h (TYPE_IDENTIFIER): Declare.
25284         * tree.c (subrange_type_for_debug_p): Use it.
25285         * godump.c (go_format_type): Likewise.
25286         * dwarf2out.c (is_cxx_auto, modified_type_die,
25287         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
25288         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
25289
25290 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25291
25292         PR lto/60820
25293         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
25294
25295 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
25296
25297         * config/i386/i386.c (examine_argument): Return bool.  Return true if
25298         parameter should be passed in memory.
25299         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
25300         (construct_container): Update calls to examine_argument.
25301         (function_arg_advance_64): Ditto.
25302         (return_in_memory_32): Merge with ix86_return_in_memory.
25303         (return_in_memory_64): Ditto.
25304         (return_in_memory_ms_64): Ditto.
25305
25306 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
25307
25308         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
25309         * coverage.c (coverage_compute_profile_id): Handle externally visible
25310         symbols.
25311
25312 2014-04-14  Martin Jambor  <mjambor@suse.cz>
25313
25314         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
25315         DECL_DISREGARD_INLINE_LIMITS functions.
25316
25317 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25318
25319         PR target/60827
25320         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
25321
25322 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
25323
25324         PR target/60827
25325         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
25326         optimize_insn_for_speed_p instead of
25327         optimize_function_for_speed_p.
25328
25329 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
25330
25331         * doc/invoke.texi (free): Document AArch64.
25332
25333 2014-04-14  Richard Biener  <rguenther@suse.de>
25334
25335         PR tree-optimization/60042
25336         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
25337         (insert_into_preds_of_block): Do not prevent PHI insertion
25338         for REFERENCE exprs here ...
25339         (eliminate_dom_walker::before_dom_children): ... but prevent
25340         their use here under similar conditions when applied to the
25341         IL after PRE optimizations.
25342
25343 2014-04-14  Richard Biener  <rguenther@suse.de>
25344
25345         * passes.def: Move early points-to after early SRA.
25346
25347 2014-04-14  Richard Biener  <rguenther@suse.de>
25348
25349         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
25350         check for which sign-changes we allow when forwarding
25351         a converted value into a switch.
25352
25353 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25354
25355         * stor-layout.c (place_field): Finalize non-constant offset for the
25356         field, if any.
25357
25358 2014-04-14  Richard Biener  <rguenther@suse.de>
25359
25360         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
25361         as argument.
25362         (expand_switch_using_bit_tests_p): Likewise.
25363         (process_switch): Compute and pass on speed_p based on the
25364         switch stmt.
25365         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
25366         optimize_bb_for_speed_p.
25367
25368 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
25369
25370         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
25371         * function.h (struct function): Rename has_force_vect_loops into
25372         has_force_vectorize_loops.
25373         * lto-streamer-in.c (input_cfg): Adjust for renaming.
25374         (input_struct_function_base): Likewise.
25375         * lto-streamer-out.c (output_cfg): Likewise.
25376         (output_struct_function_base): Likewise.
25377         * omp-low.c (expand_omp_simd): Likewise.
25378         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25379         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
25380         (version_loop_for_if_conversion): Likewise.
25381         (tree_if_conversion): Likewise.
25382         (main_tree_if_conversion): Likewise.
25383         (gate_tree_if_conversion): Likewise.
25384         * tree-inline.c (copy_loops): Likewise.
25385         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
25386         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
25387         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
25388         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
25389         * tree-vectorizer.c (vectorize_loops): Likewise.
25390         * tree-vectorizer.h (unlimited_cost_model): Likewise.
25391
25392 2014-04-14  Richard Biener  <rguenther@suse.de>
25393
25394         PR lto/60720
25395         * lto-streamer-out.c (wrap_refs): New function.
25396         (lto_output): Wrap symbol references in global initializes in
25397         type-preserving MEM_REFs.
25398
25399 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25400
25401         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
25402
25403 2014-04-14  Christian Bruel  <christian.bruel@st.com>
25404
25405         * config/sh/sh.md (setmemqi): New expand pattern.
25406         * config/sh/sh.h (CLEAR_RATIO): Define.
25407         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
25408         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
25409
25410 2014-04-14  Richard Biener  <rguenther@suse.de>
25411
25412         PR middle-end/55022
25413         * fold-const.c (negate_expr_p): Don't negate directional rounding
25414         division.
25415         (fold_negate_expr): Likewise.
25416
25417 2014-04-14  Richard Biener  <rguenther@suse.de>
25418
25419         PR tree-optimization/59817
25420         PR tree-optimization/60453
25421         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
25422         recursion to catch all CHRECs in the scalar evolution and restrict
25423         the predicate for the remains appropriately.
25424
25425 2014-04-12  Catherine Moore  <clm@codesourcery.com>
25426
25427         * config/mips/constraints.md: Add new register constraint "kb".
25428         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
25429         (*movhi_internal): Likewise.
25430         (*movqi_internal): Likewise.
25431         * config/mips/mips.h (M16_STORE_REGS): New register class.
25432         (REG_CLASS_NAMES): Add M16_STORE_REGS.
25433         (REG_CLASS_CONTENTS): Likewise.
25434         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
25435
25436 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25437
25438         PR c/60194
25439         * doc/invoke.texi (-Wformat-signedness): Document it.
25440         (Wformat=2): Mention that this enables -Wformat-signedness.
25441
25442 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25443
25444         * common/config/epiphany/epiphany-common.c
25445         (epiphany_option_optimization_table): Enable section anchors by
25446         default at -O1 or higher.
25447         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
25448         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
25449         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
25450         carries no extra cost.
25451         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
25452         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
25453         * config/epiphany/predicates.md (memclob_operand): New predicate.
25454         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
25455         Use memclob_operand predicate and X constraint for operand 3.
25456
25457 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25458
25459         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
25460         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
25461         its operands.
25462
25463 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25464
25465         PR rtl-optimization/60651
25466         * mode-switching.c (optimize_mode_switching): Make sure to emit
25467         sets of a lower numbered entity before sets of a higher numbered
25468         entity to a mode of the same or lower priority.
25469         When creating a seginfo for a basic block that starts with a code
25470         label, move the insertion point past the code label.
25471         (new_seginfo): Document and enforce requirement that
25472         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
25473         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
25474         * doc/tm.texi: Regenerate.
25475
25476 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
25477
25478         PR target/60811
25479         * config/arc/arc.c (arc_save_restore): Fix assert typo.
25480
25481 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
25482
25483         * BASE-VER: Set to 4.10.0.
25484
25485 2014-04-11  Tobias Burnus  <burnus@net-b.de>
25486
25487         PR other/59055
25488         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
25489         * doc/gcc.texi (Service): Update description in the @menu
25490         * doc/invoke.texi (Option Summary): Remove misplaced and
25491         duplicated @menu.
25492
25493 2014-04-11  Steve Ellcey  <sellcey@mips.com>
25494             Jakub Jelinek  <jakub@redhat.com>
25495
25496         PR middle-end/60556
25497         * expr.c (convert_move): Use emit_store_flag_force instead of
25498         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
25499         argument to it.
25500
25501 2014-04-11  Richard Biener  <rguenther@suse.de>
25502
25503         PR middle-end/60797
25504         * varasm.c (assemble_alias): Avoid endless error reporting
25505         recursion by setting TREE_ASM_WRITTEN.
25506
25507 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25508
25509         * config/s390/s390.md: Add a splitter for NOT rtx.
25510
25511 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
25512
25513         PR rtl-optimization/60663
25514         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
25515
25516 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
25517             Jakub Jelinek  <jakub@redhat.com>
25518
25519         PR lto/60567
25520         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
25521         flag from decl_node to node.
25522
25523 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25524
25525         PR debug/60655
25526         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
25527         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
25528         ameliorating the cases where it can be.
25529
25530 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
25531
25532         Revert
25533         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25534
25535         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25536         (loadsync_<mode>): Change mode.
25537         (load_quadpti, store_quadpti): New.
25538         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25539         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25540         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
25541
25542 2014-04-09  Cong Hou  <congh@google.com>
25543
25544         PR testsuite/60773
25545         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
25546         documentation.
25547
25548 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25549
25550         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
25551         instead of vnor to exploit possible fusion opportunity in the
25552         future.
25553         (altivec_expand_vec_perm_const_le): Likewise.
25554
25555 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
25556
25557         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
25558         (loadsync_<mode>): Change mode.
25559         (load_quadpti, store_quadpti): New.
25560         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
25561         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
25562
25563 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
25564
25565         PR target/60763
25566         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
25567         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
25568         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
25569
25570 2014-04-08  Richard Biener  <rguenther@suse.de>
25571
25572         PR middle-end/60706
25573         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
25574         a 64bit widest int print double-int similar to on HWI64 hosts.
25575
25576 2014-04-08  Richard Biener  <rguenther@suse.de>
25577
25578         PR tree-optimization/60785
25579         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
25580         default defs properly.
25581
25582 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
25583
25584         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
25585         (Weffc++): Likewise.
25586
25587 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
25588
25589         * ipa-devirt.c (maybe_record_node): When node is not recorded,
25590         set completep to false rather than true.
25591
25592 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
25593
25594         PR target/60504
25595         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
25596         ARM_TARGET2_DWARF_FORMAT.
25597
25598 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
25599
25600         PR target/60609
25601         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
25602         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
25603         ADDR_DIFF_VEC.
25604
25605 2014-04-07  Richard Biener  <rguenther@suse.de>
25606
25607         PR tree-optimization/60766
25608         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
25609         (may_eliminate_iv): Convert cand_value_at result to desired type.
25610
25611 2014-04-07  Jason Merrill  <jason@redhat.com>
25612
25613         PR c++/60731
25614         * common.opt (-fno-gnu-unique): Add.
25615         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
25616
25617 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25618
25619         * haifa-sched.c: Fix outdated function reference and minor
25620         grammar errors in introductory comment.
25621
25622 2014-04-07  Richard Biener  <rguenther@suse.de>
25623
25624         PR middle-end/60750
25625         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
25626         for noreturn calls.
25627         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
25628
25629 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
25630
25631         PR debug/55794
25632         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
25633         size accounting for thunks.
25634         (pa_asm_output_mi_thunk): Use final_start_function() and
25635         final_end_function() to output function start and end directives.
25636
25637 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
25638
25639         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
25640         device specific ISA/ feature information. Remove short_sp and
25641         errata_skip ds.  Add avr_device_specific_features enum to have device
25642         specific info.
25643         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
25644         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
25645         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
25646         updated device specific info.
25647         * config/avr/avr-mcus.def: Merge device specific details to
25648         dev_attribute field.
25649         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
25650         errata_skip.
25651         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
25652         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
25653         assembler if RMW isa supported by current device.
25654         * config/avr/genmultilib.awk: Update as device info structure changed.
25655         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
25656
25657 2014-04-04  Cong Hou  <congh@google.com>
25658
25659         PR tree-optimization/60656
25660         * tree-vect-stmts.c (supportable_widening_operation):
25661         Fix a bug that elements in a vector with vect_used_by_reduction
25662         property are incorrectly reordered when the operation on it is not
25663         consistant with the one in reduction operation.
25664
25665 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
25666
25667         PR rtl-optimization/60155
25668         * gcse.c (record_set_data): New function.
25669         (single_set_gcse): New function.
25670         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
25671         (hoist_code): Likewise.
25672         (get_pressure_class_and_nregs): Likewise.
25673
25674 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
25675
25676         * explow.c (probe_stack_range): Emit a final optimization blockage.
25677
25678 2014-04-04  Anthony Green  <green@moxielogic.com>
25679
25680         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
25681         typos.
25682
25683 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
25684
25685         PR ipa/59626
25686         * lto-cgraph.c (input_overwrite_node): Check that partitioning
25687         flags are set only during streaming.
25688         * ipa.c (process_references, walk_polymorphic_call_targets,
25689         symtab_remove_unreachable_nodes): Drop bodies of always inline
25690         after early inlining.
25691         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
25692
25693 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
25694         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25695
25696         PR debug/60655
25697         * dwarf2out.c (const_ok_for_output_1): Reject expressions
25698         containing a NOT.
25699
25700 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25701
25702         PR bootstrap/60743
25703         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
25704         duration.
25705         (cortex_a53_fdivd): Likewise.
25706
25707 2014-04-04  Martin Jambor  <mjambor@suse.cz>
25708
25709         PR ipa/60640
25710         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
25711         Adjust all callers.
25712         * cgraph.c (clone_of_p): Also return true if thunks match.
25713         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
25714         cgraph_function_or_thunk_node and an obsolete comment.
25715         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
25716         file.
25717         (build_function_decl_skip_args): Likewise.
25718         (set_new_clone_decl_and_node_flags): New function.
25719         (duplicate_thunk_for_node): Likewise.
25720         (redirect_edge_duplicating_thunks): Likewise.
25721         (cgraph_clone_node): New parameter args_to_skip, pass it to
25722         redirect_edge_duplicating_thunks which is called instead of
25723         cgraph_redirect_edge_callee.
25724         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
25725         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
25726
25727 2014-04-04  Jeff Law  <law@redhat.com>
25728
25729         PR target/60657
25730         * config/arm/predicates.md (const_int_I_operand): New predicate.
25731         (const_int_M_operand): Similarly.
25732         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
25733         const_int_operand.
25734         (insv_t2, extv_reg, extzv_t2): Likewise.
25735         (load_multiple_with_writeback): Similarly for const_int_I_operand.
25736         (pop_multiple_with_writeback_and_return): Likewise.
25737         (vfp_pop_multiple_with_writeback): Likewise
25738
25739 2014-04-04  Richard Biener  <rguenther@suse.de>
25740
25741         PR ipa/60746
25742         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
25743         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
25744         non-GIMPLE_LABELs.
25745         * gimplify.h (gimple_add_tmp_var_fn): Declare.
25746         * gimplify.c (gimple_add_tmp_var_fn): New function.
25747         * gimple-expr.h (create_tmp_reg_fn): Declare.
25748         * gimple-expr.c (create_tmp_reg_fn): New function.
25749         * gimple-low.c (record_vars_into): Don't change cfun.
25750         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
25751         code generation without cfun.
25752
25753 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
25754
25755         PR bootstrap/60719
25756         * Makefile.in (install-driver): Fix shell scripting.
25757
25758 2014-04-03  Cong Hou  <congh@google.com>
25759
25760         PR tree-optimization/60505
25761         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
25762         threshold of number of iterations below which no vectorization
25763         will be done.
25764         * tree-vect-loop.c (new_loop_vec_info):
25765         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
25766         * tree-vect-loop.c (vect_analyze_loop_operations):
25767         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
25768         * tree-vect-loop.c (vect_transform_loop):
25769         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
25770         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
25771         of iterations of the loop and see if we should build the epilogue.
25772
25773 2014-04-03  Richard Biener  <rguenther@suse.de>
25774
25775         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
25776         (streamer_tree_cache_create): Adjust.
25777         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
25778         to allow optional nodes array.
25779         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
25780         (streamer_tree_cache_append): Likewise.
25781         (streamer_tree_cache_create): Create nodes array optionally
25782         as specified by parameter.
25783         * lto-streamer-out.c (create_output_block): Avoid maintaining
25784         the node array in the writer cache.
25785         (DFS_write_tree): Remove assertion.
25786         (produce_asm_for_decls): Free the out decl state hash table early.
25787         * lto-streamer-in.c (lto_data_in_create): Adjust for
25788         streamer_tree_cache_create prototype change.
25789
25790 2014-04-03  Richard Biener  <rguenther@suse.de>
25791
25792         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
25793         set TREE_CHAIN to NULL_TREE.
25794
25795 2014-04-03  Richard Biener  <rguenther@suse.de>
25796
25797         PR tree-optimization/60740
25798         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
25799         over all GIMPLE_COND operands.
25800
25801 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
25802
25803         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
25804         (Weffc++): Remove Scott's numbering, merge lists and reference
25805         Wnon-virtual-dtor.
25806
25807 2014-04-03  Nick Clifton  <nickc@redhat.com>
25808
25809         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
25810         properly.
25811
25812 2014-04-03  Martin Jambor  <mjambor@suse.cz>
25813
25814         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
25815         mention gcc_unreachable before failing.
25816         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
25817         removed symbols.
25818
25819 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
25820
25821         PR ipa/60659
25822         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
25823         inconsistent code and instead mark the context inconsistent.
25824         (possible_polymorphic_call_targets): For inconsistent contexts
25825         return empty complete list.
25826
25827 2014-04-02  Anthony Green  <green@moxielogic.com>
25828
25829         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
25830         (extendqisi2, extendhisi2): Define.
25831         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
25832         (WCHAR_TYPE): Change to unsigned int.
25833
25834 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25835
25836         PR tree-optimization/60733
25837         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
25838         insertion point for PHI candidates to be the end of the feeding
25839         block for the PHI argument.
25840
25841 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
25842
25843         PR rtl-optimization/60650
25844         * lra-constraints.c (process_alt_operands): Decrease reject for
25845         earlyclobber matching.
25846
25847 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25848
25849         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
25850
25851 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25852
25853         * config/spu/spu.c (pad_bb): Do not crash when the last
25854         insn is CODE_FOR_blockage.
25855
25856 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25857
25858         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
25859         lies outside the target mode.
25860
25861 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25862
25863         PR target/60735
25864         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
25865         software floating point or no floating point registers, do not
25866         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
25867         in GPRs that occurs after we tested for GPRs that would never be
25868         true.
25869
25870         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
25871         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
25872         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
25873         specifically allow DDmode, since that does not use the SPE SIMD
25874         instructions.
25875
25876 2014-04-02  Richard Biener  <rguenther@suse.de>
25877
25878         PR middle-end/60729
25879         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
25880         MODE_INTs.  Properly use negv_optab.
25881         (expand_abs): Likewise.
25882
25883 2014-04-02  Richard Biener  <rguenther@suse.de>
25884
25885         PR bootstrap/60719
25886         * Makefile.in (install-driver): Guard extra installs with special
25887         names properly.
25888
25889 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25890
25891         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25892         Document vec_vgbbd.
25893
25894 2014-04-01  Richard Henderson  <rth@redhat.com>
25895
25896         PR target/60704
25897         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
25898         alternative enabled before register allocation.
25899
25900 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
25901
25902         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
25903         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
25904         typo.
25905         (nios2_large_got_address): Remove unneeded 'sym' parameter.
25906         (nios2_got_address): Update nios2_large_got_address call site.
25907         (nios2_delegitimize_address): New function.
25908         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
25909         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
25910         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
25911
25912 2014-04-01  Martin Husemann  <martin@duskware.de>
25913
25914         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
25915         for -mabi=32.
25916
25917 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
25918
25919         PR rtl-optimization/60604
25920         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
25921         check from register_operand.
25922         (register_operand): Redefine in terms of general_operand.
25923         (nonmemory_operand): Use register_operand for the non-constant cases.
25924
25925 2014-04-01  Richard Biener  <rguenther@suse.de>
25926
25927         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
25928
25929 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25930
25931         * doc/invoke.texi (mapp-regs): Clarify.
25932
25933 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
25934
25935         * config/i386/avx512fintrin.h (__v32hi): Define type.
25936         (__v64qi): Likewise.
25937         (_mm512_set1_epi8): Define.
25938         (_mm512_set1_epi16): Define.
25939         (_mm512_set4_epi32): Define.
25940         (_mm512_set4_epi64): Define.
25941         (_mm512_set4_pd): Define.
25942         (_mm512_set4_ps): Define.
25943         (_mm512_setr4_epi64): Define.
25944         (_mm512_setr4_epi32): Define.
25945         (_mm512_setr4_pd): Define.
25946         (_mm512_setr4_ps): Define.
25947         (_mm512_setzero_epi32): Define.
25948
25949 2014-03-31  Martin Jambor  <mjambor@suse.cz>
25950
25951         PR middle-end/60647
25952         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
25953         callsite_arguments_match_p.  Updated all callers.  Also check types of
25954         corresponding formal parameters and actual arguments.
25955         (not_all_callers_have_enough_arguments_p) Renamed to
25956         some_callers_have_mismatched_arguments_p.
25957
25958 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
25959
25960         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
25961
25962 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
25963
25964         PR target/60034
25965         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
25966         section anchor.
25967
25968 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
25969
25970         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
25971         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
25972         Split out
25973         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
25974         Use FMAMODE_NOVF512 mode iterator.
25975         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
25976         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
25977         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
25978         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
25979         Split out
25980         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
25981         Use VF_128_256 mode iterator.
25982         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
25983         Ditto.
25984
25985 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
25986
25987         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
25988         static chain if needed.
25989
25990 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
25991
25992         PR target/60697
25993         * lra-constraints.c (index_part_to_reg): New.
25994         (process_address): Use it.
25995
25996 2014-03-27  Jeff Law  <law@redhat.com>
25997             Jakub Jelinek  <jakub@redhat.com>
25998
25999         PR target/60648
26000         * expr.c (do_tablejump): Use simplify_gen_binary rather than
26001         gen_rtx_{PLUS,MULT} to build up the address expression.
26002
26003         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
26004         creating non-canonical RTL.
26005
26006 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
26007
26008         PR ipa/60243
26009         * ipa-inline.c (want_inline_small_function_p): Short circuit large
26010         functions; reorganize to make cheap checks first.
26011         (inline_small_functions): Do not estimate growth when dumping;
26012         it is expensive.
26013         * ipa-inline.h (inline_summary): Add min_size.
26014         (growth_likely_positive): New function.
26015         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
26016         (set_cond_stmt_execution_predicate): Cleanup.
26017         (estimate_edge_size_and_time): Compute min_size.
26018         (estimate_calls_size_and_time): Likewise.
26019         (estimate_node_size_and_time): Likewise.
26020         (inline_update_overall_summary): Update min_size.
26021         (do_estimate_edge_time): Likewise.
26022         (do_estimate_edge_size): Update.
26023         (do_estimate_edge_hints): Update.
26024         (growth_likely_positive): New function.
26025
26026 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
26027
26028         PR target/60693
26029         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
26030         also if addr has VOIDmode.
26031
26032 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26033
26034         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
26035         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
26036         Declare extern.
26037         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
26038         instructions as well as AdvancedSIMD loads.
26039
26040 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26041
26042         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
26043         Use crypto_aese type.
26044         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
26045         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
26046         crypto_aese, crypto_aesmc.  Move to types.md.
26047         * config/arm/types.md (crypto_aes): Split into crypto_aese,
26048         crypto_aesmc.
26049         * config/arm/iterators.md (crypto_type): Likewise.
26050
26051 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
26052
26053         * cgraph.c: Include expr.h and tree-dfa.h.
26054         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
26055         remove LHS.
26056
26057 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
26058
26059         PR target/60675
26060         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
26061         regs from checking multi-reg pseudos.
26062
26063 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26064
26065         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
26066
26067 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26068
26069         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
26070         if it would clobber the stack pointer, even temporarily.
26071
26072 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
26073
26074         * mode-switching.c: Make small adjustments to the top comment.
26075
26076 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
26077
26078         * config/rs6000/constraints.md (wD constraint): New constraint to
26079         match the constant integer to get the top DImode/DFmode out of a
26080         vector in a VSX register.
26081
26082         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
26083         match the constant integer to get the top DImode/DFmode out of a
26084         vector in a VSX register.
26085
26086         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
26087         for ISA 2.07.
26088
26089         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26090         vbpermq builtins.
26091
26092         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
26093         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
26094
26095         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
26096         Optimize vec_extract of 64-bit values, where the value being
26097         extracted is in the top word, where we can use scalar
26098         instructions.  Add direct move and store support.  Combine the big
26099         endian/little endian vector select load support into a single insn.
26100         (vsx_extract_<mode>_internal1): Likewise.
26101         (vsx_extract_<mode>_internal2): Likewise.
26102         (vsx_extract_<mode>_load): Likewise.
26103         (vsx_extract_<mode>_store): Likewise.
26104         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
26105         combined into vsx_extract_<mode>_load.
26106         (vsx_extract_<mode>_one_le): Likewise.
26107
26108         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
26109         define the top 64-bit vector element.
26110
26111         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
26112         constraint.
26113
26114         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26115         Document vec_vbpermq builtin.
26116
26117         PR target/60672
26118         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
26119         enable use of xxsldwi and xxpermdi builtin functions.
26120         (vec_xxpermdi): Likewise.
26121
26122         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26123         Document use of vec_xxsldwi and vec_xxpermdi builtins.
26124
26125 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26126
26127         PR rtl-optimization/60650
26128         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
26129         first_p.  Use it.
26130         (find_spills_for): New.
26131         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
26132         Spill all pseudos on the second iteration.
26133
26134 2014-03-27  Marek Polacek  <polacek@redhat.com>
26135
26136         PR c/50347
26137         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
26138         types.
26139
26140 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26141
26142         * config/s390/s390.c (s390_can_use_return_insn): Check for
26143         call-saved FPRs on 31 bit.
26144
26145 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
26146
26147         PR middle-end/60682
26148         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
26149         if they need regimplification, just drop them instead of
26150         calling gimple_regimplify_operands on them.
26151
26152 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
26153
26154         PR target/60580
26155         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
26156         (aarch64_frame_pointer_required): Adjust logic.
26157         (aarch64_can_eliminate): Adjust logic.
26158         (aarch64_override_options_after_change): Adjust logic.
26159
26160 2014-03-27  Dehao Chen  <dehao@google.com>
26161
26162         * ipa-inline.c (early_inliner): Update node's inline info.
26163
26164 2014-03-26  Dehao Chen  <dehao@google.com>
26165
26166         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
26167         compiler inserted conditional jumps for NAN float check.
26168
26169 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
26170
26171         * ubsan.h (ubsan_create_data): Change second argument's type
26172         to const location_t *.
26173         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
26174         _("<unknown>").
26175         (ubsan_create_data): Change second argument to const location_t *PLOC.
26176         Create Loc field whenever PLOC is non-NULL.
26177         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
26178         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
26179         callers.
26180
26181         PR other/59545
26182         * real.c (real_to_integer2): Change type of low to UHWI.
26183
26184 2014-03-26  Tobias Burnus  <burnus@net-b.de>
26185
26186         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
26187         (CILK_SELF_SPECS): New define.
26188         (driver_self_specs): Use it.
26189
26190 2014-03-26  Richard Biener  <rguenther@suse.de>
26191
26192         * tree-pretty-print.c (percent_K_format): Implement special
26193         case for LTO and its stripped down BLOCK tree.
26194
26195 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
26196
26197         PR sanitizer/60636
26198         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
26199
26200         * tree-vrp.c (simplify_internal_call_using_ranges): If only
26201         one range is range_int_cst_p, but not both, at least optimize
26202         addition/subtraction of 0 and multiplication by 0 or 1.
26203         * gimple-fold.c (gimple_fold_call): Fold
26204         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
26205         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
26206         INTEGER_CSTs, try to fold at least x * 0 and y - y.
26207
26208 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
26209
26210         PR rtl-optimization/60452
26211         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
26212         <case REG>: Return 1 for invalid offsets from the frame pointer.
26213
26214 2014-03-26  Marek Polacek  <polacek@redhat.com>
26215
26216         PR c/37428
26217         * doc/extend.texi (C Extensions): Mention variable-length arrays in
26218         a structure/union.
26219
26220 2014-03-26  Marek Polacek  <polacek@redhat.com>
26221
26222         PR c/39525
26223         * doc/extend.texi (Designated Inits): Describe what happens to omitted
26224         field members.
26225
26226 2014-03-26  Marek Polacek  <polacek@redhat.com>
26227
26228         PR other/59545
26229         * ira-color.c (update_conflict_hard_regno_costs): Perform the
26230         multiplication in unsigned type.
26231
26232 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26233
26234         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
26235
26236 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
26237
26238         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
26239
26240 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26241
26242         PR ipa/60315
26243         * cif-code.def (UNREACHABLE) New code.
26244         * ipa-inline.c (inline_small_functions): Skip edges to
26245         __builtlin_unreachable.
26246         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
26247         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
26248         predicate to __bulitin_unreachable.
26249         (set_cond_stmt_execution_predicate): Fix issue when
26250         invert_tree_comparison returns ERROR_MARK.
26251         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
26252         propagate to inline clones.
26253         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
26254         to unreachable.
26255         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
26256         * cgraphclones.c (cgraph_clone_node): If call destination is already
26257         ureachable, do not redirect it back.
26258         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
26259         unreachable.
26260
26261 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
26262
26263         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
26264         Do not modify inline clones.
26265
26266 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26267
26268         * config/i386/i386.md (general_sext_operand): New mode attr.
26269         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
26270         don't generate (sign_extend (const_int)).
26271         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
26272         operands[2].  Use We constraint instead of <i> and
26273         <general_sext_operand> predicate instead of <general_operand>.
26274         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
26275         * config/i386/constraints.md (We): New constraint.
26276         * config/i386/predicates.md (x86_64_sext_operand,
26277         sext_operand): New predicates.
26278
26279 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26280
26281         PR ipa/60600
26282         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
26283         inconsistent devirtualizations to __builtin_unreachable.
26284
26285 2014-03-25  Marek Polacek  <polacek@redhat.com>
26286
26287         PR c/35449
26288         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
26289
26290 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
26291
26292         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
26293         order of elements for big-endian.
26294
26295 2014-03-25  Richard Biener  <rguenther@suse.de>
26296
26297         PR middle-end/60635
26298         * gimplify-me.c (gimple_regimplify_operands): Update the
26299         re-gimplifed stmt.
26300
26301 2014-03-25  Martin Jambor  <mjambor@suse.cz>
26302
26303         PR ipa/59176
26304         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
26305         (lto_output_varpool_node): Likewise.
26306         (input_overwrite_node): Likewise.
26307         (input_varpool_node): Likewise.
26308
26309 2014-03-25  Richard Biener  <rguenther@suse.de>
26310
26311         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
26312         (run_gcc): Likewise.
26313
26314 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
26315
26316         * combine.c (simplify_compare_const): Add MODE argument.
26317         Handle mode_width 0 as very large mode_width.
26318         (try_combine, simplify_comparison): Adjust callers.
26319
26320         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
26321         type to avoid signed integer overflow.
26322         * explow.c (plus_constant): Likewise.
26323
26324 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26325
26326         * doc/generic.texi: Correct typos.
26327
26328 2014-03-24  Tobias Burnus  <burnus@net-b.de>
26329
26330         * doc/invoke.texi (-flto): Expand section about
26331         using static libraries with LTO.
26332
26333 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26334
26335         PR rtl-optimization/60501
26336         * optabs.def (addptr3_optab): New optab.
26337         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
26338         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
26339         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
26340
26341         * lra.c (emit_add3_insn): Use the addptr pattern if available.
26342
26343         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
26344
26345 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
26346
26347         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
26348         _mm512_set1_pd.
26349
26350         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
26351         (_mm256_undefined_ps): Define.
26352         (_mm256_undefined_pd): Define.
26353         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
26354         (_mm_undefined_pd): Define.
26355         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
26356         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
26357         (_mm512_undefined_ps): Define.
26358         (_mm512_undefined_pd): Define.
26359         Use _mm*_undefined_*.
26360         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
26361
26362 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
26363
26364         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
26365         (lshr_simd): DI mode added.
26366         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
26367         (aarch64_ushr_simddi): Likewise.
26368         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
26369         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
26370         (vshrd_n_u64): Likewise.
26371
26372 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26373
26374         * Makefile.in (s-macro_list): Depend on cc1.
26375
26376 2014-03-23  Teresa Johnson  <tejohnson@google.com>
26377
26378         * ipa-utils.c (ipa_print_order): Use specified dump file.
26379
26380 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
26381
26382         PR rtl-optimization/60601
26383         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
26384
26385         * gcc.c (eval_spec_function): Initialize save_growing_value.
26386
26387 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
26388
26389         PR sanitizer/60613
26390         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
26391         code == MINUS_EXPR, never swap op0 with op1.
26392
26393         * toplev.c (init_local_tick): Avoid signed integer multiplication
26394         overflow.
26395         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
26396         shift by first operand's bitsize.
26397
26398 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
26399
26400         PR target/60610
26401         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
26402         redefine to 1 or 0.
26403         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
26404         TARGET_ISA_64BIT_P(x).
26405
26406 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26407
26408         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
26409         pattern for vector nor instead of subtract from splat(-1).
26410         (altivec_expand_vec_perm_const_le): Likewise.
26411
26412 2014-03-21  Richard Henderson  <rth@twiddle.net>
26413
26414         PR target/60598
26415         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
26416         related insns after epilogue_completed.
26417
26418 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26419
26420         PR ipa/59176
26421         * cgraph.h (symtab_node): New flag body_removed.
26422         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
26423         when removing bodies.
26424         * symtab.c (dump_symtab_base): Dump body_removed flag.
26425         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
26426         had their bodies removed.
26427
26428 2014-03-21  Martin Jambor  <mjambor@suse.cz>
26429
26430         PR ipa/60419
26431         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
26432         in the border.
26433
26434 2014-03-21  Richard Biener  <rguenther@suse.de>
26435
26436         PR tree-optimization/60577
26437         * tree-core.h (struct tree_base): Document nothrow_flag use
26438         in DECL_NONALIASED.
26439         * tree.h (DECL_NONALIASED): New.
26440         (may_be_aliased): Adjust.
26441         * coverage.c (build_var): Set DECL_NONALIASED.
26442
26443 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26444
26445         * expr.c (expand_expr_real_1): Remove outdated comment.
26446
26447 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
26448
26449         PR middle-end/60597
26450         * ira.c (adjust_cleared_regs): Call copy_rtx on
26451         *reg_equiv[REGNO (loc)].src_p before passing it to
26452         simplify_replace_fn_rtx.
26453
26454         PR target/60568
26455         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
26456         into CONST, put pic register as first operand of PLUS.  Use
26457         gen_const_mem for both 32-bit and 64-bit PIC got loads.
26458
26459 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26460
26461         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
26462
26463 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26464
26465         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
26466         around for store forwarding issue in the FPU on the UT699.
26467         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
26468         loads and operations if -mfix-ut699 is specified.
26469         (divtf3_hq): Tweak attribute.
26470         (sqrttf2_hq): Likewise.
26471
26472 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
26473
26474         * calls.c (store_one_arg): Remove incorrect const qualification on the
26475         type of the temporary.
26476         * cfgexpand.c (expand_return): Likewise.
26477         * expr.c (expand_constructor): Likewise.
26478         (expand_expr_real_1): Likewise.
26479
26480 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26481
26482         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
26483         of parts.
26484
26485 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
26486
26487         PR target/60039
26488         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
26489
26490 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
26491
26492         * config/arm/aarch-common-protos.h
26493         (alu_cost_table): Fix spelling of "extend".
26494         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
26495
26496 2014-03-19  Richard Biener  <rguenther@suse.de>
26497
26498         PR middle-end/60553
26499         * tree-core.h (tree_type_common): Re-order pointer members
26500         to reduce recursion depth during GC walks.
26501
26502 2014-03-19  Marek Polacek  <polacek@redhat.com>
26503
26504         PR sanitizer/60569
26505         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
26506         before accessing it.
26507
26508 2014-03-19  Richard Biener  <rguenther@suse.de>
26509
26510         PR lto/59543
26511         * lto-streamer-in.c (input_function): In WPA stage do not drop
26512         debug stmts.
26513
26514 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
26515
26516         PR tree-optimization/60559
26517         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
26518         with build_zero_cst assignment.
26519
26520 2014-03-18  Kai Tietz  <ktietz@redhat.com>
26521
26522         PR rtl-optimization/56356
26523         * sdbout.c (sdbout_parms): Verify that parms'
26524         incoming argument is valid.
26525         (sdbout_reg_parms): Likewise.
26526
26527 2014-03-18  Richard Henderson  <rth@redhat.com>
26528
26529         PR target/60562
26530         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
26531         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
26532         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
26533
26534 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
26535
26536         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
26537         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
26538         Italicize plugin event names in description.  Explain that
26539         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
26540         Remind that no GCC functions should be called after PLUGIN_FINISH.
26541         Explain what pragmas with expansion are.
26542
26543 2014-03-18  Martin Liska  <mliska@suse.cz>
26544
26545         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
26546         gimple call statement is update.
26547         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
26548         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
26549
26550 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26551
26552         PR sanitizer/60557
26553         * ubsan.c (ubsan_instrument_unreachable): Call
26554         initialize_sanitizer_builtins.
26555         (ubsan_pass): Likewise.
26556
26557         PR sanitizer/60535
26558         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
26559         varpool_finalize_decl instead of rest_of_decl_compilation.
26560
26561 2014-03-18  Richard Biener  <rguenther@suse.de>
26562
26563         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
26564         by using bitmap_and_compl instead of bitmap_and_compl_into.
26565         (df_rd_transfer_function): Likewise.
26566
26567 2014-03-18  Richard Biener  <rguenther@suse.de>
26568
26569         * doc/lto.texi (fresolution): Fix typo.
26570
26571 2014-03-18  Richard Biener  <rguenther@suse.de>
26572
26573         * doc/invoke.texi (flto): Update for changes in 4.9.
26574
26575 2014-03-18  Richard Biener  <rguenther@suse.de>
26576
26577         * doc/loop.texi: Remove section on the removed lambda framework.
26578         Update loop docs with recent changes in preserving loop structure.
26579
26580 2014-03-18  Richard Biener  <rguenther@suse.de>
26581
26582         * doc/lto.texi (-fresolution): Document.
26583
26584 2014-03-18  Richard Biener  <rguenther@suse.de>
26585
26586         * doc/contrib.texi: Adjust my name.
26587
26588 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
26589
26590         PR ipa/58721
26591         * internal-fn.c: Include diagnostic-core.h.
26592         (expand_BUILTIN_EXPECT): New function.
26593         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
26594         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
26595         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
26596         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
26597         IFN_BUILTIN_EXPECT.
26598         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
26599         Revert 3 argument __builtin_expect code.
26600         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
26601         * gimple-fold.c (gimple_fold_call): Likewise.
26602         * tree.h (fold_builtin_expect): New prototype.
26603         * builtins.c (build_builtin_expect_predicate): Add predictor
26604         argument, if non-NULL, create 3 argument __builtin_expect.
26605         (fold_builtin_expect): No longer static.  Add ARG2 argument,
26606         pass it through to build_builtin_expect_predicate.
26607         (fold_builtin_2): Adjust caller.
26608         (fold_builtin_3): Handle BUILT_IN_EXPECT.
26609         * internal-fn.def (BUILTIN_EXPECT): New.
26610
26611 2014-03-18  Tobias Burnus  <burnus@net-b.de>
26612
26613         PR ipa/58721
26614         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
26615         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
26616         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
26617
26618 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
26619
26620         PR ipa/58721
26621         * predict.c (combine_predictions_for_bb): Fix up formatting.
26622         (expr_expected_value_1, expr_expected_value): Add predictor argument,
26623         fill what it points to if non-NULL.
26624         (tree_predict_by_opcode): Adjust caller, use the predictor.
26625         * predict.def (PRED_COMPARE_AND_SWAP): Add.
26626
26627 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
26628
26629         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
26630         proper constant for the store mode.
26631
26632 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
26633
26634         * symtab.c (change_decl_assembler_name): Fix transparent alias
26635         chain construction.
26636
26637 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
26638
26639         * config/aarch64/aarch64.c: Correct the comments about the
26640         aarch64 stack layout.
26641
26642 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
26643
26644         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
26645         check for GF_OMP_FOR_KIND_FOR.
26646
26647 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
26648
26649         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
26650         ymm and zmm register names.
26651
26652 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
26653
26654         PR target/60516
26655         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
26656         note creation for the 2010-08-31 changes.
26657
26658 2014-03-17  Marek Polacek  <polacek@redhat.com>
26659
26660         PR middle-end/60534
26661         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
26662         as -fno-tree-loop-vectorize.
26663         (expand_omp_simd): Likewise.
26664
26665 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
26666
26667         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
26668         (eligible_for_call_delay): New prototype.
26669         * config/sparc/sparc.c (tls_call_delay): Rename into...
26670         (eligible_for_call_delay): ...this.  Return false if the instruction
26671         cannot be put in the delay slot of a branch.
26672         (eligible_for_restore_insn): Simplify.
26673         (eligible_for_return_delay): Return false if the instruction cannot be
26674         put in the delay slot of a branch and simplify.
26675         (eligible_for_sibcall_delay): Return false if the instruction cannot be
26676         put in the delay slot of a branch.
26677         * config/sparc/sparc.md (fix_ut699): New attribute.
26678         (tls_call_delay): Delete.
26679         (in_call_delay): Reimplement.
26680         (eligible_for_sibcall_delay): Rename into...
26681         (in_sibcall_delay): ...this.
26682         (eligible_for_return_delay): Rename into...
26683         (in_return_delay): ...this.
26684         (in_branch_delay): Reimplement.
26685         (in_uncond_branch_delay): Delete.
26686         (in_annul_branch_delay): Delete.
26687
26688 2014-03-14  Richard Henderson  <rth@redhat.com>
26689
26690         PR target/60525
26691         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
26692         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
26693         (*floathi<X87MODEF>2_i387_with_temp): Remove.
26694         (floathi splitters): Remove.
26695         (float<SWI48x>xf2): New pattern.
26696         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
26697         code that tried to handle DImode for 32-bit, but which was excluded
26698         by the pattern's condition.  Drop allocation of stack temporary.
26699         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
26700         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
26701         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
26702         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
26703         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
26704         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
26705         (*float<SWI48><MODEF>2_sse_interunit): Remove.
26706         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
26707         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
26708         (*float<SWI48x><X87MODEF>2_i387): Remove.
26709         (all float _with_temp splitters): Remove.
26710         (*float<SWI48x><MODEF>2_i387): New pattern.
26711         (*float<SWI48><MODEF>2_sse): New pattern.
26712         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
26713         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
26714
26715 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
26716             Marek Polacek  <polacek@redhat.com>
26717
26718         PR middle-end/60484
26719         * common.opt (dump_base_name_prefixed): New Variable.
26720         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
26721         if x_dump_base_name_prefixed is already set, set it at the end.
26722
26723 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
26724
26725         PR rtl-optimization/60508
26726         * lra-constraints.c (get_reload_reg): Add new parameter
26727         in_subreg_p.
26728         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
26729         Pass the new parameter values.
26730
26731 2014-03-14  Richard Biener  <rguenther@suse.de>
26732
26733         * common.opt: Revert unintented changes from r205065.
26734         * opts.c: Likewise.
26735
26736 2014-03-14  Richard Biener  <rguenther@suse.de>
26737
26738         PR middle-end/60518
26739         * cfghooks.c (split_block): Properly adjust all loops the
26740         block was a latch of.
26741
26742 2014-03-14  Martin Jambor  <mjambor@suse.cz>
26743
26744         PR lto/60461
26745         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
26746         and simplify it.
26747
26748 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
26749
26750         PR target/59396
26751         * config/avr/avr.c (avr_set_current_function): Pass function name
26752         through default_strip_name_encoding before sanity checking instead
26753         of skipping the first char of the assembler name.
26754
26755 2014-03-13  Richard Henderson  <rth@redhat.com>
26756
26757         PR debug/60438
26758         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
26759         (ix86_force_to_memory, ix86_free_from_memory): Remove.
26760         * config/i386/i386-protos.h: Likewise.
26761         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
26762         in the expander instead of a splitter.
26763         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
26764         any possibility of requiring a memory.
26765         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
26766         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
26767         (fp branch splitters): Update for ix86_split_fp_branch.
26768         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
26769         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
26770         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
26771         (*fop_<MODEF>_2_i387): Remove f/r alternative.
26772         (*fop_<MODEF>_3_i387): Likewise.
26773         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
26774         (splitters for the fop_* register patterns): Remove.
26775         (fscalexf4_i387): Rename from *fscalexf4_i387.
26776         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
26777
26778 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26779
26780         PR tree-optimization/59779
26781         * tree-dfa.c (get_ref_base_and_extent): Use double_int
26782         type for bitsize and maxsize instead of HOST_WIDE_INT.
26783
26784 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
26785
26786         PR rtl-optimization/57320
26787         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
26788         the CFG after thread_prologue_and_epilogue_insns.
26789
26790 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
26791
26792         PR rtl-optimization/57189
26793         * lra-constraints.c (process_alt_operands): Disfavor spilling
26794         vector pseudos.
26795
26796 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
26797
26798         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
26799
26800 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
26801
26802         PR tree-optimization/59025
26803         PR middle-end/60418
26804         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
26805         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
26806
26807 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
26808
26809         PR target/60486
26810         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
26811         calls of avr_out_plus_1.
26812
26813 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
26814
26815         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
26816         BB's single pred and update the father loop's latch info later.
26817
26818 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
26819
26820         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
26821         (VEC_M): Likewise.
26822         (VEC_N): Likewise.
26823         (VEC_R): Likewise.
26824         (VEC_base): Likewise.
26825         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
26826         registers, we need to swap double words in little endian mode.
26827
26828         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
26829         to be a container mode for 128-bit integer operations added in ISA
26830         2.07.  Unlike TImode and PTImode, the preferred register set is
26831         the Altivec/VMX registers for the 128-bit operations.
26832
26833         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
26834         declarations.
26835         (rs6000_split_128bit_ok_p): Likewise.
26836
26837         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
26838         macros for creating ISA 2.07 normal and overloaded builtin
26839         functions with 3 arguments.
26840         (BU_P8V_OVERLOAD_3): Likewise.
26841         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
26842         for use as overloaded functions.
26843         (VPERM_1TI_UNS): Likewise.
26844         (VSEL_1TI): Likewise.
26845         (VSEL_1TI_UNS): Likewise.
26846         (ST_INTERNAL_1ti): Likewise.
26847         (LD_INTERNAL_1ti): Likewise.
26848         (XXSEL_1TI): Likewise.
26849         (XXSEL_1TI_UNS): Likewise.
26850         (VPERM_1TI): Likewise.
26851         (VPERM_1TI_UNS): Likewise.
26852         (XXPERMDI_1TI): Likewise.
26853         (SET_1TI): Likewise.
26854         (LXVD2X_V1TI): Likewise.
26855         (STXVD2X_V1TI): Likewise.
26856         (VEC_INIT_V1TI): Likewise.
26857         (VEC_SET_V1TI): Likewise.
26858         (VEC_EXT_V1TI): Likewise.
26859         (EQV_V1TI): Likewise.
26860         (NAND_V1TI): Likewise.
26861         (ORC_V1TI): Likewise.
26862         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
26863         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
26864         overloaded builtin.
26865         (VADDUQM): Likewise.
26866         (VSUBCUQ): Likewise.
26867         (VADDEUQM): Likewise.
26868         (VADDECUQ): Likewise.
26869         (VSUBEUQM): Likewise.
26870         (VSUBECUQ): Likewise.
26871
26872         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
26873         __int128_t and __uint128_t types.
26874         (__uint128_type): Likewise.
26875         (altivec_categorize_keyword): Add support for vector __int128_t,
26876         vector __uint128_t, vector __int128, and vector unsigned __int128
26877         as a container type for TImode operations that need to be done in
26878         VSX/Altivec registers.
26879         (rs6000_macro_to_expand): Likewise.
26880         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
26881         to support 128-bit integer instructions vaddcuq, vadduqm,
26882         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
26883         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
26884
26885         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
26886         for V1TImode, and set up preferences to use VSX/Altivec registers.
26887         Setup VSX reload handlers.
26888         (rs6000_debug_reg_global): Likewise.
26889         (rs6000_init_hard_regno_mode_ok): Likewise.
26890         (rs6000_preferred_simd_mode): Likewise.
26891         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
26892         (easy_altivec_constant): Likewise.
26893         (output_vec_const_move): Likewise.
26894         (rs6000_expand_vector_set): Convert V1TImode set and extract to
26895         simple move.
26896         (rs6000_expand_vector_extract): Likewise.
26897         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
26898         addressing.
26899         (rs6000_const_vec): Add support for V1TImode.
26900         (rs6000_emit_le_vsx_load): Swap double words when loading or
26901         storing TImode/V1TImode.
26902         (rs6000_emit_le_vsx_store): Likewise.
26903         (rs6000_emit_le_vsx_move): Likewise.
26904         (rs6000_emit_move): Add support for V1TImode.
26905         (altivec_expand_ld_builtin): Likewise.
26906         (altivec_expand_st_builtin): Likewise.
26907         (altivec_expand_vec_init_builtin): Likewise.
26908         (altivec_expand_builtin): Likewise.
26909         (rs6000_init_builtins): Add support for V1TImode type.  Add
26910         support for ISA 2.07 128-bit integer builtins.  Define type names
26911         for the VSX/Altivec vector types.
26912         (altivec_init_builtins): Add support for overloaded vector
26913         functions with V1TImode type.
26914         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
26915         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
26916         external function.
26917         (rs6000_split_128bit_ok_p): Likewise.
26918         (rs6000_handle_altivec_attribute): Create V1TImode from vector
26919         __int128_t and vector __uint128_t.
26920
26921         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
26922         and mode attributes.
26923         (VSX_M): Likewise.
26924         (VSX_M2): Likewise.
26925         (VSm): Likewise.
26926         (VSs): Likewise.
26927         (VSr): Likewise.
26928         (VSv): Likewise.
26929         (VS_scalar): Likewise.
26930         (VS_double): Likewise.
26931         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
26932
26933         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
26934         we support the ISA 2.07 128-bit integer arithmetic instructions.
26935         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
26936         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
26937         and TImode types for use with the builtin functions.
26938         (V1TI_type_node): Likewise.
26939         (unsigned_V1TI_type_node): Likewise.
26940         (intTI_type_internal_node): Likewise.
26941         (uintTI_type_internal_node): Likewise.
26942
26943         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
26944         128-bit builtin functions.
26945         (UNSPEC_VADDEUQM): Likewise.
26946         (UNSPEC_VADDECUQ): Likewise.
26947         (UNSPEC_VSUBCUQ): Likewise.
26948         (UNSPEC_VSUBEUQM): Likewise.
26949         (UNSPEC_VSUBECUQ): Likewise.
26950         (VM): Add V1TImode to vector mode iterators.
26951         (VM2): Likewise.
26952         (VI_unit): Likewise.
26953         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
26954         (altivec_vaddcuq): Likewise.
26955         (altivec_vsubuqm): Likewise.
26956         (altivec_vsubcuq): Likewise.
26957         (altivec_vaddeuqm): Likewise.
26958         (altivec_vaddecuq): Likewise.
26959         (altivec_vsubeuqm): Likewise.
26960         (altivec_vsubecuq): Likewise.
26961
26962         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
26963         mode iterators.
26964         (BOOL_128): Likewise.
26965         (BOOL_REGS_OUTPUT): Likewise.
26966         (BOOL_REGS_OP1): Likewise.
26967         (BOOL_REGS_OP2): Likewise.
26968         (BOOL_REGS_UNARY): Likewise.
26969         (BOOL_REGS_AND_CR0): Likewise.
26970
26971         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
26972         128-bit integer builtin support.
26973         (vec_vadduqm): Likewise.
26974         (vec_vaddecuq): Likewise.
26975         (vec_vaddeuqm): Likewise.
26976         (vec_vsubecuq): Likewise.
26977         (vec_vsubeuqm): Likewise.
26978         (vec_vsubcuq): Likewise.
26979         (vec_vsubuqm): Likewise.
26980
26981         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
26982         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
26983         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
26984         128-bit integer add/subtract to ISA 2.07.
26985
26986 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
26987
26988         * config/arc/arc.c (arc_predicate_delay_insns):
26989         Fix third argument passed to conditionalize_nonjump.
26990
26991 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
26992
26993         * config/aarch64/aarch64-builtins.c
26994         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
26995         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
26996         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
26997         instead of __builtin_lfloor.
26998         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
26999
27000 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
27001
27002         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
27003         (tree_ssa_ifcombine_bb_1): New function.
27004         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
27005         is an empty forwarder block to then_bb or vice versa and then_bb
27006         and else_bb are effectively swapped.
27007
27008 2014-03-12  Christian Bruel  <christian.bruel@st.com>
27009
27010         PR target/60264
27011         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
27012         REG_CFA_DEF_CFA note.
27013         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
27014         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
27015
27016 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27017
27018         PR tree-optimization/60454
27019         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
27020
27021 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27022
27023         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
27024         Do not define target_cpu_default2 to generic.
27025         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
27026         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
27027         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
27028
27029 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
27030             Marc Glisse  <marc.glisse@inria.fr>
27031
27032         PR tree-optimization/60502
27033         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
27034         instead of build_low_bits_mask.
27035
27036 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
27037
27038         PR middle-end/60482
27039         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
27040         if there are multiple uses, but op doesn't live on E edge.
27041         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
27042         clobber stmts before __builtin_unreachable.
27043
27044 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
27045
27046         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
27047         hard_frame_pointer_rtx.
27048         * cse.c (cse_insn): Remove volatile check.
27049         * cselib.c (cselib_process_insn): Likewise.
27050         * dse.c (scan_insn): Likewise.
27051
27052 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
27053
27054         * config/arc/arc.c (conditionalize_nonjump): New function,
27055         broken out of ...
27056         (arc_ifcvt): ... this.
27057         (arc_predicate_delay_insns): Use it.
27058
27059 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
27060
27061         * config/arc/predicates.md (extend_operand): During/after reload,
27062         allow const_int_operand.
27063         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
27064         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
27065         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
27066         to "i".
27067         (umulsi3_highpart_i): Likewise.
27068
27069 2014-03-11  Richard Biener  <rguenther@suse.de>
27070
27071         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
27072         Add asserts to guard possible wrong-code bugs.
27073
27074 2014-03-11  Richard Biener  <rguenther@suse.de>
27075
27076         PR tree-optimization/60429
27077         PR tree-optimization/60485
27078         * tree-ssa-structalias.c (set_union_with_increment): Properly
27079         take into account all fields that overlap the shifted vars.
27080         (do_sd_constraint): Likewise.
27081         (do_ds_constraint): Likewise.
27082         (get_constraint_for_ptr_offset): Likewise.
27083
27084 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
27085
27086         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
27087         (nios2_compute_frame_layout):
27088         Add calculation of cfun->machine->fp_save_offset.
27089         (nios2_expand_prologue): Correct setting of frame pointer register
27090         in prologue.
27091         (nios2_expand_epilogue): Update recovery of stack pointer from
27092         frame pointer accordingly.
27093         (nios2_initial_elimination_offset): Update calculation of offset
27094         for eliminating to HARD_FRAME_POINTER_REGNUM.
27095
27096 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
27097
27098         PR ipa/60457
27099         * ipa.c (symtab_remove_unreachable_nodes): Don't call
27100         cgraph_get_create_node on VAR_DECLs.
27101
27102 2014-03-10  Richard Biener  <rguenther@suse.de>
27103
27104         PR middle-end/60474
27105         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
27106
27107 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
27108
27109         * config/vms/vms.opt (vms_float_format): New variable.
27110
27111 2014-03-08  Tobias Burnus  <burnus@net-b.de>
27112
27113         * doc/invoke.texi (-fcilkplus): Update implementation status.
27114
27115 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
27116             Richard Biener  <rguenther@suse.de>
27117
27118         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
27119         consistently accross all TUs.
27120         (run_gcc): Enable -fshort-double automatically at link at link-time
27121         and disallow override.
27122
27123 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
27124
27125         PR target/58271
27126         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
27127         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
27128         if they can't be used.
27129
27130 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27131
27132         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
27133         for Solaris 11/x86 ld.
27134         * configure: Regenerate.
27135
27136 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27137
27138         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
27139         (LIB_TLS_SPEC): Save as ld_tls_libs.
27140         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
27141         (HAVE_AS_IX86_TLSLDM): New test.
27142         * configure, config.in: Regenerate.
27143         * config/i386/i386.c (legitimize_tls_address): Fall back to
27144         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
27145         cannot support TLS_MODEL_LOCAL_DYNAMIC.
27146         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
27147         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
27148
27149 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
27150
27151         * common.opt (fira-loop-pressure): Mark as optimization.
27152
27153 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
27154
27155         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
27156         an OpenMP mappable type.
27157
27158 2014-03-06  Matthias Klose  <doko@ubuntu.com>
27159
27160         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
27161         MULTILIB_OSDIRNAMES is not defined.
27162
27163 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
27164             Meador Inge  <meadori@codesourcery.com>
27165
27166         PR target/58595
27167         * config/arm/arm.c (arm_tls_symbol_p): Remove.
27168         (arm_legitimize_address): Call legitimize_tls_address for any
27169         arm_tls_referenced_p expression, handle constant addend.  Call it
27170         before testing for !TARGET_ARM.
27171         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
27172
27173 2014-03-06  Richard Biener  <rguenther@suse.de>
27174
27175         PR middle-end/60445
27176         PR lto/60424
27177         PR lto/60427
27178         Revert
27179         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27180
27181         * tree-streamer.c (record_common_node): Assert we don't record
27182         nodes with type double.
27183         (preload_common_node): Skip type double, complex double and double
27184         pointer since it is now frontend dependent due to fshort-double option.
27185
27186 2014-03-06  Richard Biener  <rguenther@suse.de>
27187
27188         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
27189         or -fno-lto is specified and the linker has full plugin support.
27190         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
27191         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
27192         * lto-wrapper.c (merge_and_complain): Merge compile-time
27193         optimization levels.
27194         (run_gcc): And pass it through to the link options.
27195
27196 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
27197
27198         PR debug/60381
27199         Revert:
27200         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27201         PR debug/59992
27202         * cselib.c (remove_useless_values): Skip to avoid quadratic
27203         behavior if the condition moved from...
27204         (cselib_process_insn): ... here holds.
27205
27206 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
27207
27208         PR plugins/59335
27209         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
27210         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
27211
27212         PR plugins/59335
27213         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
27214         (TM_H): Add x86-tune.def.
27215
27216 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27217
27218         * config/aarch64/aarch64.c (generic_tunings):
27219         Use cortexa57_extra_costs.
27220
27221 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
27222
27223         PR lto/60404
27224         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
27225         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
27226         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
27227         cost for in_lto_p.
27228
27229 2014-03-04  Heiher  <r@hev.cc>
27230
27231         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
27232         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
27233
27234 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
27235
27236         * config/i386/predicates.md (const2356_operand): Change to ...
27237         (const2367_operand): ... this.
27238         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
27239         const2367_operand.
27240         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27241         (*avx512pf_scatterpf<mode>sf): Ditto.
27242         (avx512pf_scatterpf<mode>df): Ditto.
27243         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27244         (*avx512pf_scatterpf<mode>df): Ditto.
27245         * config/i386/i386.c (ix86_expand_builtin): Update
27246         incorrect hint operand error message.
27247
27248 2014-03-04  Richard Biener  <rguenther@suse.de>
27249
27250         * lto-section-in.c (lto_get_section_data): Fix const cast.
27251
27252 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
27253
27254         * tree-streamer.c (record_common_node): Assert we don't record
27255         nodes with type double.
27256         (preload_common_node): Skip type double, complex double and double
27257         pointer since it is now frontend dependent due to fshort-double option.
27258
27259 2014-03-04  Richard Biener  <rguenther@suse.de>
27260
27261         PR lto/60405
27262         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
27263         (lto_input_toplevel_asms): Likewise.
27264         * lto-section-in.c (lto_get_section_data): Instead do it here
27265         for every section.
27266
27267 2014-03-04  Richard Biener  <rguenther@suse.de>
27268
27269         PR tree-optimization/60382
27270         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
27271         dead PHIs a reduction.
27272
27273 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
27274
27275         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
27276         hint value.
27277         (_mm_prefetch): Move out of GCC target("sse") pragma.
27278         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
27279         GCC target("prfchw") pragma.
27280         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
27281         for locality <= 2.
27282         * config/i386/i386.c (ix86_option_override_internal): Enable
27283         -mprfchw with -mprefetchwt1.
27284
27285 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27286
27287         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
27288         Mark as varying.
27289
27290 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
27291
27292         * opts.h (CL_PCH_IGNORE): Define.
27293         * targhooks.c (option_affects_pch_p):
27294         Return false for options that have CL_PCH_IGNORE set.
27295         * opt-functions.awk: Process PchIgnore.
27296         * doc/options.texi: Document PchIgnore.
27297
27298         * config/arc/arc.opt (misize): Add PchIgnore property.
27299
27300 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27301
27302         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
27303         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
27304         constraint on constants to permit them being loaded into
27305         GENERAL_REGS or BASE_REGS.
27306
27307 2014-03-03  Nick Clifton  <nickc@redhat.com>
27308
27309         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
27310         anti-cacnonical alternatives.
27311         (negandhi3_real): New pattern.
27312         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
27313
27314 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
27315
27316         * config/avr/avr-mcus.def: Remove atxmega16x1.
27317         * config/avr/avr-tables.opt: Regenerate.
27318         * config/avr/t-multilib: Regenerate.
27319         * doc/avr-mmcu.texi: Regenerate.
27320
27321 2014-03-03  Tobias Grosser  <tobias@grosser.es>
27322             Mircea Namolaru  <mircea.namolaru@inria.fr>
27323
27324         PR tree-optimization/58028
27325         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
27326         scalar dimensions.
27327
27328 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27329
27330         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
27331         not handled by recognizers.
27332
27333 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
27334
27335         PR middle-end/60175
27336         * function.c (expand_function_end): Don't emit
27337         clobber_return_register sequence if clobber_after is a BARRIER.
27338         * cfgexpand.c (construct_exit_block): Append instructions before
27339         return_label to prev_bb.
27340
27341 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27342
27343         * config/rs6000/constraints.md: Document reserved use of "wc".
27344
27345 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27346
27347         PR ipa/60150
27348         * ipa.c (function_and_variable_visibility): When dissolving comdat
27349         group, also set all symbols to local.
27350
27351 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
27352
27353         PR ipa/60306
27354
27355         Revert:
27356         2013-12-14  Jan Hubicka  <jh@suse.cz>
27357         PR middle-end/58477
27358         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
27359
27360 2014-03-02  Jon Beniston  <jon@beniston.com>
27361
27362         PR bootstrap/48230
27363         PR bootstrap/50927
27364         PR bootstrap/52466
27365         PR target/46898
27366         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
27367           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
27368         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
27369         (simple_return, *simple_return): New patterns
27370         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
27371         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
27372
27373 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
27374
27375         * dwarf2out.c (gen_subprogram_die): Tidy.
27376
27377 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
27378
27379         PR target/60071
27380         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
27381         (*mov_t_msb_neg_negc): ... this new insn.
27382
27383 2014-02-28  Jason Merrill  <jason@redhat.com>
27384
27385         PR c++/58678
27386         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
27387         function.
27388
27389 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
27390
27391         PR c++/60314
27392         * dwarf2out.c (decltype_auto_die): New static.
27393         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
27394         (gen_type_die_with_usage): Handle 'decltype(auto)'.
27395         (is_cxx_auto): Likewise.
27396
27397 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
27398
27399         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
27400         we are not using general regs only.
27401
27402 2014-02-28  Richard Biener  <rguenther@suse.de>
27403
27404         PR target/60280
27405         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
27406         previous fix and only allow to remove trivial pre-headers
27407         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
27408         (remove_forwarder_block): Properly update the latch of a loop.
27409
27410 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27411
27412         PR debug/59992
27413         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
27414         (cselib_preserved_hash_table): New.
27415         (preserve_constants_and_equivs): Move preserved vals to it.
27416         (cselib_find_slot): Look it up first.
27417         (cselib_init): Initialize it.
27418         (cselib_finish): Release it.
27419         (dump_cselib_table): Dump it.
27420
27421 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27422
27423         PR debug/59992
27424         * cselib.c (remove_useless_values): Skip to avoid quadratic
27425         behavior if the condition moved from...
27426         (cselib_process_insn): ... here holds.
27427
27428 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
27429
27430         PR debug/57232
27431         * var-tracking.c (vt_initialize): Apply the same condition to
27432         preserve the CFA base value.
27433
27434 2014-02-28  Joey Ye  <joey.ye@arm.com>
27435
27436         PR target/PR60169
27437         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
27438         if reload in progress or completed.
27439
27440 2014-02-28  Tobias Burnus  <burnus@net-b.de>
27441
27442         PR middle-end/60147
27443         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
27444         NAMELIST_DECL.
27445
27446 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27447
27448         * doc/tm.texi.in (Condition Code Status): Update documention for
27449         relative locations of cc0-setter and cc0-user.
27450
27451 2014-02-27  Jeff Law  <law@redhat.com>
27452
27453         PR rtl-optimization/52714
27454         * combine.c (try_combine): When splitting an unrecognized PARALLEL
27455         into two independent simple sets, if I3 is a jump, ensure the
27456         pattern we place into I3 is a (set (pc) ...).
27457
27458 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
27459             Jeff Law  <law@redhat.com>
27460
27461         PR rtl-optimization/49847
27462         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
27463         are in different blocks.
27464         * doc/tm.texi (Condition Code Status): Update documention for
27465         relative locations of cc0-setter and cc0-user.
27466
27467 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27468
27469         PR target/59222
27470         * lra.c (lra_emit_add): Check SUBREG too.
27471
27472 2014-02-27  Andreas Schwab  <schwab@suse.de>
27473
27474         * config/m68k/m68k.c (m68k_option_override): Disable
27475         -flive-range-shrinkage for classic m68k.
27476         (m68k_override_options_after_change): Likewise.
27477
27478 2014-02-27  Marek Polacek  <polacek@redhat.com>
27479
27480         PR middle-end/59223
27481         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
27482         -Wmaybe-uninitialized.
27483
27484 2014-02-27  Alan Modra  <amodra@gmail.com>
27485
27486         PR target/57936
27487         * reload1.c (emit_input_reload_insns): When reload_override_in,
27488         set old to rl->in_reg when rl->in_reg is a subreg.
27489
27490 2014-02-26  Richard Biener  <rguenther@suse.de>
27491
27492         PR bootstrap/60343
27493         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
27494
27495 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27496
27497         * common/config/i386/predicates.md (const1256_operand): Remove.
27498         (const2356_operand): New.
27499         (const_1_to_2_operand): Remove.
27500         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
27501         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
27502         (*avx512pf_gatherpf<mode>sf): Ditto.
27503         (avx512pf_gatherpf<mode>df): Ditto.
27504         (*avx512pf_gatherpf<mode>df_mask): Ditto.
27505         (*avx512pf_gatherpf<mode>df): Ditto.
27506         (avx512pf_scatterpf<mode>sf): Ditto.
27507         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
27508         (*avx512pf_scatterpf<mode>sf): Ditto.
27509         (avx512pf_scatterpf<mode>df): Ditto.
27510         (*avx512pf_scatterpf<mode>df_mask): Ditto.
27511         (*avx512pf_scatterpf<mode>df): Ditto.
27512         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
27513
27514 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
27515
27516         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
27517         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
27518         (_mm512_mask_testn_epi64_mask): Move to ...
27519         * config/i386/avx512cdintrin.h: Here.
27520         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
27521         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
27522         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
27523         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
27524         TARGET_AVX512F from TARGET_AVX512CD.
27525
27526 2014-02-26  Richard Biener  <rguenther@suse.de>
27527
27528         PR ipa/60327
27529         * ipa.c (walk_polymorphic_call_targets): Properly guard
27530         call to inline_update_overall_summary.
27531
27532 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
27533
27534         PR target/60280
27535         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
27536         and latches only if requested.  Fix latch if it is removed.
27537         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
27538         LOOPS_HAVE_PREHEADERS.
27539
27540 2014-02-25  Andrew Pinski  <apinski@cavium.com>
27541
27542         * builtins.c (expand_builtin_thread_pointer): Create a new target
27543         when the target is NULL.
27544
27545 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
27546
27547         PR rtl-optimization/60317
27548         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27549         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
27550         * lra-assigns.c: Include params.h.
27551         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
27552         other reload pseudos considerations.
27553
27554 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27555
27556         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
27557         to use canonical form for nor<mode>3.
27558
27559 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27560
27561         PR target/55426
27562         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
27563         conversions.
27564
27565 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
27566
27567         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
27568         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
27569         (ix86_handle_option): Handle OPT_mprefetchwt1.
27570         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
27571         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
27572         PREFETCHWT1 CPUID.
27573         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
27574         OPTION_MASK_ISA_PREFETCHWT1.
27575         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
27576         (PTA_PREFETCHWT1): New.
27577         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
27578         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
27579         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
27580         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
27581         (*prefetch_avx512pf_<mode>_: Change into ...
27582         (*prefetch_prefetchwt1_<mode>: This.
27583         * config/i386/i386.opt (mprefetchwt1): New.
27584         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
27585         (_mm_prefetch): Handle intent to write.
27586         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
27587
27588 2014-02-25  Richard Biener  <rguenther@suse.de>
27589
27590         PR middle-end/60291
27591         * emit-rtl.c (mem_attrs_htab): Remove.
27592         (mem_attrs_htab_hash): Likewise.
27593         (mem_attrs_htab_eq): Likewise.
27594         (set_mem_attrs): Always allocate new mem-attrs when something changed.
27595         (init_emit_once): Do not allocate mem_attrs_htab.
27596
27597 2014-02-25  Richard Biener  <rguenther@suse.de>
27598
27599         PR lto/60319
27600         * lto-opts.c (lto_write_options): Output non-explicit conservative
27601         -fwrapv, -fno-trapv and -fno-strict-overflow.
27602         * lto-wrapper.c (merge_and_complain): Handle merging those options.
27603         (run_gcc): And pass them through.
27604
27605 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27606
27607         * sel-sched.c (calculate_new_fences): New parameter ptime.
27608         Calculate it as a maximum over all fence cycles.
27609         (sel_sched_region_2): Adjust the call to calculate_new_fences.
27610         Print the final schedule timing when sched_verbose.
27611
27612 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
27613
27614         PR rtl-optimization/60292
27615         * sel-sched.c (fill_vec_av_set): Do not reset target availability
27616         bit fot the fence instruction.
27617
27618 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
27619
27620         * calls.h: Fix typo in comment.
27621
27622 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
27623
27624         * config/pa/pa.c (pa_output_move_double): Don't valididate when
27625         adjusting offsetable addresses.
27626
27627 2014-02-24  Guozhi Wei  <carrot@google.com>
27628
27629         * sparseset.h (sparseset_pop): Fix the wrong index.
27630
27631 2014-02-24  Walter Lee  <walt@tilera.com>
27632
27633         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
27634         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
27635         triplet.
27636         * common/config/tilegx/tilegx-common.c
27637         (TARGET_DEFAULT_TARGET_FLAGS): Define.
27638         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
27639         (LINK_SPEC): Ditto.
27640         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
27641         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
27642         (tilegx_gimplify_va_arg_expr): Handle big endian.
27643         (tilegx_expand_unaligned_load): Ditto.
27644         (tilegx_expand_unaligned_store): Ditto.
27645         (TARGET_RETURN_IN_MSB): New.
27646         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
27647         (TARGET_ENDIAN_DEFAULT): New.
27648         (TARGET_BIG_ENDIAN): Handle big endian.
27649         (BYTES_BIG_ENDIAN): Ditto.
27650         (WORDS_BIG_ENDIAN): Ditto.
27651         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
27652         (ENDIAN_SPEC): New.
27653         (EXTRA_SPECS): New.
27654         * config/tilegx/tilegx.md (extv): Handle big endian.
27655         (extzv): Ditto.
27656         (insn_st<n>): Ditto.
27657         (insn_st<n>_add<bitsuffix>): Ditto.
27658         (insn_stnt<n>): Ditto.
27659         (insn_stnt<n>_add<bitsuffix>):Ditto.
27660         (vec_interleave_highv8qi): Handle big endian.
27661         (vec_interleave_highv8qi_be): New.
27662         (vec_interleave_highv8qi_le): New.
27663         (insn_v1int_h): Handle big endian.
27664         (vec_interleave_lowv8qi): Handle big endian.
27665         (vec_interleave_lowv8qi_be): New.
27666         (vec_interleave_lowv8qi_le): New.
27667         (insn_v1int_l): Handle big endian.
27668         (vec_interleave_highv4hi): Handle big endian.
27669         (vec_interleave_highv4hi_be): New.
27670         (vec_interleave_highv4hi_le): New.
27671         (insn_v2int_h): Handle big endian.
27672         (vec_interleave_lowv4hi): Handle big endian.
27673         (vec_interleave_lowv4hi_be): New.
27674         (vec_interleave_lowv4hi_le): New.
27675         (insn_v2int_l): Handle big endian.
27676         (vec_interleave_highv2si): Handle big endian.
27677         (vec_interleave_highv2si_be): New.
27678         (vec_interleave_highv2si_le): New.
27679         (insn_v4int_h): Handle big endian.
27680         (vec_interleave_lowv2si): Handle big endian.
27681         (vec_interleave_lowv2si_be): New.
27682         (vec_interleave_lowv2si_le): New.
27683         (insn_v4int_l): Handle big endian.
27684         * config/tilegx/tilegx.opt (mbig-endian): New option.
27685         (mlittle-endian): New option.
27686         * doc/install.texi: Document tilegxbe-linux.
27687         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
27688
27689 2014-02-24  Martin Jambor  <mjambor@suse.cz>
27690
27691         PR ipa/60266
27692         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
27693         there are no parameter descriptors.
27694
27695 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
27696
27697         PR rtl-optimization/60268
27698         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
27699         initialization to ...
27700         (sched_rgn_init): ... here.
27701         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
27702
27703 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27704
27705         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
27706         names.
27707
27708 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
27709
27710         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
27711         definition.
27712
27713 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27714
27715         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
27716         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
27717
27718 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
27719
27720         * config/microblaze/predicates.md: Add cmp_op predicate.
27721         * config/microblaze/microblaze.md: Add branch_compare instruction
27722         which uses cmp_op predicate and emits cmp insn before branch.
27723         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
27724         to microblaze_expand_conditional_branch and consolidate logic.
27725         (microblaze_expand_conditional_branch): emit branch_compare
27726         insn instead of handling cmp op separate from branch insn.
27727
27728 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27729
27730         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
27731         to permit subregs.
27732
27733 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27734
27735         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
27736         define_insn with define_expand and new define_insn
27737         *altivec_lve<VI_char>x_internal.
27738         (altivec_stve<VI_char>x): Replace define_insn with define_expand
27739         and new define_insn *altivec_stve<VI_char>x_internal.
27740         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
27741         prototype.
27742         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
27743         lve*x built-ins.
27744         (altivec_expand_stvex_be): New function.
27745
27746 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
27747
27748         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
27749         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
27750         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
27751         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
27752
27753 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
27754
27755         PR target/60298
27756         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
27757         instead of emit_move_insn.
27758
27759 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27760
27761         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
27762         vspltw with vsldoi.
27763         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
27764         gen_altivec_vsumsws.
27765
27766 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27767
27768         * config/rs6000/altivec.md (altivec_lvxl): Rename as
27769         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
27770         (altivec_lvxl_<mode>): New define_expand incorporating
27771         -maltivec=be semantics where needed.
27772         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
27773         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
27774         semantics where needed.
27775         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
27776         (altivec_stvx_<mode>): New define_expand incorporating
27777         -maltivec=be semantics where needed.
27778         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
27779         VM2 iterator instead of V4SI.
27780         (altivec_stvxl_<mode>): New define_expand incorporating
27781         -maltivec=be semantics where needed.
27782         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
27783         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
27784         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
27785         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
27786         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
27787         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
27788         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
27789         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
27790         ALTIVEC_BUILTIN_STVXL.
27791         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
27792         (altivec_expand_stvx_be): Likewise.
27793         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
27794         (altivec_expand_lvx_be): Likewise.
27795         (altivec_expand_stvx_be): Likewise.
27796         (altivec_expand_builtin): Add cases for
27797         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
27798         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
27799         (altivec_init_builtins): Add definitions for
27800         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
27801         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
27802
27803 2014-02-21  Catherine Moore  <clm@codesourcery.com>
27804
27805         * doc/invoke.texi (mvirt, mno-virt): Document.
27806         * config/mips/mips.opt (mvirt): New option.
27807         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
27808
27809 2014-02-21  Richard Biener  <rguenther@suse.de>
27810
27811         PR tree-optimization/60276
27812         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
27813         (STMT_VINFO_MIN_NEG_DIST): New macro.
27814         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
27815         STMT_VINFO_MIN_NEG_DIST.
27816         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
27817         made for negative dependence distances still hold.
27818
27819 2014-02-21  Richard Biener  <rguenther@suse.de>
27820
27821         PR middle-end/60291
27822         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
27823         DECL_INITIAL for globals not in the current function context.
27824
27825 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27826
27827         PR tree-optimization/56490
27828         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
27829         * tree-ssa-uninit.c: Include params.h.
27830         (compute_control_dep_chain): Add num_calls argument, return false
27831         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
27832         num_calls to recursive call.
27833         (find_predicates): Change dep_chain into normal array,
27834         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
27835         variable and adjust compute_control_dep_chain caller.
27836         (find_def_preds): Likewise.
27837
27838 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
27839
27840         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
27841         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
27842
27843 2014-02-21  Nick Clifton  <nickc@redhat.com>
27844
27845         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
27846         (pushhi1): Likewise.
27847         (popqi1): Add mode to pre_dec.
27848         (pophi1): Likewise.
27849
27850 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
27851
27852         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
27853         mode for mask of V8SFmode permutation.
27854
27855 2014-02-20  Richard Henderson  <rth@redhat.com>
27856
27857         PR c++/60272
27858         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
27859         a new pseudo for OLDVAL.
27860
27861 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
27862
27863         PR target/57896
27864         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
27865         gen_reg_rtx if d->testing_p.
27866         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
27867         if d->testing_p and we will certainly return true.
27868         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
27869         if d->testing_p.
27870
27871 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
27872
27873         * emit-rtl.c (gen_reg_rtx): Assert that
27874         crtl->emit.regno_pointer_align_length is non-zero.
27875
27876 2014-02-20  Richard Henderson  <rth@redhat.com>
27877
27878         PR c++/60272
27879         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
27880         on failure the store back into EXPECT.
27881
27882 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
27883             Sandra Loosemore  <sandra@codesourcery.com>
27884
27885         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
27886         * config/nios2/nios2.c (nios2_function_profiler): Add
27887         -fPIC (flag_pic == 2) support.
27888         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
27889         (nios2_large_offset_p): New function.
27890         (nios2_unspec_reloc_p): Move up position, update to use
27891         nios2_large_offset_p.
27892         (nios2_unspec_address): Remove function.
27893         (nios2_unspec_offset): New function.
27894         (nios2_large_got_address): New function.
27895         (nios2_got_address): Add large offset support.
27896         (nios2_legitimize_tls_address): Update usage of removed and new
27897         functions.
27898         (nios2_symbol_binds_local_p): New function.
27899         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
27900         (nios2_legitimize_address): Update to use nios2_large_offset_p.
27901         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
27902         (nios2_print_operand): Merge H/L processing, add hiadj/lo
27903         processing for (const (unspec ...)).
27904         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
27905
27906 2014-02-20  Richard Biener  <rguenther@suse.de>
27907
27908         * tree-cfg.c (replace_uses_by): Mark altered BBs before
27909         doing the substitution.
27910         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
27911
27912 2014-02-20  Martin Jambor  <mjambor@suse.cz>
27913
27914         PR ipa/55260
27915         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
27916         info when checking whether lattices are bottom.
27917
27918 2014-02-20  Richard Biener  <rguenther@suse.de>
27919
27920         PR middle-end/60221
27921         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
27922         regions at -O0.
27923
27924 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
27925
27926         PR ipa/58555
27927         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
27928         parameter specifying the scaling.
27929         (inline_call): Update.
27930         (want_inline_recursively): Guard division by zero.
27931         (recursive_inlining): Update.
27932         * ipa-inline.h (clone_inlined_nodes): Update.
27933
27934 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27935
27936         PR target/60204
27937         * config/i386/i386.c (classify_argument): Pass structures of size
27938         64 bytes or less in register.
27939
27940 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
27941             Kirill Yukhin  <kirill.yukhin@intel.com>
27942
27943         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
27944         (_mm_rcp28_round_ss): Ditto.
27945         (_mm_rsqrt28_round_sd): Ditto.
27946         (_mm_rsqrt28_round_ss): Ditto.
27947         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
27948         (_mm_rcp14_round_ss): Ditto.
27949         (_mm_rsqrt14_round_sd): Ditto.
27950         (_mm_rsqrt14_round_ss): Ditto.
27951         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
27952         the first input operand, get rid of match_dup.
27953         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
27954         attribute to sse.
27955         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
27956         Ditto.
27957         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
27958         operand as the first input operand, set type attribute.
27959         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
27960         Set type attribute.
27961         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
27962         operand as the first input operand, set type attribute.
27963
27964 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27965
27966         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
27967         bit of zero.
27968
27969 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
27970
27971         PR target/60207
27972         * config/i386/i386.c (construct_container): Remove TFmode check
27973         for X86_64_INTEGER_CLASS.
27974
27975 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
27976
27977         PR target/59794
27978         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
27979         only when -Wpsabi is enabled.
27980
27981 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
27982
27983          PR target/59799
27984         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
27985         passing arrays in registers are the same as for structs, so remove the
27986         special case for them.
27987
27988 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
27989
27990         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
27991         destination type, extract only the valid bits if the source type is not
27992         integral and has a different mode.
27993
27994 2014-02-19  Richard Biener  <rguenther@suse.de>
27995
27996         PR ipa/60243
27997         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
27998         for all calls.
27999
28000 2014-02-19  Richard Biener  <rguenther@suse.de>
28001
28002         PR ipa/60243
28003         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
28004         (ipa_modify_call_arguments): Emit an argument load explicitely and
28005         preserve virtual SSA form there and for the replacement call.
28006         Do not update SSA form nor free dominance info.
28007
28008 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
28009
28010         * ipa.c (function_and_variable_visibility): Also clear WEAK
28011         flag when disolving COMDAT_GROUP.
28012
28013 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
28014
28015         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
28016         * ipa-prop.c (ipa_set_jf_known_type): Return early when
28017         not devirtualizing.
28018         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
28019         do more sanity checks.
28020         (detect_type_change): Return true when giving up early.
28021         (compute_complex_assign_jump_func): Fix type parameter of
28022         ipa_set_ancestor_jf.
28023         (compute_complex_ancestor_jump_func): Likewise.
28024         (update_jump_functions_after_inlining): Fix updating of
28025         ancestor function.
28026         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
28027
28028 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
28029
28030         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
28031         inline clones when edge disappears.
28032
28033 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
28034
28035         PR target/60203
28036         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
28037         Split 64-bit moves into 2 patterns.  Do not allow the use of
28038         direct move for TDmode in little endian, since the decimal value
28039         has little endian bytes within a word, but the 64-bit pieces are
28040         ordered in a big endian fashion, and normal subreg's of TDmode are
28041         not allowed.
28042         (mov<mode>_64bit_dm): Likewise.
28043         (movtd_64bit_nodm): Likewise.
28044
28045 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
28046
28047         PR tree-optimization/60174
28048         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
28049         statement of an SSA_NAME that occurs in an abnormal PHI node.
28050
28051 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
28052
28053         PR sanitizer/60142
28054         * final.c (SEEN_BB): Remove.
28055         (SEEN_NOTE, SEEN_EMITTED): Renumber.
28056         (final_scan_insn): Don't force_source_line on second
28057         NOTE_INSN_BASIC_BLOCK.
28058
28059 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
28060
28061         PR target/60205
28062         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
28063         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
28064         (type_natural_mode): Warn ABI change when %zmm register is not
28065         available for AVX512F vector value passing.
28066
28067 2014-02-18  Kai Tietz  <ktietz@redhat.com>
28068
28069         PR target/60193
28070         * config/i386/i386.c (ix86_expand_prologue): Use value in
28071         rax register as displacement when restoring %r10 or %rax.
28072         Fix wrong offset when restoring both registers.
28073
28074 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
28075
28076         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
28077         assertion with conditional return.
28078
28079 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
28080             Uros Bizjak  <ubizjak@gmail.com>
28081
28082         PR driver/60233
28083         * config/i386/driver-i386.c (host_detect_local_cpu): If
28084         YMM state is not saved by the OS, also clear has_f16c.  Move
28085         CPUID 0x80000001 handling before YMM state saving checking.
28086
28087 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
28088
28089         PR rtl-optimization/58960
28090         * haifa-sched.c (alloc_global_sched_pressure_data): New,
28091         factored out from ...
28092         (sched_init): ... here.
28093         (free_global_sched_pressure_data): New, factored out from ...
28094         (sched_finish): ... here.
28095         * sched-int.h (free_global_sched_pressure_data): Declare.
28096         * sched-rgn.c (nr_regions_initial): New static global.
28097         (haifa_find_rgns): Initialize it.
28098         (schedule_region): Disable sched-pressure for the newly
28099         generated regions.
28100
28101 2014-02-17  Richard Biener  <rguenther@suse.de>
28102
28103         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
28104         release SSA defs of pattern stmts.
28105
28106 2014-02-17  Richard Biener  <rguenther@suse.de>
28107
28108         * tree-inline.c (expand_call_inline): Release the virtual
28109         operand defined by the call we are about to inline.
28110
28111 2014-02-17  Richard Biener  <rguenther@suse.de>
28112
28113         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
28114
28115 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
28116             Ilya Tocar  <ilya.tocar@intel.com>
28117
28118         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
28119         arguments order in builtin.
28120         (_mm512_permutexvar_epi64): Ditto.
28121         (_mm512_mask_permutexvar_epi64): Ditto
28122         (_mm512_maskz_permutexvar_epi32): Ditto
28123         (_mm512_permutexvar_epi32): Ditto
28124         (_mm512_mask_permutexvar_epi32): Ditto
28125
28126 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28127
28128         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
28129         (p8_vmrgow): Likewise.
28130
28131 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28132
28133         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
28134         endian targets.
28135
28136 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
28137
28138         PR target/60203
28139         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
28140         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
28141         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
28142         using direct move instructions on ISA 2.07.  Also adjust
28143         instruction length for 64-bit.
28144         (mov<mode>_64bit, TFmode/TDmode): Likewise.
28145         (mov<mode>_32bit, TFmode/TDmode): Likewise.
28146
28147 2014-02-15  Alan Modra  <amodra@gmail.com>
28148
28149         PR target/58675
28150         PR target/57935
28151         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
28152         find_replacement on parts of insn rtl that might be reloaded.
28153
28154 2014-02-15  Richard Biener  <rguenther@suse.de>
28155
28156         PR tree-optimization/60183
28157         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
28158         (tree_ssa_phiprop): Calculate and free post-dominators.
28159
28160 2014-02-14  Jeff Law  <law@redhat.com>
28161
28162         PR rtl-optimization/60131
28163         * ree.c (get_extended_src_reg): New function.
28164         (combine_reaching_defs): Use it rather than assuming location of REG.
28165         (find_and_remove_re): Verify first operand of extension is
28166         a REG before adding the insns to the copy list.
28167
28168 2014-02-14  Roland McGrath  <mcgrathr@google.com>
28169
28170         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
28171         * configure: Regenerated.
28172         * config.in: Regenerated.
28173         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
28174         instead of ASM_SHORT.
28175
28176 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
28177             Richard Earnshaw  <rearnsha@arm.com>
28178
28179         PR rtl-optimization/59535
28180         * lra-constraints.c (process_alt_operands): Encourage alternative
28181         when unassigned pseudo class is superset of the alternative class.
28182         (inherit_reload_reg): Don't inherit when optimizing for code size.
28183         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
28184         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
28185         modes not less than 4 for Thumb1.
28186
28187 2014-02-14  Kyle McMartin  <kyle@redhat.com>
28188
28189         PR pch/60010
28190         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
28191
28192 2014-02-14  Richard Biener  <rguenther@suse.de>
28193
28194         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
28195         (get_frame_arg): Drop the assert with langhook types_compatible_p.
28196         Do not strip INDIRECT_REFs.
28197
28198 2014-02-14  Richard Biener  <rguenther@suse.de>
28199
28200         PR lto/60179
28201         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
28202         DECL_FUNCTION_SPECIFIC_TARGET.
28203         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
28204         * tree-streamer-out.c (pack_ts_target_option): Remove.
28205         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
28206         (write_ts_function_decl_tree_pointers): Do not stream
28207         DECL_FUNCTION_SPECIFIC_TARGET.
28208         * tree-streamer-in.c (unpack_ts_target_option): Remove.
28209         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
28210         (lto_input_ts_function_decl_tree_pointers): Do not stream
28211         DECL_FUNCTION_SPECIFIC_TARGET.
28212
28213 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
28214
28215         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
28216         (get_initial_def_for_induction, vectorizable_induction): Ignore
28217         debug stmts when looking for exit_phi.
28218         (vectorizable_live_operation): Fix up condition.
28219
28220 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28221
28222         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
28223         nreverse() because it changes the content of original tree list.
28224
28225 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28226
28227         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
28228         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
28229
28230 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
28231
28232         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
28233         GNU coding standards.
28234
28235 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28236
28237         PR debug/60152
28238         * dwarf2out.c (gen_subprogram_die): Don't call
28239         add_calling_convention_attribute if subr_die is old_die.
28240
28241 2014-02-13  Sharad Singhai  <singhai@google.com>
28242
28243         * doc/optinfo.texi: Fix order of nodes.
28244
28245 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
28246
28247         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
28248         operands[2], not operands[3].
28249
28250 2014-02-13  Richard Biener  <rguenther@suse.de>
28251
28252         PR bootstrap/59878
28253         * doc/install.texi (ISL): Update recommended version to 0.12.2,
28254         mention the possibility of an in-tree build.
28255         (CLooG): Update recommended version to 0.18.1, mention the
28256         possibility of an in-tree build and clarify that the ISL
28257         bundled with CLooG does not work.
28258
28259 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
28260
28261         PR target/43546
28262         * expr.c (compress_float_constant): If x is a hard register,
28263         extend into a pseudo and then move to x.
28264
28265 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28266
28267         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
28268         caused by bad second argument to warning_at() with -mhotpatch and
28269         nested functions (e.g. with gfortran).
28270
28271 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
28272
28273         * opts.c (option_name): Remove "enabled by default" rider.
28274
28275 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
28276
28277         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
28278
28279 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
28280             Uros Bizjak  <ubizjak@gmail.com>
28281
28282         PR target/60151
28283         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
28284         * configure: Regenerated.
28285
28286 2014-02-12  Richard Biener  <rguenther@suse.de>
28287
28288         * vec.c (vec_prefix::calculate_allocation): Move as
28289         inline variant to vec.h.
28290         (vec_prefix::calculate_allocation_1): New out-of-line version.
28291         * vec.h (vec_prefix::calculate_allocation_1): Declare.
28292         (vec_prefix::m_has_auto_buf): Rename to ...
28293         (vec_prefix::m_using_auto_storage): ... this.
28294         (vec_prefix::calculate_allocation): Inline the easy cases
28295         and dispatch to calculate_allocation_1 which doesn't need the
28296         prefix address.
28297         (va_heap::reserve): Use gcc_checking_assert.
28298         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
28299         m_using_auto_storage.
28300         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
28301         member and adjust.
28302         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
28303         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
28304         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
28305
28306 2014-02-12  Richard Biener  <rguenther@suse.de>
28307
28308         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
28309         when we found a dependence.
28310
28311 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
28312
28313         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
28314         common code...
28315         (maybe_fold_stmt): ... into this new function.
28316         * omp-low.c (lower_omp): Update comment.
28317
28318         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
28319         last use.
28320
28321         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
28322         dereference.
28323
28324 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
28325
28326         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
28327         identifiers in comments.
28328         (cortexa53_extra_costs): Likewise.
28329         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
28330         (cortexa7_extra_costs): Likewise.
28331         (cortexa12_extra_costs): Likewise.
28332         (cortexa15_extra_costs): Likewise.
28333         (v7m_extra_costs): Likewise.
28334
28335 2014-02-12  Richard Biener  <rguenther@suse.de>
28336
28337         PR middle-end/60092
28338         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
28339         of posix_memalign being successful.
28340         (lower_stmt): Restrict lowering of posix_memalign to when
28341         -ftree-bit-ccp is enabled.
28342
28343 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28344
28345         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
28346         arg_loc.
28347         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
28348
28349 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
28350
28351         PR rtl-optimization/60116
28352         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
28353         other_insn once the combination has been validated.
28354
28355 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
28356
28357         PR lto/59468
28358         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
28359         and wrapper.
28360         * ipa-devirt.c: Include demangle.h
28361         (odr_violation_reported): New static variable.
28362         (add_type_duplicate): Update odr_violations.
28363         (maybe_record_node): Add completep parameter; update it.
28364         (record_target_from_binfo): Add COMPLETEP parameter;
28365         update it as needed.
28366         (possible_polymorphic_call_targets_1): Likewise.
28367         (struct polymorphic_call_target_d): Add nonconstruction_targets;
28368         rename FINAL to COMPLETE.
28369         (record_targets_from_bases): Sanity check we found the binfo;
28370         fix COMPLETEP updating.
28371         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
28372         parameter, fix computing of COMPLETEP.
28373         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
28374         at LTO time do demangling.
28375         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
28376         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
28377         parameter.
28378         (gimple_get_virt_method_for_binfo): Likewise.
28379         * gimple-fold.h (gimple_get_virt_method_for_binfo,
28380         gimple_get_virt_method_for_vtable): Update prototypes.
28381
28382 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
28383
28384         PR target/49008
28385         * genautomata.c (add_presence_absence): Fix typo with
28386         {final_}presence_list.
28387
28388 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28389
28390         PR target/60137
28391         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
28392         for VSX/Altivec vectors that land in GPR registers.
28393
28394 2014-02-11  Richard Henderson  <rth@redhat.com>
28395             Jakub Jelinek  <jakub@redhat.com>
28396
28397         PR debug/59776
28398         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
28399         around drhs if type conversion to lacc->type is not useless.
28400
28401 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28402
28403         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
28404         tuning struct.
28405         (cortex-a57.cortex-a53): Likewise.
28406         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
28407
28408 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28409
28410         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
28411         arm_restrict_it.
28412
28413 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
28414
28415         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
28416         add_options_for_arm_vfp3.
28417
28418 2014-02-11  Jeff Law  <law@redhat.com>
28419
28420         PR middle-end/54041
28421         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
28422         object with an undesirable mode.
28423
28424 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28425
28426         PR libgomp/60107
28427         * config/i386/sol2-9.h: New file.
28428         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
28429         *-*-solaris2.9*): Use it.
28430
28431 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28432
28433         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
28434         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
28435
28436 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
28437
28438         * config/microblaze/microblaze.c: Extend mcpu version format
28439
28440 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
28441
28442         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
28443
28444 2014-02-10  Richard Henderson  <rth@redhat.com>
28445
28446         PR target/59927
28447         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
28448         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
28449         ms-abi vs -mno-accumulate-outgoing-args.
28450         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
28451         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
28452         respect to ms-abi.
28453
28454 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28455
28456         PR middle-end/60080
28457         * cfgexpand.c (expand_asm_operands): Attach source location to
28458         ASM_INPUT rtx objects.
28459         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
28460
28461 2014-02-10  Nick Clifton  <nickc@redhat.com>
28462
28463         * config/mn10300/mn10300.c (popcount): New function.
28464         (mn10300_expand_prologue): Include saved registers in stack usage
28465         count.
28466
28467 2014-02-10  Jeff Law  <law@redhat.com>
28468
28469         PR middle-end/52306
28470         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
28471         when changing the SET_DEST of a prior insn to avoid an input reload.
28472
28473 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28474
28475         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
28476         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
28477         -mcall-openbsd, or -mcall-linux.
28478         (CC1_ENDIAN_BIG_SPEC): Remove.
28479         (CC1_ENDIAN_LITTLE_SPEC): Remove.
28480         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28481         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
28482         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
28483         and %cc1_endian_default.
28484         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
28485
28486 2014-02-10  Richard Biener  <rguenther@suse.de>
28487
28488         PR tree-optimization/60115
28489         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
28490         MEM_REF handling.  Properly verify that the accesses are not
28491         out of the objects bound.
28492
28493 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28494
28495         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
28496         coretex to cortex.
28497
28498 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
28499
28500         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
28501         proper constants and fix formatting.
28502         (possible_polymorphic_call_targets): Fix formatting.
28503
28504 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
28505             Ilya Tocar  <ilya.tocar@intel.com>
28506
28507         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
28508         (_mm512_loadu_epi32): Renamed into...
28509         (_mm512_loadu_si512): This.
28510         (_mm512_storeu_epi32): Renamed into...
28511         (_mm512_storeu_si512): This.
28512         (_mm512_maskz_ceil_ps): Removed.
28513         (_mm512_maskz_ceil_pd): Ditto.
28514         (_mm512_maskz_floor_ps): Ditto.
28515         (_mm512_maskz_floor_pd): Ditto.
28516         (_mm512_floor_round_ps): Ditto.
28517         (_mm512_floor_round_pd): Ditto.
28518         (_mm512_ceil_round_ps): Ditto.
28519         (_mm512_ceil_round_pd): Ditto.
28520         (_mm512_mask_floor_round_ps): Ditto.
28521         (_mm512_mask_floor_round_pd): Ditto.
28522         (_mm512_mask_ceil_round_ps): Ditto.
28523         (_mm512_mask_ceil_round_pd): Ditto.
28524         (_mm512_maskz_floor_round_ps): Ditto.
28525         (_mm512_maskz_floor_round_pd): Ditto.
28526         (_mm512_maskz_ceil_round_ps): Ditto.
28527         (_mm512_maskz_ceil_round_pd): Ditto.
28528         (_mm512_expand_pd): Ditto.
28529         (_mm512_expand_ps): Ditto.
28530         * config/i386/i386.c (ix86_builtins): Remove
28531         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
28532         (bdesc_args): Ditto.
28533         * config/i386/predicates.md (const1256_operand): New.
28534         (const_1_to_2_operand): Ditto.
28535         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
28536         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
28537         (*avx512pf_gatherpf<mode>sf): Ditto.
28538         (avx512pf_gatherpf<mode>df): Ditto.
28539         (*avx512pf_gatherpf<mode>df_mask): Ditto.
28540         (*avx512pf_gatherpf<mode>df): Ditto.
28541         (avx512pf_scatterpf<mode>sf): Ditto.
28542         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
28543         (*avx512pf_scatterpf<mode>sf): Ditto.
28544         (avx512pf_scatterpf<mode>df): Ditto.
28545         (*avx512pf_scatterpf<mode>df_mask): Ditto.
28546         (*avx512pf_scatterpf<mode>df): Ditto.
28547         (avx512f_expand<mode>): Removed.
28548         (<shift_insn><mode>3<mask_name>): Change predicate type.
28549
28550 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28551
28552         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
28553         not at the end of datarefs vector use ordered_remove to avoid
28554         reordering datarefs vector.
28555
28556         PR c/59984
28557         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
28558         mark local addressable non-static vars as GOVD_PRIVATE
28559         instead of GOVD_LOCAL.
28560         * omp-low.c (lower_omp_for): Move gimple_bind_vars
28561         and BLOCK_VARS of gimple_bind_block to new_stmt rather
28562         than copying them.
28563
28564         PR middle-end/60092
28565         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
28566         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
28567         assume_aligned or alloc_align attributes.
28568         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
28569         arguments.  Handle also assume_aligned and alloc_align attributes.
28570         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
28571         calls to functions with assume_aligned or alloc_align attributes.
28572         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
28573
28574 2014-02-08  Terry Guo  <terry.guo@arm.com>
28575
28576         * doc/invoke.texi: Document ARM -march=armv7e-m.
28577
28578 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
28579
28580         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
28581         flag on __cilkrts_rethrow builtin.
28582
28583         PR ipa/60026
28584         * ipa-cp.c (determine_versionability): Fail at -O0
28585         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
28586         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
28587
28588         Revert:
28589         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28590
28591         PR ipa/60026
28592         * tree-inline.c (copy_forbidden): Fail for
28593         __attribute__((optimize (0))) functions.
28594
28595 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28596
28597         * varpool.c: Include pointer-set.h.
28598         (varpool_remove_unreferenced_decls): Variables in other partitions
28599         will not be output; be however careful to not lose information
28600         about partitioning.
28601
28602 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
28603
28604         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
28605         lookup in the vtable constructor.
28606
28607 2014-02-07  Jeff Law  <law@redhat.com>
28608
28609         PR target/40977
28610         * config/m68k/m68k.md (ashldi_extsi): Turn into a
28611         define_insn_and_split.
28612
28613         * ipa-inline.c (inline_small_functions): Fix typos.
28614
28615 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28616
28617         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
28618         (s390_can_use_return_insn): Declare.
28619         * config/s390/s390.h (EPILOGUE_USES): Define.
28620         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
28621         instructions.
28622         (s390_chunkify_start): Handle return JUMP_LABELs.
28623         (s390_early_mach): Emit a main_pool instruction on the entry edge.
28624         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
28625         (s390_can_use_return_insn): New functions.
28626         (s390_fix_long_loop_prediction): Handle conditional returns.
28627         (TARGET_SET_UP_BY_PROLOGUE): Define.
28628         * config/s390/s390.md (ANY_RETURN): New code iterator.
28629         (*creturn, *csimple_return, return, simple_return): New patterns.
28630
28631 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28632
28633         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
28634         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
28635         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
28636         REG_CFA_RESTORE list when deciding not to restore a register.
28637
28638 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28639
28640         * config/s390/s390.c: Include tree-pass.h and context.h.
28641         (s390_early_mach): New function, split out from...
28642         (s390_emit_prologue): ...here.
28643         (pass_data_s390_early_mach): New pass structure.
28644         (pass_s390_early_mach): New class.
28645         (s390_option_override): Create and register early_mach pass.
28646         Move to end of file.
28647
28648 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
28649
28650         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
28651         to match for the exit block.
28652
28653 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28654
28655         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
28656         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
28657         Reject misaligned operands.
28658
28659 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28660
28661         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
28662
28663 2014-02-07  Richard Biener  <rguenther@suse.de>
28664
28665         PR middle-end/60092
28666         * gimple-low.c (lower_builtin_posix_memalign): New function.
28667         (lower_stmt): Call it to lower posix_memalign in a way
28668         to make alignment info accessible.
28669
28670 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
28671
28672         PR c++/60082
28673         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
28674         __builtin_setjmp_receiver.
28675
28676 2014-02-07  Richard Biener  <rguenther@suse.de>
28677
28678         PR middle-end/60092
28679         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
28680         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
28681         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
28682         Handle BUILT_IN_POSIX_MEMALIGN.
28683         (find_func_clobbers): Likewise.
28684         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
28685         (call_may_clobber_ref_p_1): Likewise.
28686
28687 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28688
28689         PR ipa/59918
28690         * ipa-devirt.c (record_target_from_binfo): Remove overactive
28691         sanity check.
28692
28693 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28694
28695         PR ipa/59469
28696         * lto-cgraph.c (lto_output_node): Use
28697         symtab_get_symbol_partitioning_class.
28698         (lto_output_varpool_node): likewise.
28699         (symtab_get_symbol_partitioning_class): Move here from
28700         lto/lto-partition.c
28701         * cgraph.h (symbol_partitioning_class): Likewise.
28702         (symtab_get_symbol_partitioning_class): Declare.
28703
28704 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28705
28706         * ggc.h (ggc_internal_cleared_alloc): New macro.
28707         * vec.h (vec_safe_copy): Handle memory stats.
28708         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
28709         * target-globals.c (save_target_globals): Likewise.
28710
28711 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
28712
28713         PR target/60077
28714         * expr.c (emit_move_resolve_push): Export; be bit more selective
28715         on when to clear alias set.
28716         * expr.h (emit_move_resolve_push): Declare.
28717         * function.h (struct function): Add tail_call_marked.
28718         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
28719         * config/i386/i386-protos.h (ix86_expand_push): Remove.
28720         * config/i386/i386.md (TImode move expander): De not call
28721         ix86_expand_push.
28722         (FP push expanders): Preserve memory attributes.
28723         * config/i386/sse.md (push<mode>1): Remove.
28724         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
28725         (ix86_expand_push): Remove.
28726         * config/i386/mmx.md (push<mode>1): Remove.
28727
28728 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28729
28730         PR rtl-optimization/60030
28731         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
28732         lopart with paradoxical subreg before shifting it up by hprec.
28733
28734 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28735
28736         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
28737         Remove extra newline at end of file.
28738         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
28739         (arm_issue_rate): Handle cortexa57.
28740         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
28741         (cortex-a57.cortex-a53): Likewise.
28742
28743 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28744
28745         PR target/59575
28746         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
28747         don't record in REG_FRAME_RELATED_EXPR registers not set in that
28748         bitmask.
28749         (arm_expand_prologue): Adjust all callers.
28750         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
28751         info, registers also at the lowest numbered registers side.  Use
28752         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
28753         XEXP.
28754
28755         PR debug/59992
28756         * var-tracking.c (adjust_mems): Before adding a SET to
28757         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
28758
28759 2014-02-06  Alan Modra  <amodra@gmail.com>
28760
28761         PR target/60032
28762         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
28763         change SDmode to DDmode when lra_in_progress.
28764
28765 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
28766
28767         PR middle-end/59150
28768         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
28769         free_data_ref on the dr first, and before goto again also set dr
28770         to the next dr.  For simd_lane_access, free old datarefs[i] before
28771         overwriting it.  For get_vectype_for_scalar_type failure, don't
28772         free_data_ref if simd_lane_access.
28773
28774         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
28775
28776         PR target/60062
28777         * tree.h (opts_for_fn): New inline function.
28778         (opt_for_fn): Define.
28779         * config/i386/i386.c (ix86_function_regparm): Use
28780         opt_for_fn (decl, optimize) instead of optimize.
28781
28782 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28783
28784         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
28785         for SYMBOL_REF in large memory model.
28786
28787 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28788
28789         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
28790         and crypto support.
28791         (cortex-a57): Likewise.
28792         (cortex-a57.cortex-a53): Likewise.
28793
28794 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
28795             Kugan Vivekanandarajah  <kuganv@linaro.org>
28796
28797         * config/arm/arm.c (arm_vector_alignment_reachable): Check
28798         unaligned_access.
28799         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
28800
28801 2014-02-06  Richard Biener  <rguenther@suse.de>
28802
28803         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
28804         set_loop_copy and initialize_original_copy_tables.
28805
28806 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
28807
28808         * config/aarch64/aarch64-simd.md
28809         (aarch64_ashr_simddi): Change QI to SI.
28810
28811 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28812             Jakub Jelinek  <jakub@redhat.com>
28813
28814         PR middle-end/60013
28815         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
28816         of the dataflow.
28817
28818 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28819
28820         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
28821         CODE_FOR_altivec_vpku[hw]um to
28822         CODE_FOR_altivec_vpku[hw]um_direct.
28823         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
28824         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
28825         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
28826         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
28827
28828 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28829
28830         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
28831         generation for -maltivec=be.
28832         (altivec_vsumsws): Simplify redundant test.
28833
28834 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28835
28836         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
28837         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
28838         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
28839         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
28840         gen_altivec_vpkuwum.
28841         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
28842         BYTES_BIG_ENDIAN.
28843         (altivec_vpks<VI_char>ss): Likewise.
28844         (altivec_vpks<VI_char>us): Likewise.
28845         (altivec_vpku<VI_char>us): Likewise.
28846         (altivec_vpku<VI_char>um): Likewise.
28847         (altivec_vpku<VI_char>um_direct): New (copy of
28848         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
28849         internal use).
28850         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
28851         target is little endian and -maltivec=be is not specified.
28852         (*altivec_vupkhs<VU_char>_direct): New (copy of
28853         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
28854         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
28855         target is little endian and -maltivec=be is not specified.
28856         (*altivec_vupkls<VU_char>_direct): New (copy of
28857         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
28858         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
28859         little endian and -maltivec=be is not specified.
28860         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
28861         little endian and -maltivec=be is not specified.
28862
28863 2014-02-05  Richard Henderson  <rth@redhat.com>
28864
28865         PR debug/52727
28866         * combine-stack-adj.c: Revert r206943.
28867         * sched-int.h (struct deps_desc): Add last_args_size.
28868         * sched-deps.c (init_deps): Initialize it.
28869         (sched_analyze_insn): Add OUTPUT dependencies between insns that
28870         contain REG_ARGS_SIZE notes.
28871
28872 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
28873
28874         * lto-cgraph.c (asm_nodes_output): Make global.
28875         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
28876         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
28877         (driver_handle_option): Handle OPT_fwpa.
28878
28879 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
28880
28881         PR ipa/59947
28882         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
28883         a comment typo and formatting issue.  If odr_hash hasn't been
28884         created, return vNULL and set *completep to false.
28885
28886         PR middle-end/57499
28887         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
28888         bb with no successors.
28889
28890 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
28891
28892         PR target/59718
28893         * doc/invoke.texi (-march): Clarify documentation for ARM.
28894         (-mtune): Likewise.
28895         (-mcpu): Likewise.
28896
28897 2014-02-05  Richard Biener  <rguenther@suse.de>
28898
28899         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
28900         when not vectorizing because of too many alias checks.
28901         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
28902         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
28903
28904 2014-02-05  Nick Clifton  <nickc@redhat.com>
28905
28906         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
28907         accept extended registers in any mode when compiling for the MN10300.
28908
28909 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
28910
28911         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
28912         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
28913         sanitization attributes.
28914         (can_inline_edge_p): Likewise.
28915         (sanitize_attrs_match_for_inline_p): New function.
28916
28917 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28918
28919         * ipa-prop.c (detect_type_change): Shor circuit testing of
28920         type changes on THIS pointer.
28921
28922 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
28923
28924         PR target/59777
28925         * config/pa/pa.c (legitimize_tls_address): Return original address
28926         if not passed a SYMBOL_REF rtx.
28927         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
28928         addresses.
28929         (pa_emit_move_sequence): Simplify TLS source operands.
28930         (pa_legitimate_constant_p): Reject all TLS constants.
28931         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
28932         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
28933
28934 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28935
28936         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
28937         groups when we know they are controlled by LTO.
28938         * varasm.c (default_binds_local_p_1): If object is in other partition,
28939         it will be resolved locally.
28940
28941 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28942
28943         * config/host-linux.c (linux_gt_pch_use_address): Don't
28944         use SSIZE_MAX because it is not always defined.
28945
28946 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
28947
28948         PR bootstrap/59913
28949         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
28950         threshold for pseudo splitting.
28951         (update_ebb_live_info): Process call argument hard registers and
28952         hard registers from insn definition too.
28953         (max_small_class_regs_num): New constant.
28954         (inherit_in_ebb): Update live hard regs through EBBs.  Update
28955         reloads_num only for small register classes.  Don't split for
28956         outputs of jumps.
28957
28958 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
28959
28960         PR ipa/60058
28961         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
28962         is non-null.
28963
28964 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
28965
28966         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
28967         visibility is safe.
28968
28969 2014-02-04  Marek Polacek  <polacek@redhat.com>
28970
28971         * gdbinit.in (pel): Define.
28972
28973 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28974
28975         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
28976         behavior.
28977
28978 2014-02-04  Richard Biener  <rguenther@suse.de>
28979
28980         PR lto/59723
28981         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
28982         in function context local.
28983         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
28984         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
28985         similar to LTO_imported_decl_ref.
28986
28987 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
28988
28989         PR tree-optimization/60002
28990         * cgraphclones.c (build_function_decl_skip_args): Clear
28991         DECL_LANG_SPECIFIC.
28992
28993         PR tree-optimization/60023
28994         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
28995         false to gsi_replace.
28996         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
28997         has been in some EH region and vec_stmt could throw, add
28998         vec_stmt into the same EH region.
28999         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
29000         has no lhs, ignore it.
29001         * internal-fn.c (expand_MASK_LOAD): Likewise.
29002
29003         PR ipa/60026
29004         * tree-inline.c (copy_forbidden): Fail for
29005         __attribute__((optimize (0))) functions.
29006
29007         PR other/58712
29008         * omp-low.c (simd_clone_struct_copy): If from->inbranch
29009         is set, copy one less argument.
29010         (expand_simd_clones): Don't subtract clone_info->inbranch
29011         from simd_clone_struct_alloc argument.
29012
29013         PR rtl-optimization/57915
29014         * recog.c (simplify_while_replacing): If all unary/binary/relational
29015         operation arguments are constant, attempt to simplify those.
29016
29017         PR middle-end/59261
29018         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
29019         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
29020
29021 2014-02-04  Richard Biener  <rguenther@suse.de>
29022
29023         PR tree-optimization/60012
29024         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
29025         TBAA disambiguation to all DDRs.
29026
29027 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29028
29029         PR target/59788
29030         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
29031         (LINK_SPEC): Use it for -shared, -shared-libgcc.
29032
29033 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
29034
29035         PR ipa/59882
29036         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
29037
29038 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
29039
29040         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
29041         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
29042
29043 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
29044
29045         PR ipa/59831
29046         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
29047         to figure out targets of polymorphic calls with known decl.
29048         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
29049         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
29050         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
29051         (get_polymorphic_call_info): ... here.
29052         (get_polymorphic_call_info_from_invariant): New function.
29053
29054 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
29055
29056         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
29057         lookup via vtable pointer; check for type consistency
29058         and turn inconsitent facts into UNREACHABLE.
29059         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
29060         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
29061         type inconsistent querries; return UNREACHABLE instead.
29062
29063 2014-02-03  Richard Henderson  <rth@twiddle.net>
29064
29065         PR tree-opt/59924
29066         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
29067         already processed this node.
29068         (normalize_one_pred_1): Pass along mark_set.
29069         (normalize_one_pred): Create and destroy a pointer_set_t.
29070         (normalize_one_pred_chain): Likewise.
29071
29072 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
29073
29074         PR gcov-profile/58602
29075         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
29076
29077 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
29078
29079         PR ipa/59831
29080         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
29081         -fno-devirtualize; try to devirtualize by the knowledge of
29082         virtual table pointer given by aggregate propagation.
29083         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
29084         (ipa_print_node_jump_functions): Dump also offset that
29085         is relevant for polymorphic calls.
29086         (determine_known_aggregate_parts): Add arg_type parameter; use it
29087         instead of determining the type from pointer type.
29088         (ipa_compute_jump_functions_for_edge): Update call of
29089         determine_known_aggregate_parts.
29090         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
29091         (gimple_get_virt_method_for_binfo): ... here; simplify using
29092         vtable_pointer_value_to_vtable.
29093         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
29094         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
29095         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
29096         (vtable_pointer_value_to_vtable): Break out from ...; handle also
29097         POINTER_PLUS_EXPR.
29098         (vtable_pointer_value_to_binfo): ... here.
29099         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
29100
29101 2014-02-03  Teresa Johnson  <tejohnson@google.com>
29102
29103         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
29104         redef of outer loop index variable.
29105
29106 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
29107
29108         PR c++/53017
29109         PR c++/59211
29110         * doc/extend.texi (Function Attributes): Typo.
29111
29112 2014-02-03  Cong Hou  <congh@google.com>
29113
29114         PR tree-optimization/60000
29115         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
29116         if the vectorized statement is a store.  A store statement can only
29117         appear at the end of pattern statements.
29118
29119 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
29120
29121         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
29122         (ix86_option_override_internal): Default long double to 64-bit for
29123         32-bit Bionic and to 128-bit for 64-bit Bionic.
29124
29125         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
29126         TARGET_LONG_DOUBLE_128 is true.
29127         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
29128
29129         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
29130         (mlong-double-64): Negate -mlong-double-128.
29131         (mlong-double-128): New option.
29132
29133         * config/i386/i386-c.c (ix86_target_macros): Define
29134         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
29135
29136         * doc/invoke.texi: Document -mlong-double-128.
29137
29138 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
29139
29140         PR rtl-optimization/60024
29141         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
29142
29143 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
29144
29145         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
29146
29147 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
29148
29149         PR rtl-optimization/57662
29150         * sel-sched.c (code_motion_path_driver): Do not mark already not
29151         existing blocks in the visiting bitmap.
29152
29153 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
29154
29155         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
29156         on the insn being emitted.
29157
29158 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
29159             Will Deacon  <will.deacon@arm.com>
29160
29161         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
29162
29163 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29164
29165         * config/arm/arm-tables.opt: Regenerate.
29166
29167 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29168
29169         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
29170         for vector types other than V16QImode.
29171         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
29172         define_expand, and call altivec_expand_vec_perm_le when producing
29173         code with little endian element order.
29174         (*altivec_vperm_<mode>_internal): New insn having previous
29175         behavior of altivec_vperm_<mode>.
29176         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
29177         altivec_expand_vec_perm_le when producing code with little endian
29178         element order.
29179         (*altivec_vperm_<mode>_uns_internal): New insn having previous
29180         behavior of altivec_vperm_<mode>_uns.
29181
29182 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29183
29184         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
29185         (altivec_vsumsws): Add handling for -maltivec=be with a little
29186         endian target.
29187         (altivec_vsumsws_direct): New.
29188         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
29189         gen_altivec_vsumsws.
29190
29191 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
29192
29193         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
29194         vtable_pointer_value_to_binfo): New functions.
29195         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
29196         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
29197
29198 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
29199
29200         * config/nios2/nios2.md (load_got_register): Initialize GOT
29201         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
29202         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
29203
29204 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
29205
29206         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
29207         preserverd by passthrough, do not propagate the type.
29208
29209 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29210
29211         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
29212         (mips_atomic_assign_expand_fenv): New function.
29213         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
29214
29215 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29216
29217         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
29218         (__builtin_mips_set_fcsr): Likewise.
29219         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
29220         MIPS_USI_FTYPE_VOID.
29221         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
29222         (mips16_expand_set_fcsr): Likewise.
29223         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
29224         (mips16_set_fcsr_stub): Likewise.
29225         (mips16_get_fcsr_one_only_stub): New class.
29226         (mips16_set_fcsr_one_only_stub): Likewise.
29227         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
29228         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
29229         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
29230         (hard_float): New availability predicate.
29231         (mips_builtins): Add get_fcsr and set_fcsr.
29232         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
29233         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
29234         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
29235         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
29236         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
29237         patterns.
29238
29239 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
29240
29241         * config/mips/mips.c (mips_one_only_stub): New class.
29242         (mips_need_mips16_rdhwr_p): Replace with...
29243         (mips16_rdhwr_stub): ...this new variable.
29244         (mips16_stub_call_address): New function.
29245         (mips16_rdhwr_one_only_stub): New class.
29246         (mips_expand_thread_pointer): Use mips16_stub_call_address.
29247         (mips_output_mips16_rdhwr): Delete.
29248         (mips_finish_stub): New function.
29249         (mips_code_end): Use it to handle rdhwr stubs.
29250
29251 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
29252
29253         PR target/60017
29254         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
29255         when calculating size of integer atomic types.
29256
29257 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
29258
29259         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
29260
29261 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
29262
29263         PR tree-optimization/60003
29264         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
29265         * profile.c (branch_prob): Use gimple_call_builtin_p
29266         to check for BUILT_IN_SETJMP_RECEIVER.
29267         * tree-inline.c (copy_bb): Call notice_special_calls.
29268
29269 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
29270
29271         PR bootstrap/59985
29272         * lra-constraints.c (process_alt_operands): Update reload_sum only
29273         on the first pass.
29274
29275 2014-01-31  Richard Henderson  <rth@redhat.com>
29276
29277         PR middle-end/60004
29278         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
29279         until after else_eh is processed.
29280
29281 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29282
29283         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
29284         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
29285         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
29286         in smmintrin.h, remove them.
29287         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
29288         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
29289         * config/i386/i386.md (ROUND_SAE): Fix value.
29290         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
29291         (const48_operand): New.
29292         * config/i386/subst.md (round), (round_expand): Use
29293         const_4_or_8_to_11_operand.
29294         (round_saeonly), (round_saeonly_expand): Use const48_operand.
29295
29296 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
29297
29298         * config/i386/constraints.md (Yk): Swap meaning with k.
29299         * config/i386/i386.md (movhi_internal): Change Yk to k.
29300         (movqi_internal): Ditto.
29301         (*k<logic><mode>): Ditto.
29302         (*andhi_1): Ditto.
29303         (*andqi_1): Ditto.
29304         (kandn<mode>): Ditto.
29305         (*<code>hi_1): Ditto.
29306         (*<code>qi_1): Ditto.
29307         (kxnor<mode>): Ditto.
29308         (kortestzhi): Ditto.
29309         (kortestchi): Ditto.
29310         (kunpckhi): Ditto.
29311         (*one_cmplhi2_1): Ditto.
29312         (*one_cmplqi2_1): Ditto.
29313         * config/i386/sse.md (): Change k to Yk.
29314         (avx512f_load<mode>_mask): Ditto.
29315         (avx512f_blendm<mode>): Ditto.
29316         (avx512f_store<mode>_mask): Ditto.
29317         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
29318         (avx512f_storedqu<mode>_mask): Ditto.
29319         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
29320         Ditto.
29321         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
29322         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
29323         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
29324         (avx512f_maskcmp<mode>3): Ditto.
29325         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
29326         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
29327         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
29328         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
29329         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
29330         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
29331         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
29332         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
29333         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
29334         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
29335         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
29336         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
29337         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
29338         (vec_extract_lo_<mode>_maskm): Ditto.
29339         (vec_extract_hi_<mode>_maskm): Ditto.
29340         (avx512f_vternlog<mode>_mask): Ditto.
29341         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
29342         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
29343         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
29344         (avx512f_<code>v8div16qi2_mask): Ditto.
29345         (avx512f_<code>v8div16qi2_mask_store): Ditto.
29346         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
29347         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
29348         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
29349         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
29350         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
29351         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29352         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
29353         (*avx512pf_scatterpf<mode>df_mask): Ditto.
29354         (avx512cd_maskb_vec_dupv8di): Ditto.
29355         (avx512cd_maskw_vec_dupv16si): Ditto.
29356         (avx512f_vpermi2var<mode>3_maskz): Ditto.
29357         (avx512f_vpermi2var<mode>3_mask): Ditto.
29358         (avx512f_vpermi2var<mode>3_mask): Ditto.
29359         (avx512f_vpermt2var<mode>3_maskz): Ditto.
29360         (*avx512f_gathersi<mode>): Ditto.
29361         (*avx512f_gathersi<mode>_2): Ditto.
29362         (*avx512f_gatherdi<mode>): Ditto.
29363         (*avx512f_gatherdi<mode>_2): Ditto.
29364         (*avx512f_scattersi<mode>): Ditto.
29365         (*avx512f_scatterdi<mode>): Ditto.
29366         (avx512f_compress<mode>_mask): Ditto.
29367         (avx512f_compressstore<mode>_mask): Ditto.
29368         (avx512f_expand<mode>_mask): Ditto.
29369         * config/i386/subst.md (mask): Change k to Yk.
29370         (mask_scalar_merge): Ditto.
29371         (sd): Ditto.
29372
29373 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
29374
29375         * doc/extend.texi (Vector Extensions): Document ?: in C++.
29376
29377 2014-01-31  Richard Biener  <rguenther@suse.de>
29378
29379         PR middle-end/59990
29380         * builtins.c (fold_builtin_memory_op): Make sure to not
29381         use a floating-point mode or a boolean or enumeral type for
29382         the copy operation.
29383
29384 2014-01-30  DJ Delorie  <dj@redhat.com>
29385
29386         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
29387         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
29388         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
29389         whenever main() has an epilogue.
29390
29391 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29392
29393         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
29394         unused variable "field".
29395         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
29396         (vsx_mergeh_<mode>): Likewise.
29397         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
29398         (altivec_vmrghh): Likewise.
29399         (altivec_vmrghw): Likewise.
29400         (altivec_vmrglb): Likewise.
29401         (altivec_vmrglh): Likewise.
29402         (altivec_vmrglw): Likewise.
29403         (altivec_vspltb): Add missing uses.
29404         (altivec_vsplth): Likewise.
29405         (altivec_vspltw): Likewise.
29406         (altivec_vspltsf): Likewise.
29407
29408 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29409
29410         PR target/59923
29411         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
29412         frame related instructions.
29413
29414 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29415
29416         PR rtl-optimization/59959
29417         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
29418         any reload of register whose subreg is invalid.
29419
29420 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
29421
29422         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
29423         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
29424         Add missing return type - void.
29425
29426 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29427
29428         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
29429         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
29430         remove element index adjustment for endian (now handled in vsx.md
29431         and altivec.md).
29432         (altivec_expand_vec_perm_const): Use
29433         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
29434         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
29435         (vsx_xxspltw_<mode>): Adjust element index for little endian.
29436         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
29437         define_expand and a new define_insn *altivec_vspltb_internal;
29438         adjust for -maltivec=be on a little endian target.
29439         (altivec_vspltb_direct): New.
29440         (altivec_vsplth): Divide into a define_expand and a new
29441         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
29442         little endian target.
29443         (altivec_vsplth_direct): New.
29444         (altivec_vspltw): Divide into a define_expand and a new
29445         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
29446         little endian target.
29447         (altivec_vspltw_direct): New.
29448         (altivec_vspltsf): Divide into a define_expand and a new
29449         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
29450         a little endian target.
29451
29452 2014-01-30  Richard Biener  <rguenther@suse.de>
29453
29454         PR tree-optimization/59993
29455         * tree-ssa-forwprop.c (associate_pointerplus): Check we
29456         can propagate form the earlier stmt and avoid the transform
29457         when the intermediate result is needed.
29458
29459 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
29460
29461         * README.Portability: Fix typo.
29462
29463 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
29464
29465         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
29466         comparison_operator with ordered_comparison_operator.
29467
29468 2014-01-30  Nick Clifton  <nickc@redhat.com>
29469
29470         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
29471         Rename to mn10300_store_multiple_regs.
29472         * config/mn10300/mn10300.c: Likewise.
29473         * config/mn10300/mn10300.md (store_movm): Fix typo: call
29474         store_multiple_regs.
29475         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
29476         Call mn10300_store_multiple_regs.
29477
29478 2014-01-30  Nick Clifton  <nickc@redhat.com>
29479             DJ Delorie  <dj@redhat.com>
29480
29481         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
29482         %fp 2 to keep registers after it properly word-aligned.
29483         (rl78_alloc_physical_registers_umul): Handle the case where both
29484         input operands are the same.
29485
29486 2014-01-30  Richard Biener  <rguenther@suse.de>
29487
29488         PR tree-optimization/59903
29489         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
29490         check properly.
29491
29492 2014-01-30  Jason Merrill  <jason@redhat.com>
29493
29494         PR c++/59633
29495         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
29496
29497         PR c++/59645
29498         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
29499
29500 2014-01-30  Richard Biener  <rguenther@suse.de>
29501
29502         PR tree-optimization/59951
29503         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
29504
29505 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
29506
29507         PR target/59784
29508         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
29509         SFmode to DFmode case.
29510
29511 2014-01-29  DJ Delorie  <dj@redhat.com>
29512
29513         * config/msp430/msp430.opt (-minrt): New.
29514         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
29515         if -minrt given.
29516         (ENDFILE_SPEC): Likewise.
29517
29518 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
29519
29520         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
29521         (estimate_function_body_sizes): Use it.
29522
29523 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
29524
29525         PR c++/58561
29526         * dwarf2out.c (is_cxx_auto): New.
29527         (is_base_type): Use it.
29528         (gen_type_die_with_usage): Likewise.
29529
29530 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29531
29532         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
29533         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
29534         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
29535         -maltivec=be with LE targets.
29536         (vsx_mergeh_<mode>): Likewise.
29537         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
29538         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
29539         (altivec_vmrghb): Replace with define_expand and new
29540         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
29541         (altivec_vmrghb_direct): New define_insn.
29542         (altivec_vmrghh): Replace with define_expand and new
29543         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
29544         (altivec_vmrghh_direct): New define_insn.
29545         (altivec_vmrghw): Replace with define_expand and new
29546         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
29547         (altivec_vmrghw_direct): New define_insn.
29548         (*altivec_vmrghsf): Adjust for endianness.
29549         (altivec_vmrglb): Replace with define_expand and new
29550         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
29551         (altivec_vmrglb_direct): New define_insn.
29552         (altivec_vmrglh): Replace with define_expand and new
29553         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
29554         (altivec_vmrglh_direct): New define_insn.
29555         (altivec_vmrglw): Replace with define_expand and new
29556         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
29557         (altivec_vmrglw_direct): New define_insn.
29558         (*altivec_vmrglsf): Adjust for endianness.
29559         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29560         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29561         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
29562         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
29563         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29564         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29565         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
29566         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
29567
29568 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29569
29570         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
29571         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
29572         whitespace.
29573
29574 2014-01-29  Richard Biener  <rguenther@suse.de>
29575
29576         PR tree-optimization/58742
29577         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
29578         associate_pointerplus_align.
29579         (associate_pointerplus_diff): New function.
29580         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
29581         and associate_pointerplus_diff.
29582
29583 2014-01-29  Richard Biener  <rguenther@suse.de>
29584
29585         * lto-streamer.h (LTO_major_version): Bump to 3.
29586         (LTO_minor_version): Reset to 0.
29587
29588 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
29589
29590         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
29591         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
29592         (arm_file_start): Generate correct asm header for armv7ve.
29593         * config/arm/bpabi.h: Add multilib support for armv7ve.
29594         * config/arm/driver-arm.c: Change the architectures of cortex-a7
29595         and cortex-a15 to armv7ve.
29596         * config/arm/t-aprofile: Add multilib support for armv7ve.
29597         * doc/invoke.texi: Document -march=armv7ve.
29598
29599 2014-01-29  Richard Biener  <rguenther@suse.de>
29600
29601         PR tree-optimization/58742
29602         * tree-ssa-forwprop.c (associate_plusminus): Return true
29603         if we changed sth, defer EH cleanup to ...
29604         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
29605         (simplify_mult): New function.
29606
29607 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29608
29609         PR middle-end/59917
29610         PR tree-optimization/59920
29611         * tree.c (build_common_builtin_nodes): Remove
29612         __builtin_setjmp_dispatcher initialization.
29613         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
29614         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
29615         instead of gsi_after_labels + manually skipping debug stmts.
29616         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
29617         ignore bbs with IFN_ABNORMAL_DISPATCHER.
29618         * tree-inline.c (copy_edges_for_bb): Remove
29619         can_make_abnormal_goto argument, instead add abnormal_goto_dest
29620         argument.  Ignore computed_goto_p stmts.  Don't call
29621         make_abnormal_goto_edges.  If a call might need abnormal edges
29622         for non-local gotos, see if it already has an edge to
29623         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
29624         with true argument, don't do anything then, otherwise add
29625         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
29626         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
29627         caller.
29628         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
29629         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
29630         (lower_stmt): Don't set data->calls_builtin_setjmp.
29631         (lower_builtin_setjmp): Adjust comment.
29632         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
29633         * tree-cfg.c (found_computed_goto): Remove.
29634         (factor_computed_gotos): Remove.
29635         (make_goto_expr_edges): Return bool, true for computed gotos.
29636         Don't call make_abnormal_goto_edges.
29637         (build_gimple_cfg): Don't set found_computed_goto, don't call
29638         factor_computed_gotos.
29639         (computed_goto_p): No longer static.
29640         (make_blocks): Don't set found_computed_goto.
29641         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
29642         (make_edges): If make_goto_expr_edges returns true, push bb
29643         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
29644         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
29645         vector.  Record mapping between bbs and OpenMP regions if there
29646         are any, adjust make_gimple_omp_edges caller.  Call
29647         handle_abnormal_edges.
29648         (make_abnormal_goto_edges): Remove.
29649         * tree-cfg.h (make_abnormal_goto_edges): Remove.
29650         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
29651         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
29652         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
29653         * internal-fn.def (ABNORMAL_DISPATCHER): New.
29654         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
29655         filling *region also set *region_idx to (*region)->entry->index.
29656
29657         PR other/58712
29658         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
29659         For REGs set ORIGINAL_REGNO.
29660
29661 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
29662
29663         * doc/md.texi: Mention that a target shouldn't implement
29664         vec_widen_(s|u)mul_even/odd pair if it is less efficient
29665         than hi/lo pair.
29666
29667 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
29668
29669         PR tree-optimization/59594
29670         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
29671         a copy of the datarefs vector rather than the vector itself.
29672
29673 2014-01-28  Jason Merrill  <jason@redhat.com>
29674
29675         PR c++/53756
29676         * dwarf2out.c (auto_die): New static.
29677         (gen_type_die_with_usage): Handle C++1y 'auto'.
29678         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
29679         on definition.
29680
29681 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
29682
29683         PR target/59672
29684         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
29685         (SPEC_X32): Likewise.
29686         (SPEC_64): Likewise.
29687         * config/i386/i386.c (ix86_option_override_internal): Turn off
29688         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
29689         for TARGET_16BIT.
29690         (x86_file_start): Output .code16gcc for TARGET_16BIT.
29691         * config/i386/i386.h (TARGET_16BIT): New macro.
29692         (TARGET_16BIT_P): Likewise.
29693         * config/i386/i386.opt: Add m16.
29694         * doc/invoke.texi: Document -m16.
29695
29696 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
29697
29698         PR preprocessor/59935
29699         * input.c (location_get_source_line): Bail out on when line number
29700         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
29701
29702 2014-01-28  Richard Biener  <rguenther@suse.de>
29703
29704         PR tree-optimization/58742
29705         * tree-ssa-forwprop.c (associate_plusminus): Handle
29706         pointer subtraction of the form (T)(P + A) - (T)P.
29707
29708 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29709
29710         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
29711         at const_int_cost.
29712
29713 2014-01-28  Richard Biener  <rguenther@suse.de>
29714
29715         Revert
29716         2014-01-28  Richard Biener  <rguenther@suse.de>
29717
29718         PR rtl-optimization/45364
29719         PR rtl-optimization/59890
29720         * var-tracking.c (local_get_addr_clear_given_value): Handle
29721         already cleared slot.
29722         (val_reset): Handle not allocated local_get_addr_cache.
29723         (vt_find_locations): Use post-order on the inverted CFG.
29724
29725 2014-01-28  Richard Biener  <rguenther@suse.de>
29726
29727         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
29728
29729 2014-01-28  Richard Biener  <rguenther@suse.de>
29730
29731         PR rtl-optimization/45364
29732         PR rtl-optimization/59890
29733         * var-tracking.c (local_get_addr_clear_given_value): Handle
29734         already cleared slot.
29735         (val_reset): Handle not allocated local_get_addr_cache.
29736         (vt_find_locations): Use post-order on the inverted CFG.
29737
29738 2014-01-28  Alan Modra  <amodra@gmail.com>
29739
29740         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
29741         * configure.ac <recursive call for build != host>: Define
29742         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
29743         and LD_FOR_BUILD too.
29744         * configure: Regenerate.
29745
29746 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
29747
29748         * config/i386/i386.c (get_builtin_code_for_version): Separate
29749         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
29750         Broadwell from Haswell.
29751
29752 2014-01-27  Steve Ellcey  <sellcey@mips.com>
29753
29754         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
29755         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
29756         * config/mips/mips.c (mips_option_override): Change setting
29757         of TARGET_DSP.
29758         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
29759         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
29760         Change from Mask to Var.
29761
29762 2014-01-27  Jeff Law  <law@redhat.com>
29763
29764         * ipa-inline.c (inline_small_functions): Fix typo.
29765
29766 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
29767
29768         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
29769         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
29770         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
29771         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
29772         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
29773         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
29774         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
29775         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
29776         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
29777         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
29778         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
29779         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
29780         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
29781         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
29782         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
29783         (_mm512_storeu_epi64): Ditto.
29784         (_mm512_cmpge_epi32_mask): Ditto.
29785         (_mm512_cmpge_epu32_mask): Ditto.
29786         (_mm512_cmpge_epi64_mask): Ditto.
29787         (_mm512_cmpge_epu64_mask): Ditto.
29788         (_mm512_cmple_epi32_mask): Ditto.
29789         (_mm512_cmple_epu32_mask): Ditto.
29790         (_mm512_cmple_epi64_mask): Ditto.
29791         (_mm512_cmple_epu64_mask): Ditto.
29792         (_mm512_cmplt_epi32_mask): Ditto.
29793         (_mm512_cmplt_epu32_mask): Ditto.
29794         (_mm512_cmplt_epi64_mask): Ditto.
29795         (_mm512_cmplt_epu64_mask): Ditto.
29796         (_mm512_cmpneq_epi32_mask): Ditto.
29797         (_mm512_cmpneq_epu32_mask): Ditto.
29798         (_mm512_cmpneq_epi64_mask): Ditto.
29799         (_mm512_cmpneq_epu64_mask): Ditto.
29800         (_mm512_expand_pd): Ditto.
29801         (_mm512_expand_ps): Ditto.
29802         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
29803         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
29804         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
29805         * config/i386/i386.c (ix86_builtins): Add
29806         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
29807         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
29808         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
29809         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
29810         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
29811         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
29812         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
29813         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
29814         IX86_BUILTIN_PMOVUSQW512_MEM.
29815         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
29816         __builtin_ia32_pmovsqd512mem_mask,
29817         __builtin_ia32_pmovqd512mem_mask,
29818         __builtin_ia32_pmovusqw512mem_mask,
29819         __builtin_ia32_pmovsqw512mem_mask,
29820         __builtin_ia32_pmovqw512mem_mask,
29821         __builtin_ia32_pmovusdw512mem_mask,
29822         __builtin_ia32_pmovsdw512mem_mask,
29823         __builtin_ia32_pmovdw512mem_mask,
29824         __builtin_ia32_pmovqb512mem_mask,
29825         __builtin_ia32_pmovusqb512mem_mask,
29826         __builtin_ia32_pmovsqb512mem_mask,
29827         __builtin_ia32_pmovusdb512mem_mask,
29828         __builtin_ia32_pmovsdb512mem_mask,
29829         __builtin_ia32_pmovdb512mem_mask.
29830         (bdesc_args): Add __builtin_ia32_expanddf512,
29831         __builtin_ia32_expandsf512.
29832         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
29833         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
29834         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
29835         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
29836         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
29837         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
29838         (avx512f_<code>v8div16qi2_mask_store): This.
29839         (avx512f_expand<mode>): New.
29840
29841 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
29842
29843         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
29844         New.
29845         (_mm512_mask_prefetch_i64gather_pd): Ditto.
29846         (_mm512_prefetch_i32scatter_pd): Ditto.
29847         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
29848         (_mm512_prefetch_i64scatter_pd): Ditto.
29849         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
29850         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
29851         (_mm512_mask_prefetch_i64gather_ps): Ditto.
29852         (_mm512_prefetch_i32scatter_ps): Ditto.
29853         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
29854         (_mm512_prefetch_i64scatter_ps): Ditto.
29855         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
29856         * config/i386/i386-builtin-types.def: Define
29857         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
29858         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
29859         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
29860         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
29861         IX86_BUILTIN_SCATTERPFQPD.
29862         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
29863         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
29864         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
29865         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
29866         __builtin_ia32_scatterpfqps.
29867         (ix86_expand_builtin): Expand new built-ins.
29868         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
29869         fix memory access data type.
29870         (*avx512pf_gatherpf<mode>_mask): Ditto.
29871         (*avx512pf_gatherpf<mode>): Ditto.
29872         (avx512pf_scatterpf<mode>): Ditto.
29873         (*avx512pf_scatterpf<mode>_mask): Ditto.
29874         (*avx512pf_scatterpf<mode>): Ditto.
29875         (GATHER_SCATTER_SF_MEM_MODE): New.
29876         (avx512pf_gatherpf<mode>df): Ditto.
29877         (*avx512pf_gatherpf<mode>df_mask): Ditto.
29878         (*avx512pf_scatterpf<mode>df): Ditto.
29879
29880 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
29881
29882         PR bootstrap/59934
29883         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
29884         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
29885         reached.
29886
29887 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29888
29889         * common/config/arm/arm-common.c
29890         (arm_rewrite_mcpu): Handle multiple names.
29891         * config/arm/arm.h
29892         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
29893
29894 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
29895
29896         * gimple-builder.h (create_gimple_tmp): Delete.
29897
29898 2014-01-27  Christian Bruel  <christian.bruel@st.com>
29899
29900         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
29901         words comparisons.
29902
29903 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
29904
29905         * config/pa/pa.md (call): Generate indirect long calls to non-local
29906         functions when outputing 32-bit code.
29907         (call_value): Likewise except for special call to buggy powf function.
29908
29909         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
29910         portable runtime and PIC indirect calls.
29911         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
29912         and PIC call sequences.  Use ldo instead of blr to set return register
29913         in PIC call sequence.
29914
29915 2014-01-25  Walter Lee  <walt@tilera.com>
29916
29917         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
29918         avoid clobbering a live register.
29919
29920 2014-01-25  Walter Lee  <walt@tilera.com>
29921
29922         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
29923         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
29924         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
29925         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
29926
29927 2014-01-25  Walter Lee  <walt@tilera.com>
29928
29929         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
29930         arguments on even registers.
29931         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
29932         STACK_BOUNDARY.
29933         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
29934         (BIGGEST_ALIGNMENT): Ditto.
29935         (BIGGEST_FIELD_ALIGNMENT): Ditto.
29936
29937 2014-01-25  Walter Lee  <walt@tilera.com>
29938
29939         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
29940         insns before bundling.
29941         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
29942
29943 2014-01-25  Walter Lee  <walt@tilera.com>
29944
29945         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
29946         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
29947         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
29948
29949 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29950
29951         * config/mips/constraints.md (kl): Delete.
29952         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
29953         define expands, using...
29954         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
29955         instructions for MIPS16.
29956         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
29957         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
29958
29959 2014-01-25  Walter Lee  <walt@tilera.com>
29960
29961         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
29962         (clzdi2): Ditto.
29963         (ffsdi2): Ditto.
29964
29965 2014-01-25  Walter Lee  <walt@tilera.com>
29966
29967         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
29968         (TARGET_EXPAND_TO_RTL_HOOK): Define.
29969
29970 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
29971
29972         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
29973         Handle XOR.
29974
29975 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
29976
29977         * print-rtl.c (in_call_function_usage): New var.
29978         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
29979         EXPR_LIST mode as mode and not as reg note name.
29980
29981         PR middle-end/59561
29982         * cfgloopmanip.c (copy_loop_info): If
29983         loop->warned_aggressive_loop_optimizations, make sure
29984         the flag is set in target loop too.
29985
29986 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
29987
29988         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
29989         flag_cilkplus.
29990         * builtins.def: Likewise.
29991         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
29992         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
29993         * ira.c (ira_setup_eliminable_regset): Likewise.
29994         * omp-low.c (gate_expand_omp): Likewise.
29995         (execute_lower_omp): Likewise.
29996         (diagnose_sb_0): Likewise.
29997         (gate_diagnose_omp_blocks): Likewise.
29998         (simd_clone_clauses_extract): Likewise.
29999         (gate): Likewise.
30000
30001 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30002
30003         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
30004         correction for little endian...
30005         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
30006         here.
30007
30008 2014-01-24  Jeff Law  <law@redhat.com>
30009
30010         PR tree-optimization/59919
30011         * tree-vrp.c (find_assert_locations_1): Do not register asserts
30012         for non-returning calls.
30013
30014 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
30015
30016         * common/config/aarch64/aarch64-common.c
30017         (aarch64_rewrite_mcpu): Handle multiple names.
30018         * config/aarch64/aarch64.h
30019         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
30020
30021 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
30022
30023         * input.c (add_file_to_cache_tab): Handle the case where fopen
30024         returns NULL.
30025
30026 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
30027
30028         PR target/59929
30029         * config/i386/i386.md (pushsf splitter): Get stack adjustment
30030         from push operand if code of push isn't PRE_DEC.
30031
30032 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
30033
30034         PR target/59909
30035         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
30036         -mquad-memory-atomic.  Update -mquad-memory documentation to say
30037         it is only used for non-atomic loads/stores.
30038
30039         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
30040         -mquad-memory or -mquad-memory-atomic switches.
30041
30042         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
30043         -mquad-memory-atomic to ISA 2.07 support.
30044
30045         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
30046         to separate support of normal quad word memory operations (ldq, stq)
30047         from the atomic quad word memory operations.
30048
30049         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
30050         support to separate non-atomic quad word operations from atomic
30051         quad word operations.  Disable non-atomic quad word operations in
30052         little endian mode so that we don't have to swap words after the
30053         load and before the store.
30054         (quad_load_store_p): Add comment about atomic quad word support.
30055         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
30056         options printed with -mdebug=reg.
30057
30058         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
30059         -mquad-memory-atomic as the test for whether we have quad word
30060         atomic instructions.
30061         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
30062         or -mp8-vector are used, allow byte/half-word atomic operations.
30063
30064         * config/rs6000/sync.md (load_lockedti): Insure that the address
30065         is a proper indexed or indirect address for the lqarx instruction.
30066         On little endian systems, swap the hi/lo registers after the lqarx
30067         instruction.
30068         (load_lockedpti): Use indexed_or_indirect_operand predicate to
30069         insure the address is valid for the lqarx instruction.
30070         (store_conditionalti): Insure that the address is a proper indexed
30071         or indirect address for the stqcrx. instruction.  On little endian
30072         systems, swap the hi/lo registers before doing the stqcrx.
30073         instruction.
30074         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
30075         insure the address is valid for the stqcrx. instruction.
30076
30077         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
30078         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
30079         type of quad memory support is available.
30080
30081 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
30082
30083         PR regression/59915
30084         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
30085         there is a danger of looping.
30086
30087 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
30088
30089         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
30090         force flag_ira_loop_pressure if set via command line.
30091
30092 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
30093
30094         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
30095         (ashr_simd): New builtin handling DI mode.
30096         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
30097         (aarch64_sshr_simddi): New match pattern.
30098         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
30099         (vshrd_n_s64): Likewise.
30100         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
30101
30102 2014-01-23  Nick Clifton  <nickc@redhat.com>
30103
30104         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
30105         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
30106         favour of mcu specific scripts.
30107         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
30108         430x multilibs.
30109
30110 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
30111             Alex Velenko  <Alex.Velenko@arm.com>
30112
30113         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
30114         (vaddv_s16): Likewise.
30115         (vaddv_s32): Likewise.
30116         (vaddv_u8): Likewise.
30117         (vaddv_u16): Likewise.
30118         (vaddv_u32): Likewise.
30119         (vaddvq_s8): Likewise.
30120         (vaddvq_s16): Likewise.
30121         (vaddvq_s32): Likewise.
30122         (vaddvq_s64): Likewise.
30123         (vaddvq_u8): Likewise.
30124         (vaddvq_u16): Likewise.
30125         (vaddvq_u32): Likewise.
30126         (vaddvq_u64): Likewise.
30127         (vaddv_f32): Likewise.
30128         (vaddvq_f32): Likewise.
30129         (vaddvq_f64): Likewise.
30130         (vmaxv_f32): Likewise.
30131         (vmaxv_s8): Likewise.
30132         (vmaxv_s16): Likewise.
30133         (vmaxv_s32): Likewise.
30134         (vmaxv_u8): Likewise.
30135         (vmaxv_u16): Likewise.
30136         (vmaxv_u32): Likewise.
30137         (vmaxvq_f32): Likewise.
30138         (vmaxvq_f64): Likewise.
30139         (vmaxvq_s8): Likewise.
30140         (vmaxvq_s16): Likewise.
30141         (vmaxvq_s32): Likewise.
30142         (vmaxvq_u8): Likewise.
30143         (vmaxvq_u16): Likewise.
30144         (vmaxvq_u32): Likewise.
30145         (vmaxnmv_f32): Likewise.
30146         (vmaxnmvq_f32): Likewise.
30147         (vmaxnmvq_f64): Likewise.
30148         (vminv_f32): Likewise.
30149         (vminv_s8): Likewise.
30150         (vminv_s16): Likewise.
30151         (vminv_s32): Likewise.
30152         (vminv_u8): Likewise.
30153         (vminv_u16): Likewise.
30154         (vminv_u32): Likewise.
30155         (vminvq_f32): Likewise.
30156         (vminvq_f64): Likewise.
30157         (vminvq_s8): Likewise.
30158         (vminvq_s16): Likewise.
30159         (vminvq_s32): Likewise.
30160         (vminvq_u8): Likewise.
30161         (vminvq_u16): Likewise.
30162         (vminvq_u32): Likewise.
30163         (vminnmv_f32): Likewise.
30164         (vminnmvq_f32): Likewise.
30165         (vminnmvq_f64): Likewise.
30166
30167 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
30168
30169         * config/aarch64/aarch64-simd.md
30170         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
30171         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
30172         (*aarch64_mul3_elt<mode>): Likewise.
30173         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
30174         (*aarch64_mul3_elt_to_64v2df): Likewise.
30175         (*aarch64_mla_elt<mode>): Likewise.
30176         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
30177         (*aarch64_mls_elt<mode>): Likewise.
30178         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
30179         (*aarch64_fma4_elt<mode>): Likewise.
30180         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
30181         (*aarch64_fma4_elt_to_64v2df): Likewise.
30182         (*aarch64_fnma4_elt<mode>): Likewise.
30183         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
30184         (*aarch64_fnma4_elt_to_64v2df): Likewise.
30185         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
30186         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
30187         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
30188         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
30189         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
30190         (aarch64_sqdmull_lane<mode>_internal): Likewise.
30191         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
30192
30193 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
30194
30195         * config/aarch64/aarch64-simd.md
30196         (aarch64_be_checked_get_lane<mode>): New define_expand.
30197         * config/aarch64/aarch64-simd-builtins.def
30198         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
30199         New builtin definition.
30200         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
30201         Use new safe be builtin.
30202
30203 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
30204
30205         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
30206         New define_insn.
30207         (aarch64_be_st1<mode>): Likewise.
30208         (aarch_ld1<VALL:mode>): Define_expand modified.
30209         (aarch_st1<VALL:mode>): Likewise.
30210         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
30211         (UNSPEC_ST1): Likewise.
30212
30213 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
30214
30215         * config/microblaze/microblaze.md: Add trap insn and attribute
30216
30217 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
30218
30219         PR preprocessor/58580
30220         * input.h (location_get_source_line): Take an additional line_size
30221         parameter.
30222         (void diagnostics_file_cache_fini): Declare new function.
30223         * input.c (struct fcache): New type.
30224         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
30225         New static constants.
30226         (diagnostic_file_cache_init, total_lines_num)
30227         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
30228         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
30229         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
30230         (get_next_line, read_next_line, goto_next_line, read_line_num):
30231         New static function definitions.
30232         (diagnostic_file_cache_fini): New function.
30233         (location_get_source_line): Take an additional output line_len
30234         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
30235         read_line_num.
30236         * diagnostic.c (diagnostic_finish): Call
30237         diagnostic_file_cache_fini.
30238         (adjust_line): Take an additional input parameter for the length
30239         of the line, rather than calculating it with strlen.
30240         (diagnostic_show_locus): Adjust the use of
30241         location_get_source_line and adjust_line with respect to their new
30242         signature.  While displaying a line now, do not stop at the first
30243         null byte.  Rather, display the zero byte as a space and keep
30244         going until we reach the size of the line.
30245         * Makefile.in: Add vec.o to OBJS-libcommon
30246
30247 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30248             Ilya Tocar  <ilya.tocar@intel.com>
30249
30250         * config/i386/avx512fintrin.h (_mm512_kmov): New.
30251         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
30252         (__builtin_ia32_kmov16): Ditto.
30253         * config/i386/i386.md (UNSPEC_KMOV): New.
30254         (kmovw): Ditto.
30255
30256 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
30257
30258         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
30259         (_mm512_storeu_si512): Ditto.
30260
30261 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
30262
30263         PR target/52125
30264         * rtl.h (get_referenced_operands): Declare.
30265         * recog.c (get_referenced_operands): New function.
30266         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
30267         operands have been referenced when recording LO_SUM references.
30268
30269 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
30270
30271         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
30272
30273 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30274
30275         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
30276         Enable for generic and recent AMD targets.
30277
30278 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
30279
30280         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
30281         ARG_SIZE note when adjustment was eliminated.
30282
30283 2014-01-22  Jeff Law  <law@redhat.com>
30284
30285         PR tree-optimization/59597
30286         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
30287         in file.  Accept new argument REGISTERING and use it to modify
30288         dump output appropriately.
30289         (register_jump_thread): Corresponding changes.
30290         (mark_threaded_blocks): Reinstate code to cancel unprofitable
30291         thread paths involving joiner blocks.  Add code to dump cancelled
30292         jump threading paths.
30293
30294 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
30295
30296         PR rtl-optimization/59477
30297         * lra-constraints.c (inherit_in_ebb): Process call for living hard
30298         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
30299
30300 2014-01-22  Tom Tromey  <tromey@redhat.com>
30301
30302         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
30303         PARAMS.
30304         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
30305
30306 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30307
30308         PR rtl-optimization/59896
30309         * lra-constraints.c (process_alt_operands): Check unused note for
30310         matched operands of insn with no output reloads.
30311
30312 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
30313
30314         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
30315         (mips_move_from_gpr_cost): Likewise.
30316
30317 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
30318
30319         PR rtl-optimization/59858
30320         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
30321         ira_class_hard_regs_num.
30322         (process_alt_operands): Increase reject for dying matched operand.
30323
30324 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
30325
30326         PR target/59003
30327         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
30328         smaller than size, perform several stores or loads and stores
30329         at dst + count - size to store or copy all of size bytes, rather
30330         than just last modesize bytes.
30331
30332 2014-01-20  DJ Delorie  <dj@redhat.com>
30333
30334         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
30335         that CLOBBERs are REGs before propogating their values.
30336
30337 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
30338
30339         PR middle-end/59789
30340         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
30341         (cgraph_inline_failed_type): New function.
30342         * cgraph.h (DEFCIFCODE): Add type.
30343         (cgraph_inline_failed_type_t): New enum.
30344         (cgraph_inline_failed_type): New prototype.
30345         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
30346         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
30347         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
30348         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
30349         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
30350         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
30351         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
30352         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
30353         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
30354         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
30355         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
30356         OPTIMIZATION_MISMATCH.
30357         * tree-inline.c (expand_call_inline): Emit errors during
30358         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
30359
30360 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30361
30362         PR target/59685
30363         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
30364         mode attribute in insn output.
30365
30366 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30367
30368         * output.h (output_constant): Delete.
30369         * varasm.c (output_constant): Make private.
30370
30371 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
30372
30373         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
30374
30375 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30376
30377         PR middle-end/59860
30378         * tree.h (fold_builtin_strcat): New prototype.
30379         * builtins.c (fold_builtin_strcat): No longer static.  Add len
30380         argument, if non-NULL, don't call c_strlen.  Optimize
30381         directly into __builtin_memcpy instead of __builtin_strcpy.
30382         (fold_builtin_2): Adjust fold_builtin_strcat caller.
30383         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
30384
30385 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
30386
30387         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30388         for SImode_address_operand operands, having only a REG argument.
30389
30390 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30391
30392         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
30393         loader name using mbig-endian.
30394         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
30395
30396 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30397
30398         * doc/invoke.texi (-march): Clarify documentation for AArch64.
30399         (-mtune): Likewise.
30400         (-mcpu): Likewise.
30401
30402 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
30403
30404         * config/aarch64/aarch64-protos.h
30405         (aarch64_cannot_change_mode_class_ptr): Declare.
30406         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
30407         aarch64_cannot_change_mode_class_ptr): New.
30408         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
30409         backend hook aarch64_cannot_change_mode_class.
30410
30411 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
30412
30413         * common/config/aarch64/aarch64-common.c
30414         (aarch64_handle_option): Don't handle any option order logic here.
30415         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
30416         selected_cpu, warn on architecture version mismatch.
30417         (aarch64_override_options): Fix parsing order for option strings.
30418
30419 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30420             Iain Sandoe  <iain@codesourcery.com>
30421
30422         PR bootstrap/59496
30423         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
30424         warning.  Amend comment to reflect current functionality.
30425
30426 2014-01-20  Richard Biener  <rguenther@suse.de>
30427
30428         PR middle-end/59860
30429         * builtins.c (fold_builtin_strcat): Remove case better handled
30430         by tree-ssa-strlen.c.
30431
30432 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
30433
30434         * config/aarch64/aarch64.opt
30435         (mcpu, march, mtune): Make case-insensitive.
30436
30437 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
30438
30439         PR target/59880
30440         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
30441         if operands[1] is a REG or ZERO_EXTEND of a REG.
30442
30443 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
30444
30445         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
30446
30447 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
30448
30449         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
30450         long non-pic millicode calls.
30451
30452 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30453
30454         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
30455
30456 2014-01-19  Kito Cheng  <kito@0xlab.org>
30457
30458         * builtins.c (expand_movstr): Check movstr expand done or fail.
30459
30460 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30461             H.J. Lu  <hongjiu.lu@intel.com>
30462
30463         PR target/59379
30464         * config/i386/i386.md (*lea<mode>): Zero-extend return register
30465         to DImode for zero-extended addresses.
30466
30467 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
30468
30469         PR rtl-optimization/57763
30470         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
30471         on the new indirect jump_insn and increment LABEL_NUSES (label).
30472
30473 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
30474
30475         PR bootstrap/59580
30476         PR bootstrap/59583
30477         * config.gcc (x86_archs): New variable.
30478         (x86_64_archs): Likewise.
30479         (x86_cpus): Likewise.
30480         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
30481         --with-arch/--with-cpu= options.
30482         Support --with-arch=/--with-cpu={nehalem,westmere,
30483         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
30484
30485 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30486
30487         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
30488         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
30489
30490 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
30491
30492         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
30493
30494 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
30495
30496         PR target/58944
30497         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
30498         clear cpp_get_options (parse_in)->warn_unused_macros for
30499         ix86_target_macros_internal with cpp_define.
30500
30501 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
30502
30503         * jump.c (delete_related_insns): Keep (use (insn))s.
30504         * reorg.c (redundant_insn): Check for barriers too.
30505
30506 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30507
30508         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
30509
30510 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
30511
30512         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
30513         call to $$dyncall when TARGET_LONG_CALLS is true.
30514
30515 2014-01-17  Jeff Law  <law@redhat.com>
30516
30517         * ree.c (combine_set_extension): Temporarily disable test for
30518         changing number of hard registers.
30519
30520 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30521
30522         PR middle-end/58125
30523         * ipa-inline-analysis.c (inline_free_summary):
30524         Do not free summary of aliases.
30525
30526 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30527
30528         PR middle-end/59706
30529         * gimplify.c (gimplify_expr): Use create_tmp_var
30530         instead of create_tmp_var_raw.  If cond doesn't have
30531         integral type, don't add the IFN_ANNOTATE builtin at all.
30532
30533 2014-01-17  Martin Jambor  <mjambor@suse.cz>
30534
30535         PR ipa/59736
30536         * ipa-cp.c (prev_edge_clone): New variable.
30537         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
30538         Also resize prev_edge_clone vector.
30539         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
30540         (ipcp_edge_removal_hook): New function.
30541         (ipcp_driver): Register ipcp_edge_removal_hook.
30542
30543 2014-01-17  Andrew Pinski  <apinski@cavium.com>
30544             Steve Ellcey  <sellcey@mips.com>
30545
30546         PR target/59462
30547         * config/mips/mips.c (mips_print_operand): Check operand mode instead
30548         of operator mode.
30549
30550 2014-01-17  Jeff Law  <law@redhat.com>
30551
30552         PR middle-end/57904
30553         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
30554         so that pass_ccp runs first.
30555
30556 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30557
30558         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
30559         (ix86_adjust_cost): Use !TARGET_XXX.
30560         (do_reorder_for_imul): Likewise.
30561         (swap_top_of_ready_list): Likewise.
30562         (ix86_sched_reorder): Likewise.
30563
30564 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
30565
30566         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
30567         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
30568         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
30569         (intel_memset): New.  Duplicate slm_memset.
30570         (intel_cost): New.  Duplicate slm_cost.
30571         (m_INTEL): New macro.
30572         (processor_target_table): Add "intel".
30573         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
30574         with PROCESSOR_INTEL for "intel".
30575         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
30576         PROCESSOR_SILVERMONT.
30577         (ix86_issue_rate): Likewise.
30578         (ix86_adjust_cost): Likewise.
30579         (ia32_multipass_dfa_lookahead): Likewise.
30580         (swap_top_of_ready_list): Likewise.
30581         (ix86_sched_reorder): Likewise.
30582         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
30583         instead of TARGET_OPT_AGU.
30584         * config/i386/i386.h (TARGET_INTEL): New.
30585         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
30586         (processor_type): Add PROCESSOR_INTEL.
30587         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
30588         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
30589
30590 2014-01-17  Marek Polacek  <polacek@redhat.com>
30591
30592         PR c/58346
30593         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
30594         size is zero.
30595
30596 2014-01-17  Richard Biener  <rguenther@suse.de>
30597
30598         PR tree-optimization/46590
30599         * opts.c (default_options_table): Add entries for
30600         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
30601         all enabled at -O1 but not for -Og.
30602         * common.opt (fbranch-count-reg): Remove Init(1).
30603         (fmove-loop-invariants): Likewise.
30604         (ftree-pta): Likewise.
30605
30606 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
30607
30608         * config/i386/i386.c (ix86_data_alignment): For compatibility with
30609         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
30610         decls to at least the GCC 4.8 used alignments.
30611
30612         PR fortran/59440
30613         * tree-nested.c (convert_nonlocal_reference_stmt,
30614         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
30615         of GIMPLE_BIND stmts, adjust associated decls.
30616
30617 2014-01-17  Richard Biener  <rguenther@suse.de>
30618
30619         PR tree-optimization/46590
30620         * vec.h (vec<>::bseach): New member function implementing
30621         binary search according to C89 bsearch.
30622         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
30623         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
30624         bitmap pointer again.  Make accesses_in_loop a flat array.
30625         (mem_ref_obstack): New global.
30626         (outermost_indep_loop): Adjust for mem_ref->stored changes.
30627         (mark_ref_stored): Likewise.
30628         (ref_indep_loop_p_2): Likewise.
30629         (set_ref_stored_in_loop): New helper function.
30630         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
30631         (memref_free): Adjust.
30632         (record_mem_ref_loc): Simplify.
30633         (gather_mem_refs_stmt): Adjust.
30634         (sort_locs_in_loop_postorder_cmp): New function.
30635         (analyze_memory_references): Sort accesses_in_loop after
30636         loop postorder number.
30637         (find_ref_loc_in_loop_cmp): New function.
30638         (for_all_locs_in_loop): Find relevant cluster of locs in
30639         accesses_in_loop and iterate without recursion.
30640         (execute_sm): Avoid uninit warning.
30641         (struct ref_always_accessed): Simplify.
30642         (ref_always_accessed::operator ()): Likewise.
30643         (ref_always_accessed_p): Likewise.
30644         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
30645         loop postorder numbers here.
30646         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
30647         numbers.
30648
30649 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
30650
30651         PR c++/57945
30652         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
30653         on decls for which assemble_alias has been called.
30654
30655 2014-01-17  Nick Clifton  <nickc@redhat.com>
30656
30657         * config/msp430/msp430.opt: (mcpu): New option.
30658         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
30659         (msp430_option_override): Parse target_cpu.  If the MCU name
30660         matches a generic string, clear target_mcu.
30661         (msp430_attr): Allow numeric interrupt values up to 63.
30662         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
30663         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
30664         option.
30665         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
30666         Add mcpu matches.
30667         * config/msp430/msp430.md (popm): Use %J rather than %I.
30668         (addsi3): Use msp430_nonimmediate_operand for operand 2.
30669         (addhi_cy_i): Use immediate_operand for operand 2.
30670         * doc/invoke.texi: Document -mcpu option.
30671
30672 2014-01-17  Richard Biener  <rguenther@suse.de>
30673
30674         PR rtl-optimization/38518
30675         * df.h (df_analyze_loop): Declare.
30676         * df-core.c: Include cfgloop.h.
30677         (df_analyze_1): Split out main part of df_analyze.
30678         (df_analyze): Adjust.
30679         (loop_inverted_post_order_compute): New function.
30680         (loop_post_order_compute): Likewise.
30681         (df_analyze_loop): New function avoiding whole-function
30682         postorder computes.
30683         * loop-invariant.c (find_defs): Use df_analyze_loop.
30684         (find_invariants): Adjust.
30685         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
30686
30687 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
30688
30689         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
30690         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
30691
30692 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
30693
30694         * ipa-ref.c (ipa_remove_stmt_references): Fix references
30695         traversal when removing references.
30696
30697 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
30698
30699         PR ipa/59775
30700         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
30701
30702 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
30703
30704         PR middle-end/56791
30705         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
30706         pushing a reload for an autoinc when we had previously reloaded an
30707         inner part of the address.
30708
30709 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
30710
30711         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
30712         field.
30713         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
30714         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
30715         when not giving up or versioning for alias only because of
30716         loop->safelen.
30717         (vect_analyze_data_ref_dependences): Set to true.
30718         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
30719         is a GIMPLE_PHI.
30720         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
30721         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
30722         to the condition.
30723
30724         PR middle-end/58344
30725         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
30726
30727         PR target/59839
30728         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
30729         operand 0 predicate for gathers, use a new pseudo as subtarget.
30730
30731 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30732
30733         PR middle-end/59609
30734         * lra-constraints.c (process_alt_operands): Add printing debug info.
30735         Check absence of input/output reloads for matched operands too.
30736
30737 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
30738
30739         PR rtl-optimization/59835
30740         * ira.c (ira_init_register_move_cost): Increase cost for
30741         impossible modes.
30742
30743 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
30744
30745         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
30746
30747 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
30748
30749         PR target/59780
30750         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
30751         non-register objects.  Use gen_(high/low)part more consistently.
30752         Fix assertions.
30753
30754 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
30755
30756         PR target/59844
30757         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
30758         endian support, remove tests for WORDS_BIG_ENDIAN.
30759         (p8_mfvsrd_3_<mode>): Likewise.
30760         (reload_gpr_from_vsx<mode>): Likewise.
30761         (reload_gpr_from_vsxsf): Likewise.
30762         (p8_mfvsrd_4_disf): Likewise.
30763
30764 2014-01-16  Richard Biener  <rguenther@suse.de>
30765
30766         PR rtl-optimization/46590
30767         * lcm.c (compute_antinout_edge): Use postorder iteration.
30768         (compute_laterin): Use inverted postorder iteration.
30769
30770 2014-01-16  Nick Clifton  <nickc@redhat.com>
30771
30772         PR middle-end/28865
30773         * varasm.c (output_constant): Return the number of bytes actually
30774         emitted.
30775         (output_constructor_array_range): Update the field size with the
30776         number of bytes emitted by output_constant.
30777         (output_constructor_regular_field): Likewise.  Also do not
30778         complain if the total number of bytes emitted is now greater
30779         than the expected fieldpos.
30780         * output.h (output_constant): Update prototype and descriptive comment.
30781
30782 2014-01-16  Marek Polacek  <polacek@redhat.com>
30783
30784         PR middle-end/59827
30785         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
30786         it is error_mark_node.
30787
30788 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
30789
30790         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
30791         VALID_AVX256_REG_OR_OI_MODE.
30792
30793 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
30794
30795         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
30796         current procedure should be profiled.
30797
30798 2014-01-15  Andrew Pinski  <apinski@cavium.com>
30799
30800         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
30801         of moving from/to the STACK_REG register class.
30802
30803 2014-01-15  Richard Henderson  <rth@redhat.com>
30804
30805         PR debug/54694
30806         * reginfo.c (global_regs_decl): Globalize.
30807         * rtl.h (global_regs_decl): Declare.
30808         * ira.c (do_reload): Diagnose frame_pointer_needed and it
30809         reserved via global_regs.
30810
30811 2014-01-15  Teresa Johnson  <tejohnson@google.com>
30812
30813         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
30814
30815 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
30816
30817         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
30818         and vmulosh rather than call gen_vec_widen_smult_*.
30819         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
30820         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
30821         (vec_widen_smult_even_v16qi): Likewise.
30822         (vec_widen_umult_even_v8hi): Likewise.
30823         (vec_widen_smult_even_v8hi): Likewise.
30824         (vec_widen_umult_odd_v16qi): Likewise.
30825         (vec_widen_smult_odd_v16qi): Likewise.
30826         (vec_widen_umult_odd_v8hi): Likewise.
30827         (vec_widen_smult_odd_v8hi): Likewise.
30828         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
30829         vmuloub rather than call gen_vec_widen_umult_*.
30830         (vec_widen_umult_lo_v16qi): Likewise.
30831         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
30832         vmulosb rather than call gen_vec_widen_smult_*.
30833         (vec_widen_smult_lo_v16qi): Likewise.
30834         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
30835         rather than call gen_vec_widen_umult_*.
30836         (vec_widen_umult_lo_v8hi): Likewise.
30837         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
30838         rather than call gen_vec_widen_smult_*.
30839         (vec_widen_smult_lo_v8hi): Likewise.
30840
30841 2014-01-15  Jeff Law  <law@redhat.com>
30842
30843         PR tree-optimization/59747
30844         * ree.c (find_and_remove_re): Properly handle case where a second
30845         eliminated extension requires widening a copy created for elimination
30846         of a prior extension.
30847         (combine_set_extension): Ensure that the number of hard regs needed
30848         for a destination register does not change when we widen it.
30849
30850 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30851
30852         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
30853         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
30854         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
30855         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
30856         (avr-*-rtems*): Likewise.
30857         (bfin*-rtems*): Likewise.
30858         (moxie-*-rtems*): Likewise.
30859         (h8300-*-rtems*): Likewise.
30860         (i[34567]86-*-rtems*): Likewise.
30861         (lm32-*-rtems*): Likewise.
30862         (m32r-*-rtems*): Likewise.
30863         (m68k-*-rtems*): Likewise.
30864         (microblaze*-*-rtems*): Likewise.
30865         (mips*-*-rtems*): Likewise.
30866         (powerpc-*-rtems*): Likewise.
30867         (sh-*-rtems*): Likewise.
30868         (sparc-*-rtems*): Likewise.
30869         (sparc64-*-rtems*): Likewise.
30870         (v850-*-rtems*): Likewise.
30871         (m32c-*-rtems*): Likewise.
30872
30873 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
30874
30875         PR rtl-optimization/59511
30876         * ira.c (ira_init_register_move_cost): Use memory costs for some
30877         cases of register move cost calculations.
30878         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
30879         instead of BB frequency.
30880         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
30881         * lra-assigns.c (find_hard_regno_for): Ditto.
30882
30883 2014-01-15  Richard Biener  <rguenther@suse.de>
30884
30885         PR tree-optimization/59822
30886         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
30887         (vectorizable_load): Use it to hoist defs of uses of invariant
30888         loads out of the loop.
30889
30890 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
30891             Kugan Vivekanandarajah  <kuganv@linaro.org>
30892
30893         PR target/59695
30894         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
30895         truncation.
30896
30897 2014-01-15  Richard Biener  <rguenther@suse.de>
30898
30899         PR rtl-optimization/59802
30900         * lcm.c (compute_available): Use inverted postorder to seed
30901         the initial worklist.
30902
30903 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30904
30905         PR target/59803
30906         * config/s390/s390.c (s390_preferred_reload_class): Don't return
30907         ADDR_REGS for invalid symrefs in non-PIC code.
30908
30909 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
30910
30911         PR other/58712
30912         * builtins.c (determine_block_size): Initialize *probable_max_size
30913         even if len_rtx is CONST_INT.
30914
30915 2014-01-14  Andrew Pinski  <apinski@cavium.com>
30916
30917         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
30918         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
30919         (cortexa53_tunings): Likewise.
30920         (aarch64_sched_issue_rate): New function.
30921         (TARGET_SCHED_ISSUE_RATE): Define.
30922
30923 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30924
30925         * ira-costs.c (find_costs_and_classes): Add missed
30926         ira_init_register_move_cost_if_necessary.
30927
30928 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
30929
30930         PR target/59787
30931         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
30932
30933 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
30934
30935         PR target/59794
30936         * config/i386/i386.c (type_natural_mode): Add a bool parameter
30937         to indicate if type is used for function return value.  Warn ABI
30938         change if the vector mode isn't available for function return value.
30939         (ix86_function_arg_advance): Pass false to type_natural_mode.
30940         (ix86_function_arg): Likewise.
30941         (ix86_gimplify_va_arg): Likewise.
30942         (function_arg_32): Don't warn ABI change.
30943         (ix86_function_value): Pass true to type_natural_mode.
30944         (ix86_return_in_memory): Likewise.
30945         (ix86_struct_value_rtx): Removed.
30946         (TARGET_STRUCT_VALUE_RTX): Likewise.
30947
30948 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
30949
30950         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
30951         converting a conditional jump into a conditional return.
30952
30953 2014-01-14  Richard Biener  <rguenther@suse.de>
30954
30955         PR tree-optimization/58921
30956         PR tree-optimization/59006
30957         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
30958         hoisting invariant stmts.
30959         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
30960         invariant loads on the preheader edge if possible.
30961
30962 2014-01-14  Joey Ye  <joey.ye@arm.com>
30963
30964         * doc/plugin.texi (Building GCC plugins): Update to C++.
30965
30966 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
30967
30968         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
30969         (_mm_rcp28_round_ss): Ditto.
30970         (_mm_rsqrt28_round_sd): Ditto.
30971         (_mm_rsqrt28_round_ss): Ditto.
30972         (_mm_rcp28_sd): Ditto.
30973         (_mm_rcp28_ss): Ditto.
30974         (_mm_rsqrt28_sd): Ditto.
30975         (_mm_rsqrt28_ss): Ditto.
30976         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
30977         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
30978         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
30979         (IX86_BUILTIN_RCP28SD): Ditto.
30980         (IX86_BUILTIN_RCP28SS): Ditto.
30981         (IX86_BUILTIN_RSQRT28SD): Ditto.
30982         (IX86_BUILTIN_RSQRT28SS): Ditto.
30983         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
30984         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
30985         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
30986         (ix86_expand_special_args_builtin): Expand new FTYPE.
30987         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
30988         (srcp14<mode>): Make insn unary.
30989         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
30990         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
30991         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
30992         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
30993         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
30994         Fix rounding: make it SAE only.
30995         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
30996         Ditto.
30997         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30998         Ditto.
30999         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
31000         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
31001         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
31002         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
31003         (round_saeonly_mask_scalar_operand4): Ditto.
31004         (round_saeonly_mask_scalar_op3): Ditto.
31005         (round_saeonly_mask_scalar_op4): Ditto.
31006
31007 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31008
31009         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
31010         Implement -maltivec=be for vec_insert and vec_extract.
31011
31012 2014-01-10  DJ Delorie  <dj@redhat.com>
31013
31014         * config/msp430/msp430.md (call_internal): Don't allow memory
31015         references with SP as the base register.
31016         (call_value_internal): Likewise.
31017         * config/msp430/constraints.md (Yc): New.  For memory references
31018         that don't use SP as a base register.
31019
31020         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
31021         "an integer without a # prefix"
31022         * config/msp430/msp430.md (epilogue_helper): Use it.
31023
31024 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
31025
31026         PR target/59617
31027         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
31028         AVX512F gather builtins.
31029         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
31030         on gather decls with INTEGER_TYPE masktype.
31031         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
31032         directly into the builtin rather than hoisting it before loop.
31033
31034         PR tree-optimization/59387
31035         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
31036         (scev_const_prop): If folded_casts and type has undefined overflow,
31037         use force_gimple_operand instead of force_gimple_operand_gsi and
31038         for each added stmt if it is assign with
31039         arith_code_with_undefined_signed_overflow, call
31040         rewrite_to_defined_overflow.
31041         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
31042         gimple-fold.h instead.
31043         (arith_code_with_undefined_signed_overflow,
31044         rewrite_to_defined_overflow): Moved to ...
31045         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
31046         rewrite_to_defined_overflow): ... here.  No longer static.
31047         Include gimplify-me.h.
31048         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
31049         rewrite_to_defined_overflow): New prototypes.
31050
31051 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31052
31053         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
31054
31055 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
31056
31057         * builtins.c (get_object_alignment_2): Minor tweak.
31058         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
31059
31060 2014-01-13  Christian Bruel  <christian.bruel@st.com>
31061
31062         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
31063         optimized non constant lengths.
31064
31065 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
31066
31067         PR libgomp/59194
31068         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
31069         load as __atomic_load_N if possible.
31070
31071 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
31072
31073         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
31074         target parameter.
31075         (rs6000_expand_builtin): Adjust call.
31076
31077 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
31078
31079         PR target/58115
31080         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
31081         * config/rs6000/rs6000.c: Include target-globals.h.
31082         (rs6000_set_current_function): Instead of doing target_reinit
31083         unconditionally, use save_target_globals_default_opts and
31084         restore_target_globals.
31085
31086         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
31087         FPSCR.
31088         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
31089         (rs6000_expand_builtin): Handle mffs and mtfsf.
31090         (rs6000_init_builtins): Define mffs and mtfsf.
31091         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
31092         (rs6000_mffs): New pattern.
31093         (rs6000_mtfsf): New pattern.
31094
31095 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
31096
31097         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
31098         Start narrowing with START.  Apply candidate-use pair
31099         and check overall cost in narrowing.
31100         (iv_ca_prune): Pass new argument.
31101
31102 2014-01-10  Jeff Law  <law@redhat.com>
31103
31104         PR middle-end/59743
31105         * ree.c (combine_reaching_defs): Ensure the defining statement
31106         occurs before the extension when optimizing extensions with
31107         different source and destination hard registers.
31108
31109 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
31110
31111         PR ipa/58585
31112         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
31113         vtables into the type inheritance graph.
31114
31115 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
31116
31117         PR rtl-optimization/59754
31118         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
31119         modes in the REGNO != REGNO case.
31120
31121 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31122
31123         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
31124
31125 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
31126
31127         PR tree-optimization/59745
31128         * tree-predcom.c (tree_predictive_commoning_loop): Call
31129         free_affine_expand_cache if giving up because components is NULL.
31130
31131         * target-globals.c (save_target_globals): Allocate < 4KB structs using
31132         GC in payload of target_globals struct instead of allocating them on
31133         the heap and the larger structs separately using GC.
31134         * target-globals.h (struct target_globals): Make regs, hard_regs,
31135         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
31136         of GTY((skip)) and change type to void *.
31137         (reset_target_globals): Cast loads from those fields to corresponding
31138         types.
31139
31140 2014-01-10  Steve Ellcey  <sellcey@mips.com>
31141
31142         PR plugins/59335
31143         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
31144         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
31145         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
31146
31147 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
31148
31149         PR target/59744
31150         * aarch64-modes.def (CC_Zmode): New flags mode.
31151         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
31152         represents an equality.
31153         (aarch64_get_condition_code): Handle CC_Zmode.
31154         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
31155
31156 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31157
31158         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
31159         extraction in good case.
31160
31161 2014-01-10  Richard Biener  <rguenther@suse.de>
31162
31163         PR tree-optimization/59374
31164         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
31165         checking after SLP discovery.  Mark stmts not participating
31166         in any SLP instance properly.
31167
31168 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31169
31170         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
31171         when handling a SET rtx.
31172
31173 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31174
31175         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
31176         (cortex-a57): Likewise.
31177         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
31178
31179 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31180
31181         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
31182         non-iwmmxt builtins.
31183
31184 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
31185
31186         PR ipa/58252
31187         PR ipa/59226
31188         * ipa-devirt.c record_target_from_binfo): Take as argument
31189         stack of binfos and lookup matching one for virtual inheritance.
31190         (possible_polymorphic_call_targets_1): Update.
31191
31192 2014-01-10  Huacai Chen  <chenhc@lemote.com>
31193
31194         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
31195         kernel strings for Loongson-2E/2F/3A.
31196
31197 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
31198
31199         PR middle-end/59670
31200         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
31201         is_gimple_call before calling gimple_call_internal_p.
31202
31203 2014-01-09  Steve Ellcey  <sellcey@mips.com>
31204
31205         * Makefile.in (TREE_FLOW_H): Remove.
31206         (TREE_SSA_H): Add file names from tree-flow.h.
31207         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
31208         * tree.h: Remove tree-flow.h reference.
31209         * hash-table.h: Remove tree-flow.h reference.
31210         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
31211         reference with tree-ssa-loop.h.
31212
31213 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31214
31215         * doc/invoke.texi: Add -maltivec={be,le} options, and document
31216         default element-order behavior for -maltivec.
31217         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
31218         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
31219         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
31220         when targeting big endian, at least for now.
31221         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
31222
31223 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31224
31225         PR middle-end/47735
31226         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
31227         var satisfies use_register_for_decl, just take into account type
31228         alignment, rather than decl alignment.
31229
31230         PR tree-optimization/59622
31231         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
31232         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
31233         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
31234         Don't devirtualize for inplace at all.  For targets.length () == 1,
31235         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
31236
31237 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31238
31239         * config/i386/i386.md (cpu): Remove the unused btver1.
31240
31241 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
31242
31243         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
31244
31245 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31246
31247         PR target/58115
31248         * tree-core.h (struct target_globals): New forward declaration.
31249         (struct tree_target_option): Add globals field.
31250         * tree.h (TREE_TARGET_GLOBALS): Define.
31251         (prepare_target_option_nodes_for_pch): New prototype.
31252         * target-globals.h (struct target_globals): Define even if
31253         !SWITCHABLE_TARGET.
31254         * tree.c (prepare_target_option_node_for_pch,
31255         prepare_target_option_nodes_for_pch): New functions.
31256         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
31257         * config/i386/i386.c: Include target-globals.h.
31258         (ix86_set_current_function): Instead of doing target_reinit
31259         unconditionally, use save_target_globals_default_opts and
31260         restore_target_globals.
31261
31262 2014-01-09  Richard Biener  <rguenther@suse.de>
31263
31264         PR tree-optimization/59715
31265         * tree-cfg.h (split_critical_edges): Declare.
31266         * tree-cfg.c (split_critical_edges): Export.
31267         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
31268
31269 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31270
31271         * cfgexpand.c (expand_stack_vars): Optionally disable
31272         asan stack protection.
31273         (expand_used_vars): Likewise.
31274         (partition_stack_vars): Likewise.
31275         * asan.c (asan_emit_stack_protection): Optionally disable
31276         after return stack usage.
31277         (instrument_derefs): Optionally disable memory access instrumentation.
31278         (instrument_builtin_call): Likewise.
31279         (instrument_strlen_call): Likewise.
31280         (asan_protect_global): Optionally disable global variables protection.
31281         * doc/invoke.texi: Added doc for new options.
31282         * params.def: Added new options.
31283         * params.h: Likewise.
31284
31285 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
31286
31287         PR rtl-optimization/59724
31288         * ifcvt.c (cond_exec_process_if_block): Don't call
31289         flow_find_head_matching_sequence with 0 longest_match.
31290         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
31291         non-active insns if !stop_after.
31292         (try_head_merge_bb): Revert 2014-01-07 changes.
31293
31294 2014-01-08  Jeff Law  <law@redhat.com>
31295
31296         * ree.c (get_sub_rtx): New function, extracted from...
31297         (merge_def_and_ext): Here.
31298         (combine_reaching_defs): Use get_sub_rtx.
31299
31300 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
31301
31302         * cgraph.h (varpool_variable_node): Do not choke on null node.
31303
31304 2014-01-08  Catherine Moore  <clm@codesourcery.com>
31305
31306         * config/mips/mips.md (simple_return): Attempt to use JRC
31307         for microMIPS.
31308         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
31309
31310 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31311
31312         PR rtl-optimization/59137
31313         * reorg.c (steal_delay_list_from_target): Call update_block for
31314         elided insns.
31315         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
31316
31317 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31318
31319         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
31320         two duplicate entries.
31321
31322 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
31323
31324         Revert:
31325         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
31326
31327         * config/mips/mips.c (mips_truncated_op_cost): New function.
31328         (mips_rtx_costs): Adjust test for BADDU.
31329         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
31330
31331         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
31332
31333         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
31334         (*baddu_si): ...this new pattern.
31335
31336 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31337
31338         PR ipa/59722
31339         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
31340
31341 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31342
31343         PR middle-end/57748
31344         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
31345         inner_reference_p.
31346         (expand_expr, expand_normal): Adjust.
31347         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
31348         inner_reference_p. Use inner_reference_p to expand inner references.
31349         (store_expr): Adjust.
31350         * cfgexpand.c (expand_call_stmt): Adjust.
31351
31352 2014-01-08  Rong Xu  <xur@google.com>
31353
31354         * gcov-io.c (gcov_var): Move from gcov-io.h.
31355         (gcov_position): Ditto.
31356         (gcov_is_error): Ditto.
31357         (gcov_rewrite): Ditto.
31358         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
31359         only part to libgcc/libgcov.h.
31360
31361 2014-01-08  Marek Polacek  <polacek@redhat.com>
31362
31363         PR middle-end/59669
31364         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
31365
31366 2014-01-08  Marek Polacek  <polacek@redhat.com>
31367
31368         PR sanitizer/59667
31369         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
31370
31371 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
31372
31373         PR rtl-optimization/59649
31374         * stor-layout.c (get_mode_bounds): For BImode return
31375         0 and STORE_FLAG_VALUE.
31376
31377 2014-01-08  Richard Biener  <rguenther@suse.de>
31378
31379         PR middle-end/59630
31380         * gimple.h (is_gimple_builtin_call): Remove.
31381         (gimple_builtin_call_types_compatible_p): New.
31382         (gimple_call_builtin_p): New overload.
31383         * gimple.c (is_gimple_builtin_call): Remove.
31384         (validate_call): Rename to ...
31385         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
31386         check return types.
31387         (validate_type): New static function.
31388         (gimple_call_builtin_p): New overload and adjust.
31389         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
31390         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
31391         (gimple_fold_stmt_to_constant_1): Likewise.
31392         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
31393
31394 2014-01-08  Richard Biener  <rguenther@suse.de>
31395
31396         PR middle-end/59471
31397         * gimplify.c (gimplify_expr): Gimplify register-register type
31398         VIEW_CONVERT_EXPRs to separate stmts.
31399
31400 2014-01-07  Jeff Law  <law@redhat.com>
31401
31402         PR middle-end/53623
31403         * ree.c (combine_set_extension): Handle case where source
31404         and destination registers in an extension insn are different.
31405         (combine_reaching_defs): Allow source and destination registers
31406         in extension to be different under limited circumstances.
31407         (add_removable_extension): Remove restriction that the
31408         source and destination registers in the extension are the same.
31409         (find_and_remove_re): Emit a copy from the extension's
31410         destination to its source after the defining insn if
31411         the source and destination registers are different.
31412
31413         PR middle-end/59285
31414         * ifcvt.c (merge_if_block): If we are merging a block with more than
31415         one successor with a block with no successors, remove any BARRIER
31416         after the second block.
31417
31418 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
31419
31420         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
31421
31422 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
31423
31424         PR target/59652
31425         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
31426         for 14-bit register offsets when INT14_OK_STRICT is false.
31427
31428 2014-01-07  Roland Stigge  <stigge@antcom.de>
31429             Michael Meissner  <meissner@linux.vnet.ibm.com>
31430
31431         PR 57386/target
31432         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
31433         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
31434
31435 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
31436
31437         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
31438         -mcpu.
31439
31440 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
31441
31442         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
31443         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
31444         rtx is const0_rtx or not.
31445
31446 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
31447
31448         PR target/58115
31449         * target-globals.c (save_target_globals): Remove this_fn_optab
31450         handling.
31451         * toplev.c: Include optabs.h.
31452         (target_reinit): Temporarily restore the global options if another
31453         set of options are in force.
31454
31455 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
31456
31457         PR rtl-optimization/58668
31458         * cfgcleanup.c (flow_find_cross_jump): Don't count
31459         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
31460         to determine what is counted.
31461         (flow_find_head_matching_sequence): Use active_insn_p to determine
31462         what is counted.
31463         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
31464         counting change.
31465         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
31466         determine what is counted.
31467
31468         PR tree-optimization/59643
31469         * tree-predcom.c (split_data_refs_to_components): If one dr is
31470         read and one write, determine_offset fails and the write isn't
31471         in the bad component, just put the read into the bad component.
31472
31473 2014-01-07  Mike Stump  <mikestump@comcast.net>
31474             Jakub Jelinek  <jakub@redhat.com>
31475
31476         PR pch/59436
31477         * tree-core.h (struct tree_optimization_option): Change optabs
31478         type from unsigned char * to void *.
31479         * optabs.c (init_tree_optimization_optabs): Adjust
31480         TREE_OPTIMIZATION_OPTABS initialization.
31481
31482 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
31483
31484         PR target/59644
31485         * config/i386/i386.h (struct machine_function): Add
31486         no_drap_save_restore field.
31487         * config/i386/i386.c (ix86_save_reg): Use
31488         !cfun->machine->no_drap_save_restore instead of
31489         crtl->stack_realign_needed.
31490         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
31491         this function clears frame_pointer_needed.  Set
31492         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
31493         and DRAP reg is needed.
31494
31495 2014-01-06  Marek Polacek  <polacek@redhat.com>
31496
31497         PR c/57773
31498         * doc/implement-c.texi: Mention that other integer types are
31499         permitted as bit-field types in strictly conforming mode.
31500
31501 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
31502
31503         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
31504         is newly allocated.
31505
31506 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
31507
31508         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
31509
31510 2014-01-06  Martin Jambor  <mjambor@suse.cz>
31511
31512         PR ipa/59008
31513         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
31514         to int.
31515         * ipa-prop.c (ipa_print_node_params): Fix indentation.
31516
31517 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
31518
31519         PR debug/59350
31520         PR debug/59510
31521         * var-tracking.c (add_stores): Preserve the value of the source even if
31522         we don't record the store.
31523
31524 2014-01-06  Terry Guo  <terry.guo@arm.com>
31525
31526         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
31527
31528 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
31529
31530         PR bootstrap/59541
31531         * config/darwin.c (darwin_function_section): Adjust return values to
31532         correspond to optimisation changes made in r206070.
31533
31534 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
31535
31536         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
31537         from prefetch_block tune setting.
31538         (nocona_cost): Correct size of prefetch block to 64.
31539
31540 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
31541
31542         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
31543         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
31544         used to save the static chain register in the computation of the offset
31545         from which the FP registers need to be restored.
31546
31547 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
31548
31549         PR tree-optimization/59519
31550         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
31551         ICE if get_current_def (current_new_name) is already non-NULL, as long
31552         as it is a phi result of some other phi in *new_exit_bb that has
31553         the same argument.
31554
31555         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
31556         or vmovdqu* for misaligned_operand.
31557         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
31558         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
31559         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
31560         aligned_mem for AVX512F masked aligned load and store builtins and for
31561         non-temporal moves.
31562
31563 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
31564
31565         PR tree-optimization/59651
31566         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
31567         Address range for negative step should be added by TYPE_SIZE_UNIT.
31568
31569 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
31570
31571         * config/m68k/m68k.c (handle_move_double): Handle pushes with
31572         overlapping registers also for registers other than the stack pointer.
31573
31574 2014-01-03  Marek Polacek  <polacek@redhat.com>
31575
31576         PR other/59661
31577         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
31578         __builtin_FILE.
31579
31580 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
31581
31582         PR target/59625
31583         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
31584         asm goto as jump.
31585
31586         * config/i386/i386.md (MODE_SIZE): New mode attribute.
31587         (push splitter): Use <P:MODE_SIZE> instead of
31588         GET_MODE_SIZE (<P:MODE>mode).
31589         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
31590         (mov -1, reg peephole2): Likewise.
31591         * config/i386/sse.md (*mov<mode>_internal,
31592         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
31593         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
31594         *<code><mode>3, *andnot<mode>3<mask_name>,
31595         <mask_codefor><code><mode>3<mask_name>): Likewise.
31596         * config/i386/subst.md (mask_mode512bit_condition,
31597         sd_mask_mode512bit_condition): Likewise.
31598
31599 2014-01-02  Xinliang David Li  <davidxl@google.com>
31600
31601         PR tree-optimization/59303
31602         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
31603         (dump_predicates): Better output format.
31604         (pred_equal_p): New function.
31605         (is_neq_relop_p): Ditto.
31606         (is_neq_zero_form_p): Ditto.
31607         (pred_expr_equal_p): Ditto.
31608         (pred_neg_p): Ditto.
31609         (simplify_pred): Ditto.
31610         (simplify_preds_2): Ditto.
31611         (simplify_preds_3): Ditto.
31612         (simplify_preds_4): Ditto.
31613         (simplify_preds): Ditto.
31614         (push_pred): Ditto.
31615         (push_to_worklist): Ditto.
31616         (get_pred_info_from_cmp): Ditto.
31617         (is_degenerated_phi): Ditto.
31618         (normalize_one_pred_1): Ditto.
31619         (normalize_one_pred): Ditto.
31620         (normalize_one_pred_chain): Ditto.
31621         (normalize_preds): Ditto.
31622         (normalize_cond_1): Remove function.
31623         (normalize_cond): Ditto.
31624         (is_gcond_subset_of): Ditto.
31625         (is_subset_of_any): Ditto.
31626         (is_or_set_subset_of): Ditto.
31627         (is_and_set_subset_of): Ditto.
31628         (is_norm_cond_subset_of): Ditto.
31629         (pred_chain_length_cmp): Ditto.
31630         (convert_control_dep_chain_into_preds): Type change.
31631         (find_predicates): Ditto.
31632         (find_def_preds): Ditto.
31633         (destroy_predicates_vecs): Ditto.
31634         (find_matching_predicates_in_rest_chains): Ditto.
31635         (use_pred_not_overlap_with_undef_path_pred): Ditto.
31636         (is_pred_expr_subset): Ditto.
31637         (is_pred_chain_subset_of): Ditto.
31638         (is_included_in): Ditto.
31639         (is_superset_of): Ditto.
31640
31641 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31642
31643         Update copyright years.
31644
31645 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
31646
31647         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
31648         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
31649         config/arc/arc.md, config/arc/arc.opt,
31650         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
31651         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
31652         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
31653         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
31654         config/linux-protos.h, config/linux.c, config/winnt-c.c,
31655         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
31656         vtable-verify.c, vtable-verify.h: Use the standard form for the
31657         copyright notice.
31658
31659 2014-01-02  Tobias Burnus  <burnus@net-b.de>
31660
31661         * gcc.c (process_command): Update copyright notice dates.
31662         * gcov-dump.c: Ditto.
31663         * gcov.c: Ditto.
31664         * doc/cpp.texi: Bump @copying's copyright year.
31665         * doc/cppinternals.texi: Ditto.
31666         * doc/gcc.texi: Ditto.
31667         * doc/gccint.texi: Ditto.
31668         * doc/gcov.texi: Ditto.
31669         * doc/install.texi: Ditto.
31670         * doc/invoke.texi: Ditto.
31671
31672 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31673
31674         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
31675
31676 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
31677
31678         * config/i386/sse.md (*mov<mode>_internal): Guard
31679         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
31680
31681         PR rtl-optimization/59647
31682         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
31683         new_rtx into UNSIGNED_FLOAT rtxes.
31684 \f
31685 Copyright (C) 2014 Free Software Foundation, Inc.
31686
31687 Copying and distribution of this file, with or without modification,
31688 are permitted in any medium without royalty provided the copyright
31689 notice and this notice are preserved.