mips.c (mips_sim_insn): Update comment.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * config/mips/mips.c (mips_sim_insn): Update comment.
4         (mips_sim_wait_regs_2): Delete.
5         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
6
7 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
8
9         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
10         and return a bool.  Iterate over all subrtxes here.
11         (r10k_needs_protection_p): Update accordingly.
12
13 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
14
15         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
16         rather than an rtx pointer.  Change type of insn from "void *"
17         to its real type.  Return bool rather than int.  Iterate over
18         all subrtxes here.
19         (r10k_needs_protection_p_store): Update accordingly.
20         (r10k_needs_protection_p): Likewise.
21
22 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
23
24         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
25         (mips16_rewrite_pool_refs): Take the insn and constant pool as
26         parameters.  Iterate over the instruction's pattern and return void.
27         (mips16_lay_out_constants): Update accordingly.
28
29 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
30
31         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
32         (mips_refers_to_kernel_reg_p): ...this new function.
33         (mips_expand_prologue): Update accordingly.
34
35 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
36
37         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
38         as a parameter instead of the containing MEM.  Iterate over all
39         subrtxes.  Don't return a value.
40         (mips_rewrite_small_data): Update call accordingly.
41
42 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
43
44         * config/mips/mips.c: Include rtl-iter.h.
45         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
46         Take the context as a parameter instead of the containing MEM.
47         Iterate over all subrtxes.
48         (mips_small_data_pattern_p): Update call accordingly.
49
50 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
51
52         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
53         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
54
55 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
56
57         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
58         return a bool.  Replace "void *" with specific type.  Iterate
59         over all subrtxes.
60         (mep_store_data_bypass_1): Update calls accordingly.
61
62 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
63
64         * config/mep/mep.c: Include rtl-iter.h.
65         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
66         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
67
68 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
69
70         * config/xtensa/xtensa.c: Include rtl-iter.h.
71         (xtensa_tls_referenced_p_1): Delete.
72         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
73
74 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
75
76         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
77         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
78
79 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
80
81         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
82         rtx as argument and return the number of changes.
83         * config/sh/sh.c: Include rtl-iter.h.
84         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
85         over all subrtxes.  Return the number of changes made.
86         * config/sh/sh.md: Update caller accordingly.
87
88 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
89
90         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
91         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
92
93 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
94
95         * config/m68k/m68k.c: Include rtl-iter.h.
96         (m68k_final_prescan_insn_1): Delete.
97         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
98
99 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
100
101         PR tree-optimization/63641
102         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
103         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
104
105 2014-10-25  Alan Modra  <amodra@gmail.com>
106
107         PR rtl-optimization/63615
108         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
109         decomposing PLUS or MINUS if operands are not placed adjacent
110         in the "ops" array.
111
112 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
113
114         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
115         not allow e500 double in registers not satisyfing
116         SPE_SIMD_REGNO_P.
117
118 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
119
120         * dwarf2out.c (declare_in_namespace): Only emit external
121         declarations in the local scope once.
122
123 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
124
125         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
126
127 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
128
129         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
130         update uses to use new macro arguments.
131         (__LD3_LANE_FUNC): Likewise.
132         (__LD4_LANE_FUNC): Likewise.
133
134 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
135
136         * config/aarch64/aarch64-builtins.c
137         (aarch64_types_loadstruct_lane_qualifiers): Define.
138         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
139         ld4_lane): New builtins.
140         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
141         New pattern.
142         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
143         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
144         (aarch64_ld2_lane<mode>): New expand.
145         (aarch64_ld3_lane<mode>): Likewise.
146         (aarch64_ld4_lane<mode>): Likewise.
147         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
148         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
149
150 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
151
152         * avr-protos.h (avr_out_sign_extend): New.
153         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
154         (avr_out_sign_extend): New function.
155         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
156         (extendhisi2, extendpsisi2): Use it.
157         (adjust_len) [sext]: New.
158
159 2014-10-24  Martin Liska  <mliska@suse.cz>
160
161         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
162         added.
163
164 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
165
166         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
167         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
168         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
169         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
170
171 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
172
173         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
174         do while (0).
175         * config/aarch64/aarch64.c (is_mem_p): Delete.
176         (is_memory_op): Rename to...
177         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
178         (dep_between_memop_and_curr): Assert that the input is a SET.
179         (aarch64_madd_needs_nop): Add comment.  Do not call
180         dep_between_memop_and_curr on NULL body.
181         (aarch64_final_prescan_insn): Add comment.
182         Include rtl-iter.h.
183
184 2014-10-24  Richard Biener  <rguenther@suse.de>
185
186         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
187         to genmatch BUILD_LIBS instead.
188
189 2014-10-24  Richard Biener  <rguenther@suse.de>
190
191         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
192         and build_call_expr_loc.
193         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
194         non_lvalue_loc to build it for GENERIC.
195         (decision_tree::gen_generic): Add location argument to
196         generic_simplify prototype.
197         (capture_info): New class.
198         (capture_info::capture_info): New constructor.
199         (capture_info::walk_match): New method.
200         (capture_info::walk_result): New method.
201         (capture_info::walk_c_expr): New method.
202         (dt_simplify::gen): Handle preserving side-effects for
203         GENERIC code generation.
204         (decision_tree::gen_generic): Do not reject operands
205         with TREE_SIDE_EFFECTS.
206         * generic-match.h: New file.
207         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
208         * match.pd: Add some constant folding patterns from fold-const.c.
209         * fold-const.c: Include generic-match.h.
210         (fold_unary_loc): Dispatch to generic_simplify.
211         (fold_ternary_loc): Likewise.
212         (fold_binary_loc): Likewise.  Remove patterns now implemented
213         by generic_simplify.
214         * gimple-fold.c (replace_stmt_with_simplification): New function.
215         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
216         (no_follow_ssa_edges): New function.
217         (fold_stmt): New overload with valueization hook.  Use
218         no_follow_ssa_edges for the overload without hook.
219         (fold_stmt_inplace): Likewise.
220         * gimple-fold.h (no_follow_ssa_edges): Declare.
221
222 2014-10-24  Felix Yang  <felix.yang@huawei.com>
223         Jiji Jiang  <jiangjiji@huawei.com>
224
225         PR target/63173
226         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
227         (__LD3R_FUNC): Ditto.
228         (__LD4R_FUNC): Ditto.
229         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
230          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
231          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
232          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
233          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
234          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
235         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
236          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
237          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
238          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
239          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
240          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
241         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
242          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
243          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
244          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
245          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
246          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
247         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
248         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
249         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
250         builtins.
251         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
252         (aarch64_simd_ld3r<mode>): Likewise.
253         (aarch64_simd_ld4r<mode>): Likewise.
254         (aarch64_ld2r<mode>): New expand.
255         (aarch64_ld3r<mode>): Likewise.
256         (aarch64_ld4r<mode>): Likewise.
257
258 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
259
260         * rtlanal.c (get_base_term): Handle SCRATCH.
261
262 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
263
264         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
265         register pressure.
266
267 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
268
269         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
270         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
271         (max_issue, choose_ready, sched_init): Update.
272
273 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
274
275         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
276         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
277         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
278         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
279         (print_rank_for_schedule_stats): Print out elements of ready list that
280         ended up on their respective places due to each of the sorting
281         heuristics.
282         (ready_sort): Update.
283         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
284         (schedule_block): Update.
285
286 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
287
288         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
289         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
290         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
291         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
292         (model_start_schedule): Update.
293         (sched_pressure_start_bb): New static function.  Calculate
294         sched_class_regs_num.
295         (schedule_block): Use it.
296         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
297
298 2014-10-24  Richard Biener  <rguenther@suse.de>
299
300         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
301         host library and make sure to pull in the required libintl
302         and libiconv dependencies.
303
304 2014-10-24  Richard Biener  <rguenther@suse.de>
305
306         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
307
308 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
309
310         PR bootstrap/63632
311         * collect2.c (main): Filter out -fno-lto.
312
313 2014-10-24  Martin Liska  <mliska@suse.cz>
314
315         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
316         division by zero in dumps.
317         (sem_item_optimizer::merge_classes): Ditto.
318
319 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
320
321         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
322
323 2014-10-23  Ian Lance Taylor  <iant@google.com>
324
325         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
326
327 2014-10-23  Ian Lance Taylor  <iant@google.com>
328
329         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
330
331 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
332
333         PR debug/63623
334         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
335         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
336         instead of only handling autoinc in dest if it is a MEM.
337         (vt_stack_adjustments): Fix up formatting.
338
339 2014-10-23  DJ Delorie  <dj@redhat.com>
340
341         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
342         independend of -mlarge.
343         * config/msp430/constraints.md (Ys): Update comment.
344
345 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
346
347         PR target/63534
348         PR target/63618
349         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
350         while it is pseudo.
351         * dse.c (deletable_insn_p): Likewise.
352
353 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
354
355         * config/avr/avr.c: Fix GNU coding rules and typos.
356         * config/avr/avr.h: Dito.
357         * config/avr/avr-c.c: Dito.
358         * config/avr/avr.md: Dito.
359
360 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
361
362         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
363         New.
364         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
365         iterator.
366         (define_expand "abs<mode>2"): Ditto.
367
368 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
369
370         * tree-core.h (tree_var_decl): Extend `function_code' field
371         by one bit, move `regdecl_flag' field to ...
372         (tree_decl_with_vis): Here.
373         * tree.h (DECL_STATIC_CHAIN): Update struct name.
374
375 2014-10-23  Richard Biener  <rguenther@suse.de>
376
377         * Makefile.in (BUILD_CPPLIB): Add.
378         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
379         Drop LIBIBERTY.
380
381 2014-10-23  Richard Biener  <rguenther@suse.de>
382
383         * fold-const.c (fold_binary_loc): Preserve side-effects of
384         X - X when simplifying to 0.
385         * stor-layout.c (finish_bitfield_representative): Strip
386         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
387
388 2014-10-22  Richard Biener  <rguenther@suse.de>
389             Tobias Burnus <burnus@net-b.de>
390
391         PR lto/63603
392         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
393
394 2014-10-22  Dehao Chen  <dehao@google.com>
395
396         * auto-profile.c: Change order of header files.
397
398 2014-10-22  Guozhi Wei  <carrot@google.com>
399
400         PR tree-optimization/63530
401         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
402         pointer alignment according to DR_MISALIGNMENT.
403
404 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
405
406         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
407
408 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
409
410         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
411         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
412         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
413         * dominance.h: New.  Add prototypes for dominance.c.
414         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
415         * cfghooks.h: (struct profile_record) Relocate here.
416         Relocate 2 prototypes from basic-block.h.
417         * basic-block.h: Move prototypes and struct to new header files.
418         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
419         * rtl.h: Move a few prototypes to new header files.
420         * cfgcleanup.c (merge_memattrs): Make static.
421         * genopinit.c (main): Add predict.h to list of includes.
422         * predict.h: Update prototype list to match predict.c.
423         * predict.c (maybe_hot_count_p): Export.
424         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
425         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
426         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
427         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
428         * profile.h: Adjust prototypes.
429         * ifcvt.h: New.  Relocate struct ce_if_block here.
430         * ifcvt.c: Include ifcvt.h.
431         * config/frv/frv.c: Include ifcvt.h.
432         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
433
434 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
435
436         * lra.c (lra): Remove call to recog_init.
437         * config/i386/i386.md (preferred_for_speed): New attribute
438         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
439         "enabled".  Remove check for sched1.
440
441 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
442
443         * recog.h (recog_data_d): Remove enabled_alternatives.
444         * recog.c (extract_insn): Don't set it.
445         * reload.c (find_reloads): Call get_enabled_alternatives.
446
447 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
448
449         * recog.h (constrain_operands): Add an alternative_mask parameter.
450         (constrain_operands_cached): Likewise.
451         (get_preferred_alternatives): Declare new form.
452         * recog.c (get_preferred_alternatives): New bb-taking instance.
453         (constrain_operands): Take the set of available alternatives as
454         a parameter.
455         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
456         (extract_constrain_insn_cached): Update calls to constrain_operands.
457         * caller-save.c (reg_save_code): Likewise.
458         * ira.c (setup_prohibited_mode_move_regs): Likewise.
459         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
460         * ree.c (combine_reaching_defs): Likewise.
461         * reload.c (can_reload_into): Likewise.
462         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
463         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
464         (emit_insn_if_valid_for_reload): Likewise.
465         * reorg.c (fill_slots_from_thread): Likewise.
466         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
467         * config/pa/pa.c (pa_can_combine_p): Likewise.
468         * config/rl78/rl78.c (insn_ok_now): Likewise.
469         * config/sh/sh.md (define_peephole2): Likewise.
470         * final.c (final_scan_insn): Update call to constrain_operands_cached.
471
472 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
473
474         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
475         attributes.
476         * genattr.c (main): Handle "preferred_for_size" and
477         "preferred_for_speed" in the same way as "enabled".
478         * recog.h (bool_attr): New enum.
479         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
480         (get_preferred_alternatives, check_bool_attrs): Declare.
481         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
482         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
483         New functions.
484         (get_enabled_alternatives): Use get_bool_attr_mask.
485         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
486         instead of recog_data.enabled_alternatives.
487         * ira.c (ira_setup_alts): Likewise.
488         * postreload.c (reload_cse_simplify_operands): Likewise.
489         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
490         * ira-lives.c (preferred_alternatives): New variable.
491         (process_bb_node_lives): Set it.
492         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
493         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
494         of recog_data.enabled_alternatives.
495         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
496         to preferred_alternatives.
497         * lra-constraints.c (process_alt_operands): Update accordingly.
498         * lra.c (lra_set_insn_recog_data): Likewise.
499         (lra_update_insn_recog_data): Assert check_bool_attrs.
500
501 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
502
503         * recog.h (extract_constrain_insn): Declare.
504         * recog.c (extract_constrain_insn): New function.
505         * lra.c (check_rtl): Use it.
506         * postreload.c (reload_cse_simplify_operands): Likewise.
507         * reg-stack.c (check_asm_stack_operands): Likewise.
508         (subst_asm_stack_regs): Likewise.
509         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
510         * regrename.c (build_def_use): Likewise.
511         * sel-sched.c (get_reg_class): Likewise.
512         * config/arm/arm.c (note_invalid_constants): Likewise.
513         * config/s390/predicates.md (execute_operation): Likewise.
514
515 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
516             Yury Gribov  <y.gribov@samsung.com>
517
518         * common.opt (flag_sanitize_recover): New variable.
519         (fsanitize-recover): Remove Var/Init, deprecate.
520         (fsanitize-recover=): New option.
521         * doc/invoke.texi (fsanitize-recover): Update docs.
522         * opts.c (finish_options): Use opts->x_flag_sanitize
523         instead of flag_sanitize.  Prohibit -fsanitize-recover
524         for anything besides UBSan.  Formatting.
525         (common_handle_option): Handle OPT_fsanitize_recover_
526         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
527         instead of flag_sanitize.
528         * asan.c (pass_sanopt::execute): Fix up formatting.
529         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
530         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
531         instrument_bool_enum_load, ubsan_instrument_float_cast,
532         instrument_nonnull_arg, instrument_nonnull_return): Check
533         bits in flag_sanitize_recover bitmask instead of
534         flag_sanitize_recover as bool flag.
535
536 2014-10-22  Jiong Wang <jiong.wang@arm.com>
537
538         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
539
540 2014-10-22  Renlin Li <renlin.li@arm.com>
541
542         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
543         __ARM_FEATURE_IDIV__.
544
545 2014-10-22  Richard Biener  <rguenther@suse.de>
546
547         * Makefile.in (s-match): Adjust dependencies to only catch
548         match.pd.
549
550 2014-10-22  Richard Biener  <rguenther@suse.de>
551         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
552
553         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
554         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
555         (gimple-match.c): Generate by triggering s-match.
556         (generic-match.c): Likewise.
557         (s-match): Rule to build gimple-match.c and generic-match.c
558         by running the genmatch generator program.
559         (build/hash-table.o): Dependencies to build hash-table.c for the host.
560         (build/genmatch.o): Dependencies to build genmatch.
561         (genprog): Add match.
562         (build/genmatch): Likewise.
563         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
564         * generic-match-head.c: New file.
565         * gimple-match-head.c: Likewise.
566         * gimple-match.h: Likewise.
567         * genmatch.c: Likewise.
568         * match.pd: Likewise.
569         * builtins.h (fold_builtin_n): Export.
570         * builtins.c (fold_builtin_n): Likewise.
571         * gimple-fold.h (gimple_build): Declare various overloads.
572         (gimple_simplify): Likewise.
573         (gimple_convert): Re-implement in terms of gimple_build.
574         * gimple-fold.c (gimple_convert): Remove.
575         (gimple_build): New functions.
576         * doc/match-and-simplify.texi: New file.
577         * doc/gccint.texi: Add menu item Match and Simplify and include
578         match-and-simplify.texi.
579
580 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
581
582         PR target/63594
583         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
584         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
585         even for just TARGET_AVX2, not only for
586         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
587         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
588         otherwise build it using concatenation of 256-bit
589         broadcast.
590         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
591         avx512 broadcast patterns.
592         (vec_dup<mode>): Likewise.  For avx2 use
593         v<sseintprefix>broadcast<bcstscalarsuff> instead of
594         vbroadcast<ssescalarmodesuffix>.
595         (AVX2_VEC_DUP_MODE): New mode iterator.
596         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
597         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
598
599         PR target/63542
600         * config/i386/i386.c (ix86_pic_register_p): Also return
601         true if x is a hard register with ORIGINAL_REGNO equal to
602         pic_offset_table_rtx pseudo REGNO.
603         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
604         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
605
606 2014-10-22  Alan Modra  <amodra@gmail.com>
607
608         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
609         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
610         (gcc_obstack_init): Use obstack_specify_allocation in place of
611         _obstack_begin.
612         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
613         (regexp_representation): Likewise.
614         * godump.c (go_output_type): Likewise.
615
616 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
617
618         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
619         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
620         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
621
622 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
623
624         * doc/invoke.texi (pedantic-errors): Explain better.
625
626 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
627             Vidya Praveen <vidya.praveen@atmel.com>
628             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
629             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
630             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
631
632         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
633         __MEMX for avrtiny.
634         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
635         (avr_nonconst_pointer_addrspace): Likewise.
636         * config/avr/avr.h (AVR_HAVE_LPM): Define.
637
638         Added AVRTINY architecture to avr target.
639         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
640         (base_arch_s): member added for AVRTINY architecture.
641         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
642         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
643         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
644         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
645         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
646         in callee saved register list.
647         (avr_option_override): CCP address updated for AVRTINY.
648         (avr_init_expanders): tmp and zero rtx initialized as per arch.
649         Reset avr_have_dimode if AVRTINY.
650         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
651         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
652         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
653         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
654         (expand_epilogue): Likewise.
655         (avr_print_operand): Print CCP address in case of AVRTINY also.
656         <TBD>bad address
657         (function_arg_regno_p): Check different register list for arguments
658         if AVRTINY.
659         (init_cumulative_args): Check for AVRTINY to update number of argument
660         registers.
661         (tiny_valid_direct_memory_access_range): New function. Return false if
662         direct memory access range is not in accepted range for AVRTINY.
663         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
664         indirect load (with displacement) for AVRTINY.
665         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
666         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
667         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
668         indirect load (no displacement) for AVRTINY.
669         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
670         indirect load (with displacement) for AVRTINY.
671         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
672         indirect load for pre-decrement address.
673         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
674         functions. Update instruction length for AVRTINY.
675         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
676         SImode.
677         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
678         (out_movsi_r_mr): Likewise, for SImode.
679         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
680         indirect store (no displacement) for AVRTINY.
681         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
682         indirect store (with displacement) for AVRTINY.
683         (out_movsi_mr_r): Emit out insn for IO address store. Update store
684         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
685         store functions.
686         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
687         indirect load (no displacement) for PSImode in AVRTINY.
688         (avr_out_load_psi_reg_disp_tiny): New function to handle register
689         indirect load (with displacement) for PSImode in AVRTINY.
690         (avr_out_load_psi): Call PSImode register indirect load functions for
691         AVRTINY. Update instruction length for AVRTINY.
692         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
693         indirect store (no displacement) for PSImode in AVRTINY.
694         (avr_out_store_psi_reg_disp_tiny): New function to handle register
695         indirect store (with displacement) for PSImode in AVRTINY.
696         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
697         register indirect store functions for AVRTINY.
698         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
699         register indirect store (with displacement) for AVRTINY.
700         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
701         register indirect store function for QImode in AVRTINY.
702         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
703         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
704         indirect store (no displacement) for HImode in AVRTINY.
705         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
706         indirect store (with displacement) for HImode in AVRTINY.
707         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
708         indirect store for post-increment address in HImode.
709         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
710         register indirect store function for HImode in AVRTINY.
711         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
712         in case of AVRTINY.
713         (order_regs_for_local_alloc): Updated register allocation order for
714         AVRTINY.
715         (avr_conditional_register_usage): New function. It is a target hook
716         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
717         used registers list and register allocation order for AVRTINY.
718         (avr_return_in_memory): Update return value size for AVRTINY.
719         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
720         for AVRTINY arch and tiny program memory base address.
721         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
722         (avr_texinfo): Added description for AVRTINY arch.
723         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
724         STATIC_CHAIN_REGNUM for AVRTINY.
725         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
726         * config/avr/avr.md: Added constants for tmp/ zero registers in
727         AVRTINY. Attributes for AVRTINY added.
728         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
729         memory access range.
730         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
731         in AVRTINY memory access range.
732         (*mov<mode>): Likewise for HImode and SImode.
733         (*movsf): Likewise for SFmode.
734         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
735         not have sbiw.
736         * config/avr/avr-protos.h: Added function prototype for
737         tiny_valid_direct_memory_access_range.
738         * config/avr/avr-tables.opt: Regenerate.
739         * gcc/config/avr/t-multilib: Regenerate.
740         * doc/avr-mmcu.texi: Regenerate.
741
742 2014-10-21  Andrew Pinski  <apinski@cavium.com>
743
744         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
745         available option also.
746         * config/aarch64/aarch64-cost-tables.h: New file.
747         * config/aarch64/aarch64-cores.def (thunderx): New core.
748         * config/aarch64/aarch64-tune.md: Regenerate.
749         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
750         of config/arm/aarch-cost-tables.h.
751         (thunderx_regmove_cost): New variable.
752         (thunderx_tunings): New variable.
753
754 2014-10-21  Dehao Chen  <dehao@google.com>
755
756         * auto-profile.c: New file.
757         * auto-profile.h: New file.
758         * basic-block.h (maybe_hot_count_p): New export func.
759         (add_working_set): New export func.
760         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
761         (GCOV_TAG_AFDO_FUNCTION): Likewise.
762         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
763         * opts.c (enable_fdo_optimizations): New func.
764         (common_handle_option): Handle -fauto-profile flag.
765         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
766         (class pass_early_inline): Export early_inliner.
767         (early_inliner): Likewise.
768         (pass_early_inline::execute): Likewise.
769         * ipa-inline.h (early_inliner): Likewise.
770         * predict.c (maybe_hot_count_p): New export func.
771         (counts_to_freqs): AutoFDO logic.
772         (rebuild_frequencies): Likewise.
773         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
774         * profile.c (add_working_set): New func.
775         * Makefile.in (auto-profile.o): New object file.
776         * passes.def (pass_ipa_auto_profile): New pass.
777         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
778         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
779         * toplev.c (compile_file): AutoFDO logic.
780         * doc/invoke.texi (-fauto-profile): New doc.
781         * coverage.c (coverage_init): AutoFDO logic.
782         * common.opt (-fauto-profile): New flag.
783         * timevar.def (TV_IPA_AUTOFDO): New tag.
784         * value-prof.c (gimple_alloc_histogram_value): New export func.
785         (check_ic_target): Likewise.
786         * value-prof.h (gimple_alloc_histogram_value): Likewise.
787         (check_ic_target): Likewise.
788
789 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
790
791         * cgraph.c (cgraph_c_finalize): New function.
792         * cgraph.h (cgraph_c_finalize): New prototype.
793         (cgraphunit_c_finalize): New prototype.
794         * cgraphunit.c (first_analyzed): Move from analyze_functions
795         to file-scope.
796         (first_analyzed_var): Likewise.
797         (analyze_functions): Move static variables into file-scope.
798         (cgraphunit_c_finalize): New function.
799         * diagnostic.c (diagnostic_finish): Free the memory for
800         context->classify_diagnostic and context->printer, running the
801         destructor for the latter.
802         (bt_stop): Use toplev::main.
803         * dwarf2out.c (dwarf2out_finalize): New function.
804         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
805         * gcse.c (gcse_c_finalize): New function.
806         * gcse.h (gcse_c_finalize): New prototype.
807         * ggc-page.c (init_ggc): Make idempotent.
808         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
809         * ipa-cp.c (ipa_cp_c_finalize): New function.
810         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
811         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
812         a field of class pass_ipa_pure_const.
813         (node_duplication_hook_holder): Likewise.
814         (node_removal_hook_holder): Likewise.
815         (register_hooks): Convert to method...
816         (pass_ipa_pure_const::register_hooks): ...here, converting
817         static variable init_p into...
818         (pass_ipa_pure_const::init_p): ...new field.
819         (pure_const_generate_summary): Update invocation of
820         register_hooks to invoke as a method of current_pass.
821         (pure_const_read_summary): Likewise.
822         (propagate): Convert to...
823         (pass_ipa_pure_const::execute): ...method.
824         * ipa-reference.c (ipa_init): Move static bool init_p from here
825         to...
826         (ipa_init_p): New file-scope variable, so that it can be reset
827         when repeatedly invoking the compiler within one process by...
828         (ipa_reference_c_finalize): New function.
829         * ipa-reference.h (ipa_reference_c_finalize): New.
830         * main.c (main): Replace invocation of toplev_main with
831         construction of a toplev instance, and call its "main" method.
832         * params.c (global_init_params): Add an assert that
833         params_finished is false.
834         (params_c_finalize): New.
835         * params.h (params_c_finalize): New.
836         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
837         invoking generate_summary, for the benefit of pass_ipa_pure_const.
838         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
839         before calling write_summary hook.
840         (ipa_write_optimization_summaries_1): Likewise when calling
841         write_optimization_summary hook.
842         (ipa_read_summaries_1): Likewise for read_summary hook.
843         (ipa_read_optimization_summaries_1): Likewise for
844         read_optimization_summary hook.
845         (execute_ipa_stmt_fixups): Likewise.
846         * stringpool.c (init_stringpool): Clean up if we're called more
847         than once.
848         * timevar.c (timevar_init): Ignore repeated calls.
849         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
850         "ipa-prop.h".
851         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
852         (initialize_rtl): Move static local "initialized_once"
853         into file scope, and rename to...
854         (rtl_initialized): New variable.
855         (do_compile): Move timevar initialization from here to
856         toplev::start_timevars.
857         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
858         toplev::finalize): New functions.
859         (toplev_main): Rename to...
860         (toplev::main): ...this.
861         * toplev.h (class toplev): New class.
862
863 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
864
865         * loop-doloop.c: Include loop-unroll.h.
866
867 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
868
869         * cfg.h: New.  Header file for cfg.c.
870         * cfganal.h: New.  Header file for cfganal.c.
871         * lcm.h: New.  Header file for lcm.c.
872         * loop-unroll.h: New.  Header file for loop-unroll.h.
873         * cfgloop.h: (unroll_loops): Remove prototype.
874         * basic-block.h: Move prototypes and structs to new header files.
875         Include cfg.h, cfganal.h, and lcm.h.
876         * loop-init.c: Include loop-unroll.h.
877         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
878         * modulo-sched.c: Include loop-unroll.h.
879
880 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
881
882         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
883         MARKER_BYTE_UNKNOWN markers when handling casts.
884
885 2014-10-21  Richard Biener  <rguenther@suse.de>
886
887         * tree-ssa-phiopt.c (value_replacement): Properly verify we
888         are the non-singleton PHI.
889
890 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
891
892         PR tree-optimization/63563
893         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
894         if either dra or drb stmts are not normal loads/stores.
895
896 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
897
898         * config/i386/i386.c (expand_vec_perm_1): Fix
899         expand_vec_perm_palignr case.
900         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
901         VI1_AVX512.
902
903 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
904
905         * cfgloopanal.c (seq_cost): Delete.
906         * rtl.h (seq_cost): New prototype.
907         * rtlanal.c (seq_cost): New function.
908         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
909
910 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
911
912         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
913         * basic-block.h: Remove prototypes for cfgrtl.c.
914         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
915         prototypes to cfgrtl.h.
916         * profile.h (profile_info): Add extern export declaration.
917         * rtl.h: Remove prototypes for cfgrtl.h.
918         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
919         * ipa-inline.c: Include profile.h.
920         * loop-unroll.c: Ditto.
921         * modulo-sched.c: Ditto.
922         * postreload-gcse.c: Ditto.
923         * predict.c: Ditto.
924         * sched-ebb.c: Ditto.
925         * sched-rgn.c: Ditto.
926         * tracer.c: Ditto.
927         * tree-ssa-loop-ivcanon.c: Ditto.
928
929 2014-10-20  Richard Biener  <rguenther@suse.de>
930
931         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
932         operands to get a def operand kind match.  Signal mismatches
933         to the parent so we can try swapping its operands.
934         (vect_build_slp_tree): Try swapping operands if they have
935         a mismatched operand kind.
936
937 2014-10-20  Alan Modra  <amodra@gmail.com>
938
939         PR debug/60655
940         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
941         Increase "ops" array size.  Correct array size tests.  Init
942         n_constants in loop.  Break out of innermost loop when finding
943         a trivial CONST expression.
944
945 2014-10-20  Martin Liska  <mliska@suse.cz>
946
947         PR ipa/63583
948         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
949         Gimple tempate string is compared.
950
951 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
952
953         * varasm.c (const_alias_set): Remove.
954         (init_varasm_once): Remove initialization of const_alias_set.
955         (build_constant_desc): Do not set alias set to const_alias_set.
956
957 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
958
959         * configure: Regenerate.
960         * configure.ac: Move the test for section attribute specifier "e" in GAS
961         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
962         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
963         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
964         ifdef HAVE_GAS_SECTION_EXCLUDE.
965
966 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
967
968         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
969         match_operand expression.
970
971 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
972             David Edelsohn  <dje.gcc@gmail.com>
973
974         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
975         function.
976         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
977
978 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
979
980         * doc/invoke.texi (Options to Request or Suppress Warnings):
981         Explain options precedence.
982         (Wtrampolines): Do not indent paragraph.
983
984 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
985
986         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
987         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
988         (pa_jump_in_call_delay): Likewise.
989         * config/pa/pa.c (pa_option_override): Remove jump in call delay
990         override.
991         (pa_output_millicode_call): Remove support for jump in call delay.
992         (pa_output_call): Likewise.
993         (pa_jump_in_call_delay): Delete.
994         (pa_following_call): Likewise.
995         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
996         (uncond_branch): Remove following call check from attribute length.
997
998 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
999
1000         PR target/53513
1001         * config/sh/sh-modes.def (PSI): Remove.
1002         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1003         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1004         (sh_reorg): Remove commented out FPSCR code.
1005         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
1006         insn instead of move insn.
1007         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1008         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1009         handling.
1010         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1011         (sh1_builtin_p): Uncomment.
1012         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1013         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1014         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1015         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1016         (general_movsrc_operand, general_movdst_operand): Disallow
1017         fpscr_operand.
1018         * config/sh/sh.md (FPSCR_FR): New constant.
1019         (push_fpscr): Emit sts_fpscr insn.
1020         (pop_fpscr): Emit lds_fpscr_insn.
1021         (movsi_ie): Disallow FPSCR operands.
1022         (fpu_switch, unnamed related split, extend_psi_si,
1023         truncate_si_psi): Remove insns.
1024         (lds_fpscr, sts_fpscr): New insns.
1025         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1026
1027 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1028
1029         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1030         (clone_inlined_nodes): Do not overwrite the clone if above predicate
1031         returns true.
1032
1033 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
1034
1035         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1036         (expand_vec_perm_d): Ditto.
1037         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1038         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1039         V4DFmode.
1040         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1041         (ix86_expand_sse_unpack): Handle V64QImode.
1042         (expand_vec_perm_blend): Update conditions for TARGET, handle
1043         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1044         (expand_vec_perm_pshufb): Handle V64QImode.
1045         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1046         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1047         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
1048         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1049         (ix86_expand_vecop_qihi): Handle V64QImode.
1050         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1051         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1052         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1053         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1054         (mul<mode>3): Use VI1_AVX512.
1055         (<sse2_avx2>_packsswb): Ditto.
1056         (<sse2_avx2>_packuswb): Ditto.
1057         (<ssse3_avx2>_pshufb<mode>3): Ditto.
1058         (<shift_insn><mode>3): Ditto.
1059
1060 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
1061
1062         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1063         conditions to fix bootstrap.
1064
1065 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
1066
1067         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
1068
1069 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1070             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1071             Anna Tikhonova  <anna.tikhonova@intel.com>
1072             Ilya Tocar  <ilya.tocar@intel.com>
1073             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1074             Ilya Verbin  <ilya.verbin@intel.com>
1075             Kirill Yukhin  <kirill.yukhin@intel.com>
1076             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1077
1078         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1079         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1080         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1081         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1082         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1083         (define_expand "vec_init<mode>"): Use VF48_I1248.
1084
1085 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1086             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1087             Anna Tikhonova  <anna.tikhonova@intel.com>
1088             Ilya Tocar  <ilya.tocar@intel.com>
1089             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1090             Ilya Verbin  <ilya.verbin@intel.com>
1091             Kirill Yukhin  <kirill.yukhin@intel.com>
1092             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1093
1094         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1095         expand_sse2_mulvxdi3.
1096
1097 2014-10-17  Richard Biener  <rguenther@suse.de>
1098
1099         * fold-const.c (fold_comparison): Remove redundant constant
1100         folding and operand swapping.
1101         (fold_binary_loc): Do comparison operand swapping here.
1102         (fold_ternary_loc): Canonicalize operand order for
1103         commutative ternary operations.
1104         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1105         and FMA_EXPR.
1106
1107 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1108
1109         PR tree-optimization/63464
1110         * gimple.h (gimple_seq_discard): New prototype.
1111         * gimple.c: Include stringpool.h and tree-ssanames.h.
1112         (gimple_seq_discard): New function.
1113         * optabs.h (lshift_cheap_p): New prototype.
1114         * optabs.c (lshift_cheap_p): New function, moved from...
1115         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1116         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1117         (reassoc_branch_fixups): New variable.
1118         (update_range_test): Add otherrangep and seq arguments.
1119         Unshare exp.  If otherrange is NULL, use for other ranges
1120         array of pointers pointed by otherrangep instead.
1121         Emit seq before gimplified statements for tem.
1122         (optimize_range_tests_diff): Adjust update_range_test
1123         caller.
1124         (optimize_range_tests_xor): Likewise.  Fix up comment.
1125         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1126         functions.
1127         (optimize_range_tests): Adjust update_range_test caller.
1128         Call optimize_range_tests_to_bit_test.
1129         (branch_fixup): New function.
1130         (execute_reassoc): Call branch_fixup.
1131
1132         PR tree-optimization/63302
1133         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1134         optimize_range_tests_diff): Use !integer_pow2p () instead of
1135         tree_log2 () < 0.
1136
1137 2014-10-17  Martin Liska  <mliska@suse.cz>
1138
1139         * ipa-icf.c (sem_function::merge): Local flags are set to false
1140         to enforce equal calling convention to be used.
1141         * opts.c (common_handle_option): Indentation fix.
1142
1143 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1144
1145         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1146
1147 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1148
1149         PR rtl-optimization/61605
1150         * regcprop.c (copyprop_hardreg_forward_1): Use
1151         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1152
1153 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1154
1155         PR rtl-optimization/61605
1156         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1157         notice stores for noops.  Don't regard noops as copies.
1158
1159 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1160
1161         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1162         register in a special way.
1163         (__cpuid_count): Ditto.
1164         * config/i386/driver-i386.h: Protect with
1165         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1166         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1167         is required to compile the function.
1168
1169 2014-10-16  DJ Delorie  <dj@redhat.com>
1170
1171         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1172         integers.
1173
1174         * config/rs6000/rs6000-c.c (rid_int128): New.
1175         (rs6000_macro_to_expand): Use instead of RID_INT128.
1176
1177 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1178
1179         * function.h: Flatten file.  Remove includes, adjust prototypes to
1180         reflect only what is in function.h.
1181         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1182         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1183         from expr.h.
1184         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1185         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1186         prototypes to predict.h.
1187         (init_varasm_status): Move prototype to varasm.h.
1188         * expr.h: Adjust include files.
1189         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1190         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1191         to function.h.
1192         (locate_and_pad_parm): Move prototype to function.h.
1193         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1194         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1195         assign_temp, reposition_prologue_and_epilogue_notes,
1196         prologue_epilogue_contains, sibcall_epilogue_contains,
1197         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1198         set_return_jump_label): Move prototypes to function.h.
1199         * predict.h (optimize_function_for_size_p,
1200         optimize_function_for_speed_p): Relocate prototypes from function.h.
1201         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1202         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1203         function.h.
1204         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1205         * genattrtab.c (write_header): Add predict.h to include list.
1206         * genconditions.c (write_header): Add predict.h to include list.
1207         * genemit.c (main): Adjust header file includes.
1208         * gengtype.c (ifiles): Add flattened function.h header files.
1209         * genoutput.c (output_prologue): Add predict.h to include list.
1210         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1211         * genrecog.c (write_header): Add flattened function.h header files.
1212         * alias.c: Adjust include files.
1213         * auto-inc-dec.c: Likewise.
1214         * basic-block.h: Likewise.
1215         * bb-reorder.c: Likewise.
1216         * bt-load.c: Likewise.
1217         * builtins.c: Likewise.
1218         * caller-save.c: Likewise.
1219         * calls.c: Likewise.
1220         * cfgbuild.c: Likewise.
1221         * cfgcleanup.c: Likewise.
1222         * cfgexpand.c: Likewise.
1223         * cfgloop.c: Likewise.
1224         * cfgloop.h: Likewise.
1225         * cfgrtl.c: Likewise.
1226         * cgraph.h: Likewise.
1227         * cgraphclones.c: Likewise.
1228         * cgraphunit.c: Likewise.
1229         * combine-stack-adj.c: Likewise.
1230         * combine.c: Likewise.
1231         * coverage.c: Likewise.
1232         * cprop.c: Likewise.
1233         * cse.c: Likewise.
1234         * cselib.c: Likewise.
1235         * dbxout.c: Likewise.
1236         * ddg.c: Likewise.
1237         * df-core.c: Likewise.
1238         * df-problems.c: Likewise.
1239         * df-scan.c: Likewise.
1240         * dojump.c: Likewise.
1241         * dwarf2cfi.c: Likewise.
1242         * dwarf2out.c: Likewise.
1243         * emit-rtl.c: Likewise.
1244         * except.c: Likewise.
1245         * explow.c: Likewise.
1246         * expr.c: Likewise.
1247         * final.c: Likewise.
1248         * function.c: Likewise.
1249         * gcse.c: Likewise.
1250         * gimple-fold.c: Likewise.
1251         * gimple-low.c: Likewise.
1252         * gimple-streamer.h: Likewise.
1253         * haifa-sched.c: Likewise.
1254         * ifcvt.c: Likewise.
1255         * ira.c: Likewise.
1256         * jump.c: Likewise.
1257         * lcm.c: Likewise.
1258         * loop-invariant.c: Likewise.
1259         * lra-assigns.c: Likewise.
1260         * lra-coalesce.c: Likewise.
1261         * lra-constraints.c: Likewise.
1262         * lra-eliminations.c: Likewise.
1263         * lra-lives.c: Likewise.
1264         * lra-spills.c: Likewise.
1265         * lra.c: Likewise.
1266         * lto-cgraph.c: Likewise.
1267         * lto-section-in.c: Likewise.
1268         * lto-section-out.c: Likewise.
1269         * lto-streamer-in.c: Likewise.
1270         * lto-streamer-out.c: Likewise.
1271         * mode-switching.c: Likewise.
1272         * modulo-sched.c: Likewise.
1273         * omp-low.c: Likewise.
1274         * optabs.c: Likewise.
1275         * passes.c: Likewise.
1276         * postreload-gcse.c: Likewise.
1277         * postreload.c: Likewise.
1278         * predict.c: Likewise.
1279         * profile.c: Likewise.
1280         * recog.c: Likewise.
1281         * ree.c: Likewise.
1282         * reg-stack.c: Likewise.
1283         * regcprop.c: Likewise.
1284         * reginfo.c: Likewise.
1285         * regrename.c: Likewise.
1286         * reload.c: Likewise.
1287         * reload1.c: Likewise.
1288         * reorg.c: Likewise.
1289         * resource.c: Likewise.
1290         * rtlanal.c: Likewise.
1291         * sched-deps.c: Likewise.
1292         * sched-ebb.c: Likewise.
1293         * sched-rgn.c: Likewise.
1294         * sel-sched-dump.c: Likewise.
1295         * sel-sched-ir.c: Likewise.
1296         * sel-sched.c: Likewise.
1297         * shrink-wrap.c: Likewise.
1298         * simplify-rtx.c: Likewise.
1299         * statistics.c: Likewise.
1300         * stmt.c: Likewise.
1301         * stor-layout.c: Likewise.
1302         * store-motion.c: Likewise.
1303         * symtab.c: Likewise.
1304         * targhooks.c: Likewise.
1305         * toplev.c: Likewise.
1306         * trans-mem.c: Likewise.
1307         * tree-cfg.c: Likewise.
1308         * tree-cfgcleanup.c: Likewise.
1309         * tree-dfa.c: Likewise.
1310         * tree-eh.c: Likewise.
1311         * tree-inline.c: Likewise.
1312         * tree-into-ssa.c: Likewise.
1313         * tree-nested.c: Likewise.
1314         * tree-nrv.c: Likewise.
1315         * tree-profile.c: Likewise.
1316         * tree-ssa-alias.c: Likewise.
1317         * tree-ssa-ccp.c: Likewise.
1318         * tree-ssa-copy.c: Likewise.
1319         * tree-ssa-copyrename.c: Likewise.
1320         * tree-ssa-dom.c: Likewise.
1321         * tree-ssa-operands.c: Likewise.
1322         * tree-ssa-propagate.c: Likewise.
1323         * tree-ssa-structalias.c: Likewise.
1324         * tree-ssa-tail-merge.c: Likewise.
1325         * tree-ssa-threadedge.c: Likewise.
1326         * tree-ssa-threadupdate.c: Likewise.
1327         * tree-ssa-uncprop.c: Likewise.
1328         * tree-ssa-uninit.c: Likewise.
1329         * tree-ssa.c: Likewise.
1330         * tree-stdarg.c: Likewise.
1331         * tree-tailcall.c: Likewise.
1332         * tree.c: Likewise.
1333         * tsan.c: Likewise.
1334         * valtrack.c: Likewise.
1335         * varasm.c: Likewise.
1336         * vmsdbgout.c: Likewise.
1337         * web.c: Likewise.
1338         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1339         * config/alpha/alpha.c: Likewise.
1340         * config/arc/arc.c: Likewise.
1341         * config/arm/arm.c: Likewise.
1342         * config/avr/avr-log.c: Likewise.
1343         * config/avr/avr.c: Likewise.
1344         * config/bfin/bfin.c: Likewise.
1345         * config/c6x/c6x.c: Likewise.
1346         * config/cr16/cr16.c: Likewise.
1347         * config/cris/cris.c: Likewise.
1348         * config/darwin.c: Likewise.
1349         * config/epiphany/epiphany.c: Likewise.
1350         * config/epiphany/mode-switch-use.c: Likewise.
1351         * config/epiphany/resolve-sw-modes.c: Likewise.
1352         * config/fr30/fr30.c: Likewise.
1353         * config/frv/frv.c: Likewise.
1354         * config/h8300/h8300.c: Likewise.
1355         * config/i386/i386.c: Likewise.
1356         * config/ia64/ia64.c: Likewise.
1357         * config/iq2000/iq2000.c: Likewise.
1358         * config/lm32/lm32.c: Likewise.
1359         * config/m32c/m32c.c: Likewise.
1360         * config/m32r/m32r.c: Likewise.
1361         * config/m68k/m68k.c: Likewise.
1362         * config/mcore/mcore.c: Likewise.
1363         * config/mep/mep-pragma.c: Likewise.
1364         * config/mep/mep.c: Likewise.
1365         * config/microblaze/microblaze.c: Likewise.
1366         * config/mips/mips.c: Likewise.
1367         * config/mmix/mmix.c: Likewise.
1368         * config/mn10300/mn10300.c: Likewise.
1369         * config/moxie/moxie.c: Likewise.
1370         * config/msp430/msp430.c: Likewise.
1371         * config/nds32/nds32-cost.c: Likewise.
1372         * config/nds32/nds32-fp-as-gp.c: Likewise.
1373         * config/nds32/nds32-intrinsic.c: Likewise.
1374         * config/nds32/nds32-isr.c: Likewise.
1375         * config/nds32/nds32-md-auxiliary.c: Likewise.
1376         * config/nds32/nds32-memory-manipulation.c: Likewise.
1377         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1378         * config/nds32/nds32-predicates.c: Likewise.
1379         * config/nds32/nds32.c: Likewise.
1380         * config/nios2/nios2.c: Likewise.
1381         * config/pa/pa.c: Likewise.
1382         * config/pdp11/pdp11.c: Likewise.
1383         * config/rl78/rl78.c: Likewise.
1384         * config/rs6000/rs6000.c: Likewise.
1385         * config/rx/rx.c: Likewise.
1386         * config/s390/s390.c: Likewise.
1387         * config/score/score.c: Likewise.
1388         * config/sh/sh.c: Likewise.
1389         * config/sparc/sparc.c: Likewise.
1390         * config/spu/spu.c: Likewise.
1391         * config/stormy16/stormy16.c: Likewise.
1392         * config/tilegx/tilegx.c: Likewise.
1393         * config/tilepro/tilepro.c: Likewise.
1394         * config/v850/v850.c: Likewise.
1395         * config/vax/vax.c: Likewise.
1396         * config/xtensa/xtensa.c: Likewise.
1397
1398 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1399
1400         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1401         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1402
1403 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1404
1405         * config/sh/sh-protos.h (fldi_ok): Remove.
1406         * config/sh/sh.c (fldi_ok): Likewise.
1407         (sh_secondary_reload): Don't use fldi_ok.
1408         * config/sh/constraints.md (G constraint, H constraint): Don't use
1409         fldi_ok.
1410
1411 2014-10-16  Martin Liska  <mliska@suse.cz>
1412
1413         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1414         Cast to unsigned long.
1415         (sem_item_optimizer::dump_cong_classes): Likewise.
1416
1417 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1418
1419         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1420         with SSA_NAME_IN_FREELIST.
1421
1422 2014-10-16  Richard Biener  <rguenther@suse.de>
1423
1424         PR middle-end/63554
1425         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1426         (fold_builtin_strncat_chk): Move ...
1427         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1428         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1429
1430 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1431
1432         PR target/59401
1433         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1434         GBR to 0.
1435
1436 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1437             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1438             Anna Tikhonova  <anna.tikhonova@intel.com>
1439             Ilya Tocar  <ilya.tocar@intel.com>
1440             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1441             Ilya Verbin  <ilya.verbin@intel.com>
1442             Kirill Yukhin  <kirill.yukhin@intel.com>
1443             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1444
1445         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1446         V64QI modes.
1447
1448 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1449             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1450             Anna Tikhonova  <anna.tikhonova@intel.com>
1451             Ilya Tocar  <ilya.tocar@intel.com>
1452             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1453             Ilya Verbin  <ilya.verbin@intel.com>
1454             Kirill Yukhin  <kirill.yukhin@intel.com>
1455             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1456
1457         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1458         V16SI, V32HI, V64QI modes.
1459
1460 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1461
1462         PR target/53513
1463         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1464         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1465
1466         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1467         to match fp insn patterns.
1468         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1469         list.
1470         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1471         expand_df_unop, expand_df_binop): Remove.
1472         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1473         FPSCR_STAT_REG as not call clobbered.
1474         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1475         invoking fpscr_set_from_mem.
1476
1477         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1478         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1479         FPSCR_STAT_REG.
1480         (REGISTER_NAMES): Adjust.
1481         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1482         (FIRST_PSEUDO_REGISTER): Increase to 156.
1483         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1484         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1485         FPSCR_STAT_REG.
1486         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1487         FPSCR_MODES_REG and FPSCR_STAT_REG.
1488         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1489
1490         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
1491         FPSCR_SZ): Add new constants.
1492         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
1493
1494         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
1495         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
1496         Use TARGET_FPU_ANY condition.
1497         (fpu_switch peephole2): Remove.
1498         (fpu_switch split): Use simple_mem_operand to capture the mem and
1499         adjust split implementation.
1500         (extend_psi_si, truncate_si_psi): New insns.
1501         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
1502         set of FPSCR_MODES_REG.
1503
1504         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
1505         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
1506         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
1507         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
1508         call_value_compact, call_value_compact_rettramp, call,
1509         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
1510         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
1511         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1512         sibcall_value_compact, sibcall_value, call_value_pop_compact,
1513         call_value_pop_compact_rettramp, various unnamed splits):
1514         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
1515         function uses.
1516
1517         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
1518         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
1519         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
1520         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
1521         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
1522
1523         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
1524         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
1525         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
1526         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
1527         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
1528         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
1529         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
1530
1531 2014-10-16  Martin Liska  <mliska@suse.cz>
1532             Jan Hubicka  <hubicka@ucw.cz>
1533
1534         * Makefile.in: New object files included.
1535         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
1536         is printed.
1537         (verify_edge_corresponds_to_fndecl): More sensitive verification
1538         of nodes that are merged by IPA ICF.
1539         * cgraph.h (cgraph_node::num_references): New function.
1540         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
1541         * common.opt: New options ipa-icf, ipa-icf-functions and
1542         ipa-icf-variables introduced.
1543         * doc/invoke.texi: Documentation of new options introduced.
1544         * ipa-icf-gimple.c: New file.
1545         * ipa-icf-gimple.h: New file.
1546         * ipa-icf.c: New file.
1547         * ipa-icf.h: New file.
1548         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
1549         (input_overwrite_node): Likewise.
1550         * lto-section-in.c: New icf section added.
1551         * lto-streamer.h (enum lto_section_type): Likewise.
1552         * opts.c (common_handle_option): New option added.
1553         * passes.def: New pass included.
1554         * timevar.def: Time variable for IPA ICF added.
1555         * tree-pass.h: New IPA ICF pass entry point added.
1556
1557 2014-10-16  Richard Biener  <rguenther@suse.de>
1558
1559         PR tree-optimization/63168
1560         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
1561         latches if after merging they are no longer simple.
1562         * cfghooks.c (merge_blocks): Handle merging a latch block
1563         into another block.
1564
1565 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1566             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1567             Anna Tikhonova  <anna.tikhonova@intel.com>
1568             Ilya Tocar  <ilya.tocar@intel.com>
1569             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1570             Ilya Verbin  <ilya.verbin@intel.com>
1571             Kirill Yukhin  <kirill.yukhin@intel.com>
1572             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1573
1574         * config/i386/sse.md
1575         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
1576         support AVX-512VL instructions.
1577
1578 2014-10-16  DJ Delorie  <dj@redhat.com>
1579
1580         * tree-core.h: Fix comment to not assume pointers are multiples of
1581         bytes.
1582
1583 2014-10-15  Tom Tromey  <tromey@redhat.com>
1584
1585         * timevar.h (class auto_timevar): New class.
1586
1587 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
1588
1589         PR go/59432
1590         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1591         Remove the second alternative.
1592         (regprefix): Remove mode attribute.
1593         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
1594         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
1595
1596         Revert:
1597         2013-11-05  Ian Lance Taylor  <iant@google.com>
1598
1599         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1600         If possible, add .cfi directives to record change to bx.
1601         * config/i386/i386.c (ix86_emit_cfi): New function.
1602         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
1603
1604 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
1605
1606         PR lto/62026
1607         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
1608         to duplicate.
1609         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
1610         at WPA time.
1611
1612 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1613
1614         PR rtl-optimization/63448
1615         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1616         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1617         (LRA_MAX_INHERITANCE_PASSES): Use it.
1618         (lra_constraint_iter_after_spill): Remove.
1619         (lra_assignment_iter): New.
1620         (lra_assignment_iter_after_spill): New.
1621         * lra-assigns.c (lra_assignment_iter): New.
1622         (lra_assignment_iter_after_spill): New.
1623         (former_reload_pseudo_spill_p): New.
1624         (spill_for): Set up former_reload_pseudo_spill_p.
1625         (setup_live_pseudos_and_spill_after_risky): Ditto.
1626         (assign_by_spills): Ditto.
1627         (lra_assign): Increment lra_assignment_iter.  Print the iteration
1628         number.  Reset former_reload_pseudo_spill_p.  Check
1629         lra_assignment_iter_after_spill.
1630         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
1631         lra_assignment_iter and lra_assignment_iter_after_spill.
1632         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1633         (lra_constraints): Remove code with
1634         lra_assignment_iter_after_spill.
1635
1636 2014-10-15  Teresa Johnson  <tejohnson@google.com>
1637
1638         PR bootstrap/63432
1639         * tree-ssa-threadupdate.c (recompute_probabilities): Better
1640         overflow checking.
1641
1642 2014-10-15  Renlin Li <renlin.li@arm.com>
1643
1644         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1645         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
1646         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
1647         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
1648
1649 2014-10-15  Richard Biener  <rguenther@suse.de>
1650
1651         * gimple-fold.c (gimple_fold_call): Properly keep virtual
1652         SSA form up-to-date when devirtualizing a call to
1653         __builtin_unreachable and avoid fixing up EH info here.
1654
1655 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1656             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1657             Anna Tikhonova  <anna.tikhonova@intel.com>
1658             Ilya Tocar  <ilya.tocar@intel.com>
1659             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1660             Ilya Verbin  <ilya.verbin@intel.com>
1661             Kirill Yukhin  <kirill.yukhin@intel.com>
1662             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1663
1664         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
1665         to support AVX-512BW.
1666         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
1667         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
1668         (define_insn "*<plusminus_insn><mode>3"): Ditto.
1669         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
1670         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1671         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
1672         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1673         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
1674         (define_insn "*andnot<mode>3"): Ditto.
1675         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
1676         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
1677         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
1678         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
1679         (define_insn "*abs<mode>2"): Remove masking support.
1680         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
1681         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
1682         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
1683
1684 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1685             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1686             Anna Tikhonova  <anna.tikhonova@intel.com>
1687             Ilya Tocar  <ilya.tocar@intel.com>
1688             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1689             Ilya Verbin  <ilya.verbin@intel.com>
1690             Kirill Yukhin  <kirill.yukhin@intel.com>
1691             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1692
1693         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
1694         * config/i386/sse.md
1695         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
1696         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
1697         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
1698         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1699         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1700         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1701         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1702
1703 2014-10-15  Renlin Li <renlin.li@arm.com>
1704
1705         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
1706
1707 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
1708
1709         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
1710         MINUS_EXPR in unsigned type to avoid undefined behavior.
1711
1712 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1713
1714         * stor-layout.c (self_referential_size): Do not promote arguments.
1715
1716 2014-10-15  Marek Polacek  <polacek@redhat.com>
1717
1718         * doc/invoke.texi: Update to reflect that GNU11 is the default
1719         mode for C.
1720         * c-common.h (c_language_kind): Update comment.
1721
1722 2014-10-15  Richard Biener  <rguenther@suse.de>
1723
1724         * hash-table.c: Include bconfig.h if building for the host.
1725         * hash-table.h: Do not include ggc.h on the host but just declare
1726         a few ggc allocation templates.
1727
1728 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
1729             Jeff Law  <law@redhat.com>
1730
1731         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
1732         multiple hard registers, use smaller mode derived from MODE.
1733
1734 2014-10-15  Andreas Schwab  <schwab@suse.de>
1735
1736         * explow.c (convert_memory_address_addr_space_1): Mark in_const
1737         as ATTRIBUTE_UNUSED.
1738
1739 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
1740
1741         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
1742         (decide_unrolling): ... this one.
1743         (peel_loops_completely): Remove.
1744         (decide_peel_simple): Remove.
1745         (decide_peel_once_rolling): Remove.
1746         (decide_peel_completely): Remove.
1747         (peel_loop_simple): Remove.
1748         (peel_loop_completely): Remove.
1749         (unroll_and_peel_loops): Rename to ...
1750         (unroll_loops): ... this one; handle only unrolling.
1751         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
1752         LPT_PEEL_SIMPLE.
1753         (UAP_PEEL): Remove.
1754         (unroll_and_peel_loops): Remove.
1755         (unroll_loops): New.
1756         * passes.def: Replace
1757         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
1758         * loop-init.c (gate_rtl_unroll_and_peel_loops,
1759         rtl_unroll_and_peel_loops): Rename to ...
1760         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
1761         (pass_rtl_unroll_and_peel_loops): Rename to ...
1762         (pass_rtl_unroll_loops): ... this one.
1763         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
1764         (make_pass_rtl_unroll_loops): New.
1765         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
1766         (canonicalize_loop_induction_variables): Update.
1767
1768 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1769
1770         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
1771         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
1772         !TARGET_HARD_FLOAT_POSTINC.
1773         (*lsip, *ssip): new instructions.
1774
1775 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1776
1777         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
1778         remove.
1779
1780 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1781
1782         * explow.c (convert_memory_address_addr_space): Rename to ...
1783         (convert_memory_address_addr_space_1): This.  Add in_const argument.
1784         Inside a CONST RTL, permute the conversion and addition of constant
1785         for zero and sign extended pointers.
1786         (convert_memory_address_addr_space): New function.
1787
1788 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1789
1790         Revert:
1791         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1792
1793         PR middle-end/49721
1794         * explow.c (convert_memory_address_addr_space): Also permute the
1795         conversion and addition of constant for zero-extend.
1796
1797 2014-10-14  DJ Delorie  <dj@redhat.com>
1798
1799         * config/msp430/msp430-modes.def (PSI): Add.
1800
1801         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
1802         (msp430_hard_regno_nregs_with_padding): New.
1803         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
1804         (msp430_hard_regno_nregs_has_padding): New.
1805         (msp430_hard_regno_nregs_with_padding): New.
1806         (msp430_unwind_word_mode): Use PSImode instead of SImode.
1807         (msp430_addr_space_legitimate_address_p): New.
1808         (msp430_asm_integer): New.
1809         (msp430_init_dwarf_reg_sizes_extra): New.
1810         (msp430_print_operand): Use X suffix for PSImode even in small model.
1811         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
1812         (PTR_SIZE): ...but 4 bytes for EH.
1813         (SIZE_TYPE): Use __int20.
1814         (PTRDIFF_TYPE): Likewise.
1815         (INCOMING_FRAME_SP_OFFSET): Adjust.
1816         * config/msp430/msp430.md (movqi_topbyte): New.
1817         (movpsi): Use fixed suffixes.
1818         (movsipsi2): Enable for 430X, not large model.
1819         (extendhipsi2): Likewise.
1820         (zero_extendhisi2): Likewise.
1821         (zero_extendhisipsi2): Likewise.
1822         (extend_and_shift1_hipsi2): Likewise.
1823         (extendpsisi2): Likewise.
1824         (*bitbranch<mode>4_z): Fix suffix logic.
1825
1826 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1827
1828         PR ada/62019
1829         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
1830         do not choke on null node.
1831         <VAR_DECL>: Likewise.
1832
1833 2014-10-14  DJ Delorie  <dj@redhat.com>
1834
1835         * machmode.h (int_n_data_t): New.
1836         (int_n_enabled_p): New.
1837         (int_n_data): New.
1838         * tree.c (int_n_enabled_p): New.
1839         (int_n_trees): New.
1840         (make_or_reuse_type): Check for all __intN types, not just
1841         __int128.
1842         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
1843         entries.
1844         * tree.h (int128_integer_type_node): Remove.
1845         (int128_unsigned_type_node): Remove.
1846         (int_n_trees_t): New.
1847         (int_n_enabled_p): New.
1848         (int_n_trees): New.
1849         * toplev.c (standard_type_bitsize): New.
1850         (do_compile): Check which __intN types are enabled for the current
1851         run.
1852         * builtin-types.def (BT_INT128): Remove.
1853         (BT_UINT128): Remove.
1854         * machmode.def: Add macro to create __int128 for all targets.
1855         * stor-layout.c (mode_for_size): Support __intN types.
1856         (smallest_mode_for_size): Likewise.
1857         (initialize_sizetypes): Support __intN types.
1858         * genmodes.c (struct mode_data): Add int_n field.
1859         (blank_mode): Likewise.
1860         (INT_N): New.
1861         (make_int_n): New.
1862         (emit_insn_modes_h): Count __intN entries and define
1863         NUM_INT_N_ENTS.
1864         (emit_mode_int_n): New.
1865         (emit_insn_modes_c): Call it.
1866         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
1867         types, not just __int128.
1868         * tree-core.h (integer_type_kind): Remove __int128-specific
1869         entries, reserve spots for __intN entries.
1870
1871         * config/msp430/msp430-modes.def (PSI): Add.
1872
1873 2014-10-14  Kito Cheng  <kito@0xlab.org>
1874
1875         * ira.c: Fix typo in comment.
1876         * ira.h: Ditto.
1877         * ira-build.c: Ditto.
1878         * ira-color.c: Ditto.
1879         * ira-emit.c: Ditto.
1880         * ira-int.h: Ditto.
1881         * ira-lives.c: Ditto.
1882
1883 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
1884
1885         PR rtl-optimization/63475
1886         * alias.c (true_dependence_1): Always use get_addr to extract
1887         true address operands from x_addr and mem_addr.  Use extracted
1888         address operands to check for references with alignment ANDs.
1889         Use extracted address operands with find_base_term and
1890         base_alias_check. For noncanonicalized operands call canon_rtx with
1891         extracted address operand.
1892         (write_dependence_1): Ditto.
1893         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
1894
1895 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
1896
1897         PR target/63534
1898         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
1899         __morestack local.
1900
1901 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1902             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1903             Anna Tikhonova  <anna.tikhonova@intel.com>
1904             Ilya Tocar  <ilya.tocar@intel.com>
1905             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1906             Ilya Verbin  <ilya.verbin@intel.com>
1907             Kirill Yukhin  <kirill.yukhin@intel.com>
1908             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1909
1910         * config/i386/i386.c
1911         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
1912         (ix86_expand_int_vcond): Ditto.
1913
1914 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1915             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1916             Anna Tikhonova  <anna.tikhonova@intel.com>
1917             Ilya Tocar  <ilya.tocar@intel.com>
1918             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1919             Ilya Verbin  <ilya.verbin@intel.com>
1920             Kirill Yukhin  <kirill.yukhin@intel.com>
1921             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1922
1923         * config/i386/i386.c
1924         (emit_reduc_half): Handle V64QI and V32HI mode.
1925         * config/i386/sse.md
1926         (define_mode_iterator VI_AVX512BW): New.
1927         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
1928
1929 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1930             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1931             Anna Tikhonova  <anna.tikhonova@intel.com>
1932             Ilya Tocar  <ilya.tocar@intel.com>
1933             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1934             Ilya Verbin  <ilya.verbin@intel.com>
1935             Kirill Yukhin  <kirill.yukhin@intel.com>
1936             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1937
1938         * config/i386/sse.md
1939         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
1940
1941 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1942             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1943             Anna Tikhonova  <anna.tikhonova@intel.com>
1944             Ilya Tocar  <ilya.tocar@intel.com>
1945             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1946             Ilya Verbin  <ilya.verbin@intel.com>
1947             Kirill Yukhin  <kirill.yukhin@intel.com>
1948             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1949
1950         * config/i386/i386.c
1951         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
1952         * config/i386/sse.md
1953         (define_mode_iterator VI): Add V64QI and V32HI modes.
1954
1955 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1956             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1957             Anna Tikhonova  <anna.tikhonova@intel.com>
1958             Ilya Tocar  <ilya.tocar@intel.com>
1959             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1960             Ilya Verbin  <ilya.verbin@intel.com>
1961             Kirill Yukhin  <kirill.yukhin@intel.com>
1962             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1963
1964         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
1965
1966 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1967             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1968             Anna Tikhonova  <anna.tikhonova@intel.com>
1969             Ilya Tocar  <ilya.tocar@intel.com>
1970             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1971             Ilya Verbin  <ilya.verbin@intel.com>
1972             Kirill Yukhin  <kirill.yukhin@intel.com>
1973             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1974
1975         * config/i386/sse.md
1976         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
1977         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
1978
1979 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1980             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1981             Anna Tikhonova  <anna.tikhonova@intel.com>
1982             Ilya Tocar  <ilya.tocar@intel.com>
1983             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1984             Ilya Verbin  <ilya.verbin@intel.com>
1985             Kirill Yukhin  <kirill.yukhin@intel.com>
1986             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1987
1988         * config/i386/sse.md
1989         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
1990         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
1991
1992 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1993             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1994             Anna Tikhonova  <anna.tikhonova@intel.com>
1995             Ilya Tocar  <ilya.tocar@intel.com>
1996             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1997             Ilya Verbin  <ilya.verbin@intel.com>
1998             Kirill Yukhin  <kirill.yukhin@intel.com>
1999             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2000
2001         * config/i386/sse.md
2002         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2003         (define_mode_iterator VI2_AVX2): Add V32HI mode.
2004         (define_expand "mul<mode>3<mask_name>"): Add masking.
2005         (define_insn "*mul<mode>3<mask_name>"): Ditto.
2006         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2007         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2008         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2009         (define_mode_attr SDOT_PMADD_SUF): Ditto.
2010         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2011         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2012         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2013         (define_insn "avx2_packusdw"): Delete.
2014         (define_insn "sse4_1_packusdw"): Ditto.
2015         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2016
2017 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2018             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2019             Anna Tikhonova  <anna.tikhonova@intel.com>
2020             Ilya Tocar  <ilya.tocar@intel.com>
2021             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2022             Ilya Verbin  <ilya.verbin@intel.com>
2023             Kirill Yukhin  <kirill.yukhin@intel.com>
2024             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2025
2026         * config/i386/sse.md
2027         (define_insn "vec_dup<mode>"): Update constraints.
2028
2029 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2030             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2031             Anna Tikhonova  <anna.tikhonova@intel.com>
2032             Ilya Tocar  <ilya.tocar@intel.com>
2033             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2034             Ilya Verbin  <ilya.verbin@intel.com>
2035             Kirill Yukhin  <kirill.yukhin@intel.com>
2036             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2037
2038         * config/i386/sse.md
2039         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2040         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2041         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2042
2043 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2044             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2045             Anna Tikhonova  <anna.tikhonova@intel.com>
2046             Ilya Tocar  <ilya.tocar@intel.com>
2047             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2048             Ilya Verbin  <ilya.verbin@intel.com>
2049             Kirill Yukhin  <kirill.yukhin@intel.com>
2050             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2051
2052         * config/i386/sse.md
2053         (define_expand "mul<mode>3<mask_name>"): Add masking.
2054
2055 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2056             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2057             Anna Tikhonova  <anna.tikhonova@intel.com>
2058             Ilya Tocar  <ilya.tocar@intel.com>
2059             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2060             Ilya Verbin  <ilya.verbin@intel.com>
2061             Kirill Yukhin  <kirill.yukhin@intel.com>
2062             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2063
2064         * config/i386/sse.md
2065         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2066         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2067
2068 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2069             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2070             Anna Tikhonova  <anna.tikhonova@intel.com>
2071             Ilya Tocar  <ilya.tocar@intel.com>
2072             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2073             Ilya Verbin  <ilya.verbin@intel.com>
2074             Kirill Yukhin  <kirill.yukhin@intel.com>
2075             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2076
2077         * config/i386/sse.md
2078         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2079         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2080         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2081         Ditto.
2082
2083 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2084             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2085             Anna Tikhonova  <anna.tikhonova@intel.com>
2086             Ilya Tocar  <ilya.tocar@intel.com>
2087             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2088             Ilya Verbin  <ilya.verbin@intel.com>
2089             Kirill Yukhin  <kirill.yukhin@intel.com>
2090             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2091
2092         * config/i386/sse.md
2093         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2094         use VF_128_256 mode iterator and update assembler emit code.
2095         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2096         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2097         Add masking, use VF_128_256 mode iterator.
2098         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2099         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2100         Add masking, use VF_128_256 mode iterator and update assembler emit
2101         code.
2102         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2103         (define_mode_attr avx512flogicsuff): Delete.
2104         (define_insn "avx512f_<logic><mode>"): Ditto.
2105         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2106         MODE_TI.
2107         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2108
2109 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2110             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2111             Anna Tikhonova  <anna.tikhonova@intel.com>
2112             Ilya Tocar  <ilya.tocar@intel.com>
2113             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2114             Ilya Verbin  <ilya.verbin@intel.com>
2115             Kirill Yukhin  <kirill.yukhin@intel.com>
2116             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2117
2118         * config/i386/sse.md
2119         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2120         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2121         use VI12_128 mode iterator.
2122         (define_expand "ashrv2di3<mask_name>"): New.
2123
2124 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2125             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2126             Anna Tikhonova  <anna.tikhonova@intel.com>
2127             Ilya Tocar  <ilya.tocar@intel.com>
2128             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2129             Ilya Verbin  <ilya.verbin@intel.com>
2130             Kirill Yukhin  <kirill.yukhin@intel.com>
2131             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2132
2133         * config/i386/i386.c
2134         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2135         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2136         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2137         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2138         CODE_FOR_avx512vl_ucmpv4si3_mask.
2139         * config/i386/sse.md
2140         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2141         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2142         (define_insn
2143         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2144         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2145         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2146         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2147         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2148         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2149
2150 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2151             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2152             Anna Tikhonova  <anna.tikhonova@intel.com>
2153             Ilya Tocar  <ilya.tocar@intel.com>
2154             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2155             Ilya Verbin  <ilya.verbin@intel.com>
2156             Kirill Yukhin  <kirill.yukhin@intel.com>
2157             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2158
2159         * config/i386/sse.md
2160         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2161         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2162         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2163         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2164         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2165         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2166         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2167         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2168         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2169
2170 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2171             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2172             Anna Tikhonova  <anna.tikhonova@intel.com>
2173             Ilya Tocar  <ilya.tocar@intel.com>
2174             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2175             Ilya Verbin  <ilya.verbin@intel.com>
2176             Kirill Yukhin  <kirill.yukhin@intel.com>
2177             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2178
2179         * config/i386/sse.md
2180         (define_insn "avx512f_blendm<mode>"): Delete.
2181         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2182         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2183         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2184         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2185         (define_insn
2186         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2187         Remove.
2188         (define_insn
2189         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2190         New.
2191         (define_insn
2192         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2193         Ditto.
2194         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2195         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2196         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2197         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2198         Delete.
2199         (define_insn
2200         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2201         New.
2202         (define_insn
2203         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2204         Ditto.
2205         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2206         Delete.
2207         (define_insn
2208         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2209         New.
2210         (define_insn
2211         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2212         Ditto.
2213
2214 2014-10-14  Richard Biener  <rguenther@suse.de>
2215
2216         PR tree-optimization/63512
2217         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2218         modified.
2219
2220 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2221
2222         PR target/63260
2223         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2224         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2225         of FPSCR.
2226         (negsf2_i): Rename to *negsf2_i.
2227         (abssf2_i): Rename to *abssf2_i.
2228         (negdf2_i): Rename to *negdf2_i.
2229         (absdf2_i): Rename to *absdf2_i.
2230
2231 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2232             Jeff Law  <law@redhat.com>
2233
2234         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2235         "replace" into boolean bitfields; turn member "loop_depth" into a short
2236         integer; add new member "no_equiv" and "reserved".
2237         (no_equiv): Set no_equiv of struct equivalence if register is marked
2238         as having no known equivalence.
2239         (update_equiv_regs): Check all definitions for a multiple-set
2240         register to make sure that the RHS have the same value.
2241
2242 2014-10-13  Richard Henderson  <rth@redhat.com>
2243
2244         * combine-stack-adj.c (no_unhandled_cfa): New.
2245         (maybe_merge_cfa_adjust): New.
2246         (combine_stack_adjustments_for_block): Use them.
2247
2248 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2249
2250         * Makefile.in (TAGS): Tag ../include files.
2251
2252 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2253
2254         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2255         to rs6000_dbx_register_number.
2256         (DWARF_FRAME_REGNUM): Redefine as identity map.
2257         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2258         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2259         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2260         argument to handle .debug_frame and .eh_frame directly.  Always
2261         translate SPE high register numbers.  Add special treatment for CR,
2262         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2263
2264         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2265         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2266         (RS6000_USE_DWARF_NUMBERING): Define.
2267         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2268         (RS6000_USE_DWARF_NUMBERING): Define.
2269         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2270         (RS6000_USE_DWARF_NUMBERING): Define.
2271         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2272         (RS6000_USE_DWARF_NUMBERING): Define.
2273         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2274         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2275
2276 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2277
2278         * config/i386/i386.c (ix86_address_cost): Lower cost for
2279         when address contains GOT register.
2280
2281 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2282             Vladimir Makarov  <vmakarov@redhat.com>
2283
2284         PR target/8340
2285         PR middle-end/47602
2286         PR rtl-optimization/55458
2287         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2288         (ix86_init_pic_reg): New.
2289         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2290         (ix86_save_reg): Likewise.
2291         (ix86_expand_prologue): Remove PIC register initialization
2292         now performed in ix86_init_pic_reg.
2293         (ix86_output_function_epilogue): Add check on pseudo register.
2294         (set_pic_reg_ever_alive): New.
2295         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2296         set_pic_reg_ever_alive.
2297         (legitimize_tls_address): Likewise.
2298         (ix86_pic_register_p): New check.
2299         (ix86_delegitimize_address): Add check on pseudo register.
2300         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2301         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2302         (TARGET_INIT_PIC_REG): New.
2303         (TARGET_USE_PSEUDO_PIC_REG): New.
2304         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2305         if pic_offset_table_rtx exists.
2306         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2307         Document.
2308         * doc/tm.texi: Regenerate.
2309         * function.c (assign_parms): Generate pseudo register for PIC.
2310         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2311         register.
2312         * ira-color.c (color_pass): Add check on pseudo register.
2313         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2314         register.
2315         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2316         register.
2317         (ira): Add target specific PIC register initialization.
2318         (do_reload): Keep PIC pseudo register.
2319         * lra-assigns.c (spill_for): Add checks on pseudo register.
2320         * lra-constraints.c (contains_symbol_ref_p): New.
2321         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2322         register.
2323         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2324         * target.def (use_pseudo_pic_reg): New.
2325         (init_pic_reg): New.
2326
2327 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2328
2329         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2330         Remove m_SILVERMONT and m_INTEL from the tune.
2331
2332 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2333
2334         PR libfortran/63471
2335         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2336         when _HPUX_SOURCE is defined.
2337
2338 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2339
2340         PR tree-optimization/62127
2341         * tree.c (remap_type_1): When remapping array, remap
2342         also its type.
2343
2344 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2345
2346         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2347         longer impact parallelization.
2348
2349 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2350
2351         PR bootstrap/63496
2352         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2353
2354 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2355
2356         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2357
2358 2014-10-13  Richard Biener  <rguenther@suse.de>
2359
2360         PR tree-optimization/63419
2361         * gimple-fold.h (gimple_convert): New function.
2362         * gimple-fold.c (gimple_convert): Likewise.
2363         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2364         to split out required conversions early.
2365
2366 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2367
2368         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2369         Add the parts of an insn in reverse order, with the pattern at
2370         the top of the queue.  Detect when we're iterating over a SEQUENCE
2371         pattern and in that case just consider patterns of subinstructions.
2372
2373 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2374
2375         PR target/59401
2376         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2377         of rtx.
2378         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2379         insn walking.
2380         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2381         address.  Use def chains to handle GBR clobbering call insns.
2382
2383 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2384
2385         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2386         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2387         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2388         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2389         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2390         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2391         * doc/gty.texi (for_user): Document new option.
2392         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2393         char.
2394         (walk_type): Don't error out on for_user option.
2395         (write_func_for_structure): Emit user marking routines if requested by
2396         for_user option.
2397         (write_local_func_for_structure): Likewise.
2398         (main): Mark types with for_user option as used.
2399         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2400         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2401         * hash-table.h (ggc_hasher): New struct.
2402         (hash_table::create_ggc): New function.
2403         (gt_pch_nx): New overload for hash_table.
2404
2405 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2406
2407         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2408         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2409         * config/sh/sh.c: Likewise.
2410         * config/sh/sh-mem.cc: Likewise.
2411         * config/sh/sh.md: Likewise.
2412         * config/sh/predicates.md: Likewise.
2413         * config/sh/sync.md: Likewise.
2414
2415 2014-10-11  Martin Liska  <mliska@suse.cz>
2416
2417         PR middle-end/63376
2418         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2419         for call_cgraph_insertion_hooks added.
2420
2421 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2422
2423         PR c/63495
2424         * stor-layout.c (min_align_of_type): Don't decrease alignment
2425         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2426         TYPE_USER_ALIGN is set.
2427
2428 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2429
2430         PR rtl-optimization/63483
2431         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2432         references when alignment ANDs are involved.
2433         (write_dependence_p): Ditto.
2434         (may_alias_p): Ditto.
2435
2436 2014-10-10  Marek Polacek  <polacek@redhat.com>
2437
2438         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2439         * doc/invoke.texi: Document -fsanitize=object-size.
2440         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2441         or it into SANITIZE_UNDEFINED.
2442         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2443         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2444         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2445         * opts.c (common_handle_option): Handle -fsanitize=object-size.
2446         * ubsan.c: Include tree-object-size.h.
2447         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2448         (ubsan_expand_bounds_ifn): Use false instead of 0.
2449         (ubsan_expand_objsize_ifn): New function.
2450         (instrument_object_size): New function.
2451         (pass_ubsan::execute): Add object size instrumentation.
2452         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2453
2454 2014-10-10  Richard Henderson  <rth@redhat.com>
2455
2456         PR target/63404
2457         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2458         Restrict the set of expressions we're willing to move.
2459
2460 2014-10-10  Jeff Law  <law@redhat.com>
2461
2462         * ira.c (struct equivalence): Promote INIT_INSNs field to
2463         an rtx_insn_list.  Add comments.
2464         (no_equiv): Promote LIST to an rtx_insn_list.  Update
2465         testing for and creating the special marker.  Use methods
2466         to extract the insn and next pointers.  Promote INSN to an
2467         rtx_insn.
2468         (update_equiv_regs): Update test for special marker in the
2469         INIT_INSNs list.
2470
2471 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2472
2473         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2474         * configure: Regenerate.
2475         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2476         TARGET_FIX_ERR_A53_835769_DEFAULT.
2477         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2478         value to 2.
2479         * doc/install.texi (aarch64*-*-*): Document
2480         new --enable-fix-cortex-a53-835769 option.
2481
2482 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2483             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2484
2485         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2486         (ADJUST_INSN_LENGTH): Define.
2487         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2488         * config/aarch64/aarch64.c (is_mem_p): New function.
2489         (is_memory_op): Likewise.
2490         (aarch64_prev_real_insn): Likewise.
2491         (is_madd_op): Likewise.
2492         (dep_between_memop_and_curr): Likewise.
2493         (aarch64_madd_needs_nop): Likewise.
2494         (aarch64_final_prescan_insn): Likewise.
2495         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2496         and -mno-fix-cortex-a53-835769 options.
2497
2498 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2499
2500         PR tree-optimization/63464
2501         * tree-switch-conversion.c (struct case_bit_test): Remove
2502         hi and lo fields, add wide_int mask field.
2503         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
2504         hi/lo fields into wide_int mask operations, optimize by pretending
2505         minval to be 0 if maxval is small enough.
2506         (process_switch): Adjust caller.
2507
2508 2014-10-10  Richard Biener  <rguenther@suse.de>
2509
2510         PR tree-optimization/63379
2511         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2512         a neutral operand for min/max when it is not a reduction chain.
2513
2514 2014-10-10  Richard Biener  <rguenther@suse.de>
2515
2516         PR tree-optimization/63476
2517         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
2518         (BB_LIVE_VOP_ON_EXIT): New define.
2519         (create_expression_by_pieces): Assign VUSEs to stmts.
2520         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
2521         (pass_pre::execute): Assert virtual SSA form is up-to-date
2522         after insertion.
2523
2524 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2525
2526         * lra-assigns.c (assign_by_spills): Error out on spill failure.
2527
2528 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
2529
2530         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
2531         assertion.
2532
2533 2014-10-09  Richard Biener  <rguenther@suse.de>
2534
2535         PR tree-optimization/63380
2536         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2537         may trap.
2538
2539 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2540
2541         * config/avr/avr.opt (mmcu=): Change to have a string value.
2542         (mn-flash=, mskip-bug, march=, mrmw): New options.
2543         (HeaderInclude): New.
2544         (mmcu=): Remove Var / Init clauses.
2545         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
2546         -specs option.
2547         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
2548         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
2549         (SYMBOL_FLAG_IO_LOW): Define.
2550         (avr_device_to_as, avr_device_to_ld): Don't declare.
2551         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2552         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
2553         (EXTRA_SPEC_FUNCTIONS): Don't define.
2554         (ASM_SPEC): Translate -arch= option to -mmcu= option.
2555         (LINK_SPEC): Translate -arch= option to -m= option.
2556         Don't use device_to_ld / device_to_data_start.
2557         (STARTFILE_SPEC): Now empty.
2558         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
2559         * config/avr/gen-avr-mmcu-specs.c: New file.
2560         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
2561         (s-device-specs): Likewise.
2562         (GCC_PASSES): Add s-device-specs.
2563         (install-driver): Depend on install-device-specs.
2564         (install-device-specs): New rule.
2565         * config/avr/avr.c (avr_option_override): Look up mcu arch by
2566         avr_arch_index and provide fallback initialization for avr_n_flash.
2567         (varasm.h): #include.
2568         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
2569         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
2570         (avr_attribute_table): Add "io", "address" and "io_low".
2571         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
2572         Add special handling for symbols with "io" and/or "address" attributes.
2573         (avr_asm_asm_output_aligned_bss): New function.
2574         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
2575         as appropriate.  Handle io_low attribute.
2576         (avr_out_sbxx_branch): Handle symbolic io addresses.
2577         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
2578         avr_n_flash instead of avr_current_device->n_flash.
2579         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
2580         (avr_emit_movmemhi): Likewise.
2581         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
2582         Use TARGET_RMW instead of avr_current_device->dev_attributes.
2583         Don't define avr_current_device->macro (that's the specfile's job).
2584         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
2585         * config/avr/avr.c (avr_2word_insn_p): Likewise.
2586         * config/avr/avr.md (*cpse.ne): Likewise.
2587         (mov<mode>): Use avr_eval_addr_attrib.
2588         (cbi): Change constraint for low_io_address_operand operand to "i".
2589         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
2590         * config/avr/predicates.md (io_address_operand):
2591         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
2592         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
2593         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
2594         Update prototype.
2595         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
2596         * config/avr/genmultilib.awk: Use -march=.
2597         Remove Multilib matches processing.
2598         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
2599         * config/avr/avr-arch.h: Add double include guard.
2600         (avr_mcu_t) <library_name>: Update comment.
2601         * config/avr/driver-avr.c (avr_device_to_as): Delete.
2602         (avr_device_to_ld, avr_device_to_data_start): Likewise.
2603         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
2604         (avr_device_to_sp8): Likewise.
2605         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
2606
2607         * doc/extend.texi (io, address): Document new AVR variable attributes.
2608         (io_low): Likewise.
2609
2610 2014-10-09  Marek Polacek  <polacek@redhat.com>
2611
2612         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
2613
2614 2014-10-08  Richard Biener  <rguenther@suse.de>
2615
2616         PR tree-optimization/61969
2617         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2618         variables.
2619
2620 2014-10-09  Richard Biener  <rguenther@suse.de>
2621
2622         PR tree-optimization/63445
2623         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
2624         overflow for non-equality compares.
2625
2626 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
2627
2628         PR rtl-optimization/57003
2629         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2630         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2631         killing regs_invalidated_by_call.
2632
2633 2014-10-08  Teresa Johnson  <tejohnson@google.com>
2634
2635         PR bootstrap/63432.
2636         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
2637         (ssa_fix_duplicate_block_edges): Invoke it.
2638         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
2639
2640 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
2641
2642         PR target/52941
2643         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2644         atomic_fetch_<fetchop_name>si_hard,
2645         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2646         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2647         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2648         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2649
2650 2014-10-08  Rong Xu  <xur@google.com>
2651
2652         * gcov-tool.c (profile_overlap): New driver function
2653         to compute profile overlap.
2654         (print_overlap_usage_message): New.
2655         (overlap_usage): New.
2656         (do_overlap): New.
2657         (print_usage): Add calls to overlap function.
2658         (main): Ditto.
2659         * doc/gcov-tool.texi: Add documentation.
2660
2661 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2662
2663         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
2664         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
2665
2666 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
2667
2668         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
2669         pattern matching of MEM_REF.
2670         (check_stmt_for_type_change): Update.
2671
2672 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2673
2674         * config/mips/linux64.h: Remove.
2675         * config/mips/gnu-user64.h: Remove.
2676         * gcc.config (mips*-*-*): Remove references to linux64.h and
2677         gnu-user64.h
2678         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
2679         with modified version from gnu-user64.h.
2680         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
2681         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
2682         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
2683         linux64.h.
2684         (GNU_USER_LINK_EMULATION64): Ditto.
2685         (GNU_USER_LINK_EMULATIONN32): Ditto.
2686         (GLIBC_DYNAMIC_LINKER32): Ditto.
2687         (GLIBC_DYNAMIC_LINKER64): Ditto.
2688         (GLIBC_DYNAMIC_LINKERN32): Ditto.
2689         (UCLIBC_DYNAMIC_LINKER32): Ditto.
2690         (UCLIBC_DYNAMIC_LINKER64): Ditto.
2691         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
2692         (BIONIC_DYNAMIC_LINKERN32): Ditto.
2693         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
2694         (GLIBC_DYNAMIC_LINKER): Delete.
2695         (UCLIBC_DYNAMIC_LINKER): Delete.
2696
2697 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
2698             Richard Biener  <rguenther@suse.de>
2699
2700         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
2701         Get address space from operand 0 (BASE).
2702
2703 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
2704
2705         PR target/61387
2706         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
2707
2708 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
2709
2710         * dwarf2out.c: Remove current_function_has_inlines.
2711         (gen_subprogram_die): Same.
2712         (gen_inlined_subroutine_die): Same.
2713
2714 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
2715
2716         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
2717         type.
2718         (_addcarry_u64): Ditto.
2719         (_addcarryx_u64): Ditto.
2720
2721 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2722
2723         * cgraph.h (cgraph_node::get_fun): Declare.
2724         * cgraph.c (cgraph_node::get_fun): New method.
2725         * ipa-inline.c (can_inline_edge_p): Use it.
2726
2727 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2728
2729         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
2730         and -ftrapping-math.
2731         * lto-wrapper.c (merge_and_complain): Likewise.
2732         (run_gcc): Likewise.
2733
2734 2014-10-06  Rong Xu  <xur@google.com>
2735
2736         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
2737         * tree-profile.c: (params.h): New include.
2738         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
2739         and __gcov_indirect_call_topn_counters for
2740         indirect_call_topn_profile.
2741         (gimple_init_edge_profiler): New decls for
2742         __gcov_indirect_call_topn_profiler.
2743         (gimple_gen_ic_profiler): Generate the correct profiler call.
2744         (gimple_gen_ic_func_profiler): Fix format.
2745         * value-prof.c (params.h): New include.
2746         (dump_histogram_value): Hanlde indirect_call_topn counters.
2747         (stream_in_histogram_value): Ditto.
2748         (gimple_indirect_call_to_profile): Use indirect_call_topn
2749         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
2750         (gimple_find_values_to_profile): Hanlde indirect_call_topn
2751         counters.
2752         * value-prof.h (enum hist_type): Histrogram type for
2753         indirect_call_topn counters.
2754         * profile.c (instrument_values): Instrument
2755         indirect_call_topn counters.
2756
2757 2014-10-06  Rong Xu  <xur@google.com>
2758
2759         * Makefile.in: Fix dependence.
2760         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
2761         indirect call topn profiler.
2762         * gcov-io.h: Ditto.
2763
2764 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         * calls.c (expand_call): Do not use the target as the return slot if
2767         it is not sufficiently aligned.
2768
2769 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2770
2771         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
2772         discussion of permutes and why we don't handle them.
2773
2774 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2775
2776         * config/sparc/predicates.md (int_register_operand): Delete.
2777
2778 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2779
2780         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
2781
2782 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
2783
2784         * ubsan.h (ubsan_get_source_location): New prototype.
2785         * ubsan.c (ubsan_source_location_type): New variable.
2786         Function renamed to ...
2787         (ubsan_get_source_location_type): ... this.  Cache
2788         return value in ubsan_source_location_type variable.
2789         (ubsan_source_location, ubsan_create_data): Use
2790         ubsan_get_source_location_type instead of
2791         ubsan_source_location_type.
2792         * asan.c (asan_protect_global): Don't protect globals
2793         with ubsan_get_source_location_type () type.
2794         (asan_add_global): Provide global decl location info
2795         if possible.
2796
2797 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2798
2799         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
2800         sanity check.
2801
2802 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2803
2804         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
2805         on size.
2806         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
2807         into vptr pointer.
2808         (ipa_polymorphic_call_context::dump): Fix formating.
2809         (walk_ssa_copies): Add logic avoiding loops; update uses.
2810         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
2811
2812 2014-10-02  Mark Wielaard  <mjw@redhat.com>
2813
2814         PR debug/63239
2815         * dwarf2out.c (gen_subprogram_die): When a member function is
2816         explicitly deleted then add a DW_AT_GNU_deleted attribute.
2817         * langhooks.h (struct lang_hooks_for_decls): Add
2818         function_decl_deleted_p langhook.
2819         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
2820         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
2821
2822 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2823
2824         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
2825         NULL pointer checks.
2826         (ipa_polymorphic_call_context::get_dynamic_type): Return true
2827         if type doesn't change.
2828         * cgraph.h (cgraph_indirect_call_info): New flag.
2829         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
2830         (cgraph_node::dump): Dump it.
2831         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
2832         of context.get_dynamic_type.
2833         (ipa_make_edge_direct_to_target): Do not speculate
2834         edge that is already speuclative.
2835         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
2836         speculate to __builtin_unreachable
2837         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
2838         vptr_changed.
2839         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
2840
2841 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2842
2843         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
2844         get_dynamic_type; drop TODO.
2845         * ipa-polymorphic-call.c
2846         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
2847         for otr_type to be unknown.
2848
2849 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2850
2851         * common/config/score/score-common.c: Remove.
2852         * config.gcc: Remove support for score-*.
2853         * config/score/constraints.md: Remove.
2854         * config/score/elf.h: Remove.
2855         * config/score/predicates.md: Remove.
2856         * config/score/score-conv.h: Remove.
2857         * config/score/score-generic.md: Remove.
2858         * config/score/score-modes.def: Remove.
2859         * config/score/score-protos.h: Remove.
2860         * config/score/score.c: Remove.
2861         * config/score/score.h: Remove.
2862         * config/score/score.md: Remove.
2863         * config/score/score.opt: Remove.
2864         * doc/md.texi: Don't document score-*.
2865
2866 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2867
2868         PR pch/63429
2869         * genconditions.c: Directly include ggc.h before rtl.h.
2870
2871 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2872
2873         * ipa-polymorphic-call.c
2874         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
2875         code determining speculative type.
2876         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
2877
2878 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2879
2880         * altivec.md (altivec_lvsl): New define_expand.
2881         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2882         (altivec_lvsr): New define_expand.
2883         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2884         * rs6000.c (rs6000_expand_builtin): Change to use
2885         altivec_lvs[lr]_direct; remove commented-out code.
2886
2887 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2888
2889         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2890         Issue a warning message when vec_lvsl or vec_lvsr is used with a
2891         little endian target.
2892
2893 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2894
2895         * tree-pretty-print.c (dump_location): Make it extern. Dump also
2896         the column.
2897         * tree-pretty-print.h (dump_location): Declare.
2898         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
2899         (pp_gimple_stmt_1): Likewise.
2900         (dump_implicit_edges): Likewise.
2901         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
2902         LOCATION_LINE.
2903
2904
2905 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2906
2907         * gcc.c (driver::global_initializations): Remove "const" so
2908         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
2909         and decoded_options_count.
2910
2911 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
2912
2913         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
2914         macro.
2915         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
2916         TARGET_E500_DOUBLE case here.
2917
2918 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
2919
2920         PR c++/54427
2921         PR c++/57198
2922         PR c++/58845
2923         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
2924
2925 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2926
2927         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
2928         * lto-cgraph.c (lto_output_edge, input_edge): Stream
2929         in_polymorphic_cdtor
2930         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
2931         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
2932         * cgraphclones.c (cgraph_edge::clone): Likewise.
2933         * ipa-prop.c (update_jump_functions_after_inlining,
2934         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
2935         to possible_dynamic_type_change.
2936         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
2937         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2938         IN_POLY_CDOTR argument.
2939
2940         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
2941         for BASE and OUTER_TYPE being NULL.
2942         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2943         in_poly_cdtor parameter.
2944
2945 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2946
2947         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
2948         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
2949         TARGET_AVX512F.
2950         (expand_vec_perm_1): Likewise.
2951
2952 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2953             Uros Bizjak  <ubizjak@gmail.com>
2954
2955         PR tree-optimization/61403
2956         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
2957         error in comment.  Also optimize 256-bit vectors for AVX2
2958         or AVX (floating vectors only), provided the first permutation
2959         can be performed in one insn.
2960
2961 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2962
2963         * gcc.c (class driver): New class.
2964         (main): Reimplement in terms of driver::main, moving most of the
2965         locals to be locals within individual methods of class driver.
2966         The remaining locals "explicit_link_files", "decoded_options" and
2967         "decoded_options_count" are used by multiple driver:: methods, and
2968         so become member data.  Doing so isolates the argc/argv reads and
2969         writes.  Replace "goto out" with a special exit code from
2970         new method driver::prepare_infiles.  Split out the old
2971         implementation of main into the following...
2972         (driver::main): New function, corresponding to the old "main"
2973         implementation.
2974         (driver::set_progname): New function, taken from the old
2975         "main" implementation.
2976         (driver::expand_at_files): Likewise.
2977         (driver::decode_argv): Likewise.
2978         (driver::global_initializations): Likewise.
2979         (driver::build_multilib_strings): Likewise.
2980         (driver::set_up_specs): Likewise.
2981         (driver::putenv_COLLECT_GCC): Likewise.
2982         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
2983         (driver::handle_unrecognized_options): Likewise.
2984         (driver::maybe_print_and_exit): Likewise.
2985         (driver::prepare_infiles): Likewise.
2986         (driver::do_spec_on_infiles): Likewise.
2987         (driver::maybe_run_linker): Likewise.
2988         (driver::final_actions): Likewise.
2989         (driver::get_exit_code): Likewise.
2990
2991 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
2992
2993         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2994         don't emit empty ctors.
2995
2996 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
2997
2998         * convert.c (convert_to_integer): Do not introduce useless conversions
2999         between integral types.
3000
3001 2014-10-03  David Sherwood  <david.sherwood@arm.com>
3002
3003         * ira-int.h (ira_allocno): Mark hard_regno as signed.
3004
3005 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3006
3007         * lra-constraints.c (inherit_in_ebb): Handle calls with
3008         multiple return values.
3009         * caller-save.c (save_call_clobbered_regs): Likewise.
3010
3011 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3012
3013         * tree-vect-data-refs.c (vect_permute_load_chain,
3014         vect_shift_permute_load_chain): Fix a typo in temporary var names,
3015         suffle3 to shuffle3.
3016
3017         PR libgomp/61200
3018         * omp-low.c (taskreg_contexts): New variable.
3019         (scan_omp_parallel): Push newly created context into taskreg_contexts
3020         vector and move record layout code to finish_taskreg_scan.
3021         (scan_omp_task): Likewise.
3022         (finish_taskreg_scan): New function.
3023         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3024         vector elements and release it.
3025
3026         PR target/62128
3027         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3028         of palignr arguments can't be used due to min 0 or max - min
3029         too high, try also op0, op1 order of palignr arguments.
3030
3031 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
3032
3033         * cgraph.h (ipa_polymorphic_call_context):
3034         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3035         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3036         * ipa-polymorphic-call.c
3037         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3038         past end of dynamic types.
3039         (ipa_polymorphic_call_context::stream_out,
3040         speculative_outer_type): Stream dynamic flag.
3041         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3042         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3043         Clear DYNAMIC.
3044         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3045         set it.
3046         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3047         * ipa-prop.c (update_jump_functions_after_inlining,
3048         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3049
3050 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3051
3052         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3053         up when synthesizing counts to avoid rounding errors.
3054
3055 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3056
3057         PR middle-end/63422
3058         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3059         asserts to handle incoming insanities.
3060
3061 2014-10-02  Martin Jambor  <mjambor@suse.cz>
3062
3063         PR tree-optimization/63375
3064         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3065         references.
3066
3067 2014-10-02  Olivier Hainque  <hainque@adacore.com>
3068
3069         * Makefile.in (CROSS): Define, to @CROSS.
3070
3071 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
3072
3073         PR target/62128
3074         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3075         if it expands to a single insn only.
3076         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
3077         fail unless in_order is true.  Add forward declaration.
3078         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3079         is useful for one_operand_p.
3080         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3081
3082 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3083
3084         * cgraphclones.c (build_function_type_skip_args): Do not make new
3085         type variant of old.
3086
3087 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3088
3089         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3090         when speculation is added.
3091         (ipa_edge_args): Add polymorphic_call_contexts.
3092         (ipa_get_ith_polymorhic_call_context): New accesor.
3093         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3094         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3095         (ipa_compute_jump_functions_for_edge): Compute contexts.
3096         (update_jump_functions_after_inlining): Update contexts.
3097         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3098         update dumping; add speculative edge creation.
3099         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3100         context updating.
3101         (update_indirect_edges_after_inlining): Pass down context.
3102         (ipa_edge_duplication_hook): Duplicate contexts.
3103         (ipa_write_node_info): Stream out contexts.
3104         (ipa_read_node_info): Stream in contexts.
3105         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3106         types.
3107         (try_speculative_devirtualization): New function.
3108         * ipa-utils.h (try_speculative_devirtualization): Declare.
3109
3110 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3111
3112         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3113         dumping during WPA.
3114
3115 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3116
3117         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3118         type variants.
3119
3120 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3121
3122         * ipa-polymorphic-call.c
3123         (ipa_polymorphic_call_context::restrict_to_inner_class):
3124         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3125         use speculation_consistent_p to do so; Add CONSDER_BASES
3126         and CONSIDER_PLACEMENT_NEW parameters.
3127         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3128         short circuit obvious cases.
3129         (ipa_polymorphic_call_context::dump): Improve formatting.
3130         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3131         combine_speculation_with to record speculations; Do not ICE when
3132         object is located in pointer type decl; do not ICE for methods
3133         of UNION_TYPE; do not record nonpolymorphic types.
3134         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3135         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3136         (ipa_polymorphic_call_context::combine_with): New method.
3137         (ipa_polymorphic_call_context::make_speculative): Move here; use
3138         combine speculation.
3139         * cgraph.h (ipa_polymorphic_call_context): Update
3140         restrict_to_inner_class prototype; add offset_by, make_speculative,
3141         combine_with, useless_p, combine_speculation_with and
3142         speculation_consistent_p methods.
3143         (ipa_polymorphic_call_context::offset_by): New method.
3144         (ipa_polymorphic_call_context::useless_p): New method.
3145
3146 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3147
3148         PR rtl-optimization/62151
3149         * combine.c (can_combine_p): Allow the destination register of INSN
3150         to be clobbered in I3.
3151         (subst): Do not substitute into clobbers of registers.
3152
3153 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3154
3155         PR debug/63342
3156         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3157         offset, TARGET_MEM_REF and SSA_NAME.
3158
3159         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3160         256-bit vectors for TARGET_AVX2.
3161
3162         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3163         dfirst permutation.
3164
3165         PR target/63428
3166         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3167         argument to avx2_permv2ti.
3168
3169 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3170
3171         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3172
3173 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3174
3175         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3176         (fmod<mode>3): Ditto.
3177         (fpremxf4_i387): Ditto.
3178         (reminderxf3): Ditto.
3179         (reminder<mode>3): Ditto.
3180         (fprem1xf4_i387): Ditto.
3181
3182 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3183
3184         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3185         duplicate_blocks bitmap.
3186         (remove_ctrl_stmt_and_useless_edges): Ditto.
3187         (create_block_for_threading): Ditto.
3188         (compute_path_counts): New function.
3189         (update_profile): Ditto.
3190         (recompute_probabilities): Ditto.
3191         (update_joiner_offpath_counts): Ditto.
3192         (freqs_to_counts_path): Ditto.
3193         (clear_counts_path): Ditto.
3194         (ssa_fix_duplicate_block_edges): Update profile info.
3195         (ssa_create_duplicates): Pass new parameter.
3196         (ssa_redirect_edges): Remove old profile update.
3197         (thread_block_1): New duplicate_blocks bitmap,
3198         remove old profile update.
3199         (thread_single_edge): Pass new parameter.
3200
3201 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3202
3203         PR middle-end/62120
3204         * varasm.c (decode_reg_name_and_count): Check availability for
3205         registers from ADDITIONAL_REGISTER_NAMES.
3206
3207 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3208
3209         PR plugins/63410
3210         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3211         (PLUGIN_HEADERS): Add pass-instances.def.
3212
3213 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3214
3215         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3216         iterator.
3217         * config/aarch64/aarch64-simd.md
3218         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3219         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3220         (vqdmulls_lane_s32): Fix return type.
3221         (vqdmulls_laneq_s32): New.
3222
3223 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3224
3225         PR inline-asm/63282
3226         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3227         or invert_jump_1 if jump isn't any_condjump_p.
3228
3229 2014-09-30  Terry Guo  <terry.guo@arm.com>
3230
3231         * config/arm/arm-cores.def (cortex-m7): New core name.
3232         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3233         (fpv5-d16): Ditto.
3234         * config/arm/arm-tables.opt: Regenerated.
3235         * config/arm/arm-tune.md: Regenerated.
3236         * config/arm/arm.h (TARGET_VFP5): New macro.
3237         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3238         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3239         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3240         * doc/invoke.texi: Document new cpu and fpu names.
3241
3242 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3243
3244         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3245         before sinking insn.
3246
3247 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3248
3249         * ira-int.h (ira_allocno): Add "wmode" field.
3250         * ira-build.c (create_insn_allocnos): Add new "parent" function
3251         parameter.
3252         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3253         that cannot be accessed in wmode.
3254
3255 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3256
3257         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3258         integer overflow.
3259
3260 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3261
3262         * opts.c (print_filtered_help): Print --param min/max/default
3263         with -Q.
3264
3265 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3266
3267         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3268
3269 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3270
3271         * tree-vrp.c (get_single_symbol): New function.
3272         (build_symbolic_expr): Likewise.
3273         (symbolic_range_based_on_p): New predicate.
3274         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3275         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3276         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3277         operand is symbolic and based on the other operand.
3278
3279 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3280
3281         * config/microblaze/microblaze.md (call_internal1): Use VOID
3282         instead of SI to fix "((void (*)(void)) 0)()" issue
3283
3284 2014-09-29  Nick Clifton  <nickc@redhat.com>
3285
3286         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3287         CLOBBER rtx for naked functions.
3288         (msp430_expand_epilogue): Likewise.
3289         (msp430_use_f5_series_hwmult): Cache result.
3290         (use_32bit_hwmult): Cache result.
3291         (msp430_no_hwmult): New function.
3292         (msp430_output_labelref): Use it.
3293
3294 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3295
3296         PR middle-end/63247
3297         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3298         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3299         use the alignment of avar rather than ovar.
3300
3301 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3302
3303         * config/pa/pa.c (pa_output_function_epilogue): Only update
3304         last_address when a nonnote insn is found.
3305
3306 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3307
3308         PR ipa/60665
3309         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3310
3311 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3312
3313         PR ipa/62121
3314         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3315         fix pasto in checking array size.
3316
3317 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3318
3319         PR middle-end/35545
3320         * passes.def (pass_tracer): Move before last dominator pass.
3321
3322 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3323
3324         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3325         users.
3326         (run_attempt): Handle errors of "pex_run" invocation.
3327
3328 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3329
3330         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3331         (CC1_SPEC): Define.
3332         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3333         (TARGET_ASAN_SHADOW_OFFSET): Define.
3334
3335 2014-09-26  Martin Liska  <mliska@suse.cz>
3336
3337         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3338         introduced.
3339         * cgraph.h: Likewise.
3340         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3341         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3342         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3343         * tree-ssa-alias.h: Likewise.
3344
3345 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3346             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3347
3348         * common.opt: New option.
3349         * doc/invoke.texi: Describe new option.
3350         * gcc.c (execute): Don't free first string early, but at the end
3351         of the function.  Call retry_ice if compiler exited with
3352         ICE_EXIT_CODE.
3353         (main): Factor out common code.
3354         (print_configuration): New function.
3355         (files_equal_p): Likewise.
3356         (check_repro): Likewise.
3357         (run_attempt): Likewise.
3358         (do_report_bug): Likewise.
3359         (append_text): Likewise.
3360         (try_generate_repro): Likewise
3361
3362 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3363
3364         * config/i386/i386.c (x86_print_call_or_nop): New function.
3365         (x86_function_profiler): Support -mnop-mcount and
3366         -mrecord-mcount.
3367         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3368         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3369
3370 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3371
3372         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3373         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3374         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3375         Remove.
3376
3377 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3378
3379         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3380         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3381         types_odr_comparable): Declare.
3382         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3383         * ipa-polymorphic-call.c: New file.
3384         (contains_polymorphic_type_p, possible_placement_new,
3385         ipa_polymorphic_call_context::restrict_to_inner_class,
3386         contains_type_p, decl_maybe_in_construction_p,
3387         ipa_polymorphic_call_context::stream_out,
3388         ipa_polymorphic_call_context::debug,
3389         ipa_polymorphic_call_context::stream_in,
3390         ipa_polymorphic_call_context::set_by_decl,
3391         ipa_polymorphic_call_context::set_by_invariant,
3392         walk_ssa_copies,
3393         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3394         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3395         extr_type_from_vtbl_ptr_store, record_known_type
3396         check_stmt_for_type_change,
3397         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3398         ipa-devirt.c
3399         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3400         and streamer-hooks.h
3401         (contains_polymorphic_type_p, possible_placement_new,
3402         ipa_polymorphic_call_context::restrict_to_inner_class,
3403         contains_type_p, decl_maybe_in_construction_p,
3404         ipa_polymorphic_call_context::stream_out,
3405         ipa_polymorphic_call_context::debug,
3406         ipa_polymorphic_call_context::stream_in,
3407         ipa_polymorphic_call_context::set_by_decl,
3408         ipa_polymorphic_call_context::set_by_invariant,
3409         walk_ssa_copies,
3410         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3411         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3412         extr_type_from_vtbl_ptr_store, record_known_type
3413         check_stmt_for_type_change,
3414         ipa_polymorphic_call_context::get_dynamic_type): Move to
3415         ipa-polymorphic-call.c
3416         (type_all_derivations_known_p, types_odr_comparable,
3417         types_must_be_same_for_odr): Export.
3418         (type_known_to_have_no_deriavations_p): New function.
3419         * Makefile.in: Add ipa-polymorphic-call.c
3420
3421 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3422
3423         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3424         for better storage.
3425         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3426         (possible_polymorphic_call_targets): Instead of computing both
3427         speculative and non-speculative answers, do just one at a time.
3428         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3429         (dump_targets): Break out from ...
3430         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3431         and non-speculative lists.
3432         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3433         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3434
3435 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3436
3437         PR rtl-optimization/63348
3438         * emit-rtl.c (try_split): Do not emit extra barrier.
3439
3440 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
3441
3442         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3443         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3444         new predicates.
3445         (aarch64_<sur>shll2_n<mode>): Likewise.
3446         (aarch64_<sur>shr_n<mode>): Likewise.
3447         (aarch64_<sur>sra_n<mode>: Likewise.
3448         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3449         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3450         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3451         * config/aarch64/iterators.md (ve_mode): New.
3452         (offsetlr): Remap to infix text for use in new predicates.
3453         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3454         (aarch64_simd_shift_imm_hi): Likewise.
3455         (aarch64_simd_shift_imm_si): Likewise.
3456         (aarch64_simd_shift_imm_di): Likewise.
3457         (aarch64_simd_shift_imm_offset_qi): Likewise.
3458         (aarch64_simd_shift_imm_offset_hi): Likewise.
3459         (aarch64_simd_shift_imm_offset_si): Likewise.
3460         (aarch64_simd_shift_imm_offset_di): Likewise.
3461         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3462         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3463         (aarch64_simd_shift_imm_bitsize_si): Likewise.
3464         (aarch64_simd_shift_imm_bitsize_di): Likewise.
3465
3466 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
3467
3468         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3469         new created BB as the intersection of live-in from "old_dest" and
3470         live-out from "bb".
3471
3472 2014-09-25  Felix Yang  <felix.yang@huawei.com>
3473
3474         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3475         * genautomata.c (merge_states): Ditto.
3476
3477 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
3478
3479         PR target/62218
3480         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3481         in instruction sequence.
3482
3483 2014-09-25  Nick Clifton  <nickc@redhat.com>
3484
3485         PR target/62218
3486         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3487         in instruction sequence.
3488
3489 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3490
3491         PR target/63335
3492         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
3493         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
3494
3495 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3496             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3497             Anna Tikhonova  <anna.tikhonova@intel.com>
3498             Ilya Tocar  <ilya.tocar@intel.com>
3499             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3500             Ilya Verbin  <ilya.verbin@intel.com>
3501             Kirill Yukhin  <kirill.yukhin@intel.com>
3502             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3503
3504         * config/i386/sse.md
3505         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
3506         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
3507         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
3508         (define_expand "<avx512>_perm<mode>_mask"): ... this.
3509         Use VI8F_256_512 mode iterator.
3510         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
3511         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
3512
3513 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3515             Anna Tikhonova  <anna.tikhonova@intel.com>
3516             Ilya Tocar  <ilya.tocar@intel.com>
3517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3518             Ilya Verbin  <ilya.verbin@intel.com>
3519             Kirill Yukhin  <kirill.yukhin@intel.com>
3520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3521
3522         * config/i386/sse.md
3523         (define_insn "avx_movshdup256<mask_name>"): Add masking.
3524         (define_insn "sse3_movshdup<mask_name>"): Ditto.
3525         (define_insn "avx_movsldup256<mask_name>"): Ditto.
3526         (define_insn "sse3_movsldup<mask_name>"): Ditto.
3527         (define_insn "vec_dupv2df<mask_name>"): Ditto.
3528         (define_insn "*vec_concatv2df"): Add EVEX version.
3529
3530 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3531             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3532             Anna Tikhonova  <anna.tikhonova@intel.com>
3533             Ilya Tocar  <ilya.tocar@intel.com>
3534             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3535             Ilya Verbin  <ilya.verbin@intel.com>
3536             Kirill Yukhin  <kirill.yukhin@intel.com>
3537             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3538
3539         * config/i386/sse.md
3540         (define_insn "vec_set<mode>_0"): Add EVEX version.
3541
3542 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3543             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3544             Anna Tikhonova  <anna.tikhonova@intel.com>
3545             Ilya Tocar  <ilya.tocar@intel.com>
3546             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3547             Ilya Verbin  <ilya.verbin@intel.com>
3548             Kirill Yukhin  <kirill.yukhin@intel.com>
3549             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3550
3551         * config/i386/sse.md
3552         (define_insn
3553         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
3554         New.
3555         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3556         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
3557         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
3558         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
3559         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
3560         (define_expand "sse2_cvtpd2ps_mask): New.
3561         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
3562         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
3563
3564 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3565             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3566             Anna Tikhonova  <anna.tikhonova@intel.com>
3567             Ilya Tocar  <ilya.tocar@intel.com>
3568             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3569             Ilya Verbin  <ilya.verbin@intel.com>
3570             Kirill Yukhin  <kirill.yukhin@intel.com>
3571             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3572
3573         * config/i386/i386.c
3574         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
3575         (ufix_notruncv8dfv8si2_mask_round): ... this.
3576         * config/i386/sse.md
3577         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
3578         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
3579         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
3580         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
3581         (define_expand "sse2_cvtpd2dq"): Delete.
3582         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
3583         make 2nd operand const0 vector.
3584         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
3585         Delete.
3586         (define_mode_attr pd2udqsuff): New.
3587         (define_insn
3588         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
3589         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
3590         (define_insn "*avx_cvttpd2dq256_2"): Delete.
3591         (define_expand "sse2_cvttpd2dq"): Ditto.
3592         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
3593         make 2nd operand const0 vector.
3594
3595 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
3596
3597         PR tree-optimization/63341
3598         * tree-vectorizer.h (vect_create_data_ref_ptr,
3599         vect_create_addr_base_for_vector_ref): Add another tree argument
3600         defaulting to NULL_TREE.
3601         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
3602         argument, pass it down to vect_create_addr_base_for_vector_ref.
3603         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
3604         add that to base_offset too if non-NULL.
3605         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
3606         for dr_explicit_realign_optimized set it to vector byte size
3607         - 1 instead of setting offset, pass byte_offset down to
3608         vect_create_data_ref_ptr.
3609
3610 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3611
3612         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
3613         forgotten debug output; canonicalize querries more wtih LTO.
3614
3615 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3616
3617         * cgraph.h (class ipa_polymorphic_call_context): Move here from
3618         ipa-utils.h; add stream_int and stream_out methods.
3619         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
3620         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
3621         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
3622         add CONTEXT.
3623         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3624         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3625         ipa_polymorphic_call_context::clear_speculation,
3626         ipa_polymorphic_call_context::clear_outer_type): Move here from
3627         ipa-utils.h
3628         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
3629         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3630         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3631         ipa_polymorphic_call_context::clear_speculation,
3632         ipa_polymorphic_call_context::clear_outer_type): Likewise.
3633         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
3634         streamer-hooks.h
3635         (ipa_polymorphic_call_context::stream_out): New method.
3636         (ipa_polymorphic_call_context::stream_in): New method.
3637         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
3638         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
3639         OUTER_TYPE.
3640         (ipa_analyze_call_uses): Simplify.
3641         (update_indirect_edges_after_inlining): Do not care about outer_type.
3642         (ipa_write_indirect_edge_info): Update.
3643         (ipa_write_indirect_edge_info): Likewise.
3644         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
3645         (dump_edge_flags): Break out from ...
3646         (cgraph_node::dump): ... here; dump indirect edges.
3647
3648 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3649
3650         * ipa-utils.h (polymorphic_call_context): Add
3651         metdhos dump, debug and clear_outer_type.
3652         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3653         (ipa_polymorphic_call_context::clear_outer_type): New method.
3654         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
3655         * ipa-devirt.c (types_odr_comparable): New function.
3656         (types_must_be_same_for_odr): New function.
3657         (odr_subtypes_equivalent_p): Simplify.
3658         (possible_placement_new): Break out from ...
3659         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
3660         be more cuatious about returning false in cases the context may be
3661         valid in derived type or via placement new.
3662         (contains_type_p): Clear maybe_derived_type
3663         (ipa_polymorphic_call_context::dump): New method.
3664         (ipa_polymorphic_call_context::debug): New method.
3665         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
3666         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
3667         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3668         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
3669         to suceed on all valid cases; remove confused sanity check.
3670         (dump_possible_polymorphic_call_targets): Simplify.
3671
3672 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
3673
3674         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
3675         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
3676         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
3677         varpool.c: Rename all instances of DECL_ABSTRACT to
3678         DECL_ABSTRACT_P.
3679
3680 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3681
3682         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
3683         special handling for stores whose SET_SRC is an UNSPEC (such as
3684         UNSPEC_STVE).
3685
3686 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
3687
3688         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
3689         !REG_P (src) to release more instruction sink opportunities.
3690
3691 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
3692
3693         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
3694         move costs for 128-bit types.
3695
3696 2014-09-24  Martin Jambor  <mjambor@suse.cz>
3697
3698         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
3699         when duplicating a PASS_THROUGH jump function when creating a
3700         speculative edge.
3701
3702 2014-09-24  Marek Polacek  <polacek@redhat.com>
3703
3704         PR c/61405
3705         PR c/53874
3706         * asan.c (maybe_instrument_call): Add default case.
3707         * ipa-pure-const.c (special_builtin_state): Likewise.
3708         * predict.c (expr_expected_value_1): Likewise.
3709         * lto-streamer-out.c (write_symbol): Initialize variable.
3710
3711 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3712
3713         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
3714         the lane.
3715         (vmuld_laneq_f64): Likewise.
3716         (vmuls_lane_f32): Likewise.
3717         (vmuls_laneq_f32): Likewise.
3718
3719 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
3720
3721         PR bootstrap/63235
3722         * varpool.c (varpool_node::add): Pass decl attributes
3723         to lookup_attribute.
3724
3725 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
3726
3727         PR sanitizer/63316
3728         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
3729
3730 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3731
3732         PR tree-optimization/63266
3733         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
3734         marker for unknown byte value.
3735         (MARKER_MASK): New macro.
3736         (MARKER_BYTE_UNKNOWN): New macro.
3737         (HEAD_MARKER): New macro.
3738         (do_shift_rotate): Mark bytes with unknown values due to sign
3739         extension when doing an arithmetic right shift. Replace hardcoded
3740         mask for marker by new MARKER_MASK macro.
3741         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
3742         numbers accordingly.
3743
3744 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3745             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3746             Anna Tikhonova  <anna.tikhonova@intel.com>
3747             Ilya Tocar  <ilya.tocar@intel.com>
3748             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3749             Ilya Verbin  <ilya.verbin@intel.com>
3750             Kirill Yukhin  <kirill.yukhin@intel.com>
3751             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3752
3753         * config/i386/sse.md
3754         (define_insn
3755         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
3756         Add masking.
3757         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
3758         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
3759
3760 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3761             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3762             Anna Tikhonova  <anna.tikhonova@intel.com>
3763             Ilya Tocar  <ilya.tocar@intel.com>
3764             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3765             Ilya Verbin  <ilya.verbin@intel.com>
3766             Kirill Yukhin  <kirill.yukhin@intel.com>
3767             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3768
3769         * config/i386/sse.md
3770         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
3771         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
3772         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
3773         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
3774         (define_expand "avx512vl_pshuflw_mask"): New.
3775         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
3776         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
3777         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
3778         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
3779         (define_expand "avx512vl_pshufhw_mask"): New.
3780         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
3781
3782 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3783             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3784             Anna Tikhonova  <anna.tikhonova@intel.com>
3785             Ilya Tocar  <ilya.tocar@intel.com>
3786             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3787             Ilya Verbin  <ilya.verbin@intel.com>
3788             Kirill Yukhin  <kirill.yukhin@intel.com>
3789             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3790
3791         * config/i386/i386.c
3792         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
3793         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
3794         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
3795         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
3796         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
3797         * config/i386/sse.md
3798         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
3799         (define_insn
3800         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
3801         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
3802         (define_insn
3803         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
3804         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
3805         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
3806         (define_expand "avx512vl_pshufd_mask"): New.
3807         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
3808
3809 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3810             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3811             Anna Tikhonova  <anna.tikhonova@intel.com>
3812             Ilya Tocar  <ilya.tocar@intel.com>
3813             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3814             Ilya Verbin  <ilya.verbin@intel.com>
3815             Kirill Yukhin  <kirill.yukhin@intel.com>
3816             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3817
3818         * config/i386/i386.c
3819         (CODE_FOR_avx2_extracti128): Rename to ...
3820         (CODE_FOR_avx_vextractf128v4di): this.
3821         (CODE_FOR_avx2_inserti128): Rename to ...
3822         (CODE_FOR_avx_vinsertf128v4di): this.
3823         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
3824         CODE_FOR_avx_vextractf128v4di.
3825         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
3826         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
3827         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
3828         CODE_FOR_avx512vl_vinsertv8si.
3829         * config/i386/sse.md
3830         (define_expand
3831         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
3832         AVX512_VEC mode iterator.
3833         (define_insn
3834         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
3835         Ditto.
3836         (define_expand
3837         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
3838         AVX512_VEC_2 mode iterator.
3839         (define_insn "vec_set_lo_<mode><mask_name>"): New.
3840         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3841         (define_expand "avx512vl_vinsert<mode>"): Ditto.
3842         (define_insn "avx2_vec_set_lo_v4di"): Delete.
3843         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
3844         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
3845         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3846         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
3847         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3848         (define_expand "avx2_extracti128"): Delete.
3849         (define_expand "avx2_inserti128"): Ditto.
3850
3851 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3852             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3853             Anna Tikhonova  <anna.tikhonova@intel.com>
3854             Ilya Tocar  <ilya.tocar@intel.com>
3855             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3856             Ilya Verbin  <ilya.verbin@intel.com>
3857             Kirill Yukhin  <kirill.yukhin@intel.com>
3858             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3859
3860         * config/i386/sse.md
3861         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
3862         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
3863         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
3864         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
3865         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
3866         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
3867         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
3868         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
3869         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
3870         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
3871         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
3872         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
3873         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
3874
3875 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3876
3877         PR rtl-optimization/63210
3878         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
3879         HARD_REGNO is not available for CONFLICT_A.
3880
3881 2014-09-23  Andi Kleen  <ak@linux.intel.com>
3882
3883         * cgraph.h (symtab_node): Add no_reorder attribute.
3884         (symbol_table::output_asm_statements): Remove.
3885         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
3886         (cgraph_node::create_version_clone): Dito.
3887         (symbol_table::output_asm_statements): Remove.
3888         * trans-mem.c (ipa_tm_create_version_alias): Dito.
3889         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
3890         (output_in_order): Add no_reorder flag. Only handle no_reorder
3891         nodes when set.
3892         (symbol_table::compile): Add separate pass for no_reorder nodes.
3893         (process_common_attributes): Set no_reorder flag in symtab node.
3894         Add node argument.
3895         (process_function_and_variable_attributes): Pass symtab nodes to
3896         process_common_attributes.
3897         * doc/extend.texi (no_reorder): Document no_reorder attribute.
3898         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
3899         (lto_output_varpool_node): Dito.
3900         (input_overwrite_node): Dito.
3901         (input_varpool_node): Dito.
3902         * varpool.c (varpool_node::add): Set no_reorder attribute.
3903         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
3904         (symbol_table::output_variables): Dito.
3905         * symtab.c (symtab_node::dump_base): Print no_reorder.
3906
3907 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
3908
3909         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
3910         be INVALID_REGNUM.
3911
3912 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
3913
3914         * configure: Regenerate.
3915
3916 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
3917
3918         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
3919         when result_mode == shift_mode.
3920
3921 2014-09-23  Kostya Serebryany  <kcc@google.com>
3922
3923         Update to match the changed asan API.
3924         * asan.c (asan_global_struct): Update the __asan_global definition
3925         to match the new API.
3926         (asan_add_global): Ditto.
3927         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
3928         to __asan_init_v4.
3929
3930 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3931
3932         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
3933         refine the constraints used on 32/64-bit floating point moves.
3934         (f32_av): Likewise.
3935         (f64_vsx): Likewise.
3936         (f64_dm): Likewise.
3937         (f64_av): Likewise.
3938         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
3939         (BOOL_REGS_OP1): Likewise.
3940         (BOOL_REGS_OP2): Likewise.
3941         (BOOL_REGS_UNARY): Likewise.
3942         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
3943         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
3944         for moves involving VSX registers.  Do not use constraints that
3945         target VSX registers for decimal types.
3946         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
3947         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
3948
3949 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
3950
3951         * tree.h (int_bit_position): Turn into inline function;
3952         implement using wide int.
3953         * tree.c (int_bit_position): Remove.
3954
3955 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
3956
3957         PR bootstrap/63280
3958         * target-globals.c (target_globals::~target_globals): Fix location
3959         of ira_int destruction.
3960
3961 2014-09-23  Renlin Li  <renlin.li@arm.com>
3962
3963         * config/aarch64/aarch64.md (return): New.
3964         (simple_return): Likewise.
3965         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
3966         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
3967
3968 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
3969
3970         * common/config/aarch64/aarch64-common.c:
3971         (default_options aarch_option_optimization_table):
3972         Default to -fsched-pressure.
3973
3974 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
3975
3976         * cfgcleanup.c (try_optimize_cfg): Do not remove label
3977         with LABEL_PRESERVE_P flag set.
3978
3979 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3980             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3981             Anna Tikhonova  <anna.tikhonova@intel.com>
3982             Ilya Tocar  <ilya.tocar@intel.com>
3983             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3984             Ilya Verbin  <ilya.verbin@intel.com>
3985             Kirill Yukhin  <kirill.yukhin@intel.com>
3986             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3987
3988         * config/i386/sse.md
3989         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
3990         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
3991         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
3992         (define_insn "sse2_shufpd_v2df_mask"): New.
3993
3994 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3995             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3996             Anna Tikhonova  <anna.tikhonova@intel.com>
3997             Ilya Tocar  <ilya.tocar@intel.com>
3998             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3999             Ilya Verbin  <ilya.verbin@intel.com>
4000             Kirill Yukhin  <kirill.yukhin@intel.com>
4001             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4002
4003         * config/i386/sse.md
4004         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4005         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4006         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4007         (define_insn "sse_shufps_v4sf_mask"): New.
4008
4009 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4010             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4011             Anna Tikhonova  <anna.tikhonova@intel.com>
4012             Ilya Tocar  <ilya.tocar@intel.com>
4013             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4014             Ilya Verbin  <ilya.verbin@intel.com>
4015             Kirill Yukhin  <kirill.yukhin@intel.com>
4016             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4017
4018         * config/i386/sse.md
4019         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4020         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4021         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4022         (define_insn "unpcklps128_mask"): New.
4023
4024 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4025             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4026             Anna Tikhonova  <anna.tikhonova@intel.com>
4027             Ilya Tocar  <ilya.tocar@intel.com>
4028             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4029             Ilya Verbin  <ilya.verbin@intel.com>
4030             Kirill Yukhin  <kirill.yukhin@intel.com>
4031             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4032
4033         * config/i386/sse.md
4034         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4035         (define_insn "avx512vl_unpckhpd128_mask"): New.
4036         (define_expand "avx_movddup256<mask_name>"): Add masking.
4037         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4038         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4039         (define_insn "avx512vl_unpcklpd128_mask"): New.
4040
4041 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
4042
4043         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4044         * doc/tm.texi: Regenerate.
4045         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4046         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4047         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4048         Remove.
4049         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4050         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4051         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4052         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4053         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4054         Remove.
4055         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4056         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4057         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4058         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4059         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4060         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4061         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4062         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4063         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4064         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4065         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4066         Remove.
4067
4068 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
4069
4070         * tree-ssa-ccp.c (prop_value_d): Rename to ...
4071         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4072         * ipa-prop.c (struct type_change_info): Rename to ...
4073         (prop_type_change_info): ... this; update uses.
4074         * ggc-page.c (globals): Rename to ...
4075         (static struct ggc_globals): ... this; update uses.
4076         * tree-ssa-loop-im.c (mem_ref): Rename to ...
4077         (im_mem_ref): ... this; update uses.
4078         * ggc-common.c (loc_descriptor): Rename to ...
4079         (ggc_loc_descriptor): ... this; update uses.
4080         * lra-eliminations.c (elim_table): Rename to ...
4081         (lra_elim_table): ... this; update uses.
4082         * bitmap.c (output_info): Rename to ...
4083         (bitmap_output_info): ... this; update uses.
4084         * gcse.c (expr): Rename to ...
4085         (gcse_expr) ... this; update uses.
4086         (occr): Rename to ...
4087         (gcse_occr): .. this; update uses.
4088         * tree-ssa-copy.c (prop_value_d): Rename to ...
4089         (prop_value_t): ... this.
4090         * predict.c (block_info_def): Rename to ...
4091         (block_info): ... this; update uses.
4092         (edge_info_def): Rename to ...
4093         (edge_info): ... this; update uses.
4094         * profile.c (bb_info): Rename to ...
4095         (bb_profile_info): ... this; update uses.
4096         * alloc-pool.c (output_info): Rename to ...
4097         (pool_output_info): ... this; update uses.
4098         * ipa-cp.c (topo_info): Rename to ..
4099         (ipa_topo_info): ... this; update uses.
4100         * tree-nrv.c (nrv_data): Rename to ...
4101         (nrv_data_t): ... this; update uses.
4102         * ipa-split.c (bb_info): Rename to ...
4103         (split_bb_info): ... this one.
4104         * profile.h (edge_info): Rename to ...
4105         (edge_profile_info): ... this one; update uses.
4106         * dse.c (bb_info): Rename to ...
4107         (dse_bb_info): ... this one; update uses.
4108         * cprop.c (occr): Rename to ...
4109         (cprop_occr): ... this one; update uses.
4110         (expr): Rename to ...
4111         (cprop_expr): ... this one; update uses.
4112
4113 2014-09-22  Jason Merrill  <jason@redhat.com>
4114
4115         * Makefile.in (check-parallel-%): Add @.
4116
4117 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4118
4119         * config/aarch64/geniterators.sh: New.
4120         * config/aarch64/iterators.md (VDQF_DF): New.
4121         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4122         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4123
4124 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4125
4126         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4127         -lnosys when -msim absent.
4128
4129 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4130
4131         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4132
4133 2014-09-22  Richard Biener  <rguenther@suse.de>
4134
4135         * gimplify.c (gimplify_init_constructor): Do not leave
4136         non-GIMPLE vector constructors around.
4137         * tree-cfg.c (verify_gimple_assign_single): Verify that
4138         CONSTRUCTORs have gimple elements.
4139
4140 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4141
4142         PR debug/63328
4143         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4144         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4145         instead of a normal gimple assignment stmt.
4146
4147 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4148
4149         * config/bfin/bfin.md: Fix use of constraints in define_split.
4150
4151 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4152
4153         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4154         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4155
4156 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4157
4158         * hard-reg-set.h: Include hash-table.h.
4159         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4160         field.
4161         * target-globals.c (target_globals::~target_globals): Call
4162         hard_regs->finalize.
4163         * rtl.h (subreg_shape): New structure.
4164         (shape_of_subreg): New function.
4165         (simplifiable_subregs): Declare.
4166         * reginfo.c (simplifiable_subreg): New structure.
4167         (simplifiable_subregs_hasher): Likewise.
4168         (simplifiable_subregs): New function.
4169         (invalid_mode_changes): Delete.
4170         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4171         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4172         Record valid mode changes in valid_mode_changes.
4173         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4174         Update calls to record_subregs_of_mode.
4175         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4176         handling.  Initialize new variables.  Update call to
4177         find_subregs_of_mode.
4178         (invalid_mode_change_p): Check new variables instead of
4179         invalid_mode_changes.
4180         (finish_subregs_of_mode): Finalize new variables instead of
4181         invalid_mode_changes.
4182         (target_hard_regs::finalize): New function.
4183         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4184         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4185
4186 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4187
4188         * combine.c (subst): Use simplify_subreg_regno rather than
4189         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4190
4191 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4192
4193         * rtl.h (subreg_info): Expand commentary
4194         * rtlanal.c (subreg_get_info): Likewise.
4195
4196 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4197
4198         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4199         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4200         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4201
4202 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4203
4204         * config/arm/arm.c: #include "tm-constrs.h"
4205         (thumb1_size_rtx_costs): Adjust rtx costs.
4206
4207 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4208
4209         * configure.ac (target_header_dir): Move block defining
4210         this to before the block setting inhibit_libc.
4211         (inhibit_libc): When considering $with_headers, just
4212         check it it's explicitly "no".  If not, also check if
4213         $target_header_dir/stdio.h is present.  If not, set
4214         inhibit_libc=true.
4215         * configure: Regenerate.
4216
4217 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4218
4219         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4220
4221 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4222
4223         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4224         insn for divides by integer powers of two.
4225         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4226         (mod<mode>3): Fix formatting.
4227         (three anonymous define_insn and two define_split): Delete.
4228
4229 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4230
4231         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4232         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4233         (floatdisf2_internal2): Ditto.
4234         (ashrdi3_no_power): Ditto.  Fix formatting.
4235
4236 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4237
4238         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4239         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4240         Tidy.
4241
4242 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4243
4244         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4245         constant, use addsi3 directly.
4246         (three anonymous define_insn, two define_split): Delete.
4247         (sub<mode>3): Move.  Do not allow constant second operand.
4248         Generate different insn for constant first operand.
4249         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4250         (subf<mode>3_imm): New.
4251         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4252         (*plus_ltu<mode>): Only handle registers.
4253         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4254         (*plus_gtu<mode>): Only handle registers.
4255         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4256
4257 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4258
4259         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4260         (iorxor): New code_attr.
4261         (IORXOR): New code_attr.
4262         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4263         (ior<mode>3, xor<mode>3): Delete.
4264         (<iorxor><mode>3): New.
4265         (splitter for "big" integer ior, xor): New.
4266         (*bool<mode>3): Move.  Also handle AND.
4267         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4268         (splitter for "big" integer ior, xor): Delete.
4269
4270 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4271
4272         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4273         (two anonymous define_insn and two define_split): Delete.
4274         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4275
4276 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4277
4278         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4279         (two anonymous define_insn and two define_split): Delete.
4280         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4281
4282 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4283
4284         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4285
4286 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4287
4288         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4289         (input_operand): Do not allow ca_operand.
4290         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4291         carry bit, allow SImode and Pmode.
4292         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4293
4294 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4295
4296         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4297         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4298         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4299         (*call_rex64_ms_sysv): Remove.
4300         (*call_value_rex64_ms_sysv): Ditto.
4301         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4302
4303 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4304
4305         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4306         operand 3 to "CnL".
4307
4308 2014-09-20  Andreas Schwab  <schwab@suse.de>
4309
4310         * config/ia64/ia64.md: Remove constraints from define_split
4311         patterns.
4312
4313 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4314
4315         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4316         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4317         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4318         (get_dynamic_type): Remove.
4319         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4320         (clear_speculation): Bring to ipa-deivrt.h
4321         (get_class_context): Rename to ...
4322         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4323         (contains_type_p): Update.
4324         (get_dynamic_type): Rename to ...
4325         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4326         (possible_polymorphic_call_targets): UPdate.
4327         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4328         * ipa-prop.c (ipa_analyze_call_uses): Update.
4329
4330 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4331
4332         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4333         privatize dynamic TLS variables.
4334
4335 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4336
4337         * diagnostic.c (warning_n): New function.
4338         * diagnostic-core.h (warning_n): Declare.
4339         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4340         output dynamic counts when available.
4341
4342 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4343
4344         PR tree-optimization/63255
4345         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4346         issue in setting body_removed flag.
4347
4348 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4349
4350         PR c++/61825
4351         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4352         that visibility change is possible
4353         (handle_weakref_attribute): Likewise.
4354         * cgraph.h (symtab_node): Add method get_create and
4355         field refuse_visibility_changes.
4356         (symtab_node::get_create): New method.
4357         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4358         * varasm.c (mark_weak): Verify that visibility change is
4359         possible.
4360
4361 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4362
4363         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4364         for base_reg_operand to be common between LO_SUM and PLUS.
4365         (fusion_gpr_mem_combo): New predicate to match a fused address
4366         that combines the addis and memory offset address.
4367
4368         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4369         calling signature.
4370         (emit_fusion_gpr_load): Likewise.
4371
4372         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4373         signature to pass each argument separately, rather than
4374         using an operands array.  Rewrite the insns found by peephole2 to
4375         be a single insn, rather than hoping the insns will still be
4376         together when the peephole pass is done.  Drop being called via a
4377         normal peephole.
4378         (emit_fusion_gpr_load): Change calling signature to be called from
4379         the fusion_gpr_load_<mode> insns with a combined memory address
4380         instead of the peephole pass passing the addis and offset
4381         separately.
4382
4383         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4384         fusion.
4385         (power8 fusion peephole): Drop support for doing power8 via a
4386         normal peephole that was created by the peephole2 pass.
4387         (power8 fusion peephole2): Create a new insn with the fused
4388         address, so that the fused operation is kept together after
4389         register allocation is done.
4390         (fusion_gpr_load_<mode>): Likewise.
4391
4392 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4393
4394         PR lto/63286
4395         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4396
4397 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4398
4399         * recog.c (scratch_operand): Do not simply allow all hard registers:
4400         only allow those that are allocatable.
4401
4402 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4403
4404         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4405         comments and fix spacing to conform to coding style.
4406
4407 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4408
4409         * genrecog.c (validate_pattern): Allow empty constraints in
4410         a match_scratch.
4411
4412 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4413
4414         * dwarf2out.c (decl_ultimate_origin): Update comment.
4415         * tree.c (block_ultimate_origin): Same.
4416
4417 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4418
4419         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4420         Update GCC version name to GCC 5.
4421         (rs6000_function_arg_boundary): Likewise.
4422         (rs6000_function_arg): Likewise.
4423
4424 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4425
4426         * config/sh/sh.md: Fix use of constraints in define_split.
4427
4428 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4429
4430         PR ipa/61998
4431         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4432
4433 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4434
4435         * doc/md.texi (Modifiers): Consistently use "read/write"
4436         nomenclature rather than "input/output".
4437         * genrecog.c (constraints_supported_in_insn_p): New.
4438         (validate_pattern): If needed, also check constraints on
4439         MATCH_SCRATCH operands.
4440         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4441         operands with no '=' or '+' modifier.
4442
4443 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4444
4445         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4446         scratch register as written.
4447
4448 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4449
4450         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4451         assignment.
4452
4453 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4454
4455         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4456         expanders.
4457
4458 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4459
4460         PR target/62662
4461         * config/s390/s390.c (s390_emit_epilogue): When doing the return
4462         address load optimization force s390_optimize_prologue to leave it
4463         that way.  Only do the optimization if we already decided to push
4464         r14 into a stack slot.
4465
4466 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
4467
4468         * asan.c (build_check_stmt): Alignment arg was added.
4469         (asan_expand_check_ifn): Optimization for alignment >= 8.
4470
4471 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4472
4473         * config/i386/vxworksae.h: Remove obsolete definitions.
4474         (STACK_CHECK_PROTECT): Define.
4475         * config/i386/vx-common.h: Remove.  Merge contents within
4476         config/i386/vxworks.h.
4477         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4478         i386/vx-common.h.
4479
4480 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4481
4482         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4483         * config/rs6000/t-vxworksmils: New file.
4484         * config/rs6000/vxworksmils.h: New file.
4485
4486 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4487
4488         * varasm.c (default_section_type_flags): Flag .persistent.bss
4489         sections as SECTION_BSS.
4490
4491 2014-09-19  Nick Clifton  <nickc@redhat.com>
4492
4493         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
4494         pop'ed registers so that DCE does not eliminate them.
4495
4496 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
4497
4498         PR lto/63298
4499         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
4500
4501 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
4502
4503         * system.h (LIBGCC2_TF_CEXT): Poison.
4504         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
4505         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
4506         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
4507         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
4508         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
4509         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
4510         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
4511         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
4512         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
4513
4514 2014-09-19  Kito Cheng  <kito@0xlab.org>
4515
4516         * except.h: Fix header guard.
4517         * addresses.h: Add missing header guard.
4518         * cfghooks.h: Likewise.
4519         * collect-utils.h: Likewise.
4520         * collect2-aix.h: Likewise.
4521         * conditions.h: Likewise.
4522         * cselib.h: Likewise.
4523         * dwarf2asm.h: Likewise.
4524         * graphds.h: Likewise.
4525         * graphite-scop-detection.h: Likewise.
4526         * gsyms.h: Likewise.
4527         * hw-doloop.h: Likewise.
4528         * incpath.h: Likewise.
4529         * ipa-inline.h: Likewise.
4530         * ipa-ref.h: Likewise.
4531         * ira-int.h: Likewise.
4532         * ira.h: Likewise.
4533         * lra-int.h: Likewise.
4534         * lra.h: Likewise.
4535         * lto-section-names.h: Likewise.
4536         * read-md.h: Likewise.
4537         * reload.h: Likewise.
4538         * rtl-error.h: Likewise.
4539         * sdbout.h: Likewise.
4540         * targhooks.h: Likewise.
4541         * tree-affine.h: Likewise.
4542         * xcoff.h: Likewise.
4543         * xcoffout.h: Likewise.
4544
4545 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4546
4547         PR debug/63285
4548         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
4549         if advance != 0.
4550
4551 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4552
4553         PR target/61360
4554         * lra.c (lra): Call recog_init.
4555
4556 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
4557
4558         PR c++/62017
4559         * asan.c (transform_statements): Don't instrument clobber statements.
4560
4561 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4562
4563         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
4564         to neon_load1_1reg<q>.
4565
4566 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
4567
4568         PR debug/63284
4569         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
4570         if there are only debug stmts after the noreturn call, instead
4571         remove the debug stmts.
4572
4573 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
4574
4575         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
4576         (odr_types_equivalent_p): Use pair hash.
4577         (odr_subtypes_equivalent_p): Likewise, do structural compare
4578         on ODR types that may be mismatched.
4579         (warn_odr): Support warning when only one field is given.
4580         (odr_types_equivalent_p): Strenghten comparsions made;
4581         support VOIDtype.
4582         (add_type_duplicate): Update VISITED hash set.
4583
4584 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4585
4586         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
4587         Enable selection of 'posix' or no thread model.
4588
4589 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
4590
4591         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
4592         when architecture is older than ARMv7.
4593
4594 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
4595
4596         PR target/61853
4597         * config/pa/pa.c (pa_function_value): Directly handle aggregates
4598         that fit exactly in a word or double word.
4599
4600 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
4601
4602         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
4603         zmm/k regs support.
4604
4605 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4606             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4607             Anna Tikhonova  <anna.tikhonova@intel.com>
4608             Ilya Tocar  <ilya.tocar@intel.com>
4609             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4610             Ilya Verbin  <ilya.verbin@intel.com>
4611             Kirill Yukhin  <kirill.yukhin@intel.com>
4612             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4613
4614         * config/i386/i386.c
4615         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
4616         * config/i386/sse.md
4617         (define_mode_iterator VI48F_256): New.
4618         (define_mode_attr extract_type): Ditto.
4619         (define_mode_attr extract_suf): Ditto.
4620         (define_mode_iterator AVX512_VEC): Ditto.
4621         (define_expand
4622         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
4623         AVX512_VEC.
4624         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
4625         (define_insn
4626         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
4627         Ditto.
4628         (define_mode_attr extract_type_2): Ditto.
4629         (define_mode_attr extract_suf_2): Ditto.
4630         (define_mode_iterator AVX512_VEC_2): Ditto.
4631         (define_expand
4632         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
4633         AVX512_VEC_2 mode iterator.
4634         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4635         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
4636         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4637         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4638         (define_split for V16FI mode): Ditto.
4639         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4640         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4641         (define_split for VI8F_256 mode): Ditto.
4642         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4643         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4644         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4645         (define_split for VI4F_256 mode): Ditto.
4646         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
4647         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4648         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4649         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
4650         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
4651         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
4652         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
4653         Update `type' attribute, remove explicit `memory' attribute calculation.
4654
4655 2014-09-16  Kito Cheng  <kito@0xlab.org>
4656
4657         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
4658         ira_spilled_reg_stack_slots_num if using lra.
4659         (do_reload): Remove release ira_spilled_reg_stack_slots part.
4660         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
4661         make sure not using lra.
4662         (ira_reuse_stack_slot): Likewise.
4663         (ira_mark_new_stack_slot): Likewise.
4664
4665 2014-09-15  Andi Kleen  <ak@linux.intel.com>
4666
4667         * function.c (allocate_struct_function): Force
4668         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
4669         profiling is disabled.
4670
4671 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4672
4673         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
4674         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
4675         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
4676         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
4677         macro with statically checked member functions.
4678         * rtl.h (rtx_insn::deleted): New method.
4679         (rtx_insn::set_deleted): Likewise.
4680         (rtx_insn::set_undeleted): Likewise.
4681         (INSN_DELETED_P): Remove.
4682
4683 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4684
4685         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
4686         result of emit_jump_insn_before to a new variable.
4687         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
4688         (mark_jump_label_1): Likewise.
4689         (mark_jump_label_asm): Likewise.
4690         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
4691         * rtl.h (mark_jump_label): Adjust.
4692
4693 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
4694
4695         * Makefile.in (dg_target_exps): Remove.
4696         (check_gcc_parallelize): Change to just an upper bound number.
4697         (check-%-subtargets): Always print the non-parallelized goals.
4698         (check_p_vars, check_p_comma, check_p_subwork): Remove.
4699         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
4700         check_p_numbers3, check_p_numbers4, check_p_numbers5,
4701         check_p_numbers6): New variables.
4702         (check_p_numbers): Set to sequence from 1 to 9999.
4703         (check_p_subdirs): Set to sequence from 1 to minimum of
4704         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
4705         or 128.
4706         (check-%, check-parallel-%): Rewritten so that for parallelized
4707         testing each job runs all the *.exp files, with
4708         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
4709
4710 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4711
4712         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
4713         rtx to rtx_insn *.
4714         (arc_sets_cc_p): Likewise.
4715         * config/arc/arc.c (arc_print_operand): Use methods of
4716         "final_sequence" for clarity, and to enable strengthening of
4717         locals "jump" and "delay" from rtx to rtx_insn *.
4718         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
4719         rtx_insn *; use method of rtx_sequence for typesafety.
4720         (arc_get_insn_variants): Use insn method of rtx_sequence for
4721         typesafety.
4722         (arc_pad_return): Likewise.
4723         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
4724         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
4725         dyn_cast to rtx_sequence *, using insn method for typesafety.
4726         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
4727         rtx_sequence * and use insn method when invoking get_attr_length.
4728         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
4729         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
4730         rtx_sequence *, introducing a local "seq", using its insn method
4731         from typesafety and clarity.
4732         (add_sched_insns_for_speculation): Strengthen local "next" from
4733         rtx to rtx_insn *.
4734         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
4735         (predicate_insn): Likewise.
4736         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
4737         second param.
4738         * config/cris/cris.c (cris_notice_update_cc): Likewise.
4739         * config/epiphany/epiphany-protos.h
4740         (extern void epiphany_insert_mode_switch_use): Likewise for param
4741         "insn".
4742         (get_attr_sched_use_fpu): Likewise for param.
4743         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
4744         Likewise for param "insn".
4745         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
4746         param "insn" of "target_insert_mode_switch_use" callback.
4747         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
4748         (frv_issues_to_branch_unit_p): Likewise.
4749         (frv_pack_insn_p): Likewise.
4750         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
4751         const rtx * (i.e. mutable rtx_def * const *) to
4752         rtx_insn * const *.
4753         * config/i386/i386-protos.h (standard_sse_constant_opcode):
4754         Strengthen first param from rtx to rtx_insn *.
4755         (output_fix_trunc): Likewise.
4756         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
4757         (output_fix_trunc): Likewise.
4758         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
4759         local "insn".
4760         (min_insn_size): Likewise for param "insn".
4761         (get_mem_group): Likewise.
4762         (is_cmp): Likewise.
4763         (get_insn_path): Likewise.
4764         (get_insn_group): Likewise.
4765         (count_num_restricted): Likewise.
4766         (fits_dispatch_window): Likewise.
4767         (add_insn_window): Likewise.
4768         (add_to_dispatch_window): Likewise.
4769         (debug_insn_dispatch_info_file): Likewise.
4770         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
4771         first param.
4772         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
4773         "cmp" and local "prev".
4774         (m32c_output_compare): Likewise for param "insn".
4775         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
4776         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
4777         (define_predicate "large_insn_p"): Likewise.
4778         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
4779         param from rtx to rtx_insn *.
4780         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
4781         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
4782         (m68k_sched_attr_size): Likewise.
4783         (sched_get_opxy_mem_type): Likewise for param "insn".
4784         (m68k_sched_attr_op_mem): Likewise.
4785         (sched_mem_operand_p): Likewise.
4786         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
4787         * config/mep/mep.c (mep_multi_slot): Likewise.
4788         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
4789         first param.
4790         (mips_sync_loop_insns): Likewise.
4791         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
4792         method of "final_sequence" for typesafety.
4793         (mips_process_sync_loop): Strengthen param "insn" from rtx to
4794         rtx_insn *.
4795         (mips_output_sync_loop): Likewise.
4796         (mips_sync_loop_insns): Likewise.
4797         (mips_74k_agen_init): Likewise.
4798         (mips_sched_init): Use NULL rather than NULL_RTX when working with
4799         insns.
4800         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
4801         Strengthen param "insn" from rtx to rtx_insn *.
4802         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
4803         local "insn".
4804         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
4805         param.
4806         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
4807         "insn".  Use method of rtx_sequence for typesafety.
4808         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
4809         rtx_insn *.
4810         (branch_needs_nop_p): Likewise.
4811         (use_skip_p): Likewise.
4812         (pa_insn_refs_are_delayed): Likewise.
4813         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
4814         for locals "insn", "ninsn".
4815         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
4816         "insn".
4817         (is_cracked_insn): Likewise.
4818         (is_branch_slot_insn): Likewise.
4819         (is_nonpipeline_insn): Likewise.
4820         (insn_terminates_group_p): Likewise.
4821         (insn_must_be_first_in_group): Likewise.
4822         (insn_must_be_last_in_group): Likewise.
4823         (force_new_group): Likewise for param "next_insn".
4824         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
4825         "insn".
4826         (s390_sched_score): Likewise.
4827         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
4828         (rtx sfunc_uses_reg): Likewise for sole param.
4829         * config/sh/sh.c (sh_print_operand): Use insn method of
4830         final_sequence for typesafety.
4831         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
4832         Use insn method of final_sequence for typesafety.
4833         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
4834         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
4835         for param.
4836         (eligible_for_return_delay): Likewise.
4837         (eligible_for_sibcall_delay): Likewise.
4838         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
4839         (eligible_for_return_delay): Likewise.
4840         (eligible_for_sibcall_delay): Likewise.
4841         * config/stormy16/stormy16-protos.h
4842         (xstormy16_output_cbranch_hi): Likewise for final param.
4843         (xstormy16_output_cbranch_si): Likewise.
4844         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
4845         (xstormy16_output_cbranch_si): Likewise.
4846         * config/v850/v850-protos.h (notice_update_cc): Likewise.
4847         * config/v850/v850.c (notice_update_cc): Likewise.
4848
4849         * final.c (get_attr_length_1): Strengthen param "insn" and param
4850         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
4851         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
4852         (get_attr_min_length): Likewise.
4853         (shorten_branches): Likewise for signature of locals "length_fun"
4854         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
4855         from a checked cast and use its methods for clarity and to enable
4856         strengthening local "inner_insn" from rtx to rtx_insn *.
4857         * genattr.c (gen_attr): When writing out the prototypes of the
4858         various generated "get_attr_" functions, strengthen the params of
4859         the non-const functions from rtx to rtx_insn *.
4860         Similarly, strengthen the params of insn_default_length,
4861         insn_min_length, insn_variable_length_p, insn_current_length.
4862         (main): Similarly, strengthen the param of num_delay_slots,
4863         internal_dfa_insn_code, insn_default_latency, bypass_p,
4864         insn_latency, min_issue_delay, print_reservation,
4865         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
4866         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
4867         to hook_int_rtx_insn_unreachable.
4868         * genattrtab.c (write_attr_get): When writing out the generated
4869         "get_attr_" functions, strengthen the param "insn" from rtx to
4870         rtx_insn *, eliminating a checked cast.
4871         (make_automaton_attrs): When writing out prototypes of
4872         "internal_dfa_insn_code_", "insn_default_latency_" functions
4873         and the "internal_dfa_insn_code" and "insn_default_latency"
4874         callbacks, strengthen their params from rtx to rtx_insn *
4875         * genautomata.c (output_internal_insn_code_evaluation): When
4876         writing out code, add a checked cast from rtx to rtx_insn * when
4877         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
4878         (output_dfa_insn_code_func): Strengthen param of generated
4879         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
4880         (output_trans_func): Likewise for generated function
4881         "state_transition".
4882         (output_internal_insn_latency_func): When writing out generated
4883         function "internal_insn_latency", rename params from "insn" and
4884         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
4885         locals "insn" and "insn2" as rtx_insn * with checked casts once
4886         we've proven that we're not dealing with const0_rtx.
4887         (output_insn_latency_func):  Strengthen param of generated
4888         function "insn_latency" from rtx to rtx_insn *.
4889         (output_print_reservation_func): Likewise for generated function
4890         "print_reservation".
4891         (output_insn_has_dfa_reservation_p): Likewise for generated
4892         function "insn_has_dfa_reservation_p".
4893         * hooks.c (hook_int_rtx_unreachable): Rename to...
4894         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
4895         from rtx to rtx_insn *.
4896         * hooks.h (hook_int_rtx_unreachable): Likewise.
4897         (extern int hook_int_rtx_insn_unreachable): Likewise.
4898         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
4899         (get_attr_min_length): Likewise.
4900         * recog.c (get_enabled_alternatives): Likewise.
4901         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
4902         * reorg.c (find_end_label): Introduce local rtx "pat" and
4903         strengthen local "insn" from rtx to rtx_insn *.
4904         (redundant_insn): Use insn method of "seq" rather than element for
4905         typesafety; strengthen local "control" from rtx to rtx_insn *.
4906         * resource.c (mark_referenced_resources): Add checked cast to
4907         rtx_insn * within INSN/JUMP_INSN case.
4908         (mark_set_resources): Likewise.
4909         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
4910         rtx to rtx_insn *.
4911
4912 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4913
4914         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
4915         param "label" from rtx to rtx_insn *.
4916         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
4917         and local "op".
4918         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
4919         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
4920         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4921         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4922         * final.c (default_label_align_after_barrier_max_skip): Strengthen
4923         param from rtx to rtx_insn *.
4924         (default_loop_align_max_skip): Likewise.
4925         (default_label_align_max_skip): Likewise.
4926         (default_jump_align_max_skip): Likewise.
4927         * target.def (label_align_after_barrier_max_skip): Likewise.
4928         (loop_align_max_skip): Likewise.
4929         (label_align_max_skip): Likewise.
4930         (jump_align_max_skip): Likewise.
4931         * targhooks.h (default_label_align_after_barrier_max_skip):
4932         Likewise.
4933         (default_loop_align_max_skip): Likewise.
4934         (default_label_align_max_skip): Likewise.
4935         (default_jump_align_max_skip): Likewise.
4936
4937 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4938
4939         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
4940         from const_rtx to const rtx_insn *.  Update union members from rtx
4941         to rtx_insn *.
4942         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
4943         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
4944         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
4945         strengthen both params from const_rtx to const rtx_insn *.
4946         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
4947         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
4948         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
4949         rtx_insn *.
4950         * target.def (can_follow_jump): Strengthen both params from
4951         const_rtx to const rtx_insn *, and update default implementation
4952         from hook_bool_const_rtx_const_rtx_true to
4953         hook_bool_const_rtx_insn_const_rtx_insn_true.
4954
4955 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4956
4957         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
4958         "insn" from rtx to rtx_insn *.
4959         * sched-int.h (deps_start_bb): Likewise for 2nd param.
4960
4961 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4962             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4963             Anna Tikhonova  <anna.tikhonova@intel.com>
4964             Ilya Tocar  <ilya.tocar@intel.com>
4965             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4966             Ilya Verbin  <ilya.verbin@intel.com>
4967             Kirill Yukhin  <kirill.yukhin@intel.com>
4968             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4969
4970         * config/i386/sse.md
4971         (define_insn "vcvtph2ps<mask_name>"): Add masking.
4972         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
4973         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
4974         (define_expand "vcvtps2ph_mask"): New.
4975         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
4976         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
4977         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
4978
4979 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4980             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4981             Anna Tikhonova  <anna.tikhonova@intel.com>
4982             Ilya Tocar  <ilya.tocar@intel.com>
4983             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4984             Ilya Verbin  <ilya.verbin@intel.com>
4985             Kirill Yukhin  <kirill.yukhin@intel.com>
4986             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4987
4988         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
4989         New.
4990         (define_mode_iterator VI24_AVX512BW_1): Ditto.
4991         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
4992         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
4993         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
4994         also for TARGET_AVX512VL.
4995         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
4996
4997 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
4998
4999         * doc/install.texi (Options specification): add
5000         --disable-libsanitizer item.
5001
5002 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
5003             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5004
5005         PR target/61407
5006         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5007         and above.
5008         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5009         kernel version check to avoid incrementing it after every major OS X
5010         release.
5011         (darwin_default_min_version): Avoid static memory buffer.
5012
5013 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
5014
5015         * tree.c (need_assembler_name_p): Store C++ type mangling only
5016         for aggregates.
5017
5018 2014-09-13  Marek Polacek  <polacek@redhat.com>
5019
5020         * tree.c (protected_set_expr_location): Don't check whether T is
5021         non-null here.
5022
5023 2014-09-12  DJ Delorie  <dj@redhat.com>
5024
5025         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5026         (extend_and_shift1_hipsi2): Likewise.
5027         (extend_and_shift2_hipsi2): Likewise.
5028
5029 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
5030
5031         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5032         with NULL when dealing with an insn.
5033         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5034         from rtx to rtx_insn *.
5035         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5036         const_rtx to const rtx_insn *.
5037         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5038
5039 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
5040
5041         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5042         assert.
5043
5044 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
5045
5046         * target.def (libgcc_floating_mode_supported_p): New hook.
5047         * targhooks.c (default_libgcc_floating_mode_supported_p): New
5048         function.
5049         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5050         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5051         (LIBGCC2_HAS_TF_MODE): Remove.
5052         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5053         * doc/tm.texi: Regenerate.
5054         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5055         machine mode.
5056         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5057         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5058         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5059         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5060         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5061         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5062         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5063         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5064         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5065         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5066         function.
5067         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5068         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5069         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5070         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5071         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5072         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5073         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5074         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5075         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5076         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5077         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5078         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5079         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5080         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5081         Remove.
5082         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5083         New macro.
5084         (ia64_libgcc_floating_mode_supported_p): New function.
5085         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5086         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5087         (IA64_NO_LIBGCC_TFMODE): Define.
5088         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5089         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5090         macro.
5091         (pdp11_scalar_mode_supported_p): New function.
5092         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5093         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5094
5095 2014-09-12  Richard Biener  <rguenther@suse.de>
5096
5097         PR middle-end/63237
5098         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5099
5100 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5101
5102         * tree.c (integer_each_onep): New function.
5103         * tree.h (integer_each_onep): Declare it.
5104         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5105         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5106         (X & 1) == 0 for vector and complex.
5107
5108 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5109
5110         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5111         for A57.
5112         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5113         cost to spilling from integer to FP registers.
5114
5115 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5116
5117         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5118         move handling.
5119         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5120         are now handled correctly.
5121
5122 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5123
5124         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5125         handling of CALLER_SAVE_REGS and POINTER_REGS.
5126
5127 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5128
5129         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5130         the number of hard registers.
5131
5132 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5133             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5134             Anna Tikhonova  <anna.tikhonova@intel.com>
5135             Ilya Tocar  <ilya.tocar@intel.com>
5136             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5137             Ilya Verbin  <ilya.verbin@intel.com>
5138             Kirill Yukhin  <kirill.yukhin@intel.com>
5139             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5140
5141         * config/i386/sse.md
5142         (define_mode_iterator VI48_AVX512VL): New.
5143         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5144         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5145         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5146         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5147         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5148         "avx512f_vternlog<mode>_mask" and update mode iterator.
5149         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5150         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5151         iterator.
5152         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5153         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5154         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5155         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5156         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5157         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5158
5159 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5160             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5161             Anna Tikhonova  <anna.tikhonova@intel.com>
5162             Ilya Tocar  <ilya.tocar@intel.com>
5163             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5164             Ilya Verbin  <ilya.verbin@intel.com>
5165             Kirill Yukhin  <kirill.yukhin@intel.com>
5166             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5167
5168         * config/i386/sse.md (VI128_256): Delete.
5169         (define_mode_iterator VI124_256): New.
5170         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5171         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5172         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5173         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5174         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5175         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5176         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5177         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5178         iterator.
5179         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5180         in presence of AVX-512.
5181
5182 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5183             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5184             Anna Tikhonova  <anna.tikhonova@intel.com>
5185             Ilya Tocar  <ilya.tocar@intel.com>
5186             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5187             Ilya Verbin  <ilya.verbin@intel.com>
5188             Kirill Yukhin  <kirill.yukhin@intel.com>
5189             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5190
5191         * config/i386/sse.md
5192         (define_expand "<avx512>_gathersi<mode>"): Rename from
5193         "avx512f_gathersi<mode>".
5194         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5195         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5196         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5197         "avx512f_gatherdi<mode>".
5198         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5199         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5200         wide versions.
5201         (define_expand "<avx512>_scattersi<mode>"): Rename from
5202         "avx512f_scattersi<mode>".
5203         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5204         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5205         "avx512f_scatterdi<mode>".
5206         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5207
5208 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5209
5210         * ira.h (ira_finish_once): Delete.
5211         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5212         (target_ira_int::free_ira_costs): Likewise.
5213         (target_ira_int::free_register_move_costs): Likewise.
5214         (ira_finish_costs_once): Delete.
5215         * ira.c (free_register_move_costs): Replace with...
5216         (target_ira_int::free_register_move_costs): ...this new function.
5217         (target_ira_int::~target_ira_int): Define.
5218         (ira_init): Call free_register_move_costs as a member function rather
5219         than a global function.
5220         (ira_finish_once): Delete.
5221         * ira-costs.c (free_ira_costs): Replace with...
5222         (target_ira_int::free_ira_costs): ...this new function.
5223         (ira_init_costs): Call free_ira_costs as a member function rather
5224         than a global function.
5225         (ira_finish_costs_once): Delete.
5226         * target-globals.c (target_globals::~target_globals): Call the
5227         target_ira_int destructor.
5228         * toplev.c: Include lra.h.
5229         (finalize): Call lra_finish_once rather than ira_finish_once.
5230
5231 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5232
5233         * common.opt (flto-odr-type-merging): New flag.
5234         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5235         (types_same_for_odr): Likewise.
5236         (odr_subtypes_equivalent_p): Likewise.
5237         (add_type_duplicate): Do not walk type variants.
5238         (register_odr_type): New function.
5239         * ipa-utils.h (register_odr_type): Declare.
5240         (odr_type_p): New function.
5241         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5242         TYPE_DECLs
5243         * doc/invoke.texi (-flto-odr-type-merging): Document.
5244         * tree.c (need_assembler_name_p): Compute ODR names when asked
5245         for it.
5246         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5247
5248 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5249
5250         PR target/63228
5251         * config/i386/i386.c (ix86_option_override_internal): Also turn
5252         off OPTION_MASK_ABI_X32 for -m16.
5253
5254 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5255
5256         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5257         GPR instead of P.
5258
5259 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5260
5261         PR target/58757
5262         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5263         Directly forward to __*_DENORM_MIN__.
5264
5265 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5266
5267         * rtl.h (LABEL_REF_LABEL): New macro.
5268
5269         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5270         of XEXP (, 0), where we know that we have a LABEL_REF.
5271         * cfgbuild.c (make_edges): Likewise.
5272         (purge_dead_tablejump_edges): Likewise.
5273         * cfgexpand.c (convert_debug_memory_address): Likewise.
5274         * cfgrtl.c (patch_jump_insn): Likewise.
5275         * combine.c (distribute_notes): Likewise.
5276         * cse.c (hash_rtx_cb): Likewise.
5277         (exp_equiv_p): Likewise.
5278         (fold_rtx): Likewise.
5279         (check_for_label_ref): Likewise.
5280         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5281         (cselib_hash_rtx): Likewise.
5282         * emit-rtl.c (mark_label_nuses): Likewise.
5283         * explow.c (convert_memory_address_addr_space): Likewise.
5284         * final.c (output_asm_label): Likewise.
5285         (output_addr_const): Likewise.
5286         * gcse.c (add_label_notes): Likewise.
5287         * genconfig.c (walk_insn_part): Likewise.
5288         * genrecog.c (validate_pattern): Likewise.
5289         * ifcvt.c (cond_exec_get_condition): Likewise.
5290         (noce_emit_store_flag): Likewise.
5291         (noce_get_alt_condition): Likewise.
5292         (noce_get_condition): Likewise.
5293         * jump.c (maybe_propagate_label_ref): Likewise.
5294         (mark_jump_label_1): Likewise.
5295         (redirect_exp_1): Likewise.
5296         (rtx_renumbered_equal_p): Likewise.
5297         * lra-constraints.c (operands_match_p): Likewise.
5298         * reload.c (operands_match_p): Likewise.
5299         (find_reloads): Likewise.
5300         * reload1.c (set_label_offsets): Likewise.
5301         * reorg.c (get_branch_condition): Likewise.
5302         * rtl.c (rtx_equal_p_cb): Likewise.
5303         (rtx_equal_p): Likewise.
5304         * rtlanal.c (reg_mentioned_p): Likewise.
5305         (rtx_referenced_p): Likewise.
5306         (get_condition): Likewise.
5307         * sched-vis.c (print_value): Likewise.
5308         * varasm.c (const_hash_1): Likewise.
5309         (compare_constant): Likewise.
5310         (const_rtx_hash_1): Likewise.
5311         (output_constant_pool_1): Likewise.
5312
5313 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5314
5315         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5316         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5317         instead of minus.
5318         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5319         cr6_test_for_lt_reverse): Ditto.
5320
5321 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5322
5323         PR c++/61489
5324         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5325
5326 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5327
5328         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5329         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5330         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5331         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5332         Delete.
5333
5334         (aarch64_fold_builtin): Remove all reinterpret cases.
5335
5336         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5337
5338         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5339
5340         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5341         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5342         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5343         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5344         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5345         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5346         aarch64_reinterpretv2df<mode>): Delete.
5347
5348         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5349
5350         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5351         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5352         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5353         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5354         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5355         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5356         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5357         vreinterpret_u32_f64): Use cast.
5358
5359         * config/aarch64/iterators.md (VD_RE): Delete.
5360
5361 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5362
5363         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5364         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5365         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5366         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5367         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5368         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5369         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5370         Replace inline assembler with __aarch64_vset_lane_any.
5371
5372 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5373
5374         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5375         types.
5376         (vmull_high_lane_s32): Likewise.
5377         (vmull_high_lane_u16): Likewise.
5378         (vmull_high_lane_u32): Likewise.
5379
5380 2014-09-11  Jason Merrill  <jason@redhat.com>
5381
5382         PR c++/58678
5383         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5384
5385 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5386
5387         PR target/63223
5388         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5389         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5390         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5391
5392 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5393             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5394             Anna Tikhonova  <anna.tikhonova@intel.com>
5395             Ilya Tocar  <ilya.tocar@intel.com>
5396             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5397             Ilya Verbin  <ilya.verbin@intel.com>
5398             Kirill Yukhin  <kirill.yukhin@intel.com>
5399             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5400
5401         * config/i386/sse.md
5402         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5403         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5404         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5405         New.
5406         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5407         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5408         iterator.
5409         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5410         New.
5411         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5412         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5413         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5414         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5415         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5416         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5417         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5418         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5419         iterator.
5420         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5421         New.
5422         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5423         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5424         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5425
5426 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5427
5428         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5429         to access removed nodes.
5430
5431 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5432
5433         PR tree-optimization/63186
5434         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5435         (mark_nonssa_use): Likewise.
5436         (verify_non_ssa_vars): Verify all header blocks for label
5437         definitions.
5438
5439 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5440             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5441             Anna Tikhonova  <anna.tikhonova@intel.com>
5442             Ilya Tocar  <ilya.tocar@intel.com>
5443             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5444             Ilya Verbin  <ilya.verbin@intel.com>
5445             Kirill Yukhin  <kirill.yukhin@intel.com>
5446             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5447
5448         * config/i386/sse.md
5449         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5450         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5451         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5452         "<avx2_avx512f>_permvar<mode><mask_name>".
5453         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5454         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5455         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5456         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5457         Ditto.
5458         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5459         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5460         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5461         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5462
5463 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5464
5465         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5466         V2DF, V4SF, DF, and DI modes.
5467         (vsx_fmav2df2): Likewise.
5468         (vsx_float_fix_<mode>2): Likewise.
5469         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5470
5471 2014-09-10  Xinliang David Li  <davidxl@google.com>
5472
5473         PR target/63209
5474         * config/arm/arm.md (movcond_addsi): Handle case where source
5475         and target operands are the same.
5476
5477 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5478
5479         * final.c (this_is_asm_operands): Strengthen this variable from
5480         rtx to const rtx_insn *.
5481         * output.h (this_is_asm_operands): Likewise.
5482         * rtl-error.c (location_for_asm): Strengthen param "insn" from
5483         const_rtx to const rtx_insn *.
5484         (diagnostic_for_asm): Likewise.
5485         * rtl-error.h (error_for_asm): Likewise.
5486         (warning_for_asm): Likewise.
5487
5488 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5489
5490         * genextract.c (print_header): When writing out insn_extract to
5491         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
5492         * recog.h (insn_extract): Strengthen the param from rtx to
5493         rtx_insn *.
5494
5495 2014-09-10  Mike Stump  <mikestump@comcast.net>
5496
5497         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
5498         8.6.1.
5499
5500 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5501
5502         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
5503         (analyze): Do not set analyze flag if expand_thunk returns false;.
5504         (create_wrapper): Likewise.
5505         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5506
5507 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5508
5509         PR ipa/61654
5510         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
5511         new decl properly.  Analyze the new thunk if it is expanded.
5512
5513 2014-09-10  Andreas Schwab  <schwab@suse.de>
5514
5515         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
5516         [USED_FOR_TARGET]: Define.
5517
5518 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
5519
5520         * config/mips/mips.c (mips_secondary_reload_class): Handle
5521         regno < 0 case.
5522
5523 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
5524
5525         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
5526         assignment.
5527
5528 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
5529
5530         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
5531         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
5532         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
5533         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
5534         flag_delete_null_pointer_checks for them.
5535         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
5536         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
5537         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
5538         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
5539         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
5540         stmt's iterator.
5541         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
5542         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
5543         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
5544         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
5545         * doc/invoke.texi (-fsanitize=nonnull-attribute,
5546         -fsanitize=returns-nonnull-attribute): Document.
5547
5548         * ubsan.h (struct ubsan_mismatch_data): Removed.
5549         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5550         * ubsan.c (ubsan_source_location): For unknown locations,
5551         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
5552         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5553         Allow more than one location and arbitrary extra arguments passed
5554         in ... instead of through MISMATCH pointer.
5555         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
5556         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5557         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
5558         callers.
5559
5560 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5561             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5562             Anna Tikhonova  <anna.tikhonova@intel.com>
5563             Ilya Tocar  <ilya.tocar@intel.com>
5564             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5565             Ilya Verbin  <ilya.verbin@intel.com>
5566             Kirill Yukhin  <kirill.yukhin@intel.com>
5567             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5568
5569         * config/i386/sse.md
5570         (define_mode_iterator VI48F): New.
5571         (define_insn "<avx512>_compress<mode>_mask"): Rename from
5572         "avx512f_compress<mode>_mask" and update mode iterator.
5573         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
5574         "avx512f_compressstore<mode>_mask" and update mode iterator.
5575         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
5576         "avx512f_expand<mode>_maskz" and update mode iterator.
5577         (define_insn "<avx512>_expand<mode>_mask"): Rename from
5578         "avx512f_expand<mode>_mask" and update mode iterator.
5579
5580 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5581             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5582             Anna Tikhonova  <anna.tikhonova@intel.com>
5583             Ilya Tocar  <ilya.tocar@intel.com>
5584             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5585             Ilya Verbin  <ilya.verbin@intel.com>
5586             Kirill Yukhin  <kirill.yukhin@intel.com>
5587             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5588
5589         * config/i386/i386.c
5590         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
5591         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
5592         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
5593         avx512dq_rangepv4sf_mask.
5594         * config/i386/sse.md
5595         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
5596         UNSPEC_RANGE.
5597         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
5598         (define_insn "reduces<mode>"): Ditto.
5599         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
5600         Ditto.
5601         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
5602         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
5603         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
5604
5605 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5606             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5607             Anna Tikhonova  <anna.tikhonova@intel.com>
5608             Ilya Tocar  <ilya.tocar@intel.com>
5609             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5610             Ilya Verbin  <ilya.verbin@intel.com>
5611             Kirill Yukhin  <kirill.yukhin@intel.com>
5612             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5613
5614         * config/i386/i386.c
5615         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
5616         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
5617         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
5618         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
5619         avx512vl_getmantv2df_mask.
5620         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
5621         avx512f_vgetmantv4sf_round.
5622         * config/i386/sse.md
5623         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
5624         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
5625         mode iterator.
5626         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
5627         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
5628         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
5629         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
5630         iterator..
5631         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
5632         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
5633         update mode iterator.
5634         (define_expand
5635         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
5636         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
5637         mode iterator.
5638         (define_insn
5639         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
5640         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
5641         update mode iterator.
5642         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
5643         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
5644         iterator..
5645         (define_insn
5646         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
5647         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
5648         mode iterator..
5649         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
5650         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
5651         update mode iterator.
5652         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
5653         "avx512f_getmant<mode><round_saeonly_name>".
5654
5655 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5656
5657         PR ipa/63166
5658         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
5659
5660 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5661             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5662             Anna Tikhonova  <anna.tikhonova@intel.com>
5663             Ilya Tocar  <ilya.tocar@intel.com>
5664             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5665             Ilya Verbin  <ilya.verbin@intel.com>
5666             Kirill Yukhin  <kirill.yukhin@intel.com>
5667             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5668
5669         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
5670         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
5671         (define_mode_iterator FMAMODE_AVX512): New.
5672         (define_mode_iterator FMAMODE): Remove conditions.
5673         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
5674         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
5675         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
5676         mode iterator.
5677         (define_mode_iterator FMAMODE_NOVF512): Remove.
5678         (define_insn "*fma_fmadd_<mode>"): Rename from
5679         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
5680         FMAMODE mode iterator.
5681         (define_mode_iterator VF_SF_AVX512VL): New.
5682         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
5683         Use VF_SF_AVX512VL mode iterator.
5684         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
5685         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5686         iterator.
5687         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
5688         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5689         iterator.
5690         (define_insn "*fma_fmsub_<mode>"): Rename from
5691         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
5692         FMAMODE mode iterator.
5693         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
5694         Use VF_SF_AVX512VL mode iterator.
5695         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
5696         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5697         iterator.
5698         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
5699         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5700         iterator.
5701         (define_insn "*fma_fnmadd_<mode>"): Rename from
5702         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
5703         use FMAMODE mode iterator.
5704         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
5705         Use VF_SF_AVX512VL mode iterator.
5706         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
5707         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5708         iterator.
5709         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
5710         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5711         iterator.
5712         (define_insn "*fma_fnmsub_<mode>"): Rename from
5713         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
5714         FMAMODE mode iterator.
5715         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
5716         Use VF_SF_AVX512VL mode iterator.
5717         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
5718         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5719         iterator.
5720         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
5721         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5722         iterator.
5723         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
5724         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
5725         use VF_AVX512VL mode iterator.
5726         (define_insn "*fma_fmaddsub_<mode>"): Rename from
5727         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
5728         remove subst usage.
5729         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
5730         Use VF_SF_AVX512VL mode iterator.
5731         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
5732         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5733         iterator.
5734         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
5735         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5736         iterator.
5737         (define_insn "*fma_fmsubadd_<mode>"): Rename from
5738         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
5739         remove usage of subst.
5740         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
5741         Use VF_SF_AVX512VL mode iterator.
5742         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
5743         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5744         iterator.
5745         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
5746         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5747         iterator.
5748
5749 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
5750
5751         Revert r213751:
5752         * calls.c (precompute_arguments): Check
5753          promoted_for_signed_and_unsigned_p and set the promoted mode.
5754         (promoted_for_signed_and_unsigned_p): New function.
5755         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
5756         and set the promoted mode.
5757         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
5758         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
5759         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
5760
5761 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5762
5763         * opth-gen.awk: Generate mapping from cpp message reasons to the
5764         options that enable them.
5765         * doc/options.texi (CppReason): Document.
5766
5767 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5768
5769         * doc/invoke.texi (Wnormalized=): Update.
5770
5771 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
5772
5773         PR target/63195
5774         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
5775         operands.  Split off the constant operand alternative to ...
5776         (*bool<mode>3_imm): New.
5777
5778 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5779
5780         * rtl.h (single_set_2): Strengthen first param from const_rtx to
5781         const rtx_insn *, and move prototype to above...
5782         (single_set): ...this.  Convert this from a macro to an inline
5783         function, enforcing the requirement that the param is a const
5784         rtx_insn *.
5785         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
5786
5787         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5788         Strengthen both params from rtx to rtx_insn *.
5789         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
5790         Likewise; introduce locals "producer_set", "consumer_set", using
5791         them in place of "producer" and "consumer" when dealing with SET
5792         rather than insn.
5793         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
5794         when invoking single_set in region guarded by INSN_P.
5795         (avr_out_bitop): Likewise.
5796         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
5797         region guarded by GET_CODE check, using methods to strengthen
5798         local "this_insn" from rtx to rtx_insn *, and for clarity.
5799         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
5800         Strengthen local "insn" from rtx to rtx_insn *.
5801         (define_insn_and_split "xload<mode>_A"): Likewise.
5802         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
5803         "insn".
5804         (find_load): Likewise for return type.
5805         (workaround_speculation): Likewise for both locals named
5806         "load_insn".
5807         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
5808         local "cc0_user".
5809         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
5810         for local "prev".
5811         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
5812         param 2.
5813         * config/h8300/h8300.c (notice_update_cc): Likewise.
5814         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
5815         "insn" and "dep_insn".
5816         (exact_store_load_dependency): Likewise for both params.
5817         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
5818         since this now clashes with inline function.  Instead, delay
5819         calling single_set until the point where its needed, and then
5820         assign the result to "compare_set" and rework the conditional that
5821         follows.
5822         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
5823         local "last" from rtx to rtx_insn *.
5824         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
5825         second param.
5826         (mips_store_data_bypass_p): Likewise for both params.
5827         * config/mips/mips.c (mips_load_store_insns): Likewise for second
5828         param.
5829         (mips_store_data_bypass_p): Likewise for both params.
5830         (mips_orphaned_high_part_p): Likewise for param "insn".
5831         * config/mn10300/mn10300.c (extract_bundle): Likewise.
5832         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
5833         Introduce local rtx "insn2_pat".
5834         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
5835         "ninsn".
5836         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
5837         Introduce local rtx "set", using it in place of "insn" for the
5838         result of single_set.  This appears to fix a bug, since the call
5839         to find_regno_note on a SET does nothing.
5840         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
5841         params from rtx to rtx_insn *.
5842         (set_to_load_agen): Likewise.
5843         * config/s390/s390.c (s390_label_align): Likewise for local
5844         "prev_insn".  Introduce new rtx locals "set" and "src", using
5845         them in place of "prev_insn" for the results of single_set
5846         and SET_SRC respectively.
5847         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
5848         Introduce new rtx local "set" using in place of "jump" for the
5849         result of single_set.  Use SET_SRC (set) rather than plain
5850         XEXP (set, 1).
5851         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
5852         rtx to rtx_insn *.
5853         (noncall_uses_reg): Likewise.
5854         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
5855         guarded by GET_CODE check, using its methods for clarity, and to
5856         enable strengthening local "this_insn" from rtx to rtx_insn *.
5857         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
5858         "insn" from rtx to rtx_insn *.
5859         (define_expand "umulhisi3"): Likewise.
5860         (define_expand "smulsi3_highpart"): Likewise.
5861         (define_expand "umulsi3_highpart"): Likewise.
5862         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5863         local "after".  Replace GET_CODE check with a dyn_cast,
5864         introducing new local rtx_sequence * "seq", using insn method for
5865         typesafety.
5866
5867         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
5868         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
5869         place of "insn" once we're dealing with patterns rather than the
5870         input insn.
5871         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
5872         (scan_trace): Likewise for local "elt", updating lookups within
5873         sequence to use insn method rather than element method.
5874         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
5875         to rtx_insn *.
5876         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
5877         * ifcvt.c (noce_try_abs): Likewise for local "insn".
5878         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
5879         invoking single_set.
5880         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
5881         "insn" from rtx to rtx_insn *.
5882         (skip_usage_debug_insns): Likewise for return type, adding a
5883         checked cast.
5884         (check_secondary_memory_needed_p): Likewise for local "insn".
5885         (inherit_reload_reg): Likewise.
5886         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
5887         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
5888         checked casts.
5889         (store_data_bypass_p): Likewise for both params.
5890         (if_test_bypass_p): Likewise.
5891         * recog.h (store_data_bypass_p): Likewise for both params.
5892         (if_test_bypass_p): Likewise.
5893         * reload.c (find_equiv_reg): Likewise for local "where".
5894         * reorg.c (delete_jump): Likewise for param "insn".
5895         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
5896         to const rtx_insn *.
5897         * store-motion.c (replace_store_insn): Likewise for param "del".
5898         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
5899         and use its methods for clarity, and to strengthen local "del"
5900         from rtx to rtx_insn *.
5901         (build_store_vectors): Use insn method of "st" when calling
5902         replace_store_insn for typesafety and clarity.
5903
5904 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5905
5906         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
5907         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
5908         on how to make it legal in future.
5909
5910 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5911
5912         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
5913         to rtx_insn *.
5914         (restinsn): Likewise.
5915         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
5916         Likewise for param.
5917         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
5918         Likewise.
5919         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
5920         first param.
5921         (arc_hazard): Likewise for both params.
5922         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
5923         checked casts to rtx_sequence * and uses of the insn method for
5924         type-safety.
5925         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
5926         (arc_adjust_insn_length): Likewise for param "insn".
5927         (struct insn_length_parameters_s): Likewise for first param of
5928         "get_variants" callback field.
5929         (arc_get_insn_variants): Likewise for first param and local
5930         "inner".  Replace a check of GET_CODE with a dyn_cast to
5931         rtx_sequence *, using methods for type-safety and clarity.
5932         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
5933         rtx_sequence * and uses of the insn method for type-safety when
5934         invoking arc_adjust_insn_length.
5935         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
5936         for param.
5937         (arm_address_offset_is_imm): Likewise.
5938         (struct tune_params): Likewise for params 1 and 3 of the
5939         "sched_adjust_cost" callback field.
5940         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
5941         params 1 and 3 ("insn" and "dep").
5942         (xscale_sched_adjust_cost): Likewise.
5943         (fa726te_sched_adjust_cost): Likewise.
5944         (cortexa7_older_only): Likewise for param "insn".
5945         (cortexa7_younger): Likewise.
5946         (arm_attr_length_move_neon): Likewise.
5947         (arm_address_offset_is_imm): Likewise.
5948         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
5949         * config/avr/avr.c (avr_notice_update_cc): Likewise.
5950         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
5951         (workaround_speculation): Likewise for local "last_condjump".
5952         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
5953         (shadow_or_blockage_p): Likewise.
5954         (get_unit_reqs): Likewise.
5955         (get_unit_operand_masks): Likewise.
5956         (c6x_registers_update): Likewise.
5957         (returning_call_p): Likewise.
5958         (can_use_callp): Likewise.
5959         (convert_to_callp): Likewise.
5960         (find_last_same_clock): Likwise for local "t".
5961         (reorg_split_calls): Likewise for local "shadow".
5962         (hwloop_pattern_reg): Likewise for param "insn".
5963         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
5964         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
5965         (frv_extract_membar): Likewise.
5966         (frv_optimize_membar_local): Strengthen param "last_membar" from
5967         rtx * to rtx_insn **.
5968         (frv_optimize_membar_global): Strengthen param "membar" from rtx
5969         to rtx_insn *.
5970         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
5971         to rtx_insn **.
5972         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
5973         both params from rtx to rtx_insn *.
5974         (ia64_ld_address_bypass_p): Likewise.
5975         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
5976         "insn".
5977         (ia64_safe_type): Likewise.
5978         (group_barrier_needed): Likewise.
5979         (safe_group_barrier_needed): Likewise.
5980         (ia64_single_set): Likewise.
5981         (is_load_p): Likewise.
5982         (record_memory_reference): Likewise.
5983         (get_mode_no_for_insn): Likewise.
5984         (important_for_bundling_p): Likewise.
5985         (unknown_for_bundling_p): Likewise.
5986         (ia64_st_address_bypass_p): Likewise for both params.
5987         (ia64_ld_address_bypass_p): Likewise.
5988         (expand_vselect): Introduce new local rtx_insn * "insn", using it
5989         in place of rtx "x" after the emit_insn call.
5990         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
5991         Strengthen param from rtx to rtx_insn *.
5992         (ix86_agi_dependent): Likewise for both params.
5993         (ix86_attr_length_immediate_default): Likewise for param 1.
5994         (ix86_attr_length_address_default): Likewise for param.
5995         (ix86_attr_length_vex_default): Likewise for param 1.
5996         * config/i386/i386.c (ix86_attr_length_immediate_default):
5997         Likewise for param "insn".
5998         (ix86_attr_length_address_default): Likewise.
5999         (ix86_attr_length_vex_default): Likewise.
6000         (ix86_agi_dependent): Likewise for both params.
6001         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6002         (vselect_insn): Likewise for this variable.
6003         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6004         for param 1.
6005         (m68k_sched_attr_opy_type): Likewise.
6006         * config/m68k/m68k.c (sched_get_operand): Likewise.
6007         (sched_attr_op_type): Likewise.
6008         (m68k_sched_attr_opx_type): Likewise.
6009         (m68k_sched_attr_opy_type): Likewise.
6010         (sched_get_reg_operand): Likewise.
6011         (sched_get_mem_operand): Likewise.
6012         (m68k_sched_address_bypass_p): Likewise for both params.
6013         (sched_get_indexed_address_scale): Likewise.
6014         (m68k_sched_indexed_address_bypass_p): Likewise.
6015         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6016         (m68k_sched_indexed_address_bypass_p): Likewise.
6017         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6018         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6019         removing another.
6020         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6021         params from rtx to rtx_insn *.
6022         (mips_fmadd_bypass): Likewise.
6023         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6024         (mips_linked_madd_p): Likewise.
6025         (mips_macc_chains_last_hilo): Likewise for this variable.
6026         (mips_macc_chains_record): Likewise for param.
6027         (vr4130_last_insn): Likewise for this variable.
6028         (vr4130_swap_insns_p): Likewise for both params.
6029         (mips_ls2_variable_issue): Likewise for param.
6030         (mips_need_noat_wrapper_p): Likewise for param "insn".
6031         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6032         in place of "x" after the emit_insn.
6033         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6034         params from rtx to rtx_insn *.
6035         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6036         (pa_combine_instructions): Introduce local "par" for result of
6037         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6038         to make_insn_raw.
6039         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6040         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6041         (rl78_alloc_physical_registers_op1): Likewise.
6042         (rl78_alloc_physical_registers_op2): Likewise.
6043         (rl78_alloc_physical_registers_ro1): Likewise.
6044         (rl78_alloc_physical_registers_cmp): Likewise.
6045         (rl78_alloc_physical_registers_umul): Likewise.
6046         (rl78_alloc_address_registers_macax): Likewise.
6047         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6048         * config/s390/predicates.md (execute_operation): Likewise for
6049         local "insn".
6050         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6051         params.
6052         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6053         (addr_generation_dependency_p): Likewise for param "insn".
6054         (s390_agen_dep_p): Likewise for both params.
6055         (s390_fpload_toreg): Likewise for param "insn".
6056         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6057         * config/sh/sh.c (sh_loop_align): Likewise for param and local
6058         "next".
6059         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6060         * config/sh/sh_treg_combine.cc
6061         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6062         and local "i".
6063         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6064         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6065         "and_insn", "load", "shift".
6066         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6067         "insn".
6068         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6069         for XEXP (note, 0) of the REG_CC_SETTER note.
6070         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6071         rtx_insn *, eliminating a checked cast made redundant by this.
6072         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6073         to rtx_insn *.
6074         * genattr.c (main): When writing out the prototype to
6075         const_num_delay_slots, strengthen the param from rtx to
6076         rtx_insn *.
6077         * genattrtab.c (write_const_num_delay_slots): Likewise when
6078         writing out the implementation of const_num_delay_slots.
6079         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6080         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6081         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6082         favor of new rtx locals "src" and "set" and new local rtx_insn *
6083         "insn" and "seq".
6084         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6085         to rtx_insn *.
6086         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6087         locals "cond", "if_then_else", "set" and new rtx_insn * locals
6088         "insn" and "seq".
6089         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6090         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
6091         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
6092         the top-level scope, replacing with new more tightly-scoped rtx
6093         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6094         "new_insn", "copy_of_insn_b", and make local rtx "set" more
6095         tightly-scoped.
6096         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6097         rtx_insn *.
6098         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6099         "move_insn".
6100         (ira_setup_alts): Likewise for param "insn".
6101         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6102         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6103         and an rtx_insn *.
6104         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6105         new more-tightly scoped rtx locals "add3_insn", "insn",
6106         "add2_insn" and rtx_insn * "move_insn".
6107         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6108         checked cast on result of gen_move_insn when invoking
6109         extract_insn.
6110         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6111         rtx_insn *.
6112         (verify_changes): Add a checked cast on "object" when invoking
6113         insn_invalid_p.
6114         (extract_insn_cached): Strengthen param "insn" from rtx to
6115         rtx_insn *.
6116         (extract_constrain_insn_cached): Likewise.
6117         (extract_insn): Likewise.
6118         * recog.h (insn_invalid_p): Likewise for param 1.
6119         (recog_memoized): Likewise for param.
6120         (extract_insn): Likewise.
6121         (extract_constrain_insn_cached): Likewise.
6122         (extract_insn_cached): Likewise.
6123         * reload.c (can_reload_into): Likewise for local "test_insn".
6124         * reload.h (cleanup_subreg_operands): Likewise for param.
6125         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6126         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6127         result of emit_insn.  Remove a checked cast made redundant by this
6128         change.
6129         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6130         rtx to rtx_insn *.
6131         * sel-sched.c (get_reg_class): Likewise.
6132
6133 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6134             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6135
6136         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6137         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6138         Define.
6139         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6140
6141 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6142
6143         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6144         const rtx_insn *, and from rtx to rtx_insn * for the other
6145         overloaded variant.
6146         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6147         INSN_LOCATION, since we know INSN_P holds.
6148         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6149         (insn_file): Likewise.
6150         (insn_scope): Likewise.
6151         (insn_location): Likewise.
6152
6153         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6154         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6155         for the result of gen_load_const_gp.
6156         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6157         param from rtx to rtx_insn *.
6158         * config/rs6000/rs6000.c (output_call): Likewise.
6159         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6160         introducing a checked cast to rtx_sequence * and use of the insn
6161         method.
6162         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6163         from rtx to rtx_insn *.
6164         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6165         (insn_line): Likewise.
6166         (insn_file): Likewise.
6167         (insn_location): Likewise.
6168         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6169         from rtx to rtx_insn *.
6170         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6171         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6172         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6173         via a checked cast.
6174         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6175         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6176
6177 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6178
6179         * combine.c (try_combine): Eliminate checked cast on result of
6180         gen_rtx_INSN.
6181         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6182         autogenerated one by strengthening the return type and params 2 and 3
6183         from rtx to rtx_insn *, and by naming the params.
6184         * gengenrtl.c (special_rtx): Add INSN to those that are
6185         special-cased.
6186         * rtl.h (gen_rtx_INSN): New prototype.
6187
6188 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6189
6190         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6191         than NULL_RTX.
6192         (no_equiv): Likewise.
6193         (update_equiv_regs): Likewise.
6194         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6195         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6196         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6197         clarity.
6198         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6199         from rtx to rtx_insn_list *.
6200         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6201         rtx_insn_list * and use methods for clarity and typesafety.
6202         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6203         "list".
6204         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6205         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6206         an INSN_LIST, not an insn.
6207         (reverse_equiv_p): Strengthen local "insns" from rtx to
6208         rtx_insn_list * and use methods for clarity and typesafety.
6209         (contains_reloaded_insn_p): Likewise for local "list".
6210
6211 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6212
6213         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6214         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6215         (arm_builtin_vectorized_function): Likewise.
6216         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6217         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6218
6219 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6220
6221         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6222         * builtins.h (default_target_builtins): Likewise.
6223         * gcse.h (default_target_gcse): Likewise.
6224         * target-globals.h (target_globals): Add a destructor.  Convert
6225         void-pointer fields back to their real type and change from
6226         GTY((atomic)) to GTY((skip)).
6227         (restore_target_globals): Remove casts accordingly.
6228         * target-globals.c (save_target_globals): Use XCNEW rather than
6229         ggc_internal_cleared_alloc to allocate non-GC structures.
6230         Use ggc_cleared_alloc to allocate the target_globals structure
6231         itself.
6232         (target_globals::~target_globals): Define.
6233
6234 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6235
6236         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6237         mnemonic instead of fldmfdd.
6238         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6239         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6240         Output vpush when address register is SP.
6241         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6242         (vfp_output_vstmd): ... This.
6243         * config/arm/vfp.md (push_multi_vfp): Update call to
6244         vfp_output_vstmd.
6245
6246 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6247
6248         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6249
6250 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6251
6252         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6253         (*sqrtdf2_vfp): Likewise.
6254         (*cmpsf_vfp): Likewise.
6255         (*cmpsf_trap_vfp): Likewise.
6256         (*cmpdf_vfp): Likewise.
6257         (*cmpdf_trap_vfp): Likewise.
6258
6259 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6260
6261         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6262         (*truncdfsf2_vfp): Likewise.
6263         (*truncsisf2_vfp): Likewise.
6264         (*truncsidf2_vfp): Likewise.
6265         (fixuns_truncsfsi2): Likewise.
6266         (fixuns_truncdfsi2): Likewise.
6267         (*floatsisf2_vfp): Likewise.
6268         (*floatsidf2_vfp): Likewise.
6269         (floatunssisf2): Likewise.
6270         (floatunssidf2): Likewise.
6271
6272 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6273
6274         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6275         (*muldf3_vfp): Likewise.
6276         (*mulsf3negsf_vfp): Likewise.
6277         (*muldf3negdf_vfp): Likewise.
6278         (*mulsf3addsf_vfp): Likewise.
6279         (*muldf3adddf_vfp): Likewise.
6280         (*mulsf3subsf_vfp): Likewise.
6281         (*muldf3subdf_vfp): Likewise.
6282         (*mulsf3negsfaddsf_vfp): Likewise.
6283         (*fmuldf3negdfadddf_vfp): Likewise.
6284         (*mulsf3negsfsubsf_vfp): Likewise.
6285         (*muldf3negdfsubdf_vfp): Likewise.
6286
6287 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6288
6289         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6290         (*absdf2_vfp): Likewise.
6291         (*negsf2_vfp): Likewise.
6292         (*negdf2_vfp): Likewise.
6293         (*addsf3_vfp): Likewise.
6294         (*adddf3_vfp): Likewise.
6295         (*subsf3_vfp): Likewise.
6296         (*subdf3_vfp): Likewise.
6297         (*divsf3_vfp): Likewise.
6298         (*divdf3_vfp): Likewise.
6299
6300 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6301
6302         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6303         multiple.
6304         (arm_print_operand): Don't convert real values to decimal
6305         representation in default case.
6306         (fp_immediate_constant): Delete.
6307         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6308         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6309         syntax.
6310         (*thumb2_movsi_vfp): Likewise.
6311         (*movdi_vfp): Likewise.
6312         (*movdi_vfp_cortexa8): Likewise.
6313         (*movhf_vfp_neon): Likewise.
6314         (*movhf_vfp): Likewise.
6315         (*movsf_vfp): Likewise.
6316         (*thumb2_movsf_vfp): Likewise.
6317         (*movdf_vfp): Likewise.
6318         (*thumb2_movdf_vfp): Likewise.
6319         (*movsfcc_vfp): Likewise.
6320         (*thumb2_movsfcc_vfp): Likewise.
6321         (*movdfcc_vfp): Likewise.
6322         (*thumb2_movdfcc_vfp): Likewise.
6323
6324 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6325
6326         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6327         (-mtune): Likewise.
6328         (-mcpu): Likewise.
6329
6330 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6331
6332         PR target/61749
6333         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6334         Use qualifier_immediate for last operand.  Rename to...
6335         (aarch64_types_ternop_lane_qualifiers): ... This.
6336         (TYPES_QUADOP): Rename to...
6337         (TYPES_TERNOP_LANE): ... This.
6338         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6339         error.  Change return of 0 to return of NULL_RTX.
6340         (aarch64_crc32_expand_builtin): Likewise.
6341         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6342         ICE when expanding unknown builtin.
6343         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6344         TERNOP_LANE qualifiers.
6345         (sqdmlsl_lane): Likewise.
6346         (sqdmlal_laneq): Likewise.
6347         (sqdmlsl_laneq): Likewise.
6348         (sqdmlal2_lane): Likewise.
6349         (sqdmlsl2_lane): Likewise.
6350         (sqdmlal2_laneq): Likewise.
6351         (sqdmlsl2_laneq): Likewise.
6352
6353 2014-09-09  Nick Clifton  <nickc@redhat.com>
6354
6355         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6356         end of a line.
6357         (S/390 and zSeries Options): Remove superfluous word from the
6358         description of the -mhotpatch option.
6359
6360 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6361
6362         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6363         * ira.c: #include "shrink-wrap.h"
6364         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6365         * ifcvt.c: #include "shrink-wrap.h"
6366         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6367
6368 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6369
6370         * common/config/picochip/picochip-common.c: Remove.
6371         * config.gcc: Remove support for picochip.
6372         * config/picochip/constraints.md: Remove.
6373         * config/picochip/dfa_space.md: Remove.
6374         * config/picochip/dfa_speed.md: Remove.
6375         * config/picochip/picochip-protos.h: Remove.
6376         * config/picochip/picochip.c: Remove.
6377         * config/picochip/picochip.h: Remove.
6378         * config/picochip/picochip.md: Remove.
6379         * config/picochip/picochip.opt: Remove.
6380         * config/picochip/predicates.md: Remove.
6381         * config/picochip/t-picochip: Remove.
6382         * doc/md.texi: Don't document picochi.
6383
6384 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6385
6386         * basic-block.h (control_flow_insn_p): Strengthen param from
6387         const_rtx to const rtx_insn *.
6388         * cfgbuild.c (control_flow_insn_p): Likewise.
6389
6390 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6391
6392         * gcse.c (modify_mem_list): Strengthen this variable from
6393         vec<rtx> * to vec<rtx_insn *> *.
6394         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6395         vec<rtx_insn *>.
6396         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6397         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6398         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6399         rtx_insn *.
6400         (record_last_set_info): Likewise for local "last_set_insn".
6401
6402 2014-09-08  DJ Delorie  <dj@redhat.com>
6403
6404         * doc/invoke.texi (MSP430 Options): Add -minrt.
6405
6406 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6407
6408         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6409         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6410         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6411         handling SH_SPLAT.
6412         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6413         of extracted lane.
6414         (adjust_splat): New function.
6415         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6416         (dump_swap_insn_table): Add case for SH_SPLAT.
6417
6418 2014-09-08  Richard Biener  <rguenther@suse.de>
6419
6420         PR ipa/63196
6421         * tree-inline.c (copy_loops): The source loop header should
6422         always be non-NULL.
6423         (tree_function_versioning): If loops need fixup after removing
6424         unreachable blocks fix them.
6425         * omp-low.c (simd_clone_adjust): Do not add incr block to
6426         loop under construction.
6427
6428 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6429
6430         * config/aarch64/aarch64-builtins.c
6431         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6432
6433 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6434
6435         * config/i386/cygming.h (TF_SIZE): Remove.
6436         * config/i386/darwin.h (TF_SIZE): Remove.
6437         * config/i386/dragonfly.h (TF_SIZE): Remove.
6438         * config/i386/freebsd.h (TF_SIZE): Remove.
6439         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6440         * config/i386/openbsdelf.h (TF_SIZE): Remove.
6441         * config/i386/sol2.h (TF_SIZE): Remove.
6442         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6443         * config/ia64/linux.h (TF_SIZE): Remove.
6444         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6445         * doc/tm.texi: Regenerate.
6446         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6447
6448 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6449
6450         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6451         Remove.
6452         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6453         Remove.
6454         * doc/tm.texi: Regenerate.
6455         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6456         Poison.
6457         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6458         * config/cris/cris.h (__make_dp): Remove.
6459
6460 2014-09-08  Richard Biener  <rguenther@suse.de>
6461
6462         PR bootstrap/63204
6463         * cfgloop.c (mark_loop_for_removal): Track former header
6464         unconditionally.
6465         * cfgloop.h (struct loop): Add former_header member unconditionally.
6466         * loop-init.c (fix_loop_structure): Enable bogus loop removal
6467         diagnostic unconditionally.
6468
6469 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6470
6471         PR target/63190
6472         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6473         constraint for operand0 and remove write only modifier from operand3.
6474
6475 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
6476
6477         PR rtl-optimization/62208
6478         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6479         rather than const0_rtx in eq/ne-xor simplifications.
6480
6481 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
6482
6483         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6484         (arc_output_mi_thunk): Likewise.
6485
6486         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6487         arguments to silence bogus warning.
6488
6489 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
6490
6491         PR middle-end/63171
6492         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
6493
6494 2014-09-06  Tom de Vries  <tom@codesourcery.com>
6495
6496         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
6497         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
6498         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6499
6500 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
6501
6502         PR target/63188
6503         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
6504         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
6505
6506 2014-09-05  Easwaran Raman  <eraman@google.com>
6507
6508         PR rtl-optimization/62146
6509         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
6510         hoisted instruction unconditional.
6511
6512 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
6513
6514         PR target/63187
6515         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
6516         Do not allow any_mask_operand for operands[2].
6517         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
6518
6519 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6520
6521         * config/arc/arc.c (arc_print_operand): Use insn method of
6522         final_sequence for type-safety.
6523         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
6524         "insn" from rtx to rtx_insn *.
6525         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
6526         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6527         Likewise for locals "branch", "label".
6528         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
6529         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
6530         (same_cmp_following_p): Likewise for locals "i2", "i3".
6531         * config/sh/sh_optimize_sett_clrt.cc
6532         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
6533         param "cbranch_insn".
6534         * function.c (convert_jumps_to_returns): Likewis for local "jump".
6535         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
6536         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
6537         const rtx_insn *.
6538         (condjump_p): Likewise.
6539         (condjump_in_parallel_p): Likewise.
6540         (pc_set): Likewise.
6541         (any_uncondjump_p): Likewise.
6542         (any_condjump_p): Likewise.
6543         (condjump_label): Likewise.
6544         (returnjump_p): Strengthen param "insn" from rtx to
6545         const rtx_insn *.
6546         (onlyjump_p): Strengthen param "insn" from const_rtx to
6547         const rtx_insn *.
6548         (jump_to_label_p): Likewise.
6549         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
6550         (invert_jump): Likewise.
6551         * reorg.c (simplejump_or_return_p): Add checked cast when calling
6552         simplejump_p.
6553         (get_jump_flags): Strengthen param "insn" from rtx to
6554         const rtx_insn *.
6555         (get_branch_condition): Likewise.
6556         (condition_dominates_p): Likewise.
6557         (make_return_insns): Move declaration of local "pat" earlier, to
6558         after we've handled NONJUMP_INSN_P and non-sequences, using its
6559         methods to simplify the code and for type-safety.
6560         * rtl.h (find_constant_src): Strengthen param from const_rtx to
6561         const rtx_insn *.
6562         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
6563         (condjump_p): Strengthen param from const_rtx to
6564         const rtx_insn *.
6565         (any_condjump_p): Likewise.
6566         (any_uncondjump_p): Likewise.
6567         (pc_set): Likewise.
6568         (condjump_label): Likewise.
6569         (simplejump_p): Likewise.
6570         (returnjump_p): Likewise.
6571         (onlyjump_p): Likewise.
6572         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
6573         (invert_jump): Likewise.
6574         (condjump_in_parallel_p): Strengthen param from const_rtx to
6575         const rtx_insn *.
6576         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
6577         to const rtx_insn *.
6578         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
6579         to const rtx_insn *.
6580         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
6581
6582 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6583
6584         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
6585         above the conditional, and convert the check on GET_CODE to a
6586         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
6587         the conditional.  Simplify the conditional by using methods of
6588         "trial_seq".
6589
6590 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6591
6592         * haifa-sched.c (check_clobbered_conditions): Strengthen local
6593         "link" from rtx to rtx_insn_list *, and use its methods for
6594         clarity and type-safety.
6595         (toggle_cancelled_flags): Likewise.
6596         (restore_last_backtrack_point): Likewise.
6597         (queue_to_ready): Use insn method of "link" in one place.
6598         (schedule_block): Strengthen local "link" from rtx to
6599         rtx_insn_list *, and use its methods for clarity and type-safety.
6600
6601 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6602
6603         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
6604         param "insn" from const_rtx to const rtx_insn *.
6605         (sched_get_reverse_condition_uncached): Likewise.
6606         (sched_get_condition_with_rev): Likewise.
6607         (sched_has_condition_p): Likewise.
6608         (sched_insns_conditions_mutex_p): Likewise for both params.
6609         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
6610         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
6611         (setup_insn_reg_uses): Move local "list" to be more tightly
6612         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
6613         its methods for clarity and type-safety.
6614         (sched_analyze_1): Strengthen local "pending" from rtx to
6615         rtx_insn_list *, and local "pending_mem" from rtx to
6616         rtx_expr_list *.  Use methods of each for clarity and type-safety.
6617         (sched_analyze_2): Likewise.
6618         (sched_analyze_insn): Likewise.
6619
6620         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
6621         param from const_rtx to const rtx_insn *.
6622         (sched_insns_conditions_mutex_p): Likewise for both params.
6623         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
6624         param.
6625
6626         * system.h (CONST_CAST_RTX_INSN): New macro.
6627
6628 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6629
6630         * recog.c (peep2_attempt): Strengthen return type from rtx to
6631         rtx_insn *.
6632         (peep2_update_life): Likewise for params "last", "prev", removing
6633         a checked cast made redundant by this.
6634         (peephole2_optimize): Likewise for local "last".
6635
6636 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6637
6638         * basic-block.h (set_block_for_insn): Eliminate this macro in
6639         favor of...
6640         * rtl.h (set_block_for_insn): New inline function, imposing the
6641         requirement that the "insn" param is an rtx_insn *.
6642
6643 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6644
6645         * caller-save.c (setup_save_areas): Strengthen local "insn" from
6646         rtx to rtx_insn *.
6647         * final.c (get_call_reg_set_usage): Likewise for first param,
6648         eliminating a checked cast.
6649         * regs.h (get_call_reg_set_usage): Likewise for first param.
6650         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
6651         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
6652         cast, replacing references to "x" with "call_insn" where
6653         appropriate.
6654         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
6655         rtx_insn *, adding a checked cast.
6656
6657 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6658
6659         * output.h (final_scan_insn): Strengthen first param from rtx to
6660         rtx_insn *.
6661
6662         * final.c (final_scan_insn): Likewise, renaming it back from
6663         "uncast_insn" to "insn", eliminating the checked cast.
6664
6665         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
6666         "vec" with an rtx_sequence * "seq", taking a copy of
6667         "final_sequence", and using methods of "seq" for clarity, and for
6668         type-safety in the calls to final_scan_insn.
6669         * config/mips/mips.c (mips_output_conditional_branch): Use methods
6670         of "final_sequence" for clarity, and for type-safety in the call to
6671         final_scan_insn.
6672         * config/sh/sh.c (print_slot): Strengthen param from rtx to
6673         rtx_sequence * and rename from "insn" to "seq".
6674
6675 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6676
6677         * jump.c (delete_related_insns): Introduce a new local "table" by
6678         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
6679         get_labels method of "table" to simplify access to the labels in
6680         the jump table.
6681
6682 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6683
6684         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
6685         f_minmaxs, f_minmaxd types.
6686
6687 2014-09-05  Richard Biener  <rguenther@suse.de>
6688
6689         * cfgloop.c (mark_loop_for_removal): Record former header
6690         when ENABLE_CHECKING.
6691         * cfgloop.h (strut loop): Add former_header member when
6692         ENABLE_CHECKING.
6693         * loop-init.c (fix_loop_structure): Sanity check loops
6694         marked for removal if they re-appeared.
6695
6696 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6697
6698         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
6699         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
6700
6701         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
6702         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
6703         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
6704         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
6705         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
6706         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
6707         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
6708         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
6709         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
6710         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
6711         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
6712         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
6713         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
6714         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
6715         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
6716         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
6717         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
6718         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
6719         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
6720         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
6721         with int{32,16,8}_t.
6722
6723 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6724
6725         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
6726         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
6727         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
6728         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
6729         Remove temporary __asm__ and reimplement.
6730
6731 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6732
6733         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
6734         handling cmge, cmgt, cmeq, cmtst.
6735
6736         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
6737         cmlt, cmgeu, cmgtu, cmtst): Remove.
6738
6739         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
6740         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
6741         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
6742         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
6743
6744 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6745
6746         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
6747         TYPES_TST): Define.
6748         (aarch64_fold_builtin): Update pattern for cmtst.
6749
6750         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
6751         Declare.
6752
6753         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
6754
6755         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
6756         Switch operands, separate out more cases, refactor.
6757
6758         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
6759
6760         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
6761         argument; rename old version to...
6762         (aarch64_const_vec_all_same_in_range_p): ...this.
6763         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
6764
6765         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
6766
6767 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6768
6769         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
6770         Remove qualifier_const_pointer, update comment.
6771
6772 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6773
6774         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
6775
6776 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6777
6778         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
6779         varargs with pointer parameter.
6780         (aarch64_simd_expand_builtin): pass pointer into previous.
6781
6782 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6783
6784         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
6785         alus_ext.
6786
6787 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6788
6789         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
6790         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
6791         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
6792         Replace temporary asm with call to builtin.
6793         (vrbit_p8, vrbitq_p8): New functions.
6794
6795 2014-09-05  Richard Biener  <rguenther@suse.de>
6796
6797         * cfgloop.c (mark_loop_for_removal): New function.
6798         * cfgloop.h (mark_loop_for_removal): Declare.
6799         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
6800         (merge_blocks): Likewise.
6801         (duplicate_block): Likewise.
6802         * except.c (sjlj_emit_dispatch_table): Likewise.
6803         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
6804         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
6805         (thread_through_loop_header): Likewise.
6806
6807 2014-09-05  Richard Biener  <rguenther@suse.de>
6808
6809         PR middle-end/63148
6810         * fold-const.c (try_move_mult_to_index): Remove.
6811         (fold_binary_loc): Do not call it.
6812         * tree-data-ref.c (dr_analyze_indices): Strip conversions
6813         from the base object again.
6814
6815 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
6816
6817         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
6818         DImode.
6819
6820 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6821
6822         PR target/55701
6823         * config/arm/arm.md (setmem): New pattern.
6824         * config/arm/arm-protos.h (struct tune_params): New fields.
6825         (arm_gen_setmem): New prototype.
6826         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
6827         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
6828         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
6829         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
6830         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
6831         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
6832         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
6833         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
6834         (arm_const_inline_cost): New function.
6835         (arm_block_set_max_insns): New function.
6836         (arm_block_set_non_vect_profit_p): New function.
6837         (arm_block_set_vect_profit_p): New function.
6838         (arm_block_set_unaligned_vect): New function.
6839         (arm_block_set_aligned_vect): New function.
6840         (arm_block_set_unaligned_non_vect): New function.
6841         (arm_block_set_aligned_non_vect): New function.
6842         (arm_block_set_vect, arm_gen_setmem): New functions.
6843
6844 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6845
6846         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
6847
6848 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6849
6850         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
6851
6852 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6853
6854         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
6855         an rtx.
6856         * valtrack.h: Adjust.
6857
6858 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6859
6860         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
6861         an rtx.
6862         (emit_jump_insn_before_noloc): Likewise.
6863         (emit_call_insn_before_noloc): Likewise.
6864         (emit_label_before): Likewise.
6865         (emit_label_after): Likewise.
6866         (emit_insn_before_setloc): Likewise.
6867         (emit_jump_insn_before_setloc): Likewise.
6868         (emit_call_insn_before_setloc): Likewise.
6869         (emit_call_insn_before): Likewise.
6870         * rtl.h: Adjust.
6871
6872 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6873
6874         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
6875         rtx_insn *, eliminating a checked cast.
6876
6877 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6878
6879         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
6880         const_rtx to const rtx_insn *.
6881         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
6882         cast.
6883
6884 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6885
6886         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
6887         fixup_args_size_notes.
6888         * expr.c (fixup_args_size_notes): Strengthen first two params from
6889         rtx to rtx_insn *, eliminating a checked cast.
6890         * rtl.h (fixup_args_size_notes): Strengthen first two params from
6891         rtx to rtx_insn *.
6892
6893 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6894
6895         * haifa-sched.c (get_ready_element): Strengthen return type from
6896         rtx to rtx_insn *.
6897         * sched-int.h (get_ready_element): Likewise.
6898
6899 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
6900
6901         PR target/63165
6902         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
6903         indexed_or_indirect_operand instead of memory_operand.
6904         (floatsi<mode>2_lfiwzx_mem): Ditto.
6905
6906 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6907
6908         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
6909         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
6910         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
6911
6912 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6913
6914         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
6915         rtx.
6916         (get_last_nonnote_insn): Likewise.
6917         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
6918         * resource.c (find_basic_block): Likewise.
6919         * rtl.h: Adjust.
6920         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
6921         const_rtx.
6922
6923 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6924
6925         * genattr.c (main): Within the prototype of insn_latency written
6926         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
6927         * genautomata.c (output_internal_maximal_insn_latency_func):
6928         Within the implementation of insn_latency written out to
6929         insn-automata.c, strengthen both params from rtx to rtx_insn *,
6930         eliminating a pair of checked casts.
6931
6932 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6933
6934         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
6935         rtx_insn *.
6936
6937         * rtl.h (eh_returnjump_p): Likewise.
6938
6939 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
6940
6941         * Makefile.in (TAGS): Handle constructs in timevar.def.
6942
6943 2014-09-04  Guozhi Wei  <carrot@google.com>
6944
6945         PR target/62040
6946         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
6947         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
6948         it into two patterns.
6949         (move_lo_quad_internal_be_<mode>): Likewise.
6950
6951 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6952
6953         * doc/options.texi: Document that Var and Init are required if CPP
6954         is given.
6955         * optc-gen.awk: Require Var and Init if CPP is given.
6956         * common.opt (Wpedantic): Use Init.
6957
6958 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6959
6960         * config/rs6000/rs6000.c (special_handling_values): Add
6961         SH_EXTRACT.
6962         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
6963         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
6964         as swappable with special handling SH_EXTRACT.  Remove
6965         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
6966         optimization.
6967         (adjust_extract): New function.
6968         (handle_special_swappables): Add default to case statement; add
6969         case for SH_EXTRACT that calls adjust_extract.
6970         (dump_swap_insn_table): Handle SH_EXTRACT.
6971
6972 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6973
6974         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
6975         selection of 0th memory doubleword, regardless of endianness.
6976
6977 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6978
6979         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
6980
6981 2014-09-04  Alan Modra  <amodra@gmail.com>
6982
6983         PR debug/60655
6984         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
6985         can't be output.
6986
6987 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
6988
6989         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
6990         * targhooks.c (default_dwarf_frame_reg_mode): New function.
6991         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
6992         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
6993         * doc/tm.texi: Regenerate.
6994         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
6995         selection logic to default_dwarf_frame_reg_mode.
6996
6997 2014-09-03  Marek Polacek  <polacek@redhat.com>
6998
6999         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7000         by -Wall.
7001
7002 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7003
7004         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7005         the automodified register.
7006
7007 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7008
7009         * output.h (get_some_local_dynamic_name): Declare.
7010         * final.c (some_local_dynamic_name): New variable.
7011         (get_some_local_dynamic_name): New function.
7012         (final_end_function): Clear some_local_dynamic_name.
7013         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7014         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7015         (print_operand): Report an error if '%&' is used inappropriately.
7016         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7017         (get_some_local_dynamic_name_1): Delete.
7018         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7019         (rs6000_get_some_local_dynamic_name): Delete.
7020         (rs6000_get_some_local_dynamic_name_1): Delete.
7021         (print_operand): Report an error if '%&' is used inappropriately.
7022         * config/s390/s390.c (machine_function): Remove some_ld_name.
7023         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7024         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7025         * config/sparc/sparc.c: Include rtl-iter.h.
7026         (machine_function): Remove some_ld_name.
7027         (sparc_print_operand): Report an error if '%&' is used inappropriately.
7028         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7029
7030 2014-09-03  Richard Henderson  <rth@redhat.com>
7031
7032         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7033         (aarch64_popwb_pair_reg): Remove.
7034         (aarch64_set_frame_expr): Remove.
7035         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7036         the restore ops performed by the insns generated.
7037         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7038         insn.  Perform the calls_eh_return addition later; do not attempt to
7039         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
7040         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7041         special markup at all.  Load cfun->machine->frame.hard_fp_offset
7042         into a local variable.
7043         (aarch64_frame_pointer_required): Don't check calls_alloca.
7044
7045 2014-09-03  Richard Biener  <rguenther@suse.de>
7046
7047         * opts.c (default_options_optimization): Adjust
7048         max-combine-insns to 2 for -Og.
7049
7050 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7051
7052         PR ipa/62015
7053         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7054         pass-trough jump functions correctly.
7055
7056 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7057
7058         PR ipa/61986
7059         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7060         created replacements in ascending order of offsets.
7061         (known_aggs_to_agg_replacement_list): Likewise.
7062
7063 2014-09-03  Martin Liska  <mliska@suse.cz>
7064
7065         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7066         is set to set uninitialized value for vnresult.
7067
7068 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7069
7070         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7071         for TARGET_MUST_PASS_IN_STACK.
7072
7073 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7074
7075         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7076         for TARGET_ARG_PARTIAL_BYTES.
7077
7078 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7079
7080         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7081         instructions for varargs implementation.
7082         (nds32_expand_epilogue): Emit stack adjustment instructions for
7083         varargs implementation.
7084
7085 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7086
7087         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7088         optimization detection.
7089
7090 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7091
7092         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7093         arguments.
7094         (nds32_function_arg_advance): Deal with nameless arguments.
7095         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7096         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7097         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7098
7099 2014-09-03  Richard Biener  <rguenther@suse.de>
7100
7101         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7102         (struct bb_bitmap_sets): Remove deferred member.
7103         (BB_DEFERRED): Remove.
7104         (defer_or_phi_translate_block): Remove.
7105         (compute_antic_aux): Remove deferring of blocks, assert
7106         proper iteration order.
7107         (compute_antic): Do not set BB_DEFERRED.
7108         (eliminate): Allocate el_avail of proper size initially.
7109
7110 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7111
7112         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7113         according to the value of crtl->args.pretend_args_size.
7114
7115 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7116
7117         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7118         varargs information.
7119
7120 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7121
7122         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7123         implementation for TARGET_SETUP_INCOMING_VARARGS.
7124         (nds32_strict_argument_naming): Refine comment.
7125         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7126         Define for future implementation.
7127
7128 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7129
7130         * config/i386/adxintrin.h (_subborrow_u32): New.
7131         (_addcarry_u32): Ditto.
7132         (_subborrow_u64): Ditto.
7133         (_addcarry_u64): Ditto.
7134         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7135         IX86_BUILTIN_SBB64.
7136         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7137         __builtin_ia32_sbb_u64
7138
7139 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7140
7141         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7142         GPR-specific stuff.
7143         (nds32_function_arg_advance): Likewise.
7144         (nds32_init_cumulative_args): Likewise.
7145         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7146         (NDS32_FIRST_GPR_REGNUM): Define.
7147         (NDS32_LAST_GPR_REGNUM): Define.
7148         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7149         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7150         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7151         (machine_function): Use GRP-specific stuff.
7152
7153 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7154
7155         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7156         (nds32_expand_epilogue): Likewise.
7157         (nds32_expand_prologue_v3push): Likewise.
7158         (nds32_expand_epilogue_v3pop): Likewise.
7159
7160 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7161
7162         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7163         v3push/v3pop for variadic function.
7164         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7165
7166 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7167
7168         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7169         Check rtx for varargs implementation.
7170         (nds32_output_stack_pop): Likewise.
7171         * config/nds32/nds32-protos.h: Have a rtx argument for
7172         nds32_output_stack_push and nds32_output_stack_pop.
7173         * config/nds32/nds32.md: Likewise.
7174
7175 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7176
7177         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7178         to check if FUNC is an interrupt service routine.
7179         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7180
7181 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7182
7183         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7184         arguments implementation.
7185
7186 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7187
7188         * config/nds32/nds32-predicates.c
7189         (nds32_valid_stack_push_pop): Rename to ...
7190         (nds32_valid_stack_push_pop_p): ... this.
7191         * config/nds32/nds32-protos.h: Likewise.
7192         * config/nds32/predicates.md: Likewise.
7193
7194 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7195
7196         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7197         (nds32_emit_stack_v3push): ... this.
7198         (nds32_gen_stack_v3pop): Rename to ...
7199         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7200         information.
7201
7202 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7203
7204         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7205         (nds32_emit_stack_push_multiple): ... this.
7206         (nds32_gen_stack_pop_multiple): Rename to ...
7207         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7208         information.
7209
7210 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7211
7212         PR target/61078
7213         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7214         and add a second splitter to handle the remaining cases.
7215
7216 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7217
7218         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7219
7220 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7221
7222         * cfgexpand.c (label_rtx_for_bb): Change type to
7223         hash_map<basic_block, rtx_code_label *> *.
7224         (expand_gimple_basic_block): Adjust.
7225         (pass_expand::execute): Likewise.
7226
7227 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7228
7229         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7230         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7231         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7232         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7233         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7234         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7235         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7236         of rtx.
7237
7238 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7239
7240         * alloc-pool.c: Include coretypes.h.
7241         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7242         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7243         hash_set instead of htab.
7244         * ggc-page.c (in_gc): New variable.
7245         (ggc_free): Do nothing if a collection is taking place.
7246         (ggc_collect): Set in_gc appropriately.
7247         * ggc.h (gt_ggc_mx(const char *)): New function.
7248         (gt_pch_nx(const char *)): Likewise.
7249         (gt_ggc_mx(int)): Likewise.
7250         (gt_pch_nx(int)): Likewise.
7251         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7252         (hash_map::hash_entry::pch_nx): Likewise.
7253         (hash_map::hash_entry::pch_nx_helper): Likewise.
7254 (hash_map::hash_map): Adjust.
7255 (hash_map::create_ggc): New function.
7256 (gt_ggc_mx): Likewise.
7257 (gt_pch_nx): Likewise.
7258         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7259 (default_hashset_traits::pch_nx): Likewise.
7260 (hash_set::hash_entry::ggc_mx): Likewise.
7261 (hash_set::hash_entry::pch_nx): Likewise.
7262 (hash_set::hash_entry::pch_nx_helper): Likewise.
7263 (hash_set::hash_set): Adjust.
7264 (hash_set::create_ggc): New function.
7265 (hash_set::elements): Likewise.
7266 (gt_ggc_mx): Likewise.
7267 (gt_pch_nx): Likewise.
7268         * hash-table.h (hash_table::hash_table): Adjust.
7269 (hash_table::m_ggc): New member.
7270         (hash_table::~hash_table): Adjust.
7271         (hash_table::expand): Likewise.
7272         (hash_table::empty): Likewise.
7273 (gt_ggc_mx): New function.
7274         (hashtab_entry_note_pointers): Likewise.
7275 (gt_pch_nx): Likewise.
7276
7277 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7278
7279         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7280         built-in definition.
7281         (XVCVUXDDP_SCALE): Likewise.
7282         (XVCVDPSXDS_SCALE): Likewise.
7283         (XVCVDPUXDS_SCALE): Likewise.
7284         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7285         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7286         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7287         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7288         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7289         prototype.
7290         * config/rs6000/rs6000.c (real.h): New include.
7291         (rs6000_scale_v2df): New function.
7292         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7293         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7294         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7295         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7296         (vsx_xvcvsxddp_scale): New define_expand.
7297         (vsx_xvcvsxddp): New define_insn.
7298         (vsx_xvcvuxddp_scale): New define_expand.
7299         (vsx_xvcvuxddp): New define_insn.
7300         (vsx_xvcvdpsxds_scale): New define_expand.
7301         (vsx_xvcvdpsxds): New define_insn.
7302         (vsx_xvcvdpuxds_scale): New define_expand.
7303         (vsx_xvcvdpuxds): New define_insn.
7304         * doc/extend.texi (vec_ctf): Add new prototypes.
7305         (vec_cts): Likewise.
7306         (vec_ctu): Likewise.
7307         (vec_splat): Likewise.
7308         (vec_div): Likewise.
7309         (vec_mul): Likewise.
7310
7311 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7312
7313         PR target/62275
7314         * config/arm/neon.md
7315         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7316         <v_cmp_result>): New pattern.
7317         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7318         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7319         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7320         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7321         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7322         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7323
7324 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7325
7326         PR target/62275
7327         * config/arm/iterators.md (FIXUORS): New code iterator.
7328         (VCVT): New int iterator.
7329         (su_optab): New code attribute.
7330         (su): Likewise.
7331         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7332
7333 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7334
7335         * config/aarch64/predicates.md (aarch64_comparison_operation):
7336         New special predicate.
7337         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7338         aarch64_comparison_operation instead of matching an operator.
7339         Update operand numbers.
7340         (csinc3<mode>_insn): Likewise.
7341         (*csinv3<mode>_insn): Likewise.
7342         (*csneg3<mode>_insn): Likewise.
7343         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7344         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7345         Return -1 instead of aborting on invalid condition codes.
7346         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7347         to assert that the returned condition code is valid.
7348         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7349
7350 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7351
7352         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7353         tree.def, and gimple.def
7354
7355 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7356             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7357             Igor Zamyatin  <igor.zamyatin@intel.com>
7358
7359         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7360         (__cilkrts_cilk_for_64): Likewise.
7361         * cilk-common.c (declare_cilk_for_builtin): New function.
7362         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7363         __cilkrts_cilk_for_64 bultins.
7364         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7365         CILK_TI_F_LOOP_64.
7366         (cilk_for_32_fndecl): New define.
7367         (cilk_for_64_fndecl): Likewise.
7368         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7369         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7370         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7371         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7372         GF_OMP_FOR_COMBINED_INTO.
7373         * gimplify.c (gimplify_scan_omp_clauses): Added
7374         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7375         (gimplify_adjust_omp_clauses): Ditto.
7376         (gimplify_omp_for): Added CILK_FOR case.
7377         (gimplify_expr): Ditto.
7378         * omp-low.c: Include cilk.h.
7379         (extract_omp_for_data): Set appropriate kind for
7380         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7381         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7382         (create_omp_child_function_name): Added second argument to handle
7383         cilk_for case.
7384         (cilk_for_check_loop_diff_type): New function.
7385         (expand_cilk_for_call): Likewise.
7386         (expand_cilk_for): Likewise.
7387         (create_omp_child_function): Set cilk_for_count; handle the cases when
7388         it is true; call create_omp_child_function_name with second argument.
7389         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7390         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7391         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7392         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7393         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7394         (convert_local_omp_clauses): Ditto.
7395         * tree-pretty-print.c (dump_omp_clause): Added
7396         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7397         (dump_generic_node): Added CILK_FOR case.
7398         * tree.c (omp_clause_num_ops): New element
7399         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7400         (omp_clause_code_name): New element _Cilk_for_count_.
7401         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7402         * tree.def: Add tree code for CILK_FOR.
7403
7404 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7405
7406         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7407         (ppc403-compare): Add "exts with dot" case.
7408         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7409         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7410         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7411         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7412         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7413         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7414         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7415         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7416         cell-cmp-microcoded): Similarly.
7417         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7418         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7419         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7420         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7421         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7422         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7423         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7424         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7425         (power6-compare): Add "exts with dot" case.
7426         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7427         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7428         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7429
7430         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7431         if avoiding Cell microcode.
7432         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7433         (is_cracked_insn): Ditto.
7434         (insn_must_be_first_in_group): Ditto.
7435         * config/rs6000/rs6000.md (dot): Adjust comment.
7436         (cell_micro): Handle exts+dot.
7437         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7438         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7439         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7440         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7441         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7442         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7443         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7444
7445 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7446
7447         * config/rs6000/rs6000.md (QHSI): Delete.
7448         (EXTQI, EXTHI, EXTSI): New mode iterators.
7449         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7450         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7451         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7452         9 anonymous instructions, and 8 splitters): Delete.
7453         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7454         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7455         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7456         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7457         *zero_extendsi<mode>2_dot2): New.
7458
7459 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7460
7461         * config/rs6000/rs6000.md (any_extend): New code iterator.
7462         (u, su): New code attributes.
7463         (dmode, DMODE): New mode attributes.
7464         (<su>mul<mode>3_highpart): New.
7465         (*<su>mul<mode>3_highpart): New.
7466         (<su>mulsi3_highpart_le): New.
7467         (<su>muldi3_highpart_le): New.
7468         (<su>mulsi3_highpart_64): New.
7469         (<u>mul<mode><dmode>3): New.
7470         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7471         splitters): Delete.
7472         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7473         splitters): Delete.
7474
7475 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7476
7477         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7478         *mulsi3_internal2, and two splitters): Delete.
7479         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7480         Delete.
7481         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7482
7483 2014-09-02  Richard Biener  <rguenther@suse.de>
7484
7485         PR tree-optimization/62695
7486         * tree-ssa-structalias.c (find_func_clobbers): Add missing
7487         vector truncate.
7488
7489 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
7490
7491         PR target/62312
7492         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
7493
7494 2014-09-01  Andi Kleen  <ak@linux.intel.com>
7495
7496         * file-find.c (add_prefix_begin): Add.
7497         (do_add_prefix): Rename from add_prefix with first argument.
7498         (add_prefix): Add new wrapper.
7499         * file-find.h (add_prefix_begin): Add.
7500         * gcc-ar.c (main): Support -B option.
7501
7502 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
7503
7504         * genemit.c: Include dumpfile.h.
7505         (gen_split): Print name of splitter function to dump file.
7506
7507 2014-09-01  Richard Biener  <rguenther@suse.de>
7508
7509         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
7510         Use stack auto_vecs for constraint expressions.
7511         (find_func_aliases_for_call): Likewise.
7512         (find_func_aliases): Likewise.
7513         (find_func_clobbers): Likewise.
7514
7515 2014-09-01  Richard Biener  <rguenther@suse.de>
7516
7517         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
7518         operands vector in most cases.  Remove redundant code.
7519
7520 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7521
7522         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
7523         $WIND_BASE instead of designating a harcoded arbitrary home dir.
7524         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
7525
7526 2014-09-01  Richard Biener  <rguenther@suse.de>
7527
7528         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
7529         copy_reference_ops_from_call, vn_nary_op_compute_hash,
7530         vn_reference_compute_hash, vn_reference_insert): Remove.
7531         (vn_reference_lookup_call): New function.
7532         * tree-ssa-sccvn.c (vn_reference_compute_hash,
7533         copy_reference_ops_from_ref, copy_reference_ops_from_call,
7534         vn_reference_insert, vn_nary_op_compute_hash): Make static.
7535         (create_reference_ops_from_call): Remove.
7536         (vn_reference_lookup_3): Properly update shared_lookup_references.
7537         (vn_reference_lookup_pieces): Assert that we updated
7538         shared_lookup_references properly.
7539         (vn_reference_lookup): Likewise.
7540         (vn_reference_lookup_call): New function.
7541         (visit_reference_op_call): Use it.  Avoid re-building the
7542         reference ops.
7543         (visit_reference_op_load): Remove redundant lookup.
7544         (visit_reference_op_store): Perform special tail-merging work
7545         only when possibly doing tail-merging.
7546         (visit_use): Likewise.
7547         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
7548
7549 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7550
7551         PR target/62025
7552         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
7553         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
7554         (find_inc): Revert 2014-08-13 change.
7555
7556 2014-09-01  Marek Polacek  <polacek@redhat.com>
7557
7558         PR middle-end/61903
7559         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
7560         Change the type of V to unsigned HOST_WIDE_INT.
7561
7562 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7563
7564         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
7565         the size of byte markers.
7566         (do_shift_rotate): Fix confusion between host, target and marker byte
7567         size.
7568         (verify_symbolic_number_p): Likewise.
7569         (find_bswap_or_nop_1): Likewise.
7570         (find_bswap_or_nop): Likewise.
7571
7572 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7573
7574         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
7575         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
7576
7577 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7578
7579         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
7580         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
7581         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
7582
7583 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
7584
7585         PR sanitizer/61897
7586         PR sanitizer/62140
7587         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
7588         (build_check_stmt): Likewise.
7589         (instrument_strlen_call): Likewise.
7590         (asan_expand_check_ifn): Likewise and fix types.
7591         (maybe_cast_to_ptrmode): New function.
7592
7593 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7594
7595         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
7596
7597 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
7598
7599         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
7600
7601 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
7602
7603         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
7604         prefix to function labels when generating fast indirect calls.
7605
7606 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
7607
7608         PR bootstrap/62304
7609
7610         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
7611         param back from rtx_insn * to rtx.  Rename param from "label" to
7612         "label_or_return", reintroducing "label" as an rtx_insn * after
7613         we've ensured it's not a RETURN.
7614         (first_active_target_insn): Likewise for return type and param;
7615         add a checked cast to rtx_insn * once we've ensured "insn" is not
7616         a RETURN.
7617         (steal_delay_list_from_target): Convert param "pnew_thread" back
7618         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
7619         with JUMP_LABEL.
7620         (own_thread_p): Convert param "thread" back from an rtx_insn * to
7621         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
7622         cast once we've established we're not dealing with a RETURN,
7623         renaming subsequent uses of "thread" to "thread_insn".
7624         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
7625         to JUMP_LABEL.
7626         (follow_jumps): Convert return type and param "label" from
7627         rtx_insn * back to rtx.  Move initialization of "value" to after
7628         the handling for ANY_RETURN_P, adding a checked cast there to
7629         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
7630         rename to "this_label_or_return", reintroducing "this_label" as
7631         an rtx_insn * once we've handled the case where it could be an
7632         ANY_RETURN_P.
7633         (fill_slots_from_thread): Rename param "thread" to
7634         "thread_or_return", converting from an rtx_insn * back to an rtx.
7635         Reintroduce name "thread" as an rtx_insn * local with a checked
7636         cast once we've handled the case of it being an ANY_RETURN_P.
7637         Convert local "new_thread" from an rtx_insn * back to an rtx.
7638         Add a checked cast when assigning to "trial" from "new_thread".
7639         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
7640         checked cast to rtx_insn * from "new_thread" when invoking
7641         get_label_before.
7642         (fill_eager_delay_slots): Convert locals "target_label",
7643         "insn_at_target" from rtx_insn * back to rtx.
7644         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
7645         (relax_delay_slots): Convert locals "trial", "target_label" from
7646         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
7647         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
7648         invoking update_block.
7649         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
7650         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
7651
7652         * resource.h (mark_target_live_regs): Undo erroneous conversion
7653         of second param of r214693, converting it back from rtx_insn * to
7654         rtx, since it could be a RETURN.
7655
7656         * resource.c (find_dead_or_set_registers): Similarly, convert
7657         param "jump_target" back from an rtx_insn ** to an rtx *, as we
7658         could be writing back a RETURN.  Rename local rtx_insn * "next" to
7659         "next_insn", and introduce "lab_or_return" as a local rtx,
7660         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
7661         (mark_target_live_regs): Undo erroneous conversion
7662         of second param of r214693, converting it back from rtx_insn * to
7663         rtx, since it could be a RETURN.  Rename it from "target" to
7664         "target_maybe_return", reintroducing the name "target" as a local
7665         rtx_insn * with a checked cast, after we've handled the case of
7666         ANY_RETURN_P.
7667
7668 2014-08-29  DJ Delorie  <dj@redhat.com>
7669
7670         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
7671         pointer size up to a power of two.
7672         * defaults.h (DWARF2_ADDR_SIZE): Round up.
7673         (POINTER_SIZE_UNITS): New, rounded up value.
7674         * dwarf2asm.c (size_of_encoded_value): Use it.
7675         (dw2_output_indirect_constant_1): Likewise.
7676         * expmed.c (init_expmed_one_conv): We now know the sizes of
7677         partial int modes.
7678         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
7679         * optabs.c (expand_float): Use precision, not size.
7680         (expand_fix): Likewise.
7681         * simplify-rtx (simplify_unary_operation_1): Likewise.
7682         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7683         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
7684         (default_assemble_integer) Likewise.
7685         (dump_tm_clone_pairs): Likewise.
7686         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
7687         * var-tracking.c (adjust_mems): Allow partial-int modes also.
7688         (prepare_call_arguments): Likewise.
7689         * stor-layout.c (finalize_type_size): Preserve precision.
7690         (layout_type): Use precision, not size.
7691
7692         * expr.c (convert_move): If the target has an explicit converter,
7693         use it.
7694
7695 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7696
7697         * gdbinit.in: Skip various inline functions in rtl.h when
7698         stepping.
7699
7700 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
7701
7702         PR bootstrap/62301
7703         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
7704
7705 2014-08-29  Richard Biener  <rguenther@suse.de>
7706
7707         PR tree-optimization/62291
7708         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
7709         exactly the vector size needed and use quick_push.
7710         (phi_translate_1): Adjust comment.
7711         (valid_in_sets): Remove block argument and remove pointless
7712         checking of NAMEs.
7713         (dependent_clean): Adjust for removal of block argument.
7714         (clean): Likewise.
7715         (compute_antic_aux): Likewise.
7716         (compute_partial_antic_aux): Likewise.
7717
7718 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7719             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7720             Anna Tikhonova  <anna.tikhonova@intel.com>
7721             Ilya Tocar  <ilya.tocar@intel.com>
7722             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7723             Ilya Verbin  <ilya.verbin@intel.com>
7724             Kirill Yukhin  <kirill.yukhin@intel.com>
7725             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7726
7727         * config/i386/sse.md
7728         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
7729         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
7730         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
7731         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
7732
7733 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7734             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7735             Anna Tikhonova  <anna.tikhonova@intel.com>
7736             Ilya Tocar  <ilya.tocar@intel.com>
7737             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7738             Ilya Verbin  <ilya.verbin@intel.com>
7739             Kirill Yukhin  <kirill.yukhin@intel.com>
7740             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7741
7742         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
7743         * config/i386/sse.md
7744         (define_mode_iterator VI4_128_8_256): New.
7745         (define_mode_iterator VI2_128_4_256): Ditto.
7746         (define_mode_iterator PMOV_DST_MODE): Rename into
7747         (define_mode_iterator PMOV_DST_MODE_1): this.
7748         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
7749         Use PMOV_DST_MODE_1 mode iterator.
7750         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7751         Ditto.
7752         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7753         Ditto.
7754         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
7755         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
7756         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
7757         (define_mode_iterator PMOV_DST_MODE_2): New.
7758         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
7759         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
7760         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
7761         Ditto.
7762         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
7763         (define_mode_attr pmov_dst_3): Ditto.
7764         (define_mode_attr pmov_dst_zeroed_3): Ditto.
7765         (define_mode_attr pmov_suff_3): Ditto.
7766         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
7767         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
7768         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
7769         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
7770         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
7771         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
7772         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
7773         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
7774         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
7775         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
7776         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
7777         (define_mode_attr pmov_dst_4): Ditto.
7778         (define_mode_attr pmov_dst_zeroed_4): Ditto.
7779         (define_mode_attr pmov_suff_4): Ditto.
7780         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
7781         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
7782         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
7783         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
7784         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
7785         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
7786         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
7787         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
7788         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
7789         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
7790         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
7791
7792 2014-08-29  Richard Biener  <rguenther@suse.de>
7793
7794         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
7795         NON_LVALUE_EXPR in gimple.
7796
7797 2014-08-29  Richard Biener  <rguenther@suse.de>
7798
7799         PR middle-end/62292
7800         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
7801         from previous refactoring.
7802         (gimple_fold_builtin_strncpy): Likewise.
7803
7804 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7805
7806         PR bootstrap/62300
7807         * function.c (assign_parm_setup_reg): Remove erroneous checked
7808         cast to rtx_insn * on result of gen_extend_insn in favor of
7809         introducing a new local rtx "pat".
7810
7811 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7812
7813         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
7814         to silence warning.
7815         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
7816
7817 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7818
7819         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
7820         (next_insn): Likewise.
7821         * emit-rtl.c (next_insn): Likewise.
7822         (previous_insn): Likewise.
7823         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
7824         "insn" and "next" from rtx to rtx_insn *.
7825         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
7826         "insn", "insn1", "vliw_start",  "prologue_end_note",
7827         "last_insn_in_packet".
7828
7829 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7830
7831         * shrink-wrap.h (active_insn_between): Strengthen both params from
7832         rtx to rtx_insn *.
7833         * function.c (active_insn_between): Likewise.
7834
7835 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7836
7837         * genattr.c (main): When writing out insn-attr.h, strengthen param
7838         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
7839         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
7840         writing out the definition of dfa_clear_single_insn_cache to the
7841         generated insn-automata.c
7842
7843 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7844
7845         * resource.h (clear_hashed_info_for_insn): Strengthen param from
7846         rtx to rtx_insn *.
7847         (incr_ticks_for_insn): Likewise.
7848         (init_resource_info): Likewise.
7849
7850         * resource.c (init_resource_info): Likewise.
7851         (clear_hashed_info_for_insn): Likewise.
7852         (incr_ticks_for_insn): Likewise.
7853
7854         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
7855         rtx to rtx_insn *.
7856         (steal_delay_list_from_target): Use methods of "seq".
7857         (try_merge_delay_insns): Use methods of "merged_insns".
7858         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
7859         (reorg_redirect_jump): Likewise for param "jump".
7860
7861 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7862
7863         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
7864         rtx to rtx_insn *.
7865         * config/s390/s390.c (s390_split_branches): Eliminate top-level
7866         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
7867         "set_insn".
7868         (s390_mainpool_finish): In three places, split out a local rtx
7869         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
7870         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
7871         and split another local rtx "insn" out into rtx "pat" and
7872         rtx_insn * "insn".
7873         * config/sh/sh.c (output_branchy_insn): Rather than working
7874         directly on operands[9], introduce local rtx_code_label *
7875         variables named "lab" in two places, working on them, and then
7876         assigning them to operands[9], so that the intervening operations
7877         are known by the type system to be on insns.
7878
7879 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7880
7881         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
7882         const rtx_insn *.
7883
7884         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
7885         in invocation of INSN_HAS_LOCATION.
7886
7887 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7888
7889         * config/rs6000/altivec.h (vec_xl): New #define.
7890         (vec_xst): Likewise.
7891         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
7892         (XXSPLTD_V2DI): Likewise.
7893         (DIV_V2DI): Likewise.
7894         (UDIV_V2DI): Likewise.
7895         (MUL_V2DI): Likewise.
7896         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7897         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
7898         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
7899         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
7900         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
7901         (UNSPEC_VSX_DIVSD): Likewise.
7902         (UNSPEC_VSX_DIVUD): Likewise.
7903         (UNSPEC_VSX_MULSD): Likewise.
7904         (vsx_mul_v2di): New insn-and-split.
7905         (vsx_div_v2di): Likewise.
7906         (vsx_udiv_v2di): Likewise.
7907         (vsx_xxspltd_<mode>): New insn.
7908
7909 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7910
7911         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
7912         NEXT_INSN.
7913         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
7914         (NEXT_INSN): Likewise.
7915         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
7916         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
7917         const rtx_insn *.
7918         (no_labels_between_p): Likewise for both params.
7919
7920         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
7921         cast when using NEXT_INSN on operands[2].
7922         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
7923         "insn" from rtx to rtx_insn *, adding a checked cast.
7924         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
7925         rtx_insn *.
7926         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
7927         for third param.
7928         (arc_text_label): Likewise for param "insn".
7929         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
7930         "insn".
7931         (arc_ccfsm_record_condition): Likewise for param "jump".
7932         (arc_text_label): Likewise for local "label".
7933         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
7934         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
7935         a method for typesafety.  Add a checked cast.
7936         * config/arc/constraints.md (Clb): Add a checked cast when getting
7937         the CODE_LABEL from a LABEL_REF.
7938         * config/arm/arm.c (require_pic_register): Strengthen locals
7939         "seq", "insn" from rtx to rtx_insn *.
7940         (create_fix_barrier): Likewise for locals "selected", "next".
7941         (thumb1_reorg): Likewise for locals "prev", "insn".
7942         (arm_expand_prologue): Likewise for local "last".
7943         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
7944         operands[0].
7945         (thumb2_output_casesi): Likewise for operands[2].
7946         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
7947         strengthen local "insn" from rtx to rtx_insn *.
7948         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
7949         type and param "insn".
7950         (find_prev_insn_start): Likewise.
7951         (hwloop_optimize): Likewise for locals "insn", "last_insn",
7952         "prev".
7953         (gen_one_bundle): Likewise for loal "t".
7954         (find_load): Likewise for param "insn".
7955         (workaround_speculation): Likewise for locals "insn", "next",
7956         "target", "next_tgt".
7957         * config/c6x/c6x.c (assign_reservations): Likewise for both params
7958         and for locals "insn", "within", "last".
7959         (count_unit_reqs): Likewise for params "head", "tail" and local
7960         "insn".
7961         (try_rename_operands): Likewise for params "head", "tail".
7962         (reshuffle_units): Likewise for locals "head", "tail", "insn".
7963         (struct c6x_sched_context): Likewise for fields
7964         "last_scheduled_insn", "last_scheduled_iter0".
7965         (init_sched_state): Replace NULL_RTX with NULL.
7966         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
7967         to rtx_insn *.
7968         (undo_split_delayed_nonbranch): Likewise for param and for local
7969         "prev".
7970         (conditionalize_after_sched): Likewise for local "insn".
7971         (bb_earliest_end_cycle): Likewise.
7972         (filter_insns_above): Likewise for locals "insn", "next".
7973         (hwloop_optimize): Remove redundant checked cast.
7974         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
7975         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
7976         NULL_RTX with NULL.
7977         (cris_simple_epilogue): Likewise.
7978         (cris_expand_prologue): Likewise.
7979         (cris_expand_epilogue): Likewise.
7980         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
7981         local "insn" from rtx to rtx_insn *.
7982         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
7983         (struct frv_packet_group): Likewise for the elements within array
7984         fields "insns", "sorted", and for field "nop".
7985         (frv_packet): Likewise for the elements within array field
7986         "insns".
7987         (frv_add_insn_to_packet): Likewise for param "insn".
7988         (frv_insert_nop_in_packet): Likewise for param "insn" and local
7989         "last".
7990         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
7991         (frv_sort_insn_group_1): Likewise for local "insn".
7992         (frv_optimize_membar_local): Likewise.
7993         (frv_align_label): Likewise for locals "x", "last", "barrier",
7994         "label".
7995         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
7996         local.
7997         (ia64_sched_init): Likewise for local "insn".
7998         (scheduled_good_insn): Likewise for param "last".
7999         (struct _ia64_sched_context): Likewise for field
8000         "last_scheduled_insn".
8001         (ia64_init_sched_context): Replace NULL_RTX with NULL.
8002         (struct bundle_state): Likewise for field "insn".
8003         (issue_nops_and_insn): Likewise for param "insn".
8004         (get_next_important_insn): Likewise for return type and both
8005         params.
8006         (ia64_add_bundle_selector_before): Likewise for param "insn".
8007         (bundling): Likewise for params "prev_head_insn", "tail" and
8008         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
8009         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8010         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8011         Strengthen final param from rtx to rtx_insn *.
8012         (iq2000_move_1word): Likewise for second param.
8013         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8014         param "cur_insn" and local "next_insn".
8015         (iq2000_move_1word): Likewise for param "insn".
8016         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8017         casts when using NEXT_INSN on operands[1].
8018         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8019         "insn" from rtx to rtx_insn *.
8020         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8021         "x", introducing local rtx_insn * "insn" for when working with the
8022         CODE_LABEL of the LABEL_REF.
8023         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8024         rtx_insn *.
8025         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8026         param.
8027         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8028         type.
8029         (conditionalize_block): Likewise for return type and param.
8030         (mcore_is_dead): Likewise for param "first" and local "insn".
8031         (emit_new_cond_insn): Likewise for return type.
8032         (conditionalize_block): Likewise for return type, param, and
8033         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8034         "newinsn".
8035         (conditionalize_optimization): Likewise for local "insn".
8036         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8037         using NEXT_INSN.
8038         * config/microblaze/microblaze.md: Add checked casts when using
8039         NEXT_INSN.
8040         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8041         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8042         and rtx_insn * "insn".
8043         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8044         checked cast when using NEXT_INSN on operands[2].
8045         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8046         local "insn" from rtx to rtx_insn *.
8047         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8048         Likewise.
8049         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8050         Add a checked cast when using NEXT_INSN on operands[1].
8051         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8052         rtx to rtx_insn *.
8053         (pa_output_cbranch): Likewise for final param.
8054         (pa_output_lbranch): Likewise for second param.
8055         (pa_output_bb): Likewise for third param.
8056         (pa_output_bvb): Likewise.
8057         (pa_output_dbra): Likewise for second param.
8058         (pa_output_movb): Likewise.
8059         (pa_output_parallel_movb): Likewise.
8060         (pa_output_parallel_addb): Likewise.
8061         (pa_output_millicode_call): Likewise for first param.
8062         (pa_output_mul_insn): Likewise for second param.
8063         (pa_output_div_insn): Likewise for third param.
8064         (pa_output_mod_insn): Likewise for second param.
8065         (pa_jump_in_call_delay): Likewise for param.
8066         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8067         (pa_output_div_insn): Likewise.
8068         (pa_output_mod_insn): Likewise.
8069         (pa_output_cbranch): Likewise.
8070         (pa_output_lbranch): Likewise.
8071         (pa_output_bb): Likewise.
8072         (pa_output_bvb): Likewise.
8073         (pa_output_dbra): Likewise.
8074         (pa_output_movb): Likewise.
8075         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8076         to simplify and for typesafety.
8077         (pa_output_call): Use method of rtx_sequence *.
8078         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8079         (pa_jump_in_call_delay): Likewise.
8080         (pa_output_parallel_movb): Likewise.
8081         (pa_output_parallel_addb): Likewise.
8082         (pa_following_call): Likewise.
8083         (pa_combine_instructions): Likewise for locals "anchor",
8084         "floater".
8085         (pa_can_combine_p): Likewise for params "anchor", "floater" and
8086         locals "start", "end".
8087         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8088         param "insn" and local "local_insn".
8089         (picochip_final_prescan_insn): Likewise for local "local_insn".
8090         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8091         local "insn".
8092         (uses_TOC): Likewise.
8093         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8094         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8095         splitting out to more tightly-scoped locals, 3 as rtx and one as
8096         rtx_insn *.
8097         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8098         to rtx_insn *.
8099         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8100         where needed.
8101         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8102         to rtx_insn *.
8103         (fixup_addr_diff_vecs): Likewise.
8104         (reg_unused_after): Likewise for param 2.
8105         (sh_can_redirect_branch): Likewise for both params.
8106         (check_use_sfunc_addr): Likewise for param 1.
8107         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8108         (find_barrier): Likewise for local "last_got".
8109         (gen_block_redirect): Likewise for return type, param "jump" and
8110         locals "prev", "scan", "next", "insn".
8111         (struct far_branch): Likewise for fields "near_label",
8112         "insert_place", "far_label".
8113         (gen_far_branch): Likewise for local "jump".
8114         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8115         "insn", "prev".
8116         (barrier_align): Likewise for param and for locals "prev", "x".
8117         Introduce local rtx_sequence * "prev_seq" and use insn method for
8118         typesafety and clarity.
8119         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8120         (get_dest_uid): Likewise for local "dest".
8121         (split_branches): Likewise for locals "next", "beyond", "label",
8122         "block", "far_label".  Add checked casts when assigning to
8123         bp->far_label and "far_label".
8124         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8125         (sequence_insn_p): Likewise.
8126         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8127         more loop-scoped rtx "insn" when walking LABEL_REFS.
8128         (sh_can_redirect_branch): Strengthen both params from rtx to
8129         rtx_insn *.
8130         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8131         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8132         for clarity and typesafety.
8133         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8134         "insn" from rtx to rtx_insn *.
8135         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8136         when using NEXT_INSN on the CODE_LABEL in operands[2].
8137         (define_insn "casesi_worker_2"): Likewise.
8138         (define_insn "casesi_shift_media"): Likewise.
8139         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8140         operands[3].
8141         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8142         Strengthen field "insn" from rtx to rtx_insn *.
8143         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8144         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8145         param "start_insn" and local "start_insn".
8146         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8147         field "insn".
8148         (find_set_of_reg_bb): Likewise for param "insn".
8149         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8150         (trace_reg_uses): Likewise for param "start_insn".
8151         (sh_treg_combine::cbranch_trace): Likewise for field
8152         "cbranch_insn".
8153         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8154         param "insn".
8155         (sh_treg_combine::record_set_of_reg): Likewise for param
8156         "start_insn" and local "i".
8157         (sh_treg_combine::can_remove_cstore): Likewise for local
8158         "prev_insn".
8159         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8160         "insn".
8161         (sh_treg_combine::execute): Likewise for local "i".
8162         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8163         param.
8164         (sparc_check_64): Likewise for second param.
8165         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8166         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8167         dyn_cast, using its insn method for typesafety and clarity.
8168         (empty_delay_slot): Strengthen param "insn" from rtx to
8169         rtx_insn *.
8170         (set_extends): Likewise.
8171         (sparc_check_64): Likewise.
8172         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8173         for locals "seq", "last_insn".
8174         (combine_bnp): Likewise for param "insn".
8175         (xstormy16_reorg): Likewise for local "insn".
8176         * config/v850/v850.c (substitute_ep_register): Likewise for params
8177         "first_insn", "last_insn" and local "insn".
8178         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8179         elements of "regs" array, and local "insn".
8180         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8181         * final.c (final_sequence): Strengthen this global from rtx to
8182         rtx_sequence *.
8183         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8184         rtx_insn *.
8185         (final_scan_insn): Update assignment to "final_sequence" to be
8186         from "seq", the cast version of "body", for type-safety.
8187         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8188         "insns" from rtx to rtx_insn *.
8189         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8190         * genattr.c (main): When writing out generated insn-attr.h,
8191         strengthen params 1 and 3 of eligible_for_delay,
8192         eligible_for_annul_true, eligible_for_annul_false from rtx to
8193         rtx_insn *.
8194         * genattrtab.c (write_eligible_delay): Likewise when writing out
8195         generated insn-attrtab.c; also local "insn" the generated
8196         functions.
8197         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8198         to rtx_insn *.
8199         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8200         "start_label" from rtx to rtx_insn *.
8201         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8202         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8203         "insns" and local "insn".
8204         (validate_equiv_mem): Likewise for param "start" and local "insn".
8205         (memref_used_between_p): Likewise for params "start", "end" and
8206         local "insn".
8207         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8208         final param.
8209         * loop-doloop.c (doloop_optimize): Within region guarded by
8210         INSN_P (doloop_pat), introduce a new local rtx_insn *
8211         "doloop_insn" via a checked cast, and use it for typesafety,
8212         eventually writing the value back into doloop_pat.
8213         * output.h (final_sequence): Strengthen this global from rtx to
8214         rtx_sequence *.
8215         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8216         reintroducing "insn" as an rtx_insn * via a checked cast.
8217         Strengthen param "attempt" and local "new_insn"from rtx to
8218         rtx_insn *.
8219         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8220         to rtx_insn *.
8221         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8222         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8223         "p" in favor of more tightly-scoped replacements, sometimes rtx
8224         and sometimes rtx_insn *, as appropriate.
8225         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8226         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8227         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8228         local "trial" from rtx to rtx_insn *.
8229         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8230         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8231         rtx_sequence * and use methods for clarity and typesafety.
8232         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8233         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8234         rtx_insn_list * and use its methods for clarity and typesafety.
8235         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8236         to rtx_insn *.
8237         (steal_delay_list_from_fallthrough): Likewise.
8238         (try_merge_delay_insns): Likewise for param "thread" and locals
8239         "trial", "next_trial", "delay_insn".
8240         (redundant_insn): Likewise for param "target" and local "trial".
8241         (own_thread_p): Likewise for param "thread" and locals
8242         "active_insn", "insn".
8243         (get_label_before): Likewise for param "insn".
8244         (fill_simple_delay_slots): Likewise for local "new_label"; use
8245         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8246         (label_before_next_insn): Strengthen return type and local "insn"
8247         from rtx to rtx_insn *.
8248         (relax_delay_slots): Likewise for locals "other", "tmp".
8249         (make_return_insns): Likewise for param "first" and locals "insn",
8250         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8251         and strengthen from rtx to rtx_sequence *.  Use its methods for
8252         clarity and typesafety.
8253         * rtlanal.c (no_labels_between_p): Strengthen params from
8254         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8255         rtx_insn *.
8256         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8257         from const_rtx to const rtx_insn *.
8258         (reg_set_between_p): Rename param "from_insn" to
8259         "uncast_from_insn", and reintroduce "from_insn" as a
8260         const rtx_insn * via a checked cast.
8261         (modified_between_p): Likewise for param "start" as "uncast_start".
8262         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8263         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8264         "tmp", head" from rtx to rtx_insn *.
8265         (recompute_rev_top_order): Likewise for local "insn".
8266         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8267         * store-motion.c (build_store_vectors): Likewise for local "insn".
8268         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8269         for clarity and typesafety.
8270         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8271         rtx to rtx_insn *.
8272         (computation_cost): Likewise for local "seq".
8273         (get_address_cost): Likewise.
8274
8275 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8276
8277         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8278         const rtx_insn *.
8279         (label_is_jump_target_p): Likewise for second param.
8280
8281         * rtlanal.c (tablejump_p): Likewise for param "insn".
8282         (label_is_jump_target_p): Likewise for param "jump_insn".
8283
8284 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8285
8286         * rtl.h (find_first_parameter_load): Strengthen return type and
8287         both params from rtx to rtx_insn *.
8288         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8289         both params and locals "before", "first_set" from rtx to
8290         rtx_insn *.  Remove now-redundant cast.
8291         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8292
8293 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8294
8295         * rtl.h (find_last_value): Delete.
8296         * rtlanal.c (find_last_value): Delete.
8297
8298 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8299
8300         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8301         from rtx to rtx_insn *.
8302         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8303         rtx "note" with new local rtx_insn * "new_head" when calculating
8304         head insn of new basic block.
8305         * combine.c (combine_split_insns): Strengthen return type and local
8306         "ret" from rtx to rtx_insn *.
8307         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8308         (try_combine): Eliminate local "m_split", splitting into new
8309         locals "m_split_insn" and "m_split_pat".
8310         (find_split_point): Strengthen local "seq" from rtx into
8311         rtx_insn *.
8312         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8313         locals "label", "branch".
8314         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8315         for local "insn".
8316         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8317         * dse.c (note_add_store_info): Likewise for fields "first",
8318         "current".
8319         (note_add_store): Likewise for local "insn".
8320         (emit_inc_dec_insn_before): Likewise for locals "insn",
8321         "new_insn", "cur".
8322         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8323         (replace_read): Likewise for locals "insns", "this_insn".
8324         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8325         (notice_eh_throw): Likewise for param "insn".
8326         (before_next_cfi_note): Likewise for return type, param, and local
8327         "prev".
8328         (connect_traces): Likewise for local "note".
8329         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8330         (verify_rtl_sharing): Likewise.
8331         (unshare_all_rtl_in_chain): Likewise for param "insn".
8332         (get_first_nonnote_insn): Likewise for local "insn".
8333         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8334         "seq" and use its methods to clarify things.
8335         (next_insn): Strengthen return type from rtx to rtx_insn *.
8336         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8337         local rtx_insn * using a checked cast, dropping a checked cast
8338         made redundant by this change.  Use a cast to and method of
8339         rtx_sequence to clarify the code.
8340         (previous_insn): Rename param "insn" to "uncast_insn" and
8341         reintroduce "insn" as a local rtx_insn * using a checked cast,
8342         dropping a checked cast made redundant by this change.  Use a cast
8343         to and method of rtx_sequence to clarify the code.
8344         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8345         reintroduce "insn" as a local rtx_insn * using a checked cast,
8346         dropping a checked cast made redundant by this change.
8347         (next_nonnote_insn_bb): Likewise.
8348         (prev_nonnote_insn): Likewise.
8349         (prev_nonnote_insn_bb): Likewise.
8350         (next_nondebug_insn): Likewise.
8351         (prev_nondebug_insn): Likewise.
8352         (next_nonnote_nondebug_insn): Likewise.
8353         (prev_nonnote_nondebug_insn): Likewise.
8354         (next_real_insn): Likewise.
8355         (prev_real_insn): Likewise.
8356         (next_active_insn): Likewise.
8357         (prev_active_insn): Likewise.
8358         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8359         clarity.
8360         (prev_cc0_setter): Likewise.
8361         (try_split): Rename param "trial" to "uncast_trial" and
8362         reintroduce "insn" as a local rtx_insn * using a checked cast,
8363         dropping checked casts made redundant by this change.
8364         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8365         rtx to rtx_insn *.
8366         (remove_insn): Rename param "insn" to "uncast_insn" and
8367         reintroduce "insn" as a local rtx_insn * using a checked cast.
8368         (emit_pattern_after_setloc): Likewise for param "after", as
8369         "uncast_after".
8370         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8371         rtx to rtx_insn *.
8372         (emit_pattern_before_setloc): Rename param "before" to
8373         "uncast_before" and reintroduce "before" as a local rtx_insn *
8374         using a checked cast.  Strengthen locals "first", "last" from
8375         rtx to rtx_insn *.
8376         (emit_pattern_before): Likewise rename/cast param "before" to
8377         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8378         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8379         "first" and local "insn" from rtx to rtx_insn *.
8380         (copy_reg_eh_region_note_backward): Likewise for param "last"
8381         and local "insn".
8382         * expr.c (fixup_args_size_notes): Rename param "last" to
8383         "uncast_last" and reintroduce "last" as a local rtx_insn *
8384         using a checked cast.  Strengthen local "insn" from rtx to
8385         rtx_insn *.
8386         * function.c (set_insn_locations): Strengthen param "insn" from
8387         rtx to rtx_insn *.
8388         (record_insns): Likewise for param "insns" and local "tmp".
8389         (active_insn_between): Rename param "tail" to
8390         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8391         using a checked cast.
8392         (thread_prologue_and_epilogue_insns): Split out top-level local
8393         rtx "seq" into three different rtx_insn * locals.  Strengthen
8394         local "prologue_seq" from rtx to rtx_insn *.
8395         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8396         from rtx to rtx_insn *.
8397         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8398         (priority): Likewise for locals "prev_first", "twin".
8399         (setup_insn_max_reg_pressure): Likewise for param "after".
8400         (sched_setup_bb_reg_pressure_info): Likewise.
8401         (no_real_insns_p): Strengthen params from const_rtx to
8402         const rtx_insn *.
8403         (schedule_block): Strengthen local "next_tail" from rtx to
8404         rtx_insn *.
8405         * ifcvt.c (find_active_insn_before): Strengthen return type and
8406         param "insn" from rtx to rtx_insn *.
8407         (find_active_insn_after): Likewise.
8408         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8409         (cond_exec_process_if_block): Likewise for locals "then_start",
8410         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8411         (noce_process_if_block): Likewise for local "jump".
8412         (merge_if_block): Likewise for two locals named "end".
8413         (cond_exec_find_if_block): Likewise for local "last_insn".
8414         * jump.c (delete_related_insns): Rename param "insn" to
8415         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8416         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8417         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8418         NULL.
8419         (split_reg): Likewise.
8420         * lra.c (lra_process_new_insns): Likewise.
8421         * modulo-sched.c (permute_partial_schedule): Strengthen param
8422         "last" from rtx to rtx_insn *.
8423         * optabs.c (add_equal_note): Likewise for param "insns" and local
8424         "last_insn".
8425         (expand_binop_directly): Add checked casts to rtx_insn * within
8426         NEXT_INSN (pat) uses.
8427         (expand_unop_direct): Likewise.
8428         (maybe_emit_unop_insn): Likewise.
8429         * recog.c (peep2_attempt): Strengthen locals "last",
8430         "before_try", "x" from rtx to rtx_insn *.
8431         * reorg.c (optimize_skip): Strengthen return type and local
8432         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8433         and locals "trial", "next_trial" from rtx to rtx_insn *.
8434         * resource.c (next_insn_no_annul): Strengthen return type and
8435         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8436         rtx_sequence to clarify the code.
8437         (mark_referenced_resources): Add a checked cast to rtx_insn *
8438         within PREV_INSN (x).
8439         (find_dead_or_set_registers): Strengthen return type, param
8440         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8441         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
8442         to rtx_insn **.
8443         (mark_target_live_regs): Strengthen params "insns" and "target",
8444         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8445         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
8446         the code.
8447         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8448         from rtx to rtx_insn *.
8449         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8450         from rtx to rtx_insn *.
8451         (copy_reg_eh_region_note_backward): Likewise.
8452         (unshare_all_rtl_in_chain): Likewise for sole param.
8453         (dump_rtl_slim): Strengthen second and third params from const_rtx
8454         to const rtx_insn *.
8455         * sched-deps.c (sched_free_deps): Strengthen params "head" and
8456         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8457         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8458         "next_tail" from rtx to rtx_insn *.
8459         (begin_move_insn): Likewise for local "next".
8460         * sched-int.h (sched_free_deps): Likewise for first and second
8461         params.
8462         (no_real_insns_p): Strengthen both params from const_rtx to
8463         const rtx_insn *.
8464         (sched_setup_bb_reg_pressure_info): Strengthen second params from
8465         rtx to rtx_insn *.
8466         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8467         "next_tail".
8468         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8469         and locals "insn", "tail" from const_rtx to const rtx_insn *.
8470         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8471         rtx_insn *.
8472         (debug_rtl_slim): Strengthen params "first" and "last" from
8473         const_rtx to const rtx_insn *.
8474         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8475         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8476         (convert_to_simple_return): Likewise for param "returnjump".
8477         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8478         "prologue_seq".
8479         (convert_to_simple_return): Likewise for param "returnjump".
8480         * valtrack.c (propagate_for_debug): Likewise for params
8481         "insn", "last".
8482         * valtrack.h (propagate_for_debug): Likewise for second param.
8483
8484 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8485
8486         * output.h (insn_current_reference_address): Strengthen param
8487         from rtx to rtx_insn *.
8488         * final.c (insn_current_reference_address): Likewise.
8489
8490 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8491
8492         * basic-block.h (inside_basic_block_p): Strengthen param from
8493         const_rtx to const rtx_insn *.
8494         * cfgbuild.c (inside_basic_block_p): Likewise.
8495
8496 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8497
8498         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
8499         rtx_insn *.
8500         (get_trace_info): Likewise for param "insn".
8501         (save_point_p): Likewise.
8502         (maybe_record_trace_start): Likewise for both params.
8503         (maybe_record_trace_start_abnormal): Likewise.
8504         (create_trace_edges): Likewise for sole param and for three of the
8505         locals named "lab".
8506         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
8507         to rtx_insn *, and update a call to pat->element to pat->insn.
8508
8509 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8510
8511         * function.h (struct expr_status): Convert field "x_forced_labels"
8512         from rtx_expr_list * to rtx_insn_list *.
8513
8514         * cfgbuild.c (make_edges): Convert local "x" from an
8515         rtx_expr_list * to an rtx_insn_list *, replacing use of
8516         "element" method with "insn" method.
8517         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8518         * except.c (sjlj_emit_dispatch_table): Replace use of
8519         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
8520         forced_labels.
8521         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
8522         rtx_expr_list * to an rtx_insn_list *, replacing use of
8523         "element" method with "insn" method.
8524         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8525         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
8526         rtx_insn *, adding a checked cast.  Replace use of
8527         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
8528         forced_labels.
8529         (expand_label): Likewise for local "label_r".
8530
8531 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8532
8533         * function.h (struct rtl_data): Convert field
8534         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
8535         rtx_insn_list *.
8536         * rtl.h (remove_node_from_insn_list): New prototype.
8537
8538         * builtins.c (expand_builtin): When prepending to
8539         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8540         gen_rtx_EXPR_LIST.
8541         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
8542         to rtx_insn_list *, and use its "insn" method rather than
8543         "element" method.
8544         * cfgrtl.c (delete_insn): Use new function
8545         remove_node_from_insn_list rather than
8546         remove_node_from_expr_list.
8547         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
8548         to rtx_insn_list *, and use its "insn" method rather than
8549         "element" method.
8550         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8551         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8552         * rtlanal.c (remove_node_from_insn_list): New function, adapted
8553         from remove_node_from_expr_list.
8554         * stmt.c (expand_label): When prepending to
8555         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8556         gen_rtx_EXPR_LIST.
8557
8558 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8559
8560         * function.h (struct rtl_data): Strengthen fields "x_return_label"
8561         and "x_naked_return_label" from rtx to rtx_code_label *.
8562
8563 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8564
8565         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
8566         (SET_NEXT_INSN): Likewise.
8567         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
8568
8569         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
8570         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
8571         to split out the SEQUENCE from local "bundle", strengthening the
8572         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
8573         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
8574         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
8575         and the type of the elements of the "slot" array from rtx to
8576         rtx_insn *.
8577         (reorg_split_calls): Likewise for locals "insn" and "next", and
8578         the type of the elements of the "slot" array.
8579
8580         * config/frv/frv.c (frv_nops): Likewise for the elements of this
8581         array.
8582         (frv_function_prologue): Likewise for locals "insn", "next",
8583         "last_call".
8584         (frv_register_nop): Introduce a local "nop_insn" to be the
8585         rtx_insn * containing rtx "nop".
8586
8587         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
8588         used as an insn and sometimes as a pattern, so rename it to
8589         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
8590         using it where dealing with the core insn.
8591
8592         * config/picochip/picochip.c (reorder_var_tracking_notes):
8593         Strengthen locals "insn", "next", "last_insn", "queue",
8594         "next_queue", "prev" from rtx to rtx_insn *.
8595
8596         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
8597         the second param is an rtx_insn ** rather than an rtx **.
8598         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
8599         from rtx to rtx_sequence *, and introduce local named "sequence",
8600         using methods of rtx_sequence to clarify the code.
8601         (remove_insn): Introduce local rtx_sequence * named "sequence" and
8602         use its methods.
8603         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
8604         Rename param "after" to "uncast_after", reintroducing "after" as a
8605         local rtx_insn * with a checked cast.
8606         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
8607         reintroducing "after" as a local rtx_insn * with a checked cast.
8608         Strengthen local "last" from rtx to rtx_insn * and remove the
8609         now-redundant checked casts.
8610         (copy_delay_slot_insn): Strengthen return type and param from rtx
8611         to rtx_insn *.
8612
8613         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
8614         "last" from rtx to rtx_insn *.
8615
8616 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8617
8618         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
8619         param from rtx to rtx_insn *.
8620
8621         * emit-rtl.c (copy_delay_slot_insn): Likewise.
8622
8623         * reorg.c (skip_consecutive_labels): Strengthen return type, param
8624         and local "insn" from rtx to rtx_insn *.
8625         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
8626         (unfilled_slots_next): Likewise.
8627         (function_return_label): Strengthen from rtx to rtx_code_label *.
8628         (function_simple_return_label): Likewise.
8629         (first_active_target_insn): Strengthen return type and param from
8630         rtx to rtx_insn *.
8631         (find_end_label): Strengthen return type from rtx to
8632         rtx_code_label *; strengthen locals as appropriate.
8633         (emit_delay_sequence): Strengthen return type, param "insn" and
8634         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
8635         and local "li" from rtx to rtx_insn_list *, using methods of
8636         rtx_insn_list for clarity and typesafety.
8637         (add_to_delay_list): Strengthen return type and param "insn" from
8638         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
8639         rtx_insn_list * and use methods of rtx_insn_list.
8640         (delete_from_delay_slot): Strengthen return type, param "insn",
8641         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
8642         Strengthen local "seq" from rtx to rtx_sequence *, and local
8643         "delay_list" from rtx to rtx_insn_list *, using methods of
8644         rtx_sequence for clarity and type-safety.
8645         (delete_scheduled_jump): Add checked cast when invoking
8646         delete_from_delay_slot.  Strengthen local "trial" from rtx to
8647         rtx_insn *.
8648         (optimize_skip): Strengthen return type and local "delay_list"
8649         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
8650         rtx_insn *.
8651         (steal_delay_list_from_target): Strengthen return type, param
8652         "delay_list" and local "new_delay_list" from rtx to
8653         rtx_insn_list *.  Strengthen param "seq" from rtx to
8654         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
8655         rtx_insn **.
8656         Split out local "temp" into multiple more-tightly scoped locals:
8657         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
8658         of rtx_insn_list and rtx_sequence for clarity and typesafety.
8659         Strengthen locals named "trial" from rtx to rtx_insn *.
8660         (steal_delay_list_from_fallthrough): Strengthen return type and
8661         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
8662         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
8663         Strengthen local "trial" from rtx to rtx_insn *.
8664         (try_merge_delay_insns): Strength local "merged_insns" from rtx
8665         to rtx_insn_list * and use its methods.  Strengthen local "pat"
8666         from rtx to rtx_sequence * and use its methods.  Strengthen locals
8667         "dtrial" and "new_rtx" from rtx to rtx_insn *.
8668         (get_label_before): Strengthen return type and local "label" from
8669         rtx to rtx_insn *.
8670         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
8671         "next_trial", "next", prev".  Strengthen local "delay_list" from
8672         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
8673         rtx_insn **.
8674         (follow_jumps): Strengthen return type, param "label" and locals
8675         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
8676         (fill_slots_from_thread): Strengthen return type, param
8677         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
8678         "insn", "thread", "opposite_thread" and locals "new_thread",
8679         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
8680         "sequence" from a checked cast to rtx_sequence so that we can call
8681         steal_delay_list_from_target and steal_delay_list_from_fallthrough
8682         with an rtx_sequence *.
8683         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
8684         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
8685         Strengthen local "delay_list" from rtx to rtx_insn_list *.
8686         (relax_delay_slots): Strengthen param "first" and locals "insn",
8687         "next", "trial", "delay_insn", "target_label" from rtx to
8688         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
8689         Introduce a local "trial_seq" for PATTERN (trial) of type
8690         rtx_sequence *, in both cases using methods of rtx_sequence.
8691         (dbr_schedule): Strengthen param "first" and locals "insn",
8692         "next", "epilogue_insn" from rtx to rtx_insn *.
8693
8694 2014-08-28  Richard Biener  <rguenther@suse.de>
8695
8696         PR tree-optimization/62283
8697         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8698         Do not peel loops for alignment where the vector loop likely
8699         doesn't run at least VF times.
8700
8701 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
8702
8703         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
8704         important_candidates.  Consider all important candidates if
8705         IVS doesn't give any result.  Remove check on ivs->upto.
8706         (try_add_cand_for): Call iv_ca_add_use only once.
8707
8708 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8709             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8710             Anna Tikhonova  <anna.tikhonova@intel.com>
8711             Ilya Tocar  <ilya.tocar@intel.com>
8712             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8713             Ilya Verbin  <ilya.verbin@intel.com>
8714             Kirill Yukhin  <kirill.yukhin@intel.com>
8715             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8716
8717         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
8718         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
8719         masking.
8720         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
8721         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8722         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8723         (define_insn "*mul<mode>3"): Add EVEX version.
8724
8725 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8726             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8727             Anna Tikhonova  <anna.tikhonova@intel.com>
8728             Ilya Tocar  <ilya.tocar@intel.com>
8729             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8730             Ilya Verbin  <ilya.verbin@intel.com>
8731             Kirill Yukhin  <kirill.yukhin@intel.com>
8732             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8733
8734         * config/i386/sse.md
8735         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
8736         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
8737         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
8738         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
8739         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
8740         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
8741         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
8742         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
8743         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
8744         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
8745         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
8746         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
8747         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
8748         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
8749         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
8750         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
8751
8752 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8753             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8754             Anna Tikhonova  <anna.tikhonova@intel.com>
8755             Ilya Tocar  <ilya.tocar@intel.com>
8756             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8757             Ilya Verbin  <ilya.verbin@intel.com>
8758             Kirill Yukhin  <kirill.yukhin@intel.com>
8759             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8760
8761         * config/i386/sse.md
8762         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
8763         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
8764         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
8765
8766 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8767             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8768             Anna Tikhonova  <anna.tikhonova@intel.com>
8769             Ilya Tocar  <ilya.tocar@intel.com>
8770             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8771             Ilya Verbin  <ilya.verbin@intel.com>
8772             Kirill Yukhin  <kirill.yukhin@intel.com>
8773             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8774
8775         * config/i386/sse.md
8776         (define_mode_iterator VI128_256): New.
8777         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
8778
8779 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8780             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8781             Anna Tikhonova  <anna.tikhonova@intel.com>
8782             Ilya Tocar  <ilya.tocar@intel.com>
8783             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8784             Ilya Verbin  <ilya.verbin@intel.com>
8785             Kirill Yukhin  <kirill.yukhin@intel.com>
8786             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8787
8788         * config/i386/sse.md
8789         (define_mode_iterator VI8_256_512): New.
8790         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
8791         Ditto.
8792         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
8793         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
8794         Ditto.
8795         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
8796
8797 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8798
8799         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
8800         pointer to the cumulative reloc value and return the value for
8801         this reloc instead.
8802         (compute_reloc_for_rtx): Take a const_rtx.  Call
8803         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
8804         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
8805         for_each_rtx for the CONST case.
8806
8807 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8808
8809         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
8810         (mark_constants_in_pattern): ...this new function to iterate over
8811         all the subrtxes.
8812         (mark_constants): Update accordingly.
8813
8814 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8815
8816         * varasm.c: Include rtl-iter.h.
8817         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
8818         Remove the pointer to the cumulative hashval_t and just return
8819         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
8820         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8821         Accumulate the hashval_ts here instead of const_rtx_hash_1.
8822
8823 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8824
8825         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
8826         Give real type of data parameter.  Remove return value.
8827         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
8828         to iterate over subrtxes.
8829
8830 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8831
8832         * var-tracking.c (use_narrower_mode_test): Turn from being a
8833         for_each_rtx callback to being a function that examines each
8834         subrtx itself.
8835         (adjust_mems): Update accordingly.
8836
8837 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8838
8839         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
8840         callback to being a function that examines each subrtx itself.
8841         Remove handling of null rtxes.
8842         (add_uses): Update accordingly.
8843
8844 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8845
8846         * var-tracking.c: Include rtl-iter.h.
8847         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
8848         to being a function that examines each subrtx itself.
8849         (use_type): Update accordingly.
8850
8851 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8852
8853         * store-motion.c: Include rtl-iter.h.
8854         (extract_mentioned_regs_1): Delete.
8855         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
8856         for_each_rtx to iterate over subrtxes.
8857
8858 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8859
8860         * sel-sched.c: Include rtl-iter.h
8861         (count_occurrences_1): Delete.
8862         (count_occurrences_equiv): Turn rtxes into const_rtxes.
8863         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8864
8865 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8866
8867         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
8868         * rtlanal.c (tls_referenced_p_1): Delete.
8869         (tls_referenced_p): Take a const_rtx rather than an rtx.
8870         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8871
8872 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8873
8874         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
8875         (for_each_inc_dec): Take an rtx rather than an rtx *.
8876         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
8877         (cselib_record_sets): Likewise.
8878         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
8879         (check_for_inc_dec): Likewise.
8880         * rtlanal.c (for_each_inc_dec_ops): Delete.
8881         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
8882         rather than a pointer to the memory address.  Replace
8883         for_each_inc_dec_ops argument with separate function and data
8884         arguments.  Abort on non-autoinc addresses.
8885         (for_each_inc_dec_find_mem): Delete.
8886         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
8887         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
8888
8889 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8890
8891         * rtl.h (find_all_hard_regs): Declare.
8892         * rtlanal.c (find_all_hard_regs): New function.
8893         (record_hard_reg_uses_1): Delete.
8894         (record_hard_reg_uses): Use find_all_hard_regs.
8895
8896 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8897
8898         * rtl.h (replace_label_data): Delete.
8899         (replace_label): Take the old label, new label and update-nuses flag
8900         as direct arguments.  Return void.
8901         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
8902         * rtlanal.c (replace_label): Update interface as above.  Handle
8903         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
8904         iterator.  Use FOR_EACH_SUBRTX_PTR.
8905
8906 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8907
8908         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
8909         with const_rtx parameters.
8910         * varasm.c (get_pool_constant): Likewise.
8911         * rtlanal.c (rtx_referenced_p_1): Delete.
8912         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8913         Assert that the rtx we're looking for is nonnull.  Allow searches
8914         for constant pool SYMBOL_REFs.
8915
8916 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8917
8918         * reload1.c: Include rtl-iter.h.
8919         (note_reg_elim_costly): Turn from being a for_each_rtx callback
8920         to being a function that examines each subrtx itself.
8921         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
8922
8923 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8924
8925         * regcprop.c (cprop_find_used_regs_1): Delete.
8926         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8927
8928 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8929
8930         * regcprop.c: Include rtl-iter.h.
8931         (kill_value): Take a const_rtx.
8932         (kill_autoinc_value): Turn from being a for_each_rtx callback
8933         to being a function that examines each subrtx itself.
8934         (copyprop_hardreg_forward_1): Update accordingly.
8935
8936 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8937
8938         * reg-stack.c: Include rtl-iter.h.
8939         (subst_stack_regs_in_debug_insn): Delete.
8940         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
8941         instead of for_each_rtx.
8942
8943 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8944
8945         * lower-subreg.c (find_decomposable_subregs): Turn from being
8946         a for_each_rtx callback to being a function that examines each
8947         subrtx itself.  Remove handling of null rtxes.
8948         (decompose_multiword_subregs): Update accordingly.
8949
8950 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8951
8952         * lower-subreg.c (adjust_decomposed_uses): Delete.
8953         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
8954         Remove handling of null rtxes.
8955
8956 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8957
8958         * lower-subreg.c: Include rtl-iter.h.
8959         (resolve_subreg_use): Turn from being a for_each_rtx callback
8960         to being a function that examines each subrtx itself.  Remove
8961         handling of null rtxes.
8962         (resolve_reg_notes, resolve_simple_move): Update accordingly.
8963         (decompose_multiword_subregs): Likewise.
8964
8965 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8966
8967         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
8968         to being a function that examines each subrtx itself.
8969         (simplify_using_condition, simplify_using_initial_values): Update
8970         accordingly.
8971
8972 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8973
8974         * loop-iv.c: Include rtl-iter.h.
8975         (find_single_def_src): New function.
8976         (replace_single_def_regs): Turn from being a for_each_rtx callback
8977         to being a function that examines each subrtx itself.
8978         (replace_in_expr, simplify_using_initial_values): Update accordingly.
8979
8980 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8981
8982         * jump.c (eh_returnjump_p_1): Delete.
8983         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8984         Remove handling of null rtxes.
8985
8986 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8987
8988         * jump.c: Include rtl-iter.h.
8989         (returnjump_p_1): Delete.
8990         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8991         Remove handling of null rtxes.
8992
8993 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8994
8995         * ira.c: Include rtl-iter.h.
8996         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
8997         to being a function that examines each subrtx itself.  Remove
8998         handling of null rtxes.
8999         (update_equiv_regs): Update call accordingly.
9000
9001 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9002
9003         * fwprop.c: Include rtl-iter.h.
9004         (varying_mem_p): Turn from being a for_each_rtx callback to being
9005         a function that examines each subrtx itself.
9006         (propagate_rtx): Update accordingly.
9007
9008 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9009
9010         * function.c: Include rtl-iter.h
9011         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9012         callback to being a function that examines each subrtx itself.
9013         Return the changed flag.
9014         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9015         (instantiate_virtual_regs): Update calls accordingly.
9016
9017 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9018
9019         * final.c: Include rtl-iter.h.
9020         (mark_symbol_ref_as_used): Delete.
9021         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9022         for_each_rtx.
9023
9024 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9025
9026         * emit-rtl.c: Include rtl-iter.h.
9027         (find_auto_inc): Turn from being a for_each_rtx callback to being
9028         a function that examines each subrtx itself.  Assume the first operand
9029         to an RTX_AUTOINC is the automodified register.
9030         (try_split): Update call accordingly.
9031
9032 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9033
9034         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9035         Return a bool, inverting the result so that 0/false means "not ok".
9036         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9037         subrtxes of a CONST.
9038         (mem_loc_descriptor, add_const_value_attribute)
9039         (resolve_addr_in_expr): Update calls accordingly.
9040
9041 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9042
9043         * dwarf2out.c: Include rtl-iter.h.
9044         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9045         Remove unused data parameter.  Return a bool, inverting the result
9046         so that 0/false means "not ok".
9047         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
9048         instead of for_each_rtx.
9049
9050 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9051
9052         * dse.c: Include rtl-iter.h.
9053         (check_mem_read_rtx): Change void * parameter to real type.
9054         Remove return value.
9055         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
9056         for_each_rtx.  Don't handle null rtxes.
9057
9058 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9059
9060         * df-problems.c: Include rtl-iter.h.
9061         (find_memory): Turn from being a for_each_rtx callback to being
9062         a function that examines each subrtx itself.  Continue to look for
9063         volatile references even after a nonvolatile one has been found.
9064         (can_move_insns_across): Update calls accordingly.
9065
9066 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9067
9068         * ddg.c (walk_mems_2, walk_mems_1): Delete.
9069         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9070         to iterate over subrtxes.  Return a bool rather than an int.
9071
9072 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9073
9074         * ddg.c: Include rtl-iter.h.
9075         (mark_mem_use_1): Rename to...
9076         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
9077         instead of for_each_rtx.
9078         (mem_read_insn_p): Update accordingly.
9079
9080 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9081
9082         * cse.c (change_cc_mode_args): Delete.
9083         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9084         a function that examines each subrtx itself.  Take the fields of
9085         change_cc_mode_args as argument and return void.
9086         (cse_change_cc_mode_insn): Update calls accordingly.
9087
9088 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9089
9090         * cse.c (is_dead_reg): Change argument to const_rtx.
9091         (dead_debug_insn_data): Delete.
9092         (is_dead_debug_insn): Expand commentary.  Turn from being a
9093         for_each_rtx callback to being a function that examines
9094         each subrtx itself.  Take the fields of dead_debug_insn_data
9095         as argument.
9096         (delete_trivially_dead_insns): Update call accordingly.
9097
9098 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9099
9100         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9101         being a for_each_rtx callback to being a function that examines
9102         each subrtx itself.
9103         (cse_extended_basic_block): Update call accordingly.
9104
9105 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9106
9107         * cse.c (check_dependence_data): Delete.
9108         (check_dependence): Change from being a for_each_rtx callback to being
9109         a function that examines all subrtxes itself.  Don't handle null rtxes.
9110         (invalidate): Update call accordingly.
9111
9112 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9113
9114         * cse.c: Include rtl-iter.h.
9115         (approx_reg_cost_1): Delete.
9116         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9117         Don't handle null rtxes.
9118
9119 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9120
9121         * cfgcleanup.c: Include rtl-iter.h.
9122         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9123         to being a function that examines each subrtx itself.
9124         (thread_jump): Update accordingly.
9125
9126 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9127
9128         * combine-stack-adj.c: Include rtl-iter.h.
9129         (record_stack_refs_data): Delete.
9130         (record_stack_refs): Turn from being a for_each_rtx callback
9131         to being a function that examines each subrtx itself.
9132         Take a pointer to the reflist.  Invert sense of return value
9133         so that true means success and false means failure.  Don't
9134         handle null rtxes.
9135         (combine_stack_adjustments_for_block): Update accordingly.
9136
9137 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9138
9139         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9140         callback to a function that takes an rtx and returns a bool
9141         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9142         for_each_rtx.
9143
9144 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9145
9146         * combine.c: Include rtl-iter.h.
9147         (unmentioned_reg_p_1): Delete.
9148         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9149         Don't handle null rtxes.
9150
9151 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9152
9153         * calls.c: Include rtl-iter.h.
9154         (internal_arg_pointer_based_exp_1): Delete.
9155         (internal_arg_pointer_based_exp): Take a const_rtx.
9156         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9157
9158 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9159
9160         * caller-save.c: Include rtl-iter.h.
9161         (add_used_regs_1): Delete.
9162         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9163         to iterate over subrtxes.  Assert that any remaining pseudos
9164         have been spilled.
9165
9166 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9167
9168         * bt-load.c: Include rtl-iter.h.
9169         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9170         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9171         to iterate over subrtxes.
9172         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9173         find_btr_use rather than btr_referenced_p.
9174
9175 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9176
9177         * alias.c: Include rtl-iter.h.
9178         (refs_newer_value_cb): Delete.
9179         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9180
9181 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9182
9183         * rtl-iter.h: New file.
9184         * rtlanal.c: Include it.
9185         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9186         (generic_subrtx_iterator <T>::add_single_to_queue)
9187         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9188         (generic_subrtx_iterator <T>::free_array): New functions.
9189         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9190         (generic_subrtx_iterator <const_rtx_accessor>)
9191         (generic_subrtx_iterator <rtx_var_accessor>
9192         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9193         (setup_reg_subrtx_bounds): New function.
9194         (init_rtlanal): Call it.
9195
9196 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9197
9198         PR target/62261
9199         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9200         TARGET_SHMEDIA.
9201         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9202
9203 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9204
9205         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9206
9207 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9208
9209         * rtl.h (JUMP_LABEL_AS_INSN): New.
9210
9211 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9212
9213         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9214         rtx_expr_list **.
9215         (alloc_EXPR_LIST): Strengthen return type from rtx to
9216         rtx_expr_list *.
9217         (remove_free_EXPR_LIST_node): Likewise for param.
9218         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9219         from rtx to rtx_expr_list *.
9220         * sched-int.h (struct deps_desc): Strengthen fields
9221         "pending_read_mems" and "pending_write_mems" from rtx to
9222         rtx_expr_list *.
9223
9224         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9225         rtx to rtx_expr_list *.
9226         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9227         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9228         rtx_expr_list **.
9229         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9230         from rtx to rtx_expr_list *.
9231         * loop-iv.c (simplify_using_initial_values): Strengthen local
9232         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9233         "pnote_next" from rtx * to rtx_expr_list **.
9234         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9235         param "exprp" from rtx * to rtx_expr_list **.
9236         (add_insn_mem_dependence): Strengthen local "mem_list" from
9237         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9238         to rtx_expr_list *.
9239         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9240         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9241         param "old_mems_p" from rtx * to rtx_expr_list **.
9242         * var-tracking.c (struct adjust_mem_data): Strengthen field
9243         "side_effects" from rtx to rtx_expr_list *.
9244         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9245         rtx_expr_list *.
9246         (prepare_call_arguments): Likewise.
9247
9248 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9249
9250         * function.h (struct rtl_data): Strengthen field
9251         "x_stack_slot_list" from rtx to rtx_expr_list *.
9252
9253         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9254         when assigning to stack_slot_list.
9255
9256 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9257
9258         * function.h (struct rtl_data): Strengthen field
9259         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9260         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9261         rtx * to rtx_expr_list **.
9262
9263         * cfgbuild.c (make_edges): In loop over
9264         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9265         rtx_expr_list *, and use methods of the latter class to clarify
9266         the code.
9267         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9268         rtx_expr_list *, and use methods of the latter class to clarify
9269         the code.
9270         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9271         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9272         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9273         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9274         to rtx_expr_list *.  Use methods of the latter class to clarify
9275         the code.
9276
9277 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9278
9279         * function.h (struct expr_status): Strengthen field
9280         "x_forced_labels" from rtx to rtx_expr_list *.
9281
9282         * cfgbuild.c (make_edges): Split local "x" into two locals,
9283         strengthening one from rtx to rtx_expr_list *, and using methods
9284         of said class.
9285         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9286         loop over forced_labels, introduce strengthen it from rtx to
9287         rtx_expr_list *, using methods to clarify the code.
9288         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9289         to rtx_expr_list *, using methods of said class to clarify the
9290         code.
9291         * reload1.c (set_initial_label_offsets): Split local "x" into two
9292         per-loop variables, strengthening the first from rtx to
9293         rtx_expr_list * and using methods.
9294
9295 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9296
9297         * coretypes.h (class rtx_expr_list): Add forward declaration.
9298         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9299         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9300         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9301         invariant: GET_CODE (X) == EXPR_LIST.
9302         (is_a_helper <rtx_expr_list *>::test): New.
9303         (rtx_expr_list::next): New.
9304         (rtx_expr_list::element): New.
9305         (gen_rtx_EXPR_LIST): New.
9306
9307 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9308
9309         * varasm.c (mark_constants): Convert a GET_CODE check into a
9310         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9311         Use methods of rtx_sequence to clarify the code.
9312
9313 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9314
9315         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9316         local "seq" via a checked cast, and use methods of rtx_sequence
9317         to simplify the code.
9318
9319 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9320
9321         * resource.c (mark_referenced_resources): Strengthen local
9322         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9323         using methods of rtx_sequence to clarify the code.
9324         (find_dead_or_set_registers): Within the switch statement, convert
9325         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9326         the JUMP_P handling, introduce another local "seq", adding a
9327         checked cast to rtx_sequence *.  In both cases, use methods of
9328         rtx_sequence to clarify the code.
9329         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9330         via a checked cast, and use methods of rtx_sequence to simplify
9331         the code.
9332
9333 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9334
9335         * reorg.c (redundant_insn): In two places in the function, replace
9336         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9337         usings methods of rtx_sequence to clarify the code.
9338
9339 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9340
9341         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9342         local "seq" with a checked cast, and use methods of rtx_sequence
9343         to clarify the code.
9344
9345 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9346
9347         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9348         with a checked cast, in the region for where we know it's a
9349         SEQUENCE.  Use methods of rtx_sequence.
9350
9351 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9352
9353         * final.c (get_attr_length_1): Replace GET_CODE check with a
9354         dyn_cast, introducing local "seq" and the use of methods of
9355         rtx_sequence.
9356         (shorten_branches): Likewise, introducing local "body_seq".
9357         Strengthen local "inner_insn" from rtx to rtx_insn *.
9358         (reemit_insn_block_notes): Replace GET_CODE check with a
9359         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9360         Use methods of rtx_sequence.
9361         (final_scan_insn): Likewise, introducing local "seq" for when
9362         "body" is known to be a SEQUENCE, using its methods.
9363
9364 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9365
9366         * except.c (can_throw_external): Strengthen local "seq" from rtx
9367         to rtx_sequence *.  Use methods of rtx_sequence.
9368         (insn_nothrow_p): Likewise.
9369
9370 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9371
9372         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9373         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9374         Use methods of rtx_sequence.
9375         (scan_trace): Likewise for local "pat".
9376
9377 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9378
9379         * coretypes.h (class rtx_sequence): Add forward declaration.
9380         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9381         invariant: GET_CODE (X) == SEQUENCE.
9382         (is_a_helper <rtx_sequence *>::test): New.
9383         (is_a_helper <const rtx_sequence *>::test): New.
9384         (rtx_sequence::len): New.
9385         (rtx_sequence::element): New.
9386         (rtx_sequence::insn): New.
9387
9388 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9389
9390         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9391         rtx_insn_list **.
9392         (alloc_INSN_LIST): Strengthen return type from rtx to
9393         rtx_insn_list *.
9394         (copy_INSN_LIST): Likewise for return type and param.
9395         (concat_INSN_LIST): Likewise for both params and return type.
9396         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9397         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9398         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9399         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9400
9401         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9402         "implicit_sets", "control_uses", "clobbers" from rtx to
9403         rtx_insn_list *.
9404         (struct deps_desc): Likewise for fields "pending_read_insns",
9405         "pending_write_insns", "pending_jump_insns",
9406         "last_pending_memory_flush", "last_function_call",
9407         "last_function_call_may_noreturn", "sched_before_next_call",
9408         "sched_before_next_jump".
9409         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9410         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9411
9412         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9413         from rtx to rtx_insn_list *.
9414         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9415         rtx_insn_list *.
9416
9417         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9418         to rtx_insn_list **.
9419         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9420         rtx_insn_list *.
9421         (queue_insn): Likewise for local "link".
9422         (struct haifa_saved_data): Strengthen field "insn_queue" from
9423         rtx * to rtx_insn_list **.
9424         (save_backtrack_point): Update allocation of save->insn_queue to
9425         reflect the strengthening of elements from rtx to rtx_insn_list *.
9426         (queue_to_ready): Strengthen local "link" from rtx to
9427         rtx_insn_list *; use methods "next" and "insn" when traversing the
9428         list.
9429         (early_queue_to_ready): Likewise for locals "link", "next_link",
9430         "prev_link".
9431         (schedule_block): Update allocation of insn_queue to reflect the
9432         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9433         local "link" from rtx to rtx_insn_list *, and use methods when
9434         working it.
9435         (add_to_speculative_block): Strengthen locals "twins" and
9436         "next_node" from rtx to rtx_insn_list *, and use methods when
9437         working with them.  Strengthen local "twin" from rtx to
9438         rtx_insn *, eliminating a checked cast.
9439         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9440         from rtx to rtx_insn_list *, and use methods when working with
9441         them.
9442
9443         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9444         from rtx to rtx_insn_list *, adding a checked cast.
9445         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9446         rtx_insn_list **.
9447         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9448         "newlink" from rtx to rtx_insn_list *.  Strengthen local
9449         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
9450         from rtx to rtx_insn *.
9451         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9452         from rtx to rtx_insn_list *.  Use methods of the latter class.
9453         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9454         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9455         (remove_free_INSN_LIST_node): Strengthen return type and local
9456         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
9457         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
9458         rtx_insn_list *, using "insn" method.
9459
9460         * sched-deps.c (add_dependence_list):  Strengthen param "list"
9461         from rtx to rtx_insn_list *, and use methods when working with it.
9462         (add_dependence_list_and_free):  Strengthen param "listp" from
9463         rtx * to rtx_insn_list **.
9464         (remove_from_dependence_list): Strenghten param "listp" from rtx *
9465         to rtx_insn_list **, and use methods when working with *listp.
9466         (remove_from_both_dependence_lists): Strengthen param "listp" from
9467         rtx * to rtx_insn_list **
9468         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9469         to rtx_insn_list **.  Eliminate local "link", in favor of two new
9470         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9471         respectively.
9472         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9473         by introducing local "cond_deps".
9474         (remove_from_deps): Strengthen param "insn" from rtx to
9475         rtx_insn *.
9476
9477         * sched-rgn.c (concat_insn_mem_list): Strengthen param
9478         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9479         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9480         Use methods of rtx_insn_list.
9481
9482         * store-motion.c (struct st_expr): Strengthen fields
9483         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9484         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9485         rtx_insn_list *.
9486         (find_moveable_store): Split out "tmp" into multiple more-tightly
9487         scoped locals.  Use methods of rtx_insn_list *.
9488         (compute_store_table): Strengthen local "tmp" from rtx to
9489         rtx_insn *.  Use methods of rtx_insn_list *.
9490
9491 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9492
9493         * coretypes.h (class rtx_insn_list): Add forward declaration.
9494         * rtl.h (class rtx_insn_list): New subclass of rtx_def
9495         (is_a_helper <rtx_insn_list *>::test): New.
9496         (rtx_insn_list::next): New.
9497         (rtx_insn_list::insn): New.
9498         (gen_rtx_INSN_LIST): Add prototype.
9499         * emit-rtl.c (gen_rtx_INSN_LIST): New.
9500         * gengenrtl.c (special_rtx): Add INSN_LIST.
9501
9502 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9503
9504         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
9505         "prev" from rtx to rtx_insn *.
9506
9507 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9508
9509         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
9510         functions.  Require merely an rtx for now, not an rtx_insn *.
9511         (BLOCK_FOR_INSN): Likewise.
9512         (INSN_LOCATION): Likewise.
9513         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
9514
9515 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9516
9517         * rtl.h (PATTERN): Convert this macro into a pair of inline
9518         functions, for now, requiring const_rtx and rtx.
9519
9520 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9521
9522         * target.def (unwind_emit): Strengthen param "insn" from rtx to
9523         rtx_insn *.
9524         (final_postscan_insn): Likewise.
9525         (adjust_cost): Likewise.
9526         (adjust_priority): Likewise.
9527         (variable_issue): Likewise.
9528         (macro_fusion_pair_p): Likewise.
9529         (dfa_post_cycle_insn): Likewise.
9530         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
9531         (first_cycle_multipass_issue): Likewise.
9532         (dfa_new_cycle): Likewise.
9533         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
9534         (speculate_insn): Likewise for param "insn".
9535         (gen_spec_check): Likewise for params "insn" and "label".
9536         (get_insn_spec_ds): Likewise for param "insn".
9537         (get_insn_checked_ds): Likewise.
9538         (dispatch_do): Likewise.
9539         (dispatch): Likewise.
9540         (cannot_copy_insn_p): Likewise.
9541         (invalid_within_doloop): Likewise.
9542         (legitimate_combined_insn): Likewise.
9543         (needed): Likewise.
9544         (after): Likewise.
9545
9546         * doc/tm.texi: Automatically updated to reflect changes to
9547         target.def.
9548
9549         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
9550         working with insn.
9551         (schedule_block): Likewise.
9552         (sched_init): Likewise.
9553         (sched_speculate_insn): Strengthen param "insn" from rtx to
9554         rtx_insn *.
9555         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
9556         working with insn.
9557         * hooks.c (hook_bool_rtx_true): Rename to...
9558         hook_bool_rtx_insn_true): ...this, and strengthen first param from
9559         rtx to rtx_insn *.
9560         (hook_constcharptr_const_rtx_null): Rename to...
9561         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9562         first param from const_rtx to const rtx_insn *.
9563         (hook_bool_rtx_int_false): Rename to...
9564         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9565         param from rtx to rtx_insn *.
9566         (hook_void_rtx_int): Rename to...
9567         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9568         rtx to rtx_insn *.
9569
9570         * hooks.h (hook_bool_rtx_true): Rename to...
9571         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
9572         rtx to rtx_insn *.
9573         (hook_bool_rtx_int_false): Rename to...
9574         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9575         param from rtx to rtx_insn *.
9576         (hook_void_rtx_int): Rename to...
9577         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9578         rtx to rtx_insn *.
9579         (hook_constcharptr_const_rtx_null): Rename to...
9580         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9581         first param from const_rtx to const rtx_insn *.
9582
9583         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
9584         and local "prev" from rtx to rtx_insn *.
9585
9586         * sched-int.h (sched_speculate_insn): Strengthen first param from
9587         rtx to rtx_insn *.
9588
9589         * sel-sched.c (create_speculation_check): Likewise for local "label".
9590         * targhooks.c (default_invalid_within_doloop): Strengthen param
9591         "insn" from const_rtx to const rtx_insn *.
9592         * targhooks.h (default_invalid_within_doloop): Strengthen param
9593         from const_rtx to const rtx_insn *.
9594
9595         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
9596         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
9597
9598         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
9599         "insn".
9600         (arc_invalid_within_doloop): Likewise, with const.
9601
9602         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
9603         (arm_cannot_copy_insn_p): Likewise for param "insn".
9604         (arm_unwind_emit): Likewise.
9605
9606         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
9607         "dep_insn".
9608
9609         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
9610         (c6x_variable_issue): Likewise.  Removed now-redundant checked
9611         cast.
9612         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
9613
9614         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
9615         Likewise for param "insn".
9616         (epiphany_mode_after): Likewise.
9617         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
9618         params "insn", "dep_insn".
9619         (epiphany_mode_needed): Likewise for param "insn".
9620         (epiphany_mode_after): Likewise.
9621
9622         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
9623         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
9624         (ix86_avx_u128_mode_needed): Likewise.
9625         (ix86_i387_mode_needed): Likewise.
9626         (ix86_mode_needed): Likewise.
9627         (ix86_avx_u128_mode_after): Likewise.
9628         (ix86_mode_after): Likewise.
9629         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
9630         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
9631         (ix86_adjust_priority): Likewise for param "insn".
9632         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
9633         (do_dispatch): Likewise.
9634         (has_dispatch): Likewise.
9635         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
9636
9637         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
9638         reflect renaming of default hook implementation from
9639         hook_constcharptr_const_rtx_null to
9640         hook_constcharptr_const_rtx_insn_null.
9641         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
9642         rtx to rtx_insn *.
9643         (ia64_variable_issue): Likewise for param "insn".
9644         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
9645         (ia64_dfa_new_cycle): Likewise.
9646         (ia64_get_insn_spec_ds): Likewise.
9647         (ia64_get_insn_checked_ds): Likewise.
9648         (ia64_speculate_insn): Likewise.
9649         (ia64_gen_spec_check): Likewise for params "insn", "label".
9650         (ia64_asm_unwind_emit): Likewise for param "insn".
9651
9652         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
9653
9654         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
9655         "insn", "def_insn".
9656         (m68k_sched_variable_issue): Likewise for param "insn".
9657
9658         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
9659         "def_insn".
9660
9661         * config/microblaze/microblaze.c (microblaze_adjust_cost):
9662         Likewise for params "insn", "dep".
9663
9664         * config/mips/mips.c (mips_adjust_cost): Likewise.
9665         (mips_variable_issue): Likewise for param "insn".
9666         (mips_final_postscan_insn): Likewise.
9667
9668         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
9669         for params "insn", "dep".
9670
9671         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
9672         "dep_insn".
9673         (pa_adjust_priority): Likewise for param "insn".
9674
9675         * config/picochip/picochip.c (picochip_sched_adjust_cost):
9676         Likewise for params "insn", "dep_insn".
9677
9678         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
9679         param "insn".
9680         (rs6000_variable_issue): Likewise.
9681         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
9682         (rs6000_debug_adjust_cost): Likewise.
9683         (rs6000_adjust_priority): Likewise for param "insn".
9684         (rs6000_use_sched_lookahead_guard): Likewise.
9685         (get_next_active_insn): Likewise for return type and both params.
9686         (redefine_groups): Likewise for params "prev_head_insn", "tail"
9687         and locals "insn", "next_insn".
9688         (pad_groups): Likewise.
9689
9690         * config/s390/s390.c (s390_adjust_priority): Likewise for param
9691         "insn".
9692         (s390_cannot_copy_insn_p): Likewise.
9693         (s390_sched_variable_issue): Likewise for third param, eliminating
9694         checked cast.
9695         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
9696         default hook implementation from hook_constcharptr_const_rtx_null
9697         to hook_constcharptr_const_rtx_insn_null.
9698
9699         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
9700         from rtx to rtx_insn *.
9701         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
9702         (sh_variable_issue): Likewise for param "insn".
9703         (sh_dfa_new_cycle): Likewise.
9704         (sh_mode_needed): Likewise.
9705         (sh_mode_after): Likewise.
9706
9707         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
9708         params "insn", "dep_insn".
9709         (hypersparc_adjust_cost): Likewise.
9710         (sparc_adjust_cost): Likewise.
9711
9712         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
9713         param, eliminated checked cast.
9714         (spu_sched_adjust_cost): Likewise for first and third params.
9715
9716         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
9717         params "insn" and "dep_insn" from rtx to rtx_insn *.
9718
9719         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
9720
9721 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9722
9723         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
9724         (set_is_load_p): ...this, updating to work on a SET pattern rather
9725         than an insn.
9726         (is_store_insn): Rename to...
9727         (set_is_store_p): ...this, updating to work on a SET pattern
9728         rather than an insn.
9729         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
9730         top of function to where it is needed.  Rewrite the bogus
9731         condition that checks for "insn" and "dep" being PARALLEL to
9732         instead use single_set, introducing locals "insn_set" and
9733         "dep_set".  Given that we only ever returned "cost" for a non-pair
9734         of SETs, bail out early if we don't have a pair of SET.
9735         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
9736         use the new locals "insn_set" and "dep_set", and update calls to
9737         is_load_insn and is_store_insn to be calls to set_is_load_p and
9738         set_is_store_p.
9739
9740 2014-08-27  Guozhi Wei  <carrot@google.com>
9741
9742         PR target/62262
9743         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
9744         amount before using it.
9745
9746 2014-08-27  Richard Biener  <rguenther@suse.de>
9747
9748         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
9749         get_maxval_strlen inside a more useful API.
9750         (gimple_fold_builtin_with_strlen): Remove and fold into ...
9751         (gimple_fold_builtin): ... caller.
9752         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
9753         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
9754         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
9755         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
9756         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
9757         gimple_fold_builtin_sprintf): Adjust to compute maxval
9758         themselves.
9759
9760 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
9761
9762         PR other/62248
9763         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
9764
9765 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9766             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9767             Anna Tikhonova  <anna.tikhonova@intel.com>
9768             Ilya Tocar  <ilya.tocar@intel.com>
9769             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9770             Ilya Verbin  <ilya.verbin@intel.com>
9771             Kirill Yukhin  <kirill.yukhin@intel.com>
9772             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9773
9774         * config/i386/sse.md
9775         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
9776         Use `concat_tg_mode' attribute to determine asm register size.
9777
9778 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9779             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9780             Anna Tikhonova  <anna.tikhonova@intel.com>
9781             Ilya Tocar  <ilya.tocar@intel.com>
9782             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9783             Ilya Verbin  <ilya.verbin@intel.com>
9784             Kirill Yukhin  <kirill.yukhin@intel.com>
9785             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9786
9787         * config/i386/sse.md
9788         (define_mode_iterator VI48_AVX512VL): New.
9789         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
9790         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
9791         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
9792         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9793         with VI1): Change mode iterator.
9794         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9795         with VI_ULOADSTORE_BW_AVX512VL): New.
9796         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9797         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9798         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9799         with VI1): Change mode iterator.
9800         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9801         with VI_ULOADSTORE_BW_AVX512VL): New.
9802         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9803         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9804         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9805         with VI1): Change mode iterator.
9806         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9807         with VI_ULOADSTORE_BW_AVX512VL): New.
9808         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9809         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
9810         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
9811         (define_insn "<avx512>_storedqu<mode>_mask" with
9812         VI48_AVX512VL): New.
9813         (define_insn "<avx512>_storedqu<mode>_mask" with
9814         VI12_AVX512VL): Ditto.
9815
9816 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9817             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9818             Anna Tikhonova  <anna.tikhonova@intel.com>
9819             Ilya Tocar  <ilya.tocar@intel.com>
9820             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9821             Ilya Verbin  <ilya.verbin@intel.com>
9822             Kirill Yukhin  <kirill.yukhin@intel.com>
9823             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9824
9825         * config/i386/sse.md
9826         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
9827         (define_mode_iterator VI48_AVX512BW): New.
9828         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
9829         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9830         with VI48_AVX2_48_AVX512F): New.
9831         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9832         with VI2_AVX512VL): Ditto.
9833
9834 2014-08-27  Richard Biener  <rguenther@suse.de>
9835
9836         PR middle-end/62239
9837         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
9838         (fold_builtin_3): Do not fold strcat_chk here.
9839         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
9840         from builtins.c.
9841         (gimple_fold_builtin): Fold strcat_chk here.
9842
9843 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
9844
9845         * dwarf2out.h (dwarf2out_decl): Remove prototype.
9846         * dwarf2out.c (dwarf2out_decl): Make static.
9847
9848 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
9849
9850         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
9851
9852 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9853
9854         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
9855         from rtx to rtx_insn *.
9856         (cselib_lookup_from_insn): Likewise for final param.
9857         (cselib_subst_to_values_from_insn): Likewise.
9858         (cselib_add_permanent_equiv): Likewise.
9859
9860         * cselib.c (cselib_current_insn): Likewise for this variable.
9861         (cselib_subst_to_values_from_insn): Likewise for param "insn".
9862         (cselib_lookup_from_insn): Likewise.
9863         (cselib_add_permanent_equiv): Likewise for param "insn" and local
9864         "save_cselib_current_insn".
9865         (cselib_process_insn): Replace use of NULL_RTX with NULL.
9866
9867         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
9868         from rtx to rtx_insn *.
9869
9870 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9871
9872         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
9873         rtx_insn *.
9874
9875 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9876
9877         * df.h (df_dump_insn_problem_function): Strengthen first param of
9878         this callback from const_rtx to const rtx_insn *.
9879         (struct df_insn_info): Strengthen field "insn" from rtx to
9880         rtx_insn *.
9881         (DF_REF_INSN): Eliminate this function, reinstating the older
9882         macro definition.
9883         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
9884         (df_reg_defined): Likewise.
9885         (df_find_use): Likewise.
9886         (df_reg_used): Likewise.
9887         (df_dump_insn_top): Strengthen param 1 from const_rtx to
9888         const rtx_insn *.
9889         (df_dump_insn_bottom): Likewise.
9890         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
9891         (df_insn_debug_regno): Likewise.
9892         (debug_df_insn): Likewise.
9893         (df_rd_simulate_one_insn): Likewise for param 2.
9894         (df_word_lr_simulate_defs): Likewise for param 1.
9895         (df_word_lr_simulate_uses): Likewise.
9896         (df_md_simulate_one_insn): Likewise for param 2.
9897         (df_simulate_find_noclobber_defs): Likewise for param 1.
9898         (df_simulate_find_defs): Likewise.
9899         (df_simulate_defs): Likewise.
9900         (df_simulate_uses): Likewise.
9901         (df_simulate_one_insn_backwards): Likewise for param 2.
9902         (df_simulate_one_insn_forwards): Likewise.
9903         (df_uses_create): Likewise for param 2.
9904         (df_insn_create_insn_record): Likewise for param 1.
9905         (df_insn_delete): Likewise.
9906         (df_insn_rescan): Likewise.
9907         (df_insn_rescan_debug_internal): Likewise.
9908         (df_insn_change_bb): Likewise.
9909         (df_notes_rescan): Likewise.
9910         * rtl.h (remove_death): Likewise for param 2.
9911         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
9912         const rtx_insn *.
9913         * sched-int.h (reemit_notes): Strengthen param from rtx to
9914         rtx_insn *.
9915         * valtrack.h (propagate_for_debug): Likewise for param 1.
9916
9917         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
9918         local "tmp_rtx" from const_rtx to const rtx_insn *.
9919         * combine.c (remove_death): Strengthen param "insn" from rtx to
9920         rtx_insn *.
9921         (move_deaths): Likewise for local "where_dead".
9922         * cse.c (delete_trivially_dead_insns): Introduce local
9923         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
9924         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
9925         rtx_insn *.
9926         (df_reg_defined): Likewise.
9927         (df_find_use): Likewise.
9928         (df_reg_used): Likewise.
9929         (df_dump_insn_problem_data): Strengthen param "insn" from
9930         const_rtx to const rtx_insn *.
9931         (df_dump_insn_top): Likewise.
9932         (df_dump_insn_bottom): Likewise.
9933         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
9934         (df_insn_debug_regno): Likewise.
9935         (debug_df_insn): Likewise.
9936         (DF_REF_INSN): Delete.
9937         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
9938         from rtx to rtx_insn *.
9939         (df_chain_insn_top_dump): Strengthen param "insn" from
9940         const_rtx to const rtx_insn *.
9941         (df_chain_insn_bottom_dump): Likewise.
9942         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
9943         rtx_insn *.
9944         (df_word_lr_simulate_uses): Likewise.
9945         (df_print_note): Likewise.
9946         (df_remove_dead_and_unused_notes): Likewise.
9947         (df_set_unused_notes_for_mw): Likewise.
9948         (df_set_dead_notes_for_mw): Likewise.
9949         (df_create_unused_note): Likewise.
9950         (df_simulate_find_defs): Likewise.
9951         (df_simulate_find_uses): Likewise.
9952         (df_simulate_find_noclobber_defs): Likewise.
9953         (df_simulate_defs): Likewise.
9954         (df_simulate_uses): Likewise.
9955         (df_simulate_one_insn_backwards): Likewise.
9956         (df_simulate_one_insn_forwards): Likewise.
9957         (df_md_simulate_one_insn): Likewise.
9958         * df-scan.c (df_uses_create): Likewise.
9959         (df_insn_create_insn_record): Likewise.
9960         (df_insn_delete): Likewise.
9961         (df_insn_rescan): Likewise.
9962         (df_insn_rescan_debug_internal): Likewise.
9963         (df_insn_change_bb): Likewise.
9964         (df_notes_rescan): Likewise.
9965         (df_refs_add_to_chains): Likewise.
9966         (df_insn_refs_verify): Likewise.
9967         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
9968         when invoking df_insn_delete.
9969         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
9970         (set_unique_reg_note): Add checked cast.
9971         * final.c (cleanup_subreg_operands): Likewise.
9972         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
9973         "insn" from rtx to rtx_insn *.
9974         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
9975         "last" from rtx to rtx_insn *.
9976         * ira-emit.c (change_regs_in_insn): New function.
9977         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
9978         Invoke change_regs_in_insn rather than change_regs.
9979         * ira.c (update_equiv_regs): Strengthen locals "insn",
9980         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
9981         for_each_rtx_in_insn rather than for_each_rtx.
9982         * recog.c (confirm_change_group): Add checked casts.
9983         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
9984         Add checked cast.
9985         (peep2_fill_buffer): Add checked cast.
9986         * rtlanal.c (remove_note): Likewise.
9987         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
9988         locals "next" "end" from rtx to rtx_insn *.
9989
9990 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9991
9992         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
9993         to rtx_insn *.
9994         (struct reg_use_data): Likewise for field "insn".
9995         (insn_cost): Likewise for param.
9996         (real_insn_for_shadow): Likewise for return type and param.
9997         (increase_insn_priority): Likewise for param 1.
9998         (debug_dependencies): Likewise for both params.
9999
10000         * haifa-sched.c (insn_delay): Likewise for param "insn".
10001         (real_insn_for_shadow): Likewise for return type and param "insn".
10002         (update_insn_after_change): Likewise for param "insn".
10003         (recompute_todo_spec): Likewise for param "next" and locals "pro",
10004         "other".
10005         (insn_cost): Likewise for param "insn".
10006         (increase_insn_priority): Likewise.
10007         (calculate_reg_deaths): Likewise.
10008         (setup_insn_reg_pressure_info): Likewise.
10009         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10010         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10011         (model_recompute): Likewise.
10012         (must_restore_pattern_p): Likewise for param "next".
10013         (model_excess_cost): Likewise for param "insn".
10014         (queue_remove): Likewise.
10015         (adjust_priority): Likewise for param "prev".
10016         (update_register_pressure): Likewise for param "insn".
10017         (setup_insn_max_reg_pressure): Likewise for local "insn".
10018         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10019         (model_add_to_schedule): Likewise.
10020         (model_reset_queue_indices): Likewise for local "insn".
10021         (unschedule_insns_until): Strengthen local "recompute_vec" from
10022         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
10023         "con" from rtx to rtx_insn *.
10024         (restore_last_backtrack_point): Likewise for both locals "x". Add
10025         checked casts.
10026         (estimate_insn_tick): Likewise for param "insn".
10027         (commit_schedule): Likewise for params "prev_head", "tail" and
10028         local "x".
10029         (verify_shadows): Likewise for locals "i1", "i2".
10030         (dump_insn_stream): Likewise for params "head", "tail" and locals
10031         "next_tail", "insn".
10032         (schedule_block): Likewise for locals "insn", "x".  Add a checked
10033         cast.
10034         (fix_inter_tick): Likewise for params "head", "tail".
10035         (create_check_block_twin): Likewise for local "jump".
10036         (haifa_change_pattern): Likewise for param "insn".
10037         (haifa_speculate_insn): Likewise.
10038         (dump_new_block_header): Likewise for params "head", "tail".
10039         (fix_jump_move): Likewise for param "jump".
10040         (move_block_after_check): Likewise.
10041         (sched_init_insn_luid): Likewise for param "insn".
10042         (sched_init_luids): Likewise for local "insn".
10043         (insn_luid): Likewise for param "insn".
10044         (init_h_i_d): Likewise.
10045         (haifa_init_h_i_d): Likewise for local "insn".
10046         (haifa_init_insn): Likewise for param "insn".
10047         * sched-deps.c (add_dependence): Likewise for local "real_pro",
10048         "other".
10049         (create_insn_reg_use): Likewise for param "insn".
10050         (setup_insn_reg_uses): Likewise.  Add a checked cast.
10051         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10052         "tail" from rtx to rtx_insn *.
10053         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10054         "insn", "next_tail".
10055
10056 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10057
10058         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10059         from rtx to rtx_insn *.
10060         (model_add_to_schedule): Likewise for locals "start", "end",
10061         "iter".
10062
10063 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10064
10065         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10066         rtx_insn *.
10067         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
10068         "to" and locals "insn", "next", "copy".  Remove now-redundant
10069         checked cast.
10070
10071 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10072
10073         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10074         rtx_insn * and param 4 from rtx * to rtx_insn **.
10075         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10076         param 2 from rtx * to rtx_insn **.
10077
10078         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10079         rtx_insn * and final param from rtx * to rtx_insn **.
10080
10081         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10082         from rtx to rtx_insn *.
10083         (try_head_merge_bb): Likewise for both locals named "move_upto".
10084         * df-problems.c (can_move_insns_across): Likewise for params
10085         "from", "to", "across_from", "across_to" and locals "insn",
10086         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
10087         rtx_insn **.
10088         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10089         from rtx to rtx_insn *.
10090         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10091         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10092         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10093         rtx_insn *.
10094         (noce_try_abs): Likewise.
10095         (noce_get_condition): Likewise for param "jump".  Strengthen param
10096         "earliest" from rtx * to rtx_insn **.
10097         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10098         rtx_insn *.
10099         (find_cond_trap): Likewise.
10100         (dead_or_predicable): Likewise for local "earliest".
10101         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10102         checked cast.
10103         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10104         and local "prev".  Strengthen param "earliest" from rtx * to
10105         rtx_insn **.
10106         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10107         Strengthen param "earliest" from rtx * to rtx_insn **.
10108
10109 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10110
10111         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10112         "to" and local "insn" from rtx to rtx_insn *.
10113
10114 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10115
10116         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10117         from rtx to rtx_insn *.
10118         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10119         (code_motion_path_driver): Likewise for local "last_insn".
10120         (simplify_changed_insns): Likewise for local "insn".
10121
10122 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10123
10124         * rtl.h (push_to_sequence): Strengthen param from rtx to
10125         rtx_insn *.
10126         (push_to_sequence2): Likewise for both params.
10127         (delete_insns_since): Likewise for param.
10128         (reorder_insns_nobb): Likewise for all three params.
10129         (set_new_first_and_last_insn): Likewise for both params.
10130
10131         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10132         rtx_insn *.  Remove now-redundant cast.
10133         (set_last_insn): Likewise.
10134
10135         * builtins.c (expand_builtin_return): Strengthen local
10136         "call_fusage" from rtx to rtx_insn *.
10137         * cfgrtl.c (create_basic_block_structure): Likewise for local
10138         "after".
10139         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10140         "first", "last" and local "insn".
10141         (delete_insns_since): Likewise for param "from".
10142         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10143         and local "x".
10144         (push_to_sequence): Likewise for param "first" and local "last".
10145         (push_to_sequence2): Likewise for params "first" and "last".
10146         * lra.c (emit_add3_insn): Likewise for local "last".
10147         (lra_emit_add): Likewise.
10148         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10149         "last_insn".
10150         (process_address_1): Likewise for locals "insn", last".
10151         * modulo-sched.c (ps_first_note): Likewise for return type.
10152         * optabs.c (expand_binop_directly): Likewise for param "last".
10153
10154 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10155
10156         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10157         to rtx_insn*.
10158         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10159
10160 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10161
10162         * function.h (struct sequence_stack): Strengthen fields "first"
10163         and "last" from rtx to rtx_insn *.
10164         (struct emit_status): Likewise for fields "x_first_insn" and
10165         "x_last_insn".
10166
10167         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10168         (set_first_insn): Add checked cast.
10169         (get_last_insn): Remove now-redundant checked cast.
10170         (set_last_insn): Add checked cast.
10171
10172         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10173         "saved_first" and "saved_last" from rtx to rtx_insn *.
10174
10175 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10176
10177         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10178         (unlink_insn_chain): Strengthen both params from rtx to
10179         rtx_insn *.
10180
10181         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10182         variable.
10183         (unlink_insn_chain): Likewise for params "first" and "last".
10184         Remove now-redundant checked cast.
10185         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10186         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10187         rtx_insn *.
10188         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10189         params.
10190         (add_insn): Likewise for param "insn" and local "prev".
10191         (add_insn_after_nobb): Likewise for both params and local "next".
10192         (add_insn_before_nobb): Likewise for both params and local "prev".
10193         (add_insn_after): Rename param "after" to "uncast_after",
10194         introducing local "after" with another checked cast.
10195         (add_insn_before): Rename params "insn" and "before", giving them
10196         "uncast_" prefixes, adding the old names back using checked casts.
10197         (emit_note_after): Likewise for param "after".
10198         (emit_note_before): Likewise for param "before".
10199         (emit_label): Add a checked cast.
10200
10201 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10202
10203         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10204         "insn" from rtx to rtx_insn *.
10205
10206         * cselib.c (cselib_record_sets_hook): Likewise.
10207
10208         * var-tracking.c (add_with_sets): Likewise, renaming back from
10209         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10210         to rtx_insn *.
10211
10212 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10213
10214         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10215         and "header_" from rtx to rtx_insn *.
10216         (struct basic_block_d): Likewise for field "head_" within "x"
10217         field of union basic_block_il_dependent.
10218         (BB_HEAD): Drop function...
10219         (SET_BB_HEAD): ...and this function in favor of...
10220         (BB_HEAD): ...reinstate macro.
10221         (BB_END): Drop function...
10222         (SET_BB_END): ...and this function in favor of...
10223         (BB_END): ...reinstate macro.
10224         (BB_HEADER): Drop function...
10225         (SET_BB_HEADER): ...and this function in favor of...
10226         (BB_HEADER): ...reinstate macro.
10227
10228         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10229         (fix_crossing_unconditional_branches): Likewise.
10230         * caller-save.c (save_call_clobbered_regs): Likewise.
10231         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10232         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10233         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10234         (merge_blocks_move_successor_nojumps): Likewise.
10235         (outgoing_edges_match): Update use of for_each_rtx to
10236         for_each_rtx_in_insn.
10237         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10238         (expand_gimple_cond): Likewise.
10239         (expand_gimple_tailcall): Likewise.
10240         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10241         SET_BB_END.
10242         (construct_exit_block): Drop use of SET_BB_END.
10243         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10244         rtx_insn *.
10245         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10246         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10247         SET_BB_HEAD and SET_BB_END.
10248         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10249         SET_BB_END.
10250         (rtl_delete_block): Drop use of SET_BB_HEAD.
10251         (rtl_split_block): Drop use of SET_BB_END.
10252         (emit_nop_for_unique_locus_between): Likewise.
10253         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10254         (block_label): Drop use of SET_BB_HEAD.
10255         (fixup_abnormal_edges): Drop use of SET_BB_END.
10256         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10257         (relink_block_chain): Likewise.
10258         (fixup_reorder_chain): Drop use of SET_BB_END.
10259         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10260         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10261         rtx_insn **.  Drop use of SET_BB_HEADER.
10262         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10263         SET_BB_HEAD.
10264         (BB_HEAD): Delete this function.
10265         (SET_BB_HEAD): Likewise.
10266         (BB_END): Likewise.
10267         (SET_BB_END): Likewise.
10268         (BB_HEADER): Likewise.
10269         (SET_BB_HEADER): Likewise.
10270         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10271         "uncast_insn", adding a new local "insn" and a checked cast to
10272         rtx_insn *.  Drop use of SET_BB_END.
10273         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10274         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10275         (reorder_insns): Drop use of SET_BB_END.
10276         (emit_insn_after_1): Strengthen param "first" and locals "last",
10277         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10278         (emit_pattern_after_noloc): Add checked cast.
10279         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10280         (restore_other_notes): Likewise.
10281         (move_insn): Likewise.
10282         (sched_extend_bb): Likewise.
10283         (fix_jump_move): Likewise.
10284         * ifcvt.c (noce_process_if_block): Likewise.
10285         (dead_or_predicable): Likewise.
10286         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10287         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10288         * sel-sched-ir.c (sel_move_insn): Likewise.
10289         * sel-sched.c (move_nop_to_previous_block): Likewise.
10290
10291         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10292         SET_BB_END.
10293         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10294
10295 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10296
10297         * basic-block.h (create_basic_block_structure): Strengthen params
10298         1 "head" and 2 "end" from rtx to rtx_insn *.
10299         * cfgrtl.c (create_basic_block_structure): Likewise.
10300         (rtl_create_basic_block): Update casts from void * to rtx to
10301         rtx_insn *, so that we can pass them as rtx_insn * to
10302         create_basic_block_structure.
10303         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10304
10305 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10306
10307         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10308         rtx_insn **.
10309         (check_for_inc_dec): Strengthen param "insn" from rtx to
10310         rtx_insn *.
10311
10312         * cselib.h (cselib_process_insn): Likewise.
10313
10314         * cselib.c (cselib_record_sets): Likewise.
10315         (cselib_process_insn): Likewise.
10316
10317         * dse.c (struct insn_info): Likewise for field "insn".
10318         (check_for_inc_dec_1): Likewise for local "insn".
10319         (check_for_inc_dec): Likewise for param "insn".
10320         (scan_insn): Likewise.
10321         (dse_step1): Likewise for local "insn".
10322
10323         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10324         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10325
10326 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10327
10328         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10329         from rtx to rtx_insn *.
10330         (DEP_PRO): Delete this function and...
10331         (SET_DEP_PRO): ...this function in favor of...
10332         (DEP_PRO): ...reinstate this macro.
10333         (DEP_CON): Delete this function and...
10334         (SET_DEP_CON): ...this function in favor of...
10335         (DEP_CON): ...reinstate this old macro.
10336         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10337         (init_dep): Likewise.
10338         (set_priorities): Likewise for both params.
10339         (sd_copy_back_deps): Likewise for params 1 and 2.
10340
10341         * haifa-sched.c (priority): Likewise for param "insn" and local
10342         "next".
10343         (set_priorities): Likewise for params "head" and "tail" and local
10344         "insn".
10345         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10346         local "consumer".
10347         (add_to_speculative_block): Add a checked cast.
10348         (create_check_block_twin): Drop use of SET_DEP_CON.
10349         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10350         rtx to rtx_insn *.
10351
10352         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10353         Drop use of SET_DEP_PRO
10354         (init_dep): Strengthen params "pro" and "con" from rtx to
10355         rtx_insn *.
10356         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10357         use of SET_DEP_CON.
10358         (DEP_PRO): Delete.
10359         (DEP_CON): Delete.
10360         (SET_DEP_PRO): Delete.
10361         (SET_DEP_CON): Delete.
10362
10363 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10364
10365         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10366         from rtx to rtx_insn *.
10367         (VINSN_INSN_RTX): Eliminate rvalue function and...
10368         (SET_VINSN_INSN): ...lvalue function in favor of...
10369         (VINSN_INSN_RTX): reinstate this old macro.
10370
10371         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10372         in favor of VINSN_INSN_RTX.
10373         (VINSN_INSN_RTX): Delete this function.
10374         (SET_VINSN_INSN_RTX): Likewise.
10375
10376 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10377
10378         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10379         (BND_TO): Delete this function and...
10380         (SET_BND_TO): ...this functions in favor of...
10381         (BND_TO): ...reinstating this macro.
10382         (struct _fence): Strengthen field "executing_insns" from
10383         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10384         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10385         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10386         and param "insn" from rtx to insn_t.
10387         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10388         rtx_insn *.
10389
10390         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10391         vec<rtx_insn *> .
10392         (rtx_vec_t): Likewise.
10393         (struct sched_deps_info_def): Strengthen param of "start_insn"
10394         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10395         "note_mem_dep" callback and first param of "note_dep" callback.
10396
10397         * haifa-sched.c (add_to_speculative_block): Strengthen param
10398         "insn" from rtx to rtx_insn *.
10399         (clear_priorities): Likewise.
10400         (calc_priorities): Likewise for local "insn".
10401
10402         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10403         Remove redundant checked cast.
10404         (haifa_note_mem_dep): Likewise for param "pending_insn".
10405         (haifa_note_dep): Likewise for param "elem".
10406         (note_mem_dep): Likewise for param "e".
10407         (sched_analyze_1): Add checked casts.
10408         (sched_analyze_2): Likewise.
10409
10410         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10411         from rtx to rtx_insn *.
10412         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10413         from vec<rtx> * to vec<rtx_insn *> *.
10414
10415         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10416         scaffolding.
10417         (flist_add): Strengthen param "executing_insns" from
10418         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10419         (advance_deps_context): Remove now-redundant checked cast.
10420         (init_fences): Replace uses of NULL_RTX with NULL.
10421         (merge_fences): Strengthen params "last_scheduled_insn" and
10422         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10423         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10424         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10425         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10426         an instruction, rather than doing double-duty as a pattern.
10427         (return_nop_to_pool): Update for change of insn_t.
10428         (deps_init_id): Remove now-redundant checked cast.
10429         (struct sched_scan_info_def): Strengthen param of "init_insn"
10430         callback from rtx to insn_t.
10431         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10432         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10433         NULL.
10434         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10435         "end" from rtx to rtx_insn *.
10436         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10437         (rtx insn_rtx, bool force_unique_p)
10438         (BND_TO): Delete function.
10439         (SET_BND_TO): Delete function.
10440
10441         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10442         rtx to rtx_insn *.
10443         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10444         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10445         rtx to rtx_insn *.
10446         (undo_transformations): Likewise for param "insn".
10447         (update_liveness_on_insn): Likewise.
10448         (compute_live_below_insn): Likewise for param "insn" and local
10449         "succ".
10450         (update_data_sets): Likewise for param "insn".
10451         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10452         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10453         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10454         rtx_insn *.
10455         (move_cond_jump): Likewise for param "insn".
10456         (move_cond_jump): Drop use of SET_BND_TO.
10457         (compute_av_set_on_boundaries): Likewise.
10458         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10459         (update_and_record_unavailable_insns): Strengthen local "bb_end"
10460         from rtx to rtx_insn *.
10461         (maybe_emit_renaming_copy): Likewise for param "insn".
10462         (maybe_emit_speculative_check): Likewise.
10463         (handle_emitting_transformations): Likewise.
10464         (remove_insn_from_stream): Likewise.
10465         (code_motion_process_successors): Strengthen local "succ" from rtx
10466         to insn_t.
10467
10468 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10469
10470         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10471         ilist_t, not _xlist_t;
10472         (ILIST_INSN): Define in terms of new union field "insn".
10473         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10474         _XLIST_NEXT.
10475         (struct _list_node): Add new field "insn" to the union, of type
10476         insn_t.
10477         (ilist_add): Replace macro with an inline function, requiring an
10478         insn_t.
10479         (ilist_remove): Define this macro directly in terms of
10480         _list_remove, rather than indirectly via _xlist_remove.
10481         (ilist_clear): Likewise, in terms of _list_clear rather than
10482         _xlist_clear.
10483         (ilist_is_in_p): Replace macro with an inline function, requiring
10484         an insn_t.
10485         (_list_iter_cond_insn): New function.
10486         (ilist_iter_remove): Define this macro directly in terms of
10487         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10488         (ilist_iterator): Define directly in terms of _list_iterator
10489         rather than indirectly through _xlist_iterator.
10490         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
10491         than in terms of _FOR_EACH_X.
10492         (FOR_EACH_INSN_1): Likewise.
10493
10494 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
10495
10496         PR target/60606
10497         PR target/61330
10498         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
10499         DECL_HARD_REGISTER and return for invalid register specifications.
10500         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
10501         DECL_HARD_REGISTER, call expand_one_error_var.
10502         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
10503         CC_REGNUM with non-MODE_CC modes.
10504         (arm_regno_class): Return NO_REGS for PC_REGNUM.
10505
10506 2014-08-26  Marek Polacek  <polacek@redhat.com>
10507
10508         PR c/61271
10509         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
10510
10511 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
10512
10513         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
10514         qi cost; add di cost.
10515         (cortexa57_addrcost_table): Likewise.
10516
10517 2014-08-26  Marek Polacek  <polacek@redhat.com>
10518
10519         PR c/61271
10520         * expr.c (is_aligning_offset): Remove logical not.
10521
10522 2014-08-26  Marek Polacek  <polacek@redhat.com>
10523
10524         PR c/61271
10525         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
10526         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
10527
10528 2014-08-26  Richard Biener  <rguenther@suse.de>
10529
10530         PR tree-optimization/62175
10531         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10532         expand possibly trapping operations.
10533
10534 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10535
10536         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
10537         "insn" from rtx to rtx_insn *.
10538         (permute_load): Likewise for param "insn".
10539         (permute_store): Likewise.
10540         (handle_special_swappables): Likewise for local "insn".
10541         (replace_swap_with_copy): Likewise for locals "insn" and
10542         "new_insn".
10543         (rs6000_analyze_swaps): Likewise for local "insn".
10544
10545 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10546
10547         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
10548         to rtx_insn *.
10549
10550 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10551
10552         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
10553         "note_list" from rtx to rtx_insn *.
10554         (BB_NOTE_LIST): Replace this function and...
10555         (SET_BB_NOTE_LIST): ...this function with...
10556         (BB_NOTE_LIST): ...the former macro implementation.
10557
10558         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
10559         local "from_start" from rtx to rtx_insn *.  Strengthen param
10560         "to_endp" from rtx * to rtx_insn **.
10561
10562         * haifa-sched.c (concat_note_lists): Likewise.
10563         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
10564         BB_NOTE_LIST.
10565         (sel_restore_notes): Likewise.
10566         (move_bb_info): Likewise.
10567         (BB_NOTE_LIST): Delete this function.
10568         (SET_BB_NOTE_LIST): Delete this function.
10569         * sel-sched.c (create_block_for_bookkeeping): Eliminate
10570         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
10571
10572 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10573
10574         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
10575         from rtx * to rtx_insn **.
10576         (reorder2): Likewise.
10577         (dependencies_evaluation_hook): Strengthen params "head", "tail"
10578         from rtx to rtx_insn *.
10579
10580         * doc/tm.texi: Update mechanically for above change to target.def.
10581
10582         * sched-int.h (note_list): Strengthen this variable from rtx to
10583         rtx_insn *.
10584         (remove_notes): Likewise for both params.
10585         (restore_other_notes): Likewise for return type and first param.
10586         (struct ready_list): Strengthen field "vec" from rtx * to
10587         rtx_insn **.
10588         (struct dep_replacement): Strenghten field "insn" from rtx to
10589         rtx_insn *.
10590         (struct deps_desc): Likewise for fields "last_debug_insn",
10591         "last_args_size".
10592         (struct haifa_sched_info): Likewise for callback field
10593         "can_schedule_ready_p"'s param, for first param of "new_ready"
10594         callback field, for both params of "rank" callback field, for
10595         first field of "print_insn" callback field (with a const), for
10596         both params of "contributes_to_priority" callback, for param
10597         of "insn_finishes_block_p" callback, for fields "prev_head",
10598         "next_tail", "head", "tail", for first param of "add_remove_insn"
10599         callback, for first param of "begin_schedule_ready" callback, for
10600         both params of "begin_move_insn" callback, and for second param
10601         of "advance_target_bb" callback.
10602         (add_dependence): Likewise for params 1 and 2.
10603         (sched_analyze): Likewise for params 2 and 3.
10604         (deps_analyze_insn): Likewise for param 2.
10605         (ready_element): Likewise for return type.
10606         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10607         (try_ready): Strenghten param from rtx to rtx_insn *.
10608         (sched_emit_insn): Likewise for return type.
10609         (record_delay_slot_pair): Likewise for params 1 and 2.
10610         (add_delay_dependencies): Likewise for param.
10611         (contributes_to_priority): Likewise for both params.
10612         (find_modifiable_mems): Likewise.
10613
10614         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
10615         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
10616         "first_older_only_insn" from rtx to rtx_insn *.
10617         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
10618         rtx_insn **.
10619
10620         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
10621         "last_scheduled_iter0" from rtx to rtx_insn *.
10622         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
10623         (c6x_sched_reorder_1): Strengthen param "ready" and locals
10624         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
10625         "insn" from rtx to rtx_insn *.
10626         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
10627         rtx_insn **.
10628         (c6x_sched_reorder2): Strengthen param "ready" and locals
10629         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
10630         "insn" from rtx to rtx_insn *.
10631         (c6x_variable_issue):  Add a checked cast when assigning from insn
10632         to ss.last_scheduled_iter0.
10633         (split_delayed_branch): Strengthen param "insn" and local "i1"
10634         from rtx to rtx_insn *.
10635         (split_delayed_nonbranch): Likewise.
10636         (undo_split_delayed_nonbranch): Likewise for local "insn".
10637         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
10638         "entry_after", "end_packet", "head_insn", "tail_insn",
10639         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
10640         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
10641         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
10642         but add a checked cast on loop->start_label.  Consolidate calls to
10643         avoid assigning result of gen_spkernel to "insn", now an
10644         rtx_insn *.
10645
10646         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
10647         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
10648         rtx to rtx_insn *.
10649         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
10650         rtx_insn **.  Strengthen locals "top", "next" from rtx to
10651         rtx_insn *.
10652         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
10653         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10654         (add_parameter_dependencies): Strengthen params "call", "head" and
10655         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
10656         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
10657         (add_dependee_for_func_arg): Likewise for param "arg" and local
10658         "insn".
10659         (ix86_dependencies_evaluation_hook): Likewise for params "head",
10660         "tail" and locals "insn", "first_arg".
10661
10662         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
10663         for params "head", "tail" and locals "insn", "next", "next_tail".
10664         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
10665         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
10666         "insn", "lowest", "highest" from rtx to rtx_insn *.
10667         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
10668         rtx_insn **.
10669         (ia64_sched_reorder2): Likewise.
10670
10671         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
10672         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
10673         from rtx * to rtx_insn **.
10674         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
10675         rtx_insn **.
10676         (mep_print_sched_insn): Strengthen param "insn" from rtx to
10677         rtx_insn *.
10678         (mep_sched_reorder): Strengthen param "ready" from rtx * to
10679         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
10680         to rtx_insn *.
10681
10682         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
10683         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
10684         to rtx_insn *.
10685         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
10686         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
10687         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
10688         rtx_insn **.
10689         (vr4130_reorder): Likewise.
10690         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
10691         rtx to rtx_insn *.
10692         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
10693         rtx_insn **.
10694         (mips_sched_reorder): Likewise.
10695         (mips_sched_reorder2): Likewise.
10696
10697         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
10698
10699         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
10700         Strengthen local "tmp" from rtx to rtx_insn *.
10701         (rs6000_sched_reorder2): Likewise.
10702
10703         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
10704         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
10705         (s390_sched_reorder): Strengthen param "ready" from rtx * to
10706         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
10707
10708         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
10709         "tmp2" from rtx to rtx_insn *.
10710         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
10711         Strengthen local "insn" from rtx to rtx_insn *.
10712         (ready_reorder): Strengthen param "ready" from rtx * to
10713         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
10714         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
10715         (sh_reorder2): Likewise.
10716
10717         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
10718         local "insn" from rtx to rtx_insn *.
10719
10720         * haifa-sched.c (note_list): Strengthen this variable from rtx to
10721         rtx_insn *.
10722         (scheduled_insns): Strengthen this variable from vec<rtx> to
10723         vec<rtx_insn *>.
10724         (set_modulo_params): Likewise for locals "i1", "i2".
10725         (record_delay_slot_pair): Likewise for params "i1", "i2".
10726         (add_delay_dependencies): Likewise for param "insn".
10727         (cond_clobbered_p): Likewise.
10728         (recompute_todo_spec): Likewise for local "prev".
10729         (last_scheduled_insn): Likewise for this variable.
10730         (nonscheduled_insns_begin): Likewise.
10731         (model_set_excess_costs): Strengthen param "insns" from rtx * to
10732         rtx_insn **.
10733         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
10734         rtx_insn *.
10735         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
10736         Strengthen local "insn" from rtx to rtx_insn *.
10737         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
10738         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10739         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
10740         (ready_remove_first): Likewise for return type and local "t".
10741         (ready_element): Likewise for return type.
10742         (ready_remove): Likewise for return type and local "t".
10743         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
10744         (check_clobbered_conditions): Strengthen local "x" from rtx to
10745         rtx_insn *, adding a checked cast.
10746         (schedule_insn): Likewise for param "insn".
10747         (remove_notes): Likewise for params "head", "tail" and locals
10748         "next_tail", "insn", "next".
10749         (struct haifa_saved_data): Likewise for fields
10750         "last_scheduled_insn", "nonscheduled_insns_begin".
10751         (save_backtrack_point): Update for change to field "vec" of
10752         struct ready_list.
10753         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
10754         rtx_insn **.
10755         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
10756         from rtx to rtx_insn *
10757         (resolve_dependencies): Strengthen param "insn" from rtx to
10758         rtx_insn *
10759         (restore_other_notes): Likewise for return type, for param "head"
10760         and local "note_head".
10761         (undo_all_replacements): Likewise for local "insn".
10762         (first_nonscheduled_insn): Likewise for return type and local "insn".
10763         (queue_to_ready): Likewise for local "insn", adding checked casts.
10764         (early_queue_to_ready): Likewise for local "insn".
10765         (debug_ready_list_1): Strengthen local "p" from rtx * to
10766         rtx_insn **.
10767         (move_insn): Strengthen param "insn" and local "note" from rtx to
10768         rtx_insn *
10769         (insn_finishes_cycle_p): Likewise for param "insn".
10770         (max_issue): Likewise for local "insn".
10771         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
10772         to rtx_insn **.
10773         (commit_schedule): Strengthen param "prev_head" and local "insn"
10774         from rtx to rtx_insn *
10775         (prune_ready_list): Likewise for local "insn".
10776         (schedule_block): Likewise for locals "prev_head", "head", "tail",
10777         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
10778         (set_priorities): Likewise for local "prev_head".
10779         (try_ready): Likewise for param "next".
10780         (fix_tick_ready): Likewise.
10781         (change_queue_index): Likewise.
10782         (sched_extend_ready_list): Update for change to field "vec" of
10783         struct ready_list.
10784         (generate_recovery_code): Strengthen param "insn" from rtx to
10785         rtx_insn *.
10786         (begin_speculative_block): Likewise.
10787         (create_check_block_twin): Likewise for param "insn" and locals
10788         "label", "check", "twin".  Introduce local "check_pat" to avoid
10789         "check" being used as a plain rtx before being used as an insn.
10790         (fix_recovery_deps): Add a checked cast to rtx_insn * when
10791         extracting elements from ready_list.
10792         (sched_remove_insn): Strengthen param "insn" from rtx to
10793         rtx_insn *.
10794         (sched_emit_insn): Likewise for return type.
10795         (ready_remove_first_dispatch): Likewise for return type and local
10796         "insn".
10797
10798         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
10799
10800         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
10801         const rtx_insn *.
10802
10803         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
10804         from rtx to rtx_insn *.
10805         (add_dependence_list): Likewise for param "insn".  Add a checked
10806         cast.
10807         (add_dependence_list_and_free): Strengthen param "insn" from rtx
10808         to rtx_insn *.  Strengthen param "list_p" from rtx * to
10809         rtx_insn **.
10810         (chain_to_prev_insn): Strengthen param "insn" and locals
10811         "prec_nonnote", "i" from rtx to rtx_insn *.
10812         (flush_pending_lists): Likewise for param "insn".
10813         (cur_insn): Likewise for this variable.
10814         (haifa_start_insn): Add a checked cast.
10815         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
10816         (sched_analyze_reg): Likewise for param "insn".
10817         (sched_analyze_1): Likewise.
10818         (sched_analyze_2): Likewise.  Add checked casts.
10819         (sched_analyze_insn): Likewise.  Also for local "prev".
10820         (deps_analyze_insn): Likewise for param "insn".
10821         (sched_analyze): Likewise for params "head", "tail" and local "insn".
10822         (add_dependence_1): Likewise for params "insn", "elem".
10823         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
10824         (parse_add_or_inc): Likewise for param "insn".
10825         (find_inc): Likewise for local "inc_cand".
10826         (find_modifiable_mems): Likewise for params "head", "tail" and
10827         locals "insn", "next_tail".
10828
10829         * sched-ebb.c (init_ready_list): Likewise for local "insn".
10830         (begin_schedule_ready): Likewise for param "insn".
10831         (begin_move_insn): Likewise for params "insn" and "last".
10832         (ebb_print_insn): Strengthen param "insn" from const_rtx to
10833         const rtx_insn *.
10834         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
10835         (ebb_contributes_to_priority): Likewise for params "next", "insn".
10836         (ebb_add_remove_insn): Likewise for param "insn".
10837         (advance_target_bb): Likewise.
10838
10839         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
10840         "insn".
10841         (check_live): Likewise for param "insn".
10842         (init_ready_list): Likewise for local "insn".
10843         (can_schedule_ready_p): Likewise for param "insn".
10844         (begin_schedule_ready): Likewise.
10845         (new_ready): Likewise for param "next".
10846         (rgn_print_insn): Likewise for param "insn".
10847         (rgn_rank): Likewise for params "insn1", "insn2".
10848         (contributes_to_priority): Likewise for params "next", "insn".
10849         (rgn_insn_finishes_block_p): Likewise for param "insn".
10850         (add_branch_dependences): Likewise for params "head", "tail" and
10851         locals "insn", "last".
10852         (rgn_add_remove_insn): Likewise for param "insn".
10853         (advance_target_bb): Likewise.
10854
10855         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
10856         const_rtx to const rtx_insn *.
10857
10858         * sel-sched-dump.h (sel_print_insn): Likewise.
10859
10860         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
10861         (deps_init_id): Likewise.
10862
10863         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
10864         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
10865         rtx_insn **.
10866
10867 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10868
10869         * output.h (final_start_function): Strengthen param 1 from rtx to
10870         rtx_insn *.
10871
10872         * final.c (final_start_function): Likewise, renaming back from
10873         "uncast_first" to "first", and dropping the checked cast from rtx
10874         to rtx_insn *.
10875
10876 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10877
10878         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
10879         * final.c (final): Likewise.  Rename param back from
10880         "uncast_first" to "first" and eliminate the checked cast from rtx
10881         to rtx_insn *.
10882
10883 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10884
10885         * output.h (shorten_branches): Strengthen param from rtx to
10886         rtx_insn *.
10887
10888         * final.c (shorten_branches): Likewise, renaming param back from
10889         "uncast_first" to "first", and dropping the checked cast from rtx
10890         to rtx_insn *.
10891
10892         * genattr.c (gen_attr): Likewise when writing out the prototype of
10893         shorten_branches.
10894
10895 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10896
10897         * sched-int.h (struct haifa_sched_info): Strengthen fields
10898         "prev_head" and "next_tail" from rtx to rtx_insn *.
10899
10900 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10901
10902         * rtl.h (rtx_jump_table_data::get_labels): New method.
10903         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
10904         with use of the new rtx_jump_table_data::get_labels method.
10905         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
10906         to rtx_jump_table_data *.  Simplify by using get_labels method.
10907         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
10908         a dyn_cast, introducing local "table", using it to replace
10909         label-lookup logic with a get_labels method call.
10910         (patch_jump_insn): Simplify using get_labels method.
10911         * dwarf2cfi.c (create_trace_edges): Likewise.
10912         * rtlanal.c (label_is_jump_target_p): Likewise.
10913
10914 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10915
10916         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
10917         to rtx_insn *.
10918
10919         * emit-rtl.c (unshare_all_rtl_1): Likewise.
10920         (unshare_all_rtl_again): Likewise, also for local "p".
10921
10922 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10923
10924         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
10925         to rtx_insn *.
10926         * cfgrtl.c (delete_insn_and_edges): Likewise.
10927
10928 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10929
10930         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
10931         from rtx to rtx_insn *.
10932
10933         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
10934
10935 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10936
10937         * function.c (thread_prologue_and_epilogue_insns): Likewise for
10938         locals "returnjump", "epilogue_end", "insn", "next".
10939
10940         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
10941         "returnjump" from rtx * to rtx_insn **.
10942         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
10943
10944 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10945
10946         * basic-block.h (struct edge_def). Strengthen "r" within
10947         union edge_def_insns from rtx to rtx_insn *.
10948
10949         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
10950         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
10951         rtx_insn *.
10952         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
10953         from rtx to rtx_insn *.
10954         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
10955         rtx_insn *.
10956         * postreload-gcse.c (reg_killed_on_edge): Likewise.
10957         (reg_used_on_edge): Likewise.
10958         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
10959         (gt_pch_nx): New overload for rtx_insn *&.
10960         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
10961         from rtx to rtx_insn *.
10962
10963 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10964
10965         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
10966         from rtx to rtx_insn *.
10967         (BB_FOOTER): Replace function with access macro.
10968         (SET_BB_FOOTER): Delete.
10969
10970         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
10971         with BB_FOOTER.
10972         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10973         (emit_barrier_after_bb): Likewise.
10974         (record_effective_endpoints): Likewise.
10975         (relink_block_chain): Likewise.
10976         (fixup_fallthru_exit_predecessor): Likewise.
10977         (cfg_layout_duplicate_bb): Likewise.
10978         (cfg_layout_split_block): Likewise.
10979         (cfg_layout_delete_block): Likewise.
10980         (cfg_layout_merge_blocks): Likewise.
10981         (BB_FOOTER): Delete function.
10982         (SET_BB_FOOTER): Delete function.
10983         * combine.c (update_cfg_for_uncondjump): Replace uses of
10984         SET_BB_FOOTER with BB_FOOTER.
10985
10986 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10987
10988         * except.h (struct eh_landing_pad_d): Strengthen field
10989         "landing_pad" from rtx to rtx_code_label *.
10990
10991         * except.c (sjlj_emit_dispatch_table): Likewise for param
10992         "dispatch_label"
10993         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
10994
10995 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10996
10997         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
10998         first param from rtx to rtx_insn *.
10999         * config/xtensa/xtensa.c (struct machine_function): Likewise for
11000         field "set_frame_ptr_insn".
11001         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11002         "csend" from rtx to rtx_code_label *.
11003         (xtensa_expand_atomic): Likewise for local "csloop".
11004         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11005         rtx_insn *.
11006         (xtensa_call_tls_desc): Likewise for return type and locals
11007         "call_insn", "insns".
11008         (xtensa_legitimize_tls_address): Likewise for local "insns".
11009         (xtensa_expand_prologue): Likewise for locals "insn", "first".
11010
11011 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11012
11013         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11014         first param from rtx to rtx_insn *.
11015         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11016         "insn".
11017
11018 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11019
11020         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11021         Strengthen param 1 from rtx to rtx_insn *.
11022         (tilepro_output_cbranch): Likewise.
11023         (tilepro_adjust_insn_length): Likewise.
11024         (tilepro_final_prescan_insn): Likewise for sole param.
11025
11026         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11027         Likewise for local "last".
11028         (cbranch_predicted_p): Likewise for param "insn".
11029         (tilepro_output_simple_cbranch_with_opcode): Likewise.
11030         (tilepro_output_cbranch_with_opcode): Likewise.
11031         (tilepro_output_cbranch): Likewise.
11032         (frame_emit_load): Likewise for return type and locals "seq",
11033         "insn".
11034         (emit_sp_adjust): Likewise for return type and local "insn".
11035         (tilepro_expand_epilogue): Likewise for locals "last_insn",
11036         "insn".
11037         (tilepro_adjust_insn_length): Likewise for param "insn".
11038         (next_insn_to_bundle): Likewise for return type and params
11039         "r", "end".
11040         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11041         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11042         local "new_insns".
11043         (match_addli_pcrel): Likewise for param "insn".
11044         (replace_addli_pcrel): Likewise.
11045         (match_auli_pcrel): Likewise.
11046         (replace_auli_pcrel): Likewise.
11047         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11048         "next_insn".
11049         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11050         "queue", "next_queue", "prev".
11051         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11052         (tilepro_final_prescan_insn): Likewise for param "insn".
11053
11054 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11055
11056         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11057         Strengthen param 1 from rtx to rtx_insn *.
11058         (tilegx_output_cbranch): Likewise.
11059         (tilegx_adjust_insn_length): Likewise.
11060         (tilegx_final_prescan_insn): Likewise for sole param.
11061
11062         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11063         or local "last".
11064         (cbranch_predicted_p): Likewise for param "insn".
11065         (tilegx_output_simple_cbranch_with_opcode): Likewise.
11066         (tilegx_output_cbranch_with_opcode): Likewise.
11067         (tilegx_output_cbranch): Likewise.
11068         (frame_emit_load): Likewise for return type.
11069         (set_frame_related_p): Likewise for locals "seq", "insn".
11070         (emit_sp_adjust): Likewise for return type, and for local "insn".
11071         Introduce local "pat" for use in place of "insn" where the latter
11072         isn't an instruction.
11073         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11074         from rtx to rtx_insn *.
11075         (tilegx_adjust_insn_length): Likewise for param "insn".
11076         (next_insn_to_bundle): Likewise for return type and params "r" and
11077         "end".
11078         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11079         "end".
11080         (replace_insns): Likewise for params "old_insn", "new_insns".
11081         (replace_mov_pcrel_step1): Likewise for param "insn" and local
11082         "new_insns".
11083         (replace_mov_pcrel_step2): Likewise.
11084         (replace_mov_pcrel_step3): Likewise.
11085         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11086         "next_insn".
11087         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11088         "queue", "next_queue", "prev".
11089         (tilegx_output_mi_thunk): Likewise for local "insn".
11090         (tilegx_final_prescan_insn): Likewise for param "insn".
11091
11092 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11093
11094         * config/spu/spu.c (frame_emit_store): Strengthen return type from
11095         rtx to rtx_insn *.
11096         (frame_emit_load): Likewise.
11097         (frame_emit_add_imm): Likewise, also for local "insn".
11098         (spu_expand_prologue): Likewise for local "insn".
11099         (struct spu_bb_info): Likewise for field "prop_jump".
11100         (emit_nop_for_insn): Likewise for param "insn" and local
11101         "new_insn".
11102         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11103         "hbr_insn".
11104         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11105         locals "hint", "insn".
11106         (get_branch_target): Likewise for param "branch".
11107         (insn_clobbers_hbr): Likewise for param "insn".
11108         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11109         locals "insn", "before_4", "before_16".
11110         (insert_hbrp): Likewise for local "insn".
11111         (spu_machine_dependent_reorg): Likewise for locals "branch",
11112         "insn", "next", "bbend".
11113         (uses_ls_unit): Likewise for param "insn".
11114         (get_pipe): Likewise.
11115         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11116         introducing a checked cast.
11117         (spu_sched_adjust_cost): Likewise for params "insn" and
11118         "dep_insn".
11119         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11120         (spu_sms_res_mii): Likewise.
11121
11122 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11123
11124         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11125         from rtx to rtx_insn *.
11126         (output_cbranch): Likewise for param 6.
11127         (output_return): Likewise for param 1.
11128         (output_sibcall): Likewise.
11129         (output_v8plus_shift): Likewise.
11130         (output_v8plus_mult): Likewise.
11131         (output_v9branch): Likewise for param 7.
11132         (output_cbcond):  Likewise for param 3.
11133
11134         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11135         for local "insn".
11136         (sparc_legitimize_pic_address): Likewise.
11137         (sparc_emit_call_insn): Likewise.
11138         (emit_save_or_restore_regs): Likewise.
11139         (emit_window_save): Likewise for return type and local "insn".
11140         (sparc_expand_prologue): Likewise for local "insn".
11141         (sparc_flat_expand_prologue): Likewise.
11142         (output_return): Likewise for param "insn".
11143         (output_sibcall): Likewise for param "insn" and local "delay".
11144         (output_ubranch): Likewise for param "insn".
11145         (output_cbranch): Likewise.
11146         (output_cbcond): Likewise.
11147         (output_v9branch): Likewise.
11148         (output_v8plus_shift): Likewise.
11149         (sparc_output_mi_thunk): Likewise for local "insn".
11150         (get_some_local_dynamic_name): Likewise.
11151         (output_v8plus_mult): Likewise for param "insn".
11152
11153 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11154
11155         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11156         from rtx to rtx_insn *.
11157         (output_branchy_insn): Likewise for param 3.
11158         (output_far_jump): Likewise for param 1.
11159         (final_prescan_insn): Likewise.
11160         (sh_insn_length_adjustment): Likewise for sole param.
11161
11162         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11163         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11164         rtx_code_label *.
11165         (sh_emit_compare_and_set): Likewise for local "lab".
11166         (output_far_jump): Strengthen param "insn" and local "prev" from
11167         rtx to rtx_insn *.
11168         (output_branchy_insn): Likewise for param "insn" and local
11169         "next_insn".
11170         (output_ieee_ccmpeq): Likewise for param "insn".
11171         (struct label_ref_list_d): Strengthen field "label" from rtx to
11172         rtx_code_label *.
11173         (pool_node): Likewise.
11174         (pool_window_label): Likewise for this global.
11175         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11176         (dump_table): Strengthen params "start", "barrier" and local
11177         "scan" from rtx to rtx_insn *.
11178         (broken_move): Likewise for param "insn".
11179         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11180         Strengthen param "first_mova" from rtx * to rtx_insn **.
11181         (mova_p): Likewise for param "insn".
11182         (fixup_mova): Likewise for param "mova".
11183         (find_barrier): Likewise for return type, params "mova" and
11184         "from", and locals "barrier_before_mova", "found_barrier",
11185         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11186         "label" from rtx to rtx_code_label *.
11187         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11188         rtx to rtx_insn *.
11189         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11190         (split_branches): Likewise for param "first" and local "insn".
11191         (final_prescan_insn): Likewise for param "insn".
11192         (sequence_insn_p): Likewise for locals "prev", "next".
11193         (sh_insn_length_adjustment): Likewise for param "insn".
11194         (sh_can_redirect_branch): Likewise for local "insn".
11195         (find_r0_life_regions): Likewise for locals "end", "insn".
11196         (sh_output_mi_thunk): Likewise for local "insns".
11197
11198 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11199
11200         * config/score/score.c (score_output_mi_thunk): Strengthen local
11201         "insn" from rtx to rtx_insn *.
11202         (score_prologue): Likewise.
11203
11204 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11205
11206         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11207         1 from rtx to rtx_insn *.
11208         (s390_emit_jump): Likewise for return type.
11209         (s390_emit_call): Likewise.
11210         (s390_load_got): Likewise.
11211
11212         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11213         variable.
11214         (s390_match_ccmode): Likewise for param "insn".
11215         (s390_emit_jump): Likewise for return type.
11216         (s390_split_branches): Likewise for local "label".
11217         (struct constant): Strengthen field "label" from rtx to
11218         rtx_code_label *.
11219         (struct constant_pool): Likewise for field "label".  Strengthen
11220         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11221         rtx_insn *.
11222         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11223         insns.
11224         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11225         (s390_end_pool): Likewise.
11226         (s390_dump_pool): Likewise for local "insn".
11227         (s390_mainpool_start): Likewise.
11228         (s390_chunkify_start): Likewise.
11229         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11230         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11231         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11232         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11233         rtx_insn *.
11234         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11235         "jump", "label", "next_insn".
11236         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11237         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11238         "tbegin_insn".
11239         (s390_load_got): Likewise for return type and local "insns".
11240         (s390_save_gprs_to_fprs): Likewise for local "insn".
11241         (s390_restore_gprs_from_fprs): Likewise.
11242         (pass_s390_early_mach::execute): Likewise.
11243         (s390_emit_prologue): Likewise for local "insns".
11244         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11245         rtx_code_label *.
11246         (s390_emit_call): Strengthen return type and local "insn" from
11247         rtx to rtx_insn *.
11248         (s390_emit_tpf_eh_return): Likewise for local "insn".
11249         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11250         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11251         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11252         local "cur_insn".
11253         (s390_non_addr_reg_read_p): Likewise for param "insn".
11254         (find_cond_jump): Likewise for return type and param "insn".
11255         (s390_swap_cmp): Likewise for param "insn".
11256         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11257         "prev_insn", "next_insn".
11258         (s390_reorg): Likewise for locals "insn", "target".
11259         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11260         (s390_sched_variable_issue): For now, rename param "insn" to
11261         "uncast_insn", introducing a checked cast.
11262         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11263         insn.
11264         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11265         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11266
11267 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11268
11269         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11270         param from rtx to rtx_insn *.
11271         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11272
11273 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11274
11275         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11276         4 from rtx to rtx_insn *.
11277         (rs6000_final_prescan_insn): Likewise for first param.
11278         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11279         local "insn".
11280         (rs6000_get_some_local_dynamic_name): Likewise.
11281         (output_cbranch): Likewise for param "insn".
11282         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11283         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11284         (rs6000_emit_allocate_stack): Likewise for local "insn".
11285         (load_cr_save): Likewise.
11286         (restore_saved_cr): Likewise.
11287         (restore_saved_lr): Likewise.
11288         (emit_cfa_restores): Likewise.
11289         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11290         "deleted_debug_label".
11291         (rs6000_output_mi_thunk): Likewise for local "insn".
11292         (rs6000_final_prescan_insn): Likewise for param "insn".
11293
11294 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11295
11296         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11297         Strengthen param "insn" from rtx to rtx_insn *.
11298         * config/picochip/picochip.c (picochip_current_prescan_insn):
11299         Likewise for this variable.
11300         (picochip_final_prescan_insn): Likewise for param "insn".
11301
11302 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11303
11304         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11305         from rtx to rtx_insn *.
11306         (pa_output_indirect_call): Likewise.
11307         (pa_adjust_insn_length): Likewise.
11308         (pa_attr_length_millicode_call): Likewise.
11309         (pa_attr_length_call): Likewise.
11310         (pa_attr_length_indirect_call): Likewise.
11311
11312         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11313         "insn".
11314         (pa_attr_length_millicode_call): Likewise.
11315         (pa_attr_length_call): Likewise.
11316         (pa_output_call): Likewise.
11317         (pa_attr_length_indirect_call): Likewise.
11318         (pa_output_indirect_call): Likewise.
11319
11320 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11321
11322         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11323         Strengthen first param from rtx to rtx_insn *.
11324         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11325         param "insn".
11326
11327 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11328
11329         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11330         type from rtx to rtx_insn *.
11331         (mips_expand_call): Likewise.
11332         (mips_adjust_insn_length): Likewise for first param.
11333         (mips_output_conditional_branch): Likewise.
11334         (mips_output_order_conditional_branch): Likewise.
11335         (mips_final_prescan_insn): Likewise.
11336
11337         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11338         rtx_insn * for the SEQUENCE case.
11339         (SEQ_END): Likewise.
11340         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11341         (mips_emit_call_insn): Likewise, also for local "insn".
11342         (mips16_gp_pseudo_reg): Likewise for local "scan".
11343         (mips16_build_call_stub): Likewise for return type and for local
11344         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11345         be an insn.
11346         (mips_expand_call): Strengthen return type and local "insn" from
11347         rtx to rtx_insn *.
11348         (mips_block_move_loop): Strengthen local "label" from rtx to
11349         rtx_code_label *.
11350         (mips_expand_synci_loop): Likewise for locals "label",
11351         "end_label".
11352         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11353         rtx_insn *.
11354         (mips16e_collect_argument_saves): Likewise for locals "insn",
11355         "next".
11356         (mips_find_gp_ref): Likewise for param of callback for "pred"
11357         param, and for local "insn".
11358         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11359         (mips_insn_has_flexible_gp_ref_p): Likewise.
11360         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11361         local "insn".
11362         (mips_epilogue_set_cfa): Likewise for local "insn".
11363         (mips_expand_epilogue): Likewise.
11364         (mips_adjust_insn_length): Likewise for param "insn".
11365         (mips_output_conditional_branch): Likewise.
11366         (mips_output_order_conditional_branch): Likewise.
11367         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11368         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11369         "falu2_turn_enabled_insn".
11370         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11371         "done_label" from rtx to rtx_code_label *.
11372         (struct mips16_constant): Likewise for field "label".
11373         (mips16_add_constant): Likewise for return type.
11374         (mips16_emit_constants_1): Strengthen return type and param "insn"
11375         from rtx to rtx_insn *.
11376         (mips16_emit_constants): Likewise for param "insn".
11377         (mips16_insn_length): Likewise.
11378         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11379         to rtx_code_label *.
11380         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11381         from rtx to rtx_insn *.
11382         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11383         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11384         (r10k_simplify_address): Strengthen param "insn" and local
11385         "def_insn" from rtx to rtx_insn *.
11386         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11387         rtx_insn *.
11388         (r10k_needs_protection_p_1): Update target type of cast of data
11389         from to rtx to rtx_insn *.
11390         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11391         rtx * to rtx_insn **.
11392         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11393         rtx_insn *.
11394         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11395         (mips_call_expr_from_insn): Likewise for param "insn".
11396         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11397         (mips_find_pic_call_symbol): Likewise for param "insn".
11398         (mips_annotate_pic_calls): Likewise for local "insn".
11399         (mips_sim_insn): Likewise for this variable.
11400         (struct mips_sim): Likewise for field "insn" within elements of
11401         last_set array.
11402         (mips_sim_wait_reg): Likewise for param "insn".
11403         (mips_sim_wait_regs): Likewise.
11404         (mips_sim_wait_units): Likewise.
11405         (mips_sim_wait_insn): Likewise.
11406         (mips_sim_issue_insn): Likewise.
11407         (mips_sim_finish_insn): Likewise.
11408         (mips_seq_time): Likewise for param "seq" and local "insn".
11409         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11410         locals "first", "second".
11411         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11412         "last", "last2", "next".
11413         (mips_avoid_hazard): Likewise for params "after", "insn".
11414         (mips_reorg_process_insns): Likewise for locals "insn",
11415         "last_insn", "subinsn", "next_insn".
11416         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11417         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11418         "jump_sequence".
11419         (mips_output_mi_thunk): Likewise for local "insn".
11420         (mips_final_prescan_insn): Likewise for param "insn".
11421
11422 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11423
11424         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11425         Strengthen return type and local "insns" from rtx to rtx_insn *.
11426         (microblaze_legitimize_tls_address): Likewise for local "insns".
11427         (microblaze_block_move_loop): Strengthen local "label" from rtx
11428         to rtx_code_label *.
11429         (microblaze_expand_prologue): Strengthen two locals named "insn"
11430         from rtx to rtx_insn *.
11431         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11432         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11433         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11434         to rtx_code_label *.
11435
11436 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11437
11438         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11439         param from rtx to rtx_insn *.
11440         (mep_reuse_lo): Likewise for third param.
11441         (mep_use_post_modify_p): Likewise for first param.
11442         (mep_core_address_length): Likewise.
11443         (mep_cop_address_length): Likewise.
11444         (mep_final_prescan_insn): Likewise.
11445         (mep_store_data_bypass_p): Likewise for both params.
11446         (mep_mul_hilo_bypass_p): Likewise.
11447         (mep_ipipe_ldc_p): Likewise for param.
11448
11449         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11450         (mep_rewrite_mult): Likewise.
11451         (mep_rewrite_mulsi3): Likewise.
11452         (mep_rewrite_maddsi3): Likewise.
11453         (mep_reuse_lo_p_1): Likewise.
11454         (mep_reuse_lo_p): Likewise.
11455         (mep_frame_expr): Likewise.
11456         (mep_make_parallel): Likewise for both params.
11457         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11458         local "insn".
11459         (mep_use_post_modify_p): Likewise for param "insn".
11460         (mep_core_address_length): Likewise.
11461         (mep_cop_address_length): Likewise.
11462         (mep_reg_set_in_function): Likewise for local "insn".
11463         (mep_asm_without_operands_p): Likewise.
11464         (F): Likewise for return type and param "x".
11465         (add_constant): Likewise for local "insn".
11466         (maybe_dead_move): Likewise for return type and local "insn".
11467         (mep_expand_prologue): Likewise for local "insn".
11468         (mep_final_prescan_insn): Likewise for param "insn".
11469         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11470         "next", "follow", "x".
11471         (mep_insert_repeat_label_last): Likewise for return type, param
11472         "last_insn", and locals "next", "prev".  Strengthen param "label"
11473         from rtx to rtx_code_label *.
11474         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11475         rtx_insn *.
11476         (struct mep_doloop_end): Likewise for fields "insn" and
11477         "fallthrough".
11478         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11479         Strengthen local "repeat_label" from rtx to rtx_code_label *.
11480         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11481         rtx_insn *.
11482         (mep_invert_branch): Likewise for params "insn" and "after".
11483         (mep_reorg_erepeat): Likewise for param "insns" and locals
11484         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
11485         "l" from rtx to rtx_code_label *.
11486         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11487         from rtx to rtx_insn *.
11488         (mep_reorg_addcombine): Likewise for param "insns" and locals
11489         "i", "n".
11490         (add_sp_insn_p): Likewise for param "insn".
11491         (mep_reorg_noframe): Likewise for param "insns" and locals
11492         "start_frame_insn", "end_frame_insn", "next".
11493         (mep_reorg): Likewise for local "insns".
11494         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
11495         cast.
11496         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
11497         (mep_mul_hilo_bypass_p): Likewise.
11498         (mep_ipipe_ldc_p): Likewise for param "insn".
11499         (mep_make_bundle): Likewise for return type, param "cop" and local
11500         "insn", splitting out the latter into a new local "seq" for when it
11501         is a SEQUENCE rather than an insn.
11502         (core_insn_p): Likewise for param "insn".
11503         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
11504         "last", "first", "note", "prev", "core_insn".
11505
11506 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11507
11508         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
11509         rtx to rtx_insn *.
11510         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
11511         (m68k_final_prescan_insn): Likewise for first param.
11512
11513         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
11514         (m68k_set_frame_related): Likewise for param "insn".
11515         (output_btst): Likewise for param "insn".
11516         (m68k_final_prescan_insn): Likewise.
11517         (m68k_move_to_reg): Likewise for local "insn".
11518         (m68k_call_tls_get_addr): Likewise for local "insns".
11519         (m68k_call_m68k_read_tp): Likewise.
11520         (strict_low_part_peephole_ok): Likewise for param "first_insn".
11521         (m68k_output_mi_thunk): Likewise for local "insn".
11522
11523 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11524
11525         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
11526         first param from rtx to rtx_insn *.
11527         (iq2000_adjust_insn_length): Likewise.
11528         (iq2000_output_conditional_branch): Likewise.
11529         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
11530         "insn" and local "nop_insn".
11531         (iq2000_annotate_frame_insn): Likewise for param "insn".
11532         (iq2000_expand_prologue): Likewise for both locals "insn".
11533         (iq2000_adjust_insn_length): Likewise for param "insn".
11534         (iq2000_output_conditional_branch): Likewise.
11535
11536 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11537
11538         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
11539         "insns" from rtx to rtx_insn *.
11540         (ia64_emit_cond_move): Likewise for locals "insn", "first".
11541         (struct spill_fill_data): Likewise for field "init_after" and for
11542         elements of array field "prev_insn".
11543         (spill_restore_mem): Likewise for locals "insn", "first".
11544         (do_spill): Likewise for local "insn".
11545         (do_restore): Likewise.
11546         (ia64_expand_prologue): Likewise.
11547         (ia64_expand_epilogue): Likewise.
11548         (emit_insn_group_barriers): Likewise for locals "insn",
11549         "last_label".
11550         (emit_all_insn_group_barriers): Likewise for locals "insn",
11551         "last".
11552         (dfa_stop_insn): Likewise for this global.
11553         (dfa_pre_cycle_insn): Likewise.
11554         (ia64_nop): Likewise.
11555         (final_emit_insn_group_barriers): Likewise for locals "insn",
11556         "last".
11557         (emit_predicate_relation_info): Likewise for locals "head", "n",
11558         "insn", "b", "a".
11559         (ia64_reorg): Likewise for local "insn".
11560         (ia64_output_mi_thunk): Likewise.
11561         (expand_vec_perm_interleave_2): Likewise for local "seq".
11562
11563 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11564
11565         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
11566         param 1 "insn" from rtx to rtx_insn *.
11567         (ix86_use_lea_for_mov): Likewise.
11568         (ix86_avoid_lea_for_addr): Likewise.
11569         (ix86_split_lea_for_addr): Likewise.
11570         (ix86_lea_for_add_ok): Likewise.
11571         (ix86_output_call_insn): Likewise.
11572
11573         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
11574         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
11575         (ix86_output_function_epilogue): Likewise for locals "insn",
11576         "deleted_debug_label".
11577         (legitimize_tls_address): Likewise for local "insn".
11578         (get_some_local_dynamic_name): Likewise.
11579         (increase_distance): Likewise for params "prev", "next".
11580         (distance_non_agu_define_in_bb): Likewise for params "insn",
11581         "start" and locals "prev", "next".
11582         (distance_non_agu_define): Likewise for param "insn".
11583         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
11584         locals "next", "prev".
11585         (distance_agu_use): Likewise for param "insn".
11586         (ix86_lea_outperforms): Likewise.
11587         (ix86_ok_to_clobber_flags): Likewise.
11588         (ix86_avoid_lea_for_add): Likewise.
11589         (ix86_use_lea_for_mov): Likewise.
11590         (ix86_avoid_lea_for_addr): Likewise.
11591         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
11592         (ix86_split_lea_for_addr): Likewise for param "insn".
11593         (ix86_lea_for_add_ok): Likewise for param "insn".
11594         (ix86_expand_carry_flag_compare): Likewise for local
11595         "compare_seq".
11596         (ix86_expand_int_movcc): Likewise.
11597         (ix86_output_call_insn): Likewise for param "insn".
11598         (ix86_output_call_insn): Likewise for local "i".
11599         (x86_output_mi_thunk): Introduce local "insn", using it in place
11600         of "tmp" when dealing with insns.
11601         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
11602         "start".
11603         (ix86_pad_returns): Likewise for locals "ret", "prev".
11604         (ix86_count_insn_bb): Likewise for local "insn".
11605         (ix86_pad_short_function): Likewise for locals "ret", "insn".
11606         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
11607         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
11608         (expand_vec_perm_interleave2): Likewise for local "seq".
11609         (expand_vec_perm_vperm2f128_vblend): Likewise.
11610         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
11611         call to for_each_rtx with for_each_rtx_in_insn.
11612
11613 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11614
11615         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
11616         "label" from rtx to rtx_code_label *.
11617         (ix86_expand_prologue): Likewise.
11618         (ix86_expand_split_stack_prologue): Likewise for locals "label",
11619         "varargs_label".
11620         (ix86_split_idivmod): Likewise for locals "end_label" and
11621         "qimode_label".
11622         (ix86_expand_branch): Likewise for local "label2".
11623         (ix86_expand_aligntest): Likewise for return type and local "label".
11624         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
11625         "top_label".
11626         (expand_movmem_epilogue): Likewise for the various locals named
11627         "label".
11628         (expand_setmem_epilogue): Likewise.
11629         (expand_small_movmem_or_setmem): Likewise for local "label".
11630         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11631         Strengthen param "done_label" from rtx * to rtx_code_label **.
11632         Strengthen locals "loop_label" and "label" from rtx to
11633         rtx_code_label *.
11634         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11635         Likewise for locals "loop_label", "label".
11636         (ix86_expand_set_or_movmem): Likewise for locals "label",
11637         "jump_around_label", "hot_label".
11638         (ix86_expand_strlensi_unroll_1): Likewise for locals
11639         "align_2_label", align_3_label", "align_4_label", "end_0_label",
11640         "end_2_label".
11641         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
11642         (void ix86_emit_i387_log1p): Likewise for locals "label1",
11643         "label2", "jump_label".
11644         (ix86_expand_sse_compare_and_jump): Likewise for return type and
11645         local "label".
11646         (ix86_expand_lfloorceil): Likewise for local "label".
11647         (ix86_expand_rint): Likewise.
11648         (ix86_expand_floorceildf_32): Likewise.
11649         (ix86_expand_floorceil): Likewise.
11650         (ix86_expand_rounddf_32): Likewise.
11651         (ix86_expand_trunc): Likewise.
11652         (ix86_expand_truncdf_32): Likewise.
11653         (ix86_expand_round): Likewise.
11654
11655 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11656
11657         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
11658         first param from rtx to rtx_insn *.
11659         (h8300_insn_length_from_table): Likewise.
11660         * config/h8300/h8300.c (F): Likewise for return type and param
11661         "x".
11662         (Fpa): Add a checked cast to rtx_insn *.
11663         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
11664         rtx_insn *.
11665         (final_prescan_insn): Likewise for param "insn".
11666         (h8300_binary_length): Likewise.
11667         (h8300_insn_length_from_table): Likewise.
11668
11669 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11670
11671         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
11672         Strengthen first param "insn" from rtx to rtx_insn *.
11673
11674         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
11675         Likewise.
11676         (frame_insn): Likewise for return type.  Introduce local "insn"
11677         for use in place of local "x" for use as an rtx_insn *.
11678         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
11679         (epiphany_expand_prologue): Likewise for local "insn".
11680         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
11681         * config/epiphany/resolve-sw-modes.c
11682         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
11683         "seq".
11684
11685 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11686
11687         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
11688         param from rtx to rtx_insn *.
11689         (c6x_final_prescan_insn): Likewise for first param.
11690
11691         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
11692         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
11693         (c6x_expand_compare): Strengthen local "insns" from rtx to
11694         rtx_insn *.
11695         (c6x_get_unit_specifier): Likewise for param "insn".
11696         (c6x_print_unit_specifier_field): Likewise.
11697         (c6x_final_prescan_insn): Likewise.
11698         (emit_add_sp_const): Likewise for local "insn".
11699         (c6x_expand_prologue): Likewise.
11700
11701 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11702
11703         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
11704         param 1 from rtx to rtx_insn *.
11705         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
11706         the various locals named "insn".
11707         (expand_epilogue_reg_restore): Likewise.
11708         (frame_related_constant_load): Likewise.
11709         (add_to_reg): Likewise.
11710         (emit_link_insn): Likewise.
11711         (do_link): Likewise.
11712         (expand_interrupt_handler_prologue): Likewise.
11713         (branch_dest): Likewise for param "branch".
11714         (asm_conditional_branch): Likewise for param "insn".
11715         (gen_one_bundle): Likewise for elements of param "slot" and local
11716         "t".
11717         (bfin_gen_bundles): Likewise for locals "insn", "next" and
11718         elements of local "slot".
11719         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11720         "queue", "next_queue", "prev".
11721         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
11722         (add_sched_insns_for_speculation): Likewise for local "insn".
11723
11724 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11725
11726         * config/avr/avr-protos.h (output_movqi): Strengthen first param
11727         from rtx to rtx_insn *.
11728         (output_movhi): Likewise.
11729         (output_movsisf): Likewise.
11730         (avr_out_tstsi): Likewise.
11731         (avr_out_tsthi): Likewise.
11732         (avr_out_tstpsi): Likewise.
11733         (avr_out_compare): Likewise.
11734         (avr_out_compare64): Likewise.
11735         (avr_out_movpsi): Likewise.
11736         (ashlqi3_out): Likewise.
11737         (ashlhi3_out): Likewise.
11738         (ashlsi3_out): Likewise.
11739         (ashrqi3_out): Likewise.
11740         (ashrhi3_out): Likewise.
11741         (ashrsi3_out): Likewise.
11742         (lshrqi3_out): Likewise.
11743         (lshrhi3_out): Likewise.
11744         (lshrsi3_out): Likewise.
11745         (avr_out_ashlpsi3): Likewise.
11746         (avr_out_ashrpsi3): Likewise.
11747         (avr_out_lshrpsi3): Likewise.
11748         (avr_out_fract): Likewise.
11749         (avr_out_sbxx_branch): Likewise.
11750         (avr_out_round): Likewise.
11751         (avr_out_xload): Likewise.
11752         (avr_out_movmem): Likewise.
11753         (adjust_insn_length): Likewise.
11754         (avr_out_lpm): Likewise.
11755         (reg_unused_after): Likewise.
11756         (_reg_unused_after): Likewise.
11757         (avr_jump_mode): Likewise for second param.
11758         (jump_over_one_insn): Likewise for first param.
11759         (avr_final_prescan_insn): Likewise.
11760         (out_shift_with_cnt): Likewise for second param.
11761
11762         * config/avr/avr.c (get_sequence_length): Likewise for param
11763         "insns" and local "insn".
11764         (emit_push_byte): Likewise for local "insn".
11765         (emit_push_sfr): Likewise.
11766         (avr_prologue_setup_frame): Likewise for locals "insn",
11767         "fp_plus_insns", "sp_plus_insns".
11768         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
11769         "sp_plus_insns".
11770         (avr_jump_mode): Likewise for param "insn".
11771         (avr_final_prescan_insn): Likewise.
11772         (avr_find_unused_d_reg): Likewise.
11773         (avr_out_lpm_no_lpmx): Likewise.
11774         (avr_out_lpm): Likewise.
11775         (avr_out_xload): Likewise.
11776         (output_movqi): Likewise.
11777         (output_movhi): Likewise.
11778         (out_movqi_r_mr): Likewise.
11779         (out_movhi_r_mr): Likewise.
11780         (out_movsi_r_mr): Likewise.
11781         (out_movsi_mr_r): Likewise.
11782         (output_movsisf): Likewise.
11783         (avr_out_load_psi): Likewise.
11784         (avr_out_store_psi): Likewise.
11785         (avr_out_movpsi): Likewise.
11786         (out_movqi_mr_r): Likewise.
11787         (avr_out_movhi_mr_r_xmega): Likewise.
11788         (out_movhi_mr_r): Likewise.
11789         (compare_condition): Likewise for param "insn" and local "next".
11790         (compare_sign_p): Likewise for param "insn".
11791         (compare_diff_p): Likewise.
11792         (compare_eq_p): Likewise.
11793         (avr_out_compare): Likewise.
11794         (avr_out_compare64): Likewise.
11795         (avr_out_tsthi): Likewise.
11796         (avr_out_tstpsi): Likewise.
11797         (avr_out_tstsi): Likewise.
11798         (out_shift_with_cnt): Likewise.
11799         (ashlqi3_out): Likewise.
11800         (ashlhi3_out): Likewise.
11801         (avr_out_ashlpsi3): Likewise.
11802         (ashlsi3_out): Likewise.
11803         (ashrqi3_out): Likewise.
11804         (ashrhi3_out): Likewise.
11805         (avr_out_ashrpsi3): Likewise.
11806         (ashrsi3_out): Likewise.
11807         (lshrqi3_out): Likewise.
11808         (lshrhi3_out): Likewise.
11809         (avr_out_lshrpsi3): Likewise.
11810         (lshrsi3_out): Likewise.
11811         (avr_out_fract): Likewise.
11812         (avr_out_round): Likewise.
11813         (avr_adjust_insn_length): Likewise.
11814         (reg_unused_after): Likewise.
11815         (_reg_unused_after): Likewise.
11816         (avr_compare_pattern): Likewise.
11817         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
11818         and locals "branch1", "branch2", "insn2", "jump".
11819         (avr_reorg): Likewise for local "insn".
11820         (avr_2word_insn_p): Likewise for param "insn".
11821         (jump_over_one_insn_p): Likewise.
11822         (avr_out_sbxx_branch): Likewise.
11823         (avr_out_movmem): Likewise.
11824
11825 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11826
11827         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
11828         param from rtx to rtx_insn *.
11829         (thumb1_final_prescan_insn): Likewise.
11830         (thumb2_final_prescan_insn): Likewise.
11831
11832         * config/arm/arm.c (emit_set_insn): Strengthen return type from
11833         rtx to rtx_insn *.
11834         (struct minipool_node): Likewise for field "insn".
11835         (dump_minipool): Likewise for param "scan".
11836         (create_fix_barrier): Likewise for local "from".  Strengthen local
11837         "label" from rtx to rtx_code_label *.
11838         (push_minipool_barrier): Strengthen param "insn" from rtx to
11839         rtx_insn *.
11840         (push_minipool_fix): Likewise.
11841         (note_invalid_constants): Likewise.
11842         (thumb2_reorg): Likewise for local "insn".
11843         (arm_reorg): Likewise.
11844         (thumb2_final_prescan_insn): Likewise for param
11845         "insn" and local "first_insn".
11846         (arm_final_prescan_insn): Likewise for param "insn" and locals
11847         "start_insn", "this_insn".
11848         (arm_debugger_arg_offset): Likewise for param "insn".
11849         (thumb1_emit_multi_reg_push): Likewise for return type and local
11850         "insn".
11851         (thumb1_final_prescan_insn): Likewise for param "insn".
11852         (thumb_far_jump_used_p): Likewise for local "insn".
11853         (thumb1_expand_prologue): Likewise.
11854         (arm_expand_epilogue_apcs_frame): Likewise.
11855         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
11856         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
11857         from rtx to rtx_code_label *.
11858         (arm_split_atomic_op): Likewise for local "label".
11859         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
11860
11861 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11862
11863         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
11864         first param from rtx to rtx_insn *.
11865         (arc_verify_short): Likewise.
11866         (arc_short_long): Likewise.
11867         (arc_need_delay): Likewise.
11868
11869         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
11870         "target_insn".
11871         (arc_ccfsm_advance): Likewise for param "insn" and locals
11872         "start_insn", "this_insn".
11873         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
11874         (arc_ccfsm_post_advance): Likewise for param "insn".
11875         (arc_next_active_insn): Likewise for return type and param "insn".
11876         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
11877         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
11878         (output_short_suffix): Likewise for local "insn".
11879         (arc_final_prescan_insn): Likewise for param "insn".  Remove
11880         now-redundant checked cast.
11881         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
11882         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
11883         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
11884         for use where lc_set became an insn.
11885         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
11886         rtx to rtx_insn *.
11887         (arc_get_insn_variants): Likewise for local "prev".
11888         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
11889         "next".
11890         (arc_predicate_delay_insns): Likewise for local "insn".
11891         (arc_pad_return): Likewise for local "prev".  For now, add a
11892         checked cast when extracting the insn from "final_sequence".
11893         (arc_short_long): Likewise for param "insn".
11894         (arc_need_delay): Likewise for param "insn" and local "next".
11895         (arc_label_align): Likewise for locals "prev", "next".
11896
11897 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11898
11899         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
11900         "insn" from rtx to rtx_insn *.
11901         (alpha_gp_save_rtx): Likewise for local "seq".
11902         (alpha_instantiate_decls): Likewise for local "top".
11903         (get_some_local_dynamic_name): Likewise for local "insn".
11904         (alpha_does_function_need_gp): Likewise.
11905         (set_frame_related_p): Likewise for return type and for locals
11906         "seq" and "insn".
11907         (emit_frame_store_1): Likewise for local "insn".
11908         (alpha_expand_prologue): Likewise for locals "insn", "seq".
11909         (alpha_end_function): Likewise for local "insn".
11910         (alpha_output_mi_thunk_osf): Likewise.
11911         (alphaev4_insn_pipe): Likewise for param "insn".
11912         (alphaev5_insn_pipe): Likewise.
11913         (alphaev4_next_group): Likewise for return type and param 1
11914         "insn".
11915         (alphaev5_next_group): Likewise.
11916         (alpha_align_insns_1): Likewise for return type and param 1 of
11917         callback param "next_group", and for locals "i", "next", "prev",
11918         "where", "where2", "insn".
11919
11920 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11921
11922         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
11923         rather than modifying the stmt.
11924
11925 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11926
11927         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
11928         cgraph_state conversion.
11929
11930 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11931
11932         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11933         Strengthen local "insns" from rtx to rtx_insn *.
11934         (aarch64_set_frame_expr): Likewise for local "insn".
11935         (aarch64_save_or_restore_fprs): Likewise.
11936         (aarch64_save_or_restore_callee_save_registers): Likewise.
11937         (aarch64_expand_prologue): Likewise.
11938         (aarch64_expand_epilogue): Likewise.
11939         (aarch64_output_mi_thunk): Likewise.
11940         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
11941         "label2" from rtx to rtx_code_label *.
11942         (aarch64_split_atomic_op): Likewise for local "label".
11943
11944 2014-08-25  Martin Liska  <mliska@suse.cz>
11945
11946         * cgraph.h (symtab_node):
11947         (bool needed_p (void)): created from decide_is_symbol_needed
11948         (bool referred_to_p (void)): created from referred_to_p
11949         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
11950         * cgraph.h (cgraph_node):
11951         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
11952         (void expand (void)): created from expand_function
11953         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
11954         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
11955         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
11956         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
11957         * cgraph.h (varpool_node):
11958         (static void add (tree decl): created from varpool_add_new_variable
11959         * cgraph.h (cgraph_edge):
11960         void remove (void);
11961         (void remove_caller (void)): created from cgraph_edge_remove_caller
11962         (void remove_callee (void)): created from cgraph_edge_remove_callee
11963         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
11964           created from cgraph_set_call_stmt
11965         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
11966         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
11967         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
11968           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
11969         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
11970           created from cgraph_speculative_call_info
11971         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
11972           int freq_scale, bool update_original)): created from cgraph_clone_edge
11973         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
11974         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
11975         (bool recursive_p (void)): created from cgraph_edge_recursive_p
11976         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
11977         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
11978         (static void rebuild_references (void)): created from cgraph_rebuild_references
11979         * cgraph.h (symbol_table):
11980         (create_reference): renamed from add_reference
11981         (maybe_create_reference): renamed from maybe_add_reference
11982         (void register_symbol (symtab_node *node)): new function
11983         (void clear_asm_symbols (void)): new function
11984         (void unregister (symtab_node *node)): new function
11985         (void release_symbol (cgraph_node *node, int uid)): new function
11986         (cgraph_node * allocate_cgraph_symbol (void)): new function
11987         (void initialize (void)): created from cgraph_init
11988         (symtab_node *first_symbol (void)):new function
11989         (asm_node *first_asm_symbol (void)):new function
11990         (symtab_node *first_defined_symbol (void)):new function
11991         (varpool_node *first_variable (void)):new function
11992         (varpool_node *next_variable (varpool_node *node)):new function
11993         (varpool_node *first_static_initializer (void)):new function
11994         (varpool_node *next_static_initializer (varpool_node *node)):new function
11995         (varpool_node *first_defined_variable (void)):new function
11996         (varpool_node *next_defined_variable (varpool_node *node)):new function
11997         (cgraph_node *first_defined_function (void)):new function
11998         (cgraph_node *next_defined_function (cgraph_node *node)):new function
11999         (cgraph_node *first_function (void)):new function
12000         (cgraph_node *next_function (cgraph_node *node)):new function
12001         (cgraph_node *first_function_with_gimple_body (void)):new function
12002         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12003         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12004           created from symtab_remove_unreachable_nodes
12005         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12006         (void process_new_functions (void)): created from cgraph_process_new_functions
12007         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12008         (bool output_variables (void)): created from varpool_node::output_variables
12009         (void output_asm_statements (void)): created from output_asm_statements
12010         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12011         (void compile (void)): created from compile
12012         (void output_weakrefs (void)): created from output_weakrefs
12013         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12014         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12015           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12016         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12017         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12018           created from cgraph_next_function_with_gimple_body
12019         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12020           created from cgraph_remove_edge_removal_hook
12021         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12022           created from cgraph_add_node_removal_hook
12023         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12024           created from cgraph_remove_node_removal_hook
12025         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12026           created from varpool_add_node_removal_hook
12027         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12028           created from varpool_remove_node_removal_hook
12029         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12030           created from cgraph_add_function_insertion_hook
12031         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12032           created from cgraph_remove_function_insertion_hook
12033         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12034           created from varpool_add_variable_insertion_hook
12035         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12036           created from varpool_remove_variable_insertion_hook
12037         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12038           created from cgraph_add_edge_duplication_hook
12039         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12040           created from cgraph_remove_edge_duplication_hook
12041         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12042           created from cgraph_add_node_duplication_hook
12043         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12044           created from cgraph_remove_node_duplication_hook
12045         (void call_edge_removal_hooks (cgraph_edge *e)):
12046           created from cgraph_call_edge_removal_hooks
12047         (void call_cgraph_insertion_hooks (cgraph_node *node)):
12048           created from call_function_insertion_hooks
12049         (void call_cgraph_removal_hooks (cgraph_node *node)):
12050           created from cgraph_call_node_removal_hooks
12051         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12052           created from cgraph_node::call_duplication_hooks
12053         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12054           created from cgraph_call_edge_duplication_hooks
12055         (void call_varpool_removal_hooks (varpool_node *node)):
12056           created from varpool_call_node_removal_hooks
12057         (void call_varpool_insertion_hooks (varpool_node *node)):
12058           created from varpool_call_variable_insertion_hooks
12059         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12060           created from insert_to_assembler_name_hash
12061         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12062           created from unlink_from_assembler_name_hash
12063         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12064           created from symtab_prevail_in_asm_name_hash
12065         (void symtab_initialize_asm_name_hash (void)):
12066           created from symtab_initialize_asm_name_hash
12067         (void change_decl_assembler_name (tree decl, tree name)):
12068           created from change_decl_assembler_name
12069         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12070         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12071           created from decl_assembler_name_hash
12072         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12073           created from decl_assembler_name_equal
12074         (static hashval_t hash_node_by_assembler_name (const void *p)):
12075           created from hash_node_by_assembler_name
12076         (static int eq_assembler_name (const void *p1, const void *p2)):
12077           created from eq_assembler_name
12078
12079 2014-08-25  Marek Polacek  <polacek@redhat.com>
12080
12081         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12082
12083 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
12084
12085         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12086         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12087         SWI1248_AVX512BW mode iterator.
12088
12089 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12090
12091         PR target/62111
12092         * config/sh/predicates.md (general_extend_operand): Disable
12093         TRUNCATE before reload completes.
12094
12095 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
12096
12097         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12098
12099 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12100
12101         PR target/61996
12102         * config/sh/sh.opt (musermode): Allow negative form.
12103         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12104         targets that don't support it.
12105         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12106         Document -mno-usermode option.
12107
12108 2014-08-24  Kito Cheng  <kito@0xlab.org>
12109
12110         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12111         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12112         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12113         * doc/tm.texi: Regenerate.
12114
12115 2014-08-24  Kito Cheng  <kito@0xlab.org>
12116
12117         * ira.c: Fix typo in comment.
12118
12119 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12120
12121         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12122         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12123
12124 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12125
12126         PR target/62038
12127         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12128         last_address when the current function is a thunk.
12129         (pa_asm_output_mi_thunk): When we don't have named sections or they
12130         are not being used, check that thunk can reach the stub table with a
12131         short branch.
12132
12133 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12134
12135         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12136         rtx_insn *.
12137         (pass_web::execute): Likewise for local "insn".
12138
12139 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12140
12141         * var-tracking.c (struct micro_operation_def): Strengthen field
12142         "insn" from rtx to rtx_insn *.
12143         (struct emit_note_data_def): Likewise.
12144         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12145         (vt_stack_adjustments): Likewise for local "insn".
12146         (adjust_insn): Likewise for param "insn".
12147         (val_store): Likewise.
12148         (val_resolve): Likewise.
12149         (struct count_use_info): Likewise for field "insn".
12150         (log_op_type): Likewise for param "insn".
12151         (reverse_op): Likewise.
12152         (prepare_call_arguments): Likewise.
12153         (add_with_sets):  The initial param takes an insn, but we can't
12154         yet strengthen it from rtx to rtx_insn * since it's used as a
12155         cselib_record_sets_hook callback.  For now rename initial param
12156         from "insn" to "uncast_insn", and introduce a local "insn" of
12157         the stronger rtx_insn * type, with a checked cast.
12158         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12159         rtx_insn *.
12160         (emit_note_insn_var_location): Likewise.
12161         (emit_notes_for_changes): Likewise.
12162         (emit_notes_for_differences): Likewise.
12163         (next_non_note_insn_var_location): Likewise for return type and
12164         for param "insn".
12165         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12166         (vt_initialize): Likewise for local "insn".
12167         (delete_debug_insns): Likewise for locals "insn" and "next".
12168
12169 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12170
12171         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12172         rtx_insn *.
12173         (mark_constant_pool): Likewise for local "insn".
12174
12175 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12176
12177         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12178         rtx to rtx_insn *.
12179         (dead_debug_promote_uses): Likewise.
12180         (dead_debug_insert_temp): Likewise.
12181
12182 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12183
12184         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12185         from const_rtx to const rtx_insn *.
12186         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12187         from rtx to rtx_insn *.
12188         (store_killed_before): Strengthen param "insn" from const_rtx to
12189         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12190         (find_moveable_store): Strengthen param "insn" from rtx to
12191         rtx_insn *.
12192         (compute_store_table): Likewise for local "insn".
12193         (insert_insn_start_basic_block): Likewise for param "insn" and
12194         locals "prev", "before", "insn".
12195         (insert_store): For now, add a checked cast to rtx_insn * on the
12196         result of gen_move_insn.
12197         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12198         to rtx_insn *.
12199         (replace_store_insn): Likewise.  For now, add a checked cast to
12200         rtx_insn * on the result of gen_move_insn.
12201
12202 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12203
12204         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12205         rtx_insn *.
12206         (expand_sjlj_dispatch_table): Likewise.
12207
12208 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12209
12210         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12211         "insn" from rtx to rtx_insn *.
12212
12213 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12214
12215         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12216         "insn" from rtx to rtx_insn *.
12217         (dup_block_and_redirect): Likewise for param 3 "before".
12218
12219         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12220         from rtx to rtx_insn *.
12221         (move_insn_for_shrink_wrap): Likewise.
12222         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12223         (dup_block_and_redirect): Likewise for param "before" and local
12224         "insn".
12225         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12226         "end".
12227         (convert_to_simple_return): Likewise for local "start".
12228
12229         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12230         Strengthen local "insn" from rtx to rtx_insn *, for use when
12231         invoking requires_stack_frame_p.
12232
12233 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12234
12235         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12236         rtx_insn *.
12237         (speculate_expr): Likewise for locals "orig_insn_rtx",
12238         "spec_insn_rtx".
12239         (eq_transformed_insns): Likewise for locals "i1", "i2".
12240         (check_for_new_jump): Likewise for return type and local "end".
12241         (find_new_jump): Likewise for return type and local "jump".
12242         (sel_split_edge): Likewise for local "jump".
12243         (sel_create_recovery_block): Likewise.
12244         (sel_redirect_edge_and_branch_force): Likewise.
12245         (sel_redirect_edge_and_branch): Likewise.
12246
12247 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12248
12249         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12250         "new_insn" from rtx to rtx_insn *.
12251         (create_insn_rtx_with_rhs): Likewise for return type and for local
12252         "insn_rtx".
12253         (create_insn_rtx_with_lhs): Likewise.
12254         (create_speculation_check): Likewise for local "insn_rtx".
12255         (implicit_clobber_conflict_p): Likewise for local "insn".
12256         (get_expr_cost): Likewise.
12257         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12258         (move_cond_jump): Likewise for locals "next", "prev", "link",
12259         "head", "from", "to".
12260
12261 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12262
12263         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12264         "next" from rtx to rtx_insn *.
12265         (find_conditional_protection): Likewise for local "next".
12266         (is_conditionally_protected): Likewise for local "insn1".
12267         (is_pfree): Likewise for locals "insn1", "insn2".
12268
12269 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12270
12271         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12272         from rtx to rtx_insn *.
12273
12274         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12275         locals "insn1", "insn2" from rtx to rtx_insn *.
12276         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12277         locals "insn", "prev", "last_jump", "next_tail".
12278         (schedule_ebb): Likewise for params "head", "tail".
12279         (schedule_ebbs): Likewise for locals "tail", "head".
12280
12281         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12282         to rtx_insn on "last_insn" in one of the invocations of
12283         schedule_ebb.
12284
12285 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12286
12287         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12288         "elem", "insn" from rtx to rtx_insn *.
12289         (change_spec_dep_to_hard): Likewise.
12290         (get_back_and_forw_lists): Likewise for local "con".
12291         (sd_add_dep): Likewise for locals "elem", "insn".
12292         (sd_resolve_dep): Likewise for locals "pro", "con".
12293         (sd_unresolve_dep): Likewise.
12294         (sd_delete_dep): Likewise.
12295         (chain_to_prev_insn): Likewise for local "pro".
12296         (find_inc): Likewise for locals "pro", "con".
12297
12298 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12299
12300         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12301         to rtx_insn *.
12302         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12303         const rtx_insn *.
12304         (modified_between_p): Strengthen local "insn" from rtx to
12305         rtx_insn *.
12306         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12307         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12308         const rtx_insn *.
12309
12310 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12311
12312         * resource.c (next_insn_no_annul): Strengthen local "next" from
12313         rtx to rtx_insn *.
12314         (mark_referenced_resources): Likewise for local "insn".
12315
12316 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12317
12318         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12319         to rtx_insn *.
12320         (find_reloads): Likewise for param 1.
12321         (subst_reloads): Likewise for sole param.
12322         (find_equiv_reg): Likwise for param 2.
12323         (regno_clobbered_p): Likwise for param 2.
12324         (reload): Likewise for param 1.
12325
12326         * caller-save.c (save_call_clobbered_regs): Strengthen local
12327         "insn" from rtx to rtx_insn *.
12328         (insert_one_insn): Likewise for local "insn".
12329
12330         * reload.c (this_insn): Likewise for this global.
12331         (find_reloads): Likewise for param "insn".
12332         (find_reloads_toplev): Likewise.
12333         (find_reloads_address): Likewise.
12334         (subst_reg_equivs): Likewise.
12335         (update_auto_inc_notes): Likewise.
12336         (find_reloads_address_1): Likewise.
12337         (find_reloads_subreg_address): Likewise.
12338         (subst_reloads): Likewise.
12339         (find_equiv_reg): Likewise, also for local "p".
12340         (regno_clobbered_p): Likewise for param "insn".
12341
12342         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12343         array.
12344         (spill_reg_store): Likewise for the elements of this array.
12345         (remove_init_insns): Likewise for local "equiv_insn".
12346         (will_delete_init_insn_p): Likewise for param "insn".
12347         (reload): Likewise for param ""first" and local "insn".
12348         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12349         rtx_insn *.
12350         (calculate_elim_costs_all_insns): Likewise.
12351         (delete_caller_save_insns): Likewise.
12352         (spill_failure): Likewise for param "insn".
12353         (delete_dead_insn): Likewise.
12354         (set_label_offsets): Likewise.
12355         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12356         "prev_insn".
12357         (elimination_costs_in_insn): Likewise for param "insn".
12358         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12359         when referring to an insn.
12360         (set_initial_label_offsets): Likewise.
12361         (set_offsets_for_label): Strengthen param "insn" from rtx to
12362         rtx_insn *.
12363         (init_eliminable_invariants): Likewise for param "first" and local
12364         "insn".
12365         (fixup_eh_region_note): Likewise for param "insn".
12366         (reload_as_needed): Likewise for locals "prev", "insn",
12367         "old_next", "old_prev", "next".
12368         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12369         "last".
12370         (reload_inheritance_insn): Strengthen elements of this array from
12371         rtx to rtx_insn *.
12372         (failed_reload): Likewise for param "insn".
12373         (choose_reload_regs): Likewise for local "insn".  Replace use of
12374         NULL_RTX with NULL when referring to an insn.
12375         (input_reload_insns): Strengthen elements of this array from rtx
12376         to rtx_insn *.
12377         (other_input_address_reload_insns): Likewise for this global.
12378         (other_input_reload_insns): Likewise for this global.
12379         (input_address_reload_insns): Likwise for the elements of this
12380         array.
12381         (inpaddr_address_reload_insns): Likwise for the elements of this
12382         array.
12383         (output_reload_insns): Likewise for the elements of this array.
12384         (output_address_reload_insns): Likewise for the elements of this
12385         array.
12386         (outaddr_address_reload_insns): Likewise for the elements of this
12387         array.
12388         (operand_reload_insns): Likewise for this global.
12389         (other_operand_reload_insns): Likewise for this global.
12390         (other_output_reload_insns): Likewise for the elements of this
12391         array.
12392         (new_spill_reg_store): Likewise for the elements of this
12393         array.
12394         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12395         Strengthen local "where" from rtx * to rtx_insn **.
12396         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12397         from rtx to rtx_insn *.
12398         (do_input_reload): Likewise for local "insn".
12399         (do_output_reload): Likewise for local "insn".
12400         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12401         (emit_insn_if_valid_for_reload): Likewise for return type and local
12402         "last".  Add checked cast to rtx_insn when returning "insn" since
12403         this has been through emit_insn.
12404         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12405         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12406         returning "insn" since it's been through
12407         emit_insn_if_valid_for_reload at this point.
12408         (delete_output_reload): Strengthen param "insn" and locals
12409         "output_reload_insn", "i2" from rtx to rtx_insn *.
12410         (delete_address_reloads): Likewise for params "dead_insn",
12411         "current_insn" and locals "prev", "next".
12412         (delete_address_reloads_1): Likewise for params "dead_insn",
12413         "current_insn" and locals "prev", "i2".
12414         (inc_for_reload): Likewise for locals "last", "add_insn".
12415         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12416         rtx_insn *.
12417
12418         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12419         param of this duplicate of the prototype from reload.h
12420
12421 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12422
12423         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12424         rtx to rtx_insn *.
12425         (regstat_bb_compute_calls_crossed): Likewise.
12426
12427 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12428
12429         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12430         to rtx_insn *.
12431         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12432         with an insn.
12433         (regrename_analyze): Strengthen local "insn" from rtx to
12434         rtx_insn *.
12435         (scan_rtx_reg): Likewise for param "insn".
12436         (scan_rtx_address): Likewise.
12437         (scan_rtx): Likewise.
12438         (restore_operands): Likewise.
12439         (record_out_operands): Likewise.
12440         (build_def_use): Likewise for local "insn".  Replace use of
12441         NULL_RTX with NULL when dealing with an insn.
12442
12443 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12444
12445         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12446         * reginfo.c (reg_scan): Likewise, also for local "insn".
12447         (reg_scan_mark_refs): Likewise for param "insn".
12448         (init_subregs_of_mode): Likewise for local "insn".
12449
12450 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12451
12452         * regcprop.c (struct queued_debug_insn_change): Strengthen field
12453         "insn" from rtx to rtx_insn *.
12454         (replace_oldest_value_reg): Likewise for param "insn".
12455         (replace_oldest_value_addr): Likewise.
12456         (replace_oldest_value_mem): Likewise.
12457         (apply_debug_insn_changes): Likewise for local "last_insn".
12458         (copyprop_hardreg_forward_1): Likewise for local "insn".
12459
12460 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12461
12462         * reg-stack.c (next_flags_user): Strengthen return type and param
12463         "insn" from rtx to rtx_insn *.
12464         (straighten_stack): Likewise for param "insn".
12465         (check_asm_stack_operands): Likewise.
12466         (remove_regno_note): Likewise.
12467         (emit_pop_insn): Likewise for return type, param "insn", local
12468         "pop_insn".
12469         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
12470         "limit" from rtx to rtx_insn *.
12471         (swap_to_top): Likewise for param "insn".
12472         (move_for_stack_reg): Likewise.
12473         (move_nan_for_stack_reg): Likewise.
12474         (swap_rtx_condition): Likewise.
12475         (compare_for_stack_reg): Likewise.
12476         (subst_all_stack_regs_in_debug_insn): Likewise.
12477         (subst_stack_regs_pat): Likewise, and local "insn2".
12478         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12479         rtx_insn *.
12480         (subst_stack_regs): Likewise.
12481         (change_stack): Likewise.
12482         (convert_regs_1): Likewise for locals "insn", "next".
12483
12484 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12485
12486         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12487         rtx_insn *.
12488         (combine_set_extension): Likewise for param "curr_insn".
12489         (transform_ifelse): Likewise for param "def_insn".
12490         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
12491         from vec<rtx> * to vec<rtx_insn *> *.
12492         (is_cond_copy_insn): Likewise for param "insn".
12493         (struct ext_state): Strengthen the four vec fields from vec<rtx>
12494         to vec<rtx_insn *>.
12495         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
12496         local "def_insn" from rtx to rtx_insn *.
12497         (get_sub_rtx): Likewise for param "def_insn".
12498         (merge_def_and_ext): Likewise.
12499         (combine_reaching_defs): Likewise.
12500         (add_removable_extension): Likewise for param "insn".
12501         (find_removable_extensions): Likewise for local "insn".
12502         (find_and_remove_re): Likewise for locals "curr_insn" and
12503         "def_insn".  Strengthen locals "reinsn_del_list" and
12504         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
12505
12506 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12507
12508         * recog.c (split_insn): Strengthen param "insn" and locals
12509         "first", "last" from rtx to rtx_insn *.
12510         (split_all_insns): Likewise for locals "insn", "next".
12511         (split_all_insns_noflow): Likewise.
12512
12513 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12514
12515         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
12516         const rtx_insn *.
12517         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12518         (debug_rtx_find): Likewise for param 1 "x".
12519
12520         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
12521         const_rtx to const rtx_insn *.  Likewise for local "insn".
12522         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12523         (debug_rtx_find): Likewise for param 1 "x".
12524         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
12525         from const_rtx to const rtx_insn * within the appropriate cases of
12526         the switch statement.
12527
12528         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
12529         Strengthen local "insns" from rtx to rtx_insn * since this is
12530         passed to a call to debug_rtx_list.
12531
12532 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12533
12534         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
12535         to rtx_insn *.
12536
12537         * function.c (stack_protect_epilogue): Add checked cast to
12538         rtx_insn for now when invoking predict_insn_def.
12539
12540         * predict.c (predict_insn): Strengthen param "insn" from rtx to
12541         rtx_insn *.
12542         (predict_insn_def): Likewise.
12543         (rtl_predict_edge): Likewise for local "last_insn".
12544         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
12545         const rtx_insn *.
12546         (combine_predictions_for_insn): Strengthen param "insn" from rtx
12547         to rtx_insn *.
12548         (bb_estimate_probability_locally): Likewise for local "last_insn".
12549         (expensive_function_p): Likewise for local "insn".
12550
12551         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
12552         local "jmp", since this is used when invoking predict_insn_def.
12553
12554 2014-08-22  Marek Polacek  <polacek@redhat.com>
12555
12556         PR c++/62199
12557         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
12558
12559 2014-08-22  Marek Polacek  <polacek@redhat.com>
12560
12561         PR c/61271
12562         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
12563         a comparison in parens.
12564         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
12565         in parens.
12566
12567 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12568
12569         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
12570         rtx_insn *.
12571
12572         * cprop.c (fis_get_condition): Likewise.
12573
12574         * postreload.c (reload_cse_regs): Likewise for param "first".
12575         (reload_cse_simplify): Likewise for param "insn".
12576         (reload_cse_regs_1): Likewise for local "insn".
12577         (reload_cse_simplify_set): Likewise for param "insn".
12578         (reload_cse_simplify_operands): Likewise.
12579         (struct reg_use): Likewise for field "insn".
12580         (reload_combine_purge_insn_uses): Likewise for param "insn".
12581         (fixup_debug_insns): Likewise for params "from", "to" and local
12582         "insn".
12583         (try_replace_in_use): Likewise for local "use_insn".
12584         (reload_combine_recognize_const_pattern): Likewise for param
12585         "insn" and locals "add_moved_after_insn", "use_insn".
12586         (reload_combine_recognize_pattern): Likewise for param "insn" and
12587         local "prev".
12588         (reload_combine): Likewise for locals "insn", "prev".
12589         (reload_combine_note_use): Likewise for param "insn".
12590         (move2add_use_add2_insn): Likewise.
12591         (move2add_use_add3_insn): Likewise.
12592         (reload_cse_move2add): Likewise, also for local "next".
12593         (move2add_note_store): Likewise for local "insn".
12594
12595 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12596
12597         * postreload-gcse.c (struct occr): Strengthen field "insn" from
12598         rtx to rtx_insn *.
12599         (struct unoccr): Likewise.
12600         (struct modifies_mem): Likewise.
12601         (alloc_mem): Likewise for local "insn".
12602         (insert_expr_in_table): Likewise for param "insn".
12603         (dump_expr_hash_table_entry): Likewise for local "insn".
12604         (oprs_unchanged_p): Likewise for param "insn".
12605         (load_killed_in_block_p): Likewise for local "setter".
12606         (record_last_reg_set_info): Likewise for param "insn".
12607         (record_last_reg_set_info_regno): Likewise.
12608         (record_last_mem_set_info): Likewise.
12609         (record_last_set_info): Likewise for local "last_set_insn".
12610         (record_opr_changes): Likewise for param "insn".
12611         (hash_scan_set): Likewise.
12612         (compute_hash_table): Likewise for local "insn".
12613         (get_avail_load_store_reg): Likewise for param "insn".
12614         (eliminate_partially_redundant_load): Likewise, also for locals
12615         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
12616         RTX for insns.
12617         (eliminate_partially_redundant_loads): Likewise for local "insn".
12618
12619 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12620
12621         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
12622         rtx to rtx_insn *.
12623         (expand_binop): Likewise for locals "entry_last", "last", "insns"
12624         (expand_twoval_unop): Likewise for locals entry_last", "last".
12625         (expand_twoval_binop): Likewise.
12626         (expand_twoval_binop_libfunc): Likewise for local "insns".
12627         (widen_leading): Likewise for local "last".
12628         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
12629         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
12630         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
12631         (expand_parity): Likewise for locals "last" and "seq".
12632         (expand_ffs): Likewise for local "seq".  Strengthen local
12633         "nonzero_label" from rtx to rtx_code_label *.
12634         (expand_absneg_bit): Strengthen local "insns" from rtx to
12635         rtx_insn *.
12636         (expand_unop_direct): Likewise for local "last".
12637         (expand_unop): Likewise for locals "last", "insns".
12638         (expand_abs_nojump): Likewise for local "last".
12639         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
12640         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
12641         rtx_insn *.
12642         (expand_copysign_absneg): Strengthen local "label" from rtx to
12643         rtx_code_label *.
12644         (expand_copysign_bit): Strengthen local "insns" from rtx to
12645         rtx_insn *.
12646         (struct no_conflict_data): Likewise for fields "first", "insn".
12647         (emit_libcall_block_1): Likewise for param "insns" and locals
12648         "next", "last", "insn".
12649         (emit_libcall_block): For now, add a checked cast to rtx_insn *
12650         on "insns" when invoking emit_libcall_block_1.  Ultimately we
12651         want to strengthen insns itself.
12652         (prepare_cmp_insn): Strengthen local "last" from rtx to
12653         rtx_insn *.
12654         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
12655         (prepare_float_lib_cmp): Likewise for local "insns".
12656         (emit_conditional_move): Likewise for local "last".
12657         (emit_conditional_add): Likewise.
12658         (have_sub2_insn): Likewise for local "seq".
12659         (expand_float): Likewise for local "insns".  Strengthen locals
12660         "label", "neglabel" from rtx to rtx_code_label *.
12661         (expand_fix): Likewise for locals "last", "insn", "insns" (to
12662         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
12663         (expand_fixed_convert): Likewise for local "insns" (to
12664         rtx_insn *).
12665         (expand_sfix_optab): Likewise for local "last".
12666         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
12667         to rtx_code_label *.
12668         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
12669         from rtx to rtx_insn *.
12670         (expand_atomic_fetch_op): Likewise for local "insn".
12671         (maybe_legitimize_operand_same_code): Likewise for local "last".
12672         (maybe_legitimize_operands): Likewise.
12673
12674 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12675
12676         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
12677         "insn" from rtx to rtx_insn *.
12678         (ps_rtl_insn): Likewise for return type.
12679         (doloop_register_get): Likewise for params "head", "tail" and
12680         locals "insn", "first_insn_not_to_check".
12681         (schedule_reg_move): Likewise for local "this_insn".
12682         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
12683         of gen_move_insn for now.
12684         (reset_sched_times): Strengthen local "insn" from rtx to
12685         rtx_insn *.
12686         (permute_partial_schedule): Likewise.
12687         (duplicate_insns_of_cycles): Likewise for local "u_insn".
12688         (dump_insn_location): Likewise for param "insn".
12689         (loop_canon_p): Likewise for local "insn".
12690         (sms_schedule): Likewise.
12691         (print_partial_schedule): Likewise.
12692         (ps_has_conflicts): Likewise.
12693
12694 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12695
12696         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
12697         "tailp" from rtx * to rtx_insn **.
12698
12699         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
12700         from rtx to rtx_insn *.
12701         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
12702         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
12703         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
12704         rtx to rtx_insn *.
12705         * modulo-sched.c (const_iteration_count): Strengthen return type
12706         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
12707         use of NULL_RTX with NULL when working with insns.
12708         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
12709         to rtx_insn *.
12710         (sms_schedule): Likewise.
12711         * sched-rgn.c (init_ready_list): Likewise, also for locals
12712         "src_head" and "src_next_tail".
12713         (compute_block_dependences): Likewise.
12714         (free_block_dependencies): Likewise.
12715         (debug_rgn_dependencies): Likewise.
12716         (free_rgn_deps): Likewise.
12717         (compute_priorities): Likewise.
12718         (schedule_region): Likewise.
12719         * sel-sched.c (find_ebb_boundaries): Likewise.
12720
12721         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
12722         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
12723
12724 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12725
12726         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
12727         from rtx to rtx_insn *.
12728         (new_seginfo): Likewise for param "insn".
12729         (create_pre_exit): Likewise for locals "last_insn",
12730         "before_return_copy", "return_copy".
12731         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
12732         "mode_set".
12733
12734 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12735
12736         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
12737         from rtx to rtx_insn *.
12738         (lra_push_insn): Likewise for 1st param.
12739         (lra_push_insn_and_update_insn_regno_info): Likewise.
12740         (lra_pop_insn): Likewise for return type.
12741         (lra_invalidate_insn_data): Likewise for 1st param.
12742         (lra_set_insn_deleted): Likewise.
12743         (lra_delete_dead_insn): Likewise.
12744         (lra_process_new_insns): Likewise for first 3 params.
12745         (lra_set_insn_recog_data): Likewise for 1st param.
12746         (lra_update_insn_recog_data): Likewise.
12747         (lra_set_used_insn_alternative): Likewise.
12748         (lra_invalidate_insn_regno_info): Likewise.
12749         (lra_update_insn_regno_info): Likewise.
12750         (lra_former_scratch_operand_p): Likewise.
12751         (lra_eliminate_regs_1): Likewise.
12752         (lra_get_insn_recog_data): Likewise.
12753
12754         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
12755         rtx to rtx_insn *.
12756
12757         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
12758         "mv1" and "mv2".
12759         (substitute_within_insn): New.
12760         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
12761         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
12762         Replace call to "substitute" with call to substitute_within_insn.
12763
12764         * lra-constraints.c (curr_insn): Strengthen from rtx to
12765         rtx_insn *.
12766         (get_equiv_with_elimination): Likewise for param "insn".
12767         (match_reload): Strengthen params "before" and "after" from rtx *
12768         to rtx_insn **.
12769         (emit_spill_move): Likewise for return type.  Add a checked cast
12770         to rtx_insn * on result of gen_move_insn for now.
12771         (check_and_process_move): Likewise for local "before".  Replace
12772         NULL_RTX with NULL when referring to insns.
12773         (process_addr_reg): Strengthen params "before" and "after" from
12774         rtx * to rtx_insn **.
12775         (insert_move_for_subreg): Likewise.
12776         (simplify_operand_subreg): Strengthen locals "before" and "after"
12777         from rtx to rtx_insn *.
12778         (process_address_1): Strengthen params "before" and "after" from
12779         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
12780         rtx to rtx_insn *.
12781         (process_address): Strengthen params "before" and "after" from
12782         rtx * to rtx_insn **.
12783         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
12784         (curr_insn_transform): Strengthen locals "before" and "after"
12785         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
12786         to insns.
12787         (loc_equivalence_callback): Update cast of "data", changing
12788         resulting type from rtx to rtx_insn *.
12789         (substitute_pseudo_within_insn): New.
12790         (inherit_reload_reg): Strengthen param "insn" from rtx to
12791         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
12792         NULL when referring to insns.  Add a checked cast to rtx_insn *
12793         when using usage_insn to invoke lra_update_insn_regno_info.
12794         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
12795         likewise for locals "restore", "save".  Add checked casts to
12796         rtx_insn * when using usage_insn to invoke
12797         lra_update_insn_regno_info and lra_process_new_insns.  Replace
12798         NULL_RTX with NULL when referring to insns.
12799         (split_if_necessary): Strengthen param "insn" from rtx to
12800         rtx_insn *.
12801         (update_ebb_live_info): Likewise for params "head", "tail" and local
12802         "prev_insn".
12803         (get_last_insertion_point): Likewise for return type and local "insn".
12804         (get_live_on_other_edges): Likewise for local "last".
12805         (inherit_in_ebb): Likewise for params "head", "tail" and locals
12806         "prev_insn", "next_insn", "restore".
12807         (remove_inheritance_pseudos): Likewise for local "prev_insn".
12808         (undo_optional_reloads): Likewise for local "insn".
12809
12810         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
12811         "insn".
12812         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
12813         insns.
12814         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
12815         rtx_insn *.
12816         (spill_pseudos): Likewise for local "insn".
12817         (init_elimination): Likewise.
12818         (process_insn_for_elimination): Likewise for param "insn".
12819
12820         * lra-lives.c (curr_insn): Likewise.;
12821
12822         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
12823         (remove_pseudos): Likewise for param "insn".
12824         (spill_pseudos): Likewise for local "insn".
12825         (lra_final_code_change): Likewise for locals "insn", "curr".
12826
12827         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
12828         (lra_set_insn_deleted): Likewise.
12829         (lra_delete_dead_insn): Likewise, and for local "prev".
12830         (new_insn_reg): Likewise for param "insn".
12831         (lra_set_insn_recog_data): Likewise.
12832         (lra_update_insn_recog_data): Likewise.
12833         (lra_set_used_insn_alternative): Likewise.
12834         (get_insn_freq): Likewise.
12835         (invalidate_insn_data_regno_info): Likewise.
12836         (lra_invalidate_insn_regno_info): Likewise.
12837         (lra_update_insn_regno_info): Likewise.
12838         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
12839         vec<rtx_insn *>.
12840         (lra_push_insn_1): Strengthen param "insn" from rtx to
12841         rtx_insn *.
12842         (lra_push_insn): Likewise.
12843         (lra_push_insn_and_update_insn_regno_info): Likewise.
12844         (lra_pop_insn): Likewise for return type and local "insn".
12845         (push_insns): Likewise for params "from", "to", and local "insn".
12846         (setup_sp_offset): Likewise for params "from", "last" and locals
12847         "before", "insn".
12848         (lra_process_new_insns): Likewise for params "insn", "before",
12849         "after" and local "last".
12850         (struct sloc): Likewise for field "insn".
12851         (lra_former_scratch_operand_p): Likewise for param "insn".
12852         (remove_scratches): Likewise for locals "insn", "last".
12853         (check_rtl): Likewise for local "insn".
12854         (add_auto_inc_notes): Likewise for param "insn".
12855         (update_inc_notes): Likewise for local "insn".
12856         (lra): Replace NULL_RTX with NULL when referring to insn.
12857
12858 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12859
12860         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
12861         to rtx_insn *.
12862         (resolve_reg_notes): Likewise.
12863         (resolve_simple_move): Likewise for return type, param "insn", and
12864         locals "insns", "minsn".
12865         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
12866         (resolve_use): Likewise.
12867         (resolve_debug): Likewise.
12868         (find_decomposable_shift_zext): Likewise.
12869         (resolve_shift_zext): Likewise for return type, param "insn", and
12870         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
12871         (decompose_multiword_subregs): Likewise for local "insn",
12872         "orig_insn", "decomposed_shift", "end".
12873
12874 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12875
12876         * basic-block.h (basic_block split_edge_and_insert): Strengthen
12877         param "insns" from rtx to rtx_insn *.
12878
12879         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
12880         rtx to rtx_insn *.
12881         (struct iv_to_split): Likewise.
12882         (loop_exit_at_end_p): Likewise for local "insn".
12883         (split_edge_and_insert): Likewise for param "insns".
12884         (compare_and_jump_seq): Likewise for return type, param "cinsn",
12885         and locals "seq", "jump".
12886         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
12887         "branch_code"; update invocations of compare_and_jump_seq to
12888         eliminate NULL_RTX in favor of NULL.
12889         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
12890         rtx to rtx_insn *.
12891         (reset_debug_uses_in_loop): Likewise.
12892         (analyze_insn_to_expand_var): Likewise for param "insn".
12893         (analyze_iv_to_split_insn): Likewise.
12894         (analyze_insns_in_loop): Likewise for local "insn".
12895         (insert_base_initialization): Likewise for param
12896         "insn" and local "seq".
12897         (split_iv): Likewise for param "insn" and local "seq".
12898         (expand_var_during_unrolling): Likewise for param "insn".
12899         (insert_var_expansion_initialization): Likewise for local "seq".
12900         (combine_var_copies_in_loop_exit): Likewise.
12901         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
12902         "insn".
12903         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
12904         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
12905         "next".
12906
12907 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12908
12909         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
12910         rtx_insn *.
12911         (iv_analyze_result): Likewise.
12912         (iv_analyze_expr): Likewise.
12913         (biv_p): Likewise.
12914
12915         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
12916         local "def_insn" from rtx to rtx_insn *.
12917         (get_biv_step_1): Likewise for local "insn".
12918         (iv_analyze_expr): Likewise for param "insn".
12919         (iv_analyze_def): Likewise for local "insn".
12920         (iv_analyze_op): Likewise for param "insn".
12921         (iv_analyze): Likewise.
12922         (iv_analyze_result): Likewise.
12923         (biv_p): Likewise.
12924         (suitable_set_for_replacement): Likewise.
12925         (simplify_using_initial_values): Likewise for local "insn".
12926         (iv_number_of_iterations): Likewise for param "insn".
12927         (check_simple_exit): Add checked cast to rtx_insn when invoking
12928         iv_number_of_iterations for now (until get_condition is
12929         strengthened).
12930
12931         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
12932         "insn" from rtx to rtx_insn *.
12933         (analyze_insns_in_loop): Likewise for local "insn".
12934
12935 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12936
12937         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
12938         to rtx_insn *.
12939         (struct invariant): Likewise.
12940         (hash_invariant_expr_1): Likewise for param "insn".
12941         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
12942         (find_exits): Likewise for local "insn".
12943         (create_new_invariant): Likewise for param "insn".
12944         (check_dependencies): Likewise.
12945         (find_invariant_insn): Likewise.
12946         (record_uses): Likewise.
12947         (find_invariants_insn): Likewise.
12948         (find_invariants_bb): Likewise for local "insn".
12949         (get_pressure_class_and_nregs): Likewise for param "insn".
12950         (calculate_loop_reg_pressure): Likewise for local "insn".
12951
12952 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12953
12954         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
12955         to rtx_insn *.
12956         (add_test): Likewise for locals "seq", "jump".
12957         (doloop_modify): Likewise for locals "sequence", "jump_insn".
12958
12959 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12960
12961         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
12962         rtx_insn *.
12963         (rebuild_jump_labels_chain): Likewise for param "chain".
12964
12965         * cfgexpand.c (pass_expand::execute): Add checked cast to
12966         rtx_insn * when calling rebuild_jump_labels_chain in region where
12967         we know e->insns.r is non-NULL.
12968
12969         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
12970         rtx_insn *.
12971         (rebuild_jump_labels): Likewise.
12972         (rebuild_jump_labels_chain): Likewise for param "chain".
12973         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
12974         (init_label_info): Likewise for param "f".
12975         (maybe_propagate_label_ref): Likewise for params "jump_insn",
12976         "prev_nonjump_insn".
12977         (mark_all_labels): Likewise for param "f" and locals "insn",
12978         "prev_nonjump_insn".
12979
12980 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12981
12982         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
12983         from rtx to rtx_insn *insn.
12984         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
12985         (ira_add_allocno_copy): Likewise.
12986         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
12987         rtx to rtx_insn *.
12988         (ira_create_copy): Likewise.
12989         (ira_add_allocno_copy): Likewise.
12990         (create_bb_allocnos): Likewise for local "insn".
12991         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
12992         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
12993         process_regs_for_copy for rtx_insn * param.
12994         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
12995         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
12996         process_regs_for_copy for rtx_insn * param.
12997         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
12998         * ira-costs.c (record_reg_classes): Likewise for param "insn".
12999         (record_operand_costs): Likewise.
13000         (scan_one_insn): Likewise for return type, and for param "insn".
13001         (process_bb_for_costs): Likewise for local "insn".
13002         (process_bb_node_for_hard_reg_moves): Likewise.
13003         * ira-emit.c (struct move): Likewise for field "insn".
13004         (create_move): Eliminate use of NULL_RTX when dealing with an
13005         rtx_insn *.
13006         (emit_move_list): Strengthen return type and locals "result",
13007         "insn" from rtx to rtx_insn *insn.
13008         (emit_moves): Likewise for locals "insns", "tmp".
13009         (ira_emit): Likewise for local "insn".
13010         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13011         "insn".
13012         (find_call_crossed_cheap_reg): Likewise.
13013         (process_bb_node_lives): Likewise for local "insn".
13014         * ira.c (decrease_live_ranges_number): Likewise.
13015         (compute_regs_asm_clobbered): Likewise.
13016         (build_insn_chain): Likewise.
13017         (find_moveable_pseudos): Likewise, also locals "def_insn",
13018         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
13019         to rtx_insn **.  Add a checked cast when assigning from
13020         "closest_use" into closest_uses array in a region where we know
13021         it's a non-NULL insn.
13022         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13023         to rtx_insn *.
13024         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13025         "last_interesting_insn", "uin".
13026         (move_unallocated_pseudos): Likewise for locals "def_insn",
13027         "move_insn", "newinsn".
13028
13029 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13030
13031         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13032         Strengthen locals "done_label", "do_error" from rtx to
13033         rtx_code_label *.
13034         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13035         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
13036         rtx_code_label *.
13037         (ubsan_expand_si_overflow_neg_check): Likewise for locals
13038         "done_label", "do_error" to rtx_code_label * and local  "last" to
13039         rtx_insn *.
13040         (ubsan_expand_si_overflow_mul_check): Likewise for locals
13041         "done_label", "do_error", "large_op0", "small_op0_large_op1",
13042         "one_small_one_large", "both_ops_large", "after_hipart_neg",
13043         "after_lopart_neg", "do_overflow", "hipart_different"  to
13044         rtx_code_label * and local  "last" to rtx_insn *.
13045
13046 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13047
13048         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13049         "insn" and "move_insn" from rtx to rtx_insn *.
13050
13051 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13052
13053         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13054         rtx_insn *.
13055         (cheap_bb_rtx_cost_p): Likewise.
13056         (first_active_insn): Likewise for return type and local "insn".
13057         (last_active_insn):  Likewise for return type and locals "insn",
13058         "head".
13059         (struct noce_if_info): Likewise for fields "jump", "insn_a",
13060         "insn_b".
13061         (end_ifcvt_sequence): Likewise for return type and locals "insn",
13062         "seq".
13063         (noce_try_move): Likewise for local "seq".
13064         (noce_try_store_flag): Likewise.
13065         (noce_try_store_flag_constants): Likewise.
13066         (noce_try_addcc): Likewise.
13067         (noce_try_store_flag_mask): Likewise.
13068         (noce_try_cmove): Likewise.
13069         (noce_try_minmax): Likewise.
13070         (noce_try_abs): Likewise.
13071         (noce_try_sign_mask): Likewise.
13072         (noce_try_bitop): Likewise.
13073         (noce_can_store_speculate_p): Likewise for local "insn".
13074         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13075         seq".
13076         (check_cond_move_block): Likewise for local "insn".
13077         (cond_move_convert_if_block): Likewise.
13078         (cond_move_process_if_block): Likewise for locals "seq",
13079         "loc_insn".
13080         (noce_find_if_block): Likewise for local "jump".
13081         (merge_if_block): Likewise for local "last".
13082         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13083         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13084         (block_has_only_trap): Likewise for return type and local "trap".
13085         (find_if_case_1): Likewise for local "jump".
13086         (dead_or_predicable): Likewise for locals "head", "end", "jump",
13087         "insn".
13088
13089 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13090
13091         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13092         "last_insn", "loop_end" from rtx to rtx_insn *.
13093
13094         * hw-doloop.c (scan_loop): Likewise for local "insn".
13095         (discover_loop): Likewise for param "tail_insn".
13096         (discover_loops): Likewise for local "tail".
13097
13098         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13099         cast to rtx_insn * when assigning from an rtx local to a
13100         hwloop_info's "last_insn" field.
13101
13102 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13103
13104         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13105         (add_delay_dependencies): Strengthen local "pro" from rtx to
13106         rtx_insn *.
13107         (recompute_todo_spec): Likewise.
13108         (dep_cost_1): Likewise for locals "insn", "used".
13109         (schedule_insn): Likewise for local "dbg".
13110         (schedule_insn): Likewise for locals "pro", "next".
13111         (unschedule_insns_until): Likewise for local "con".
13112         (restore_pattern): Likewise for local "next".
13113         (estimate_insn_tick): Likewise for local "pro".
13114         (resolve_dependencies): Likewise for local "next".
13115         (fix_inter_tick): Likewise.
13116         (fix_tick_ready): Likewise for local "pro".
13117         (add_to_speculative_block): Likewise for locals "check", "twin",
13118         "pro".
13119         (sched_extend_bb): Likewise for locals "end", "insn".
13120         (init_before_recovery): Likewise for local "x".
13121         (sched_create_recovery_block): Likewise for local "barrier".
13122         (create_check_block_twin): Likewise for local "pro".
13123         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13124         "consumer".
13125         (unlink_bb_notes): Update for change to type of bb_header.
13126         Strengthen locals "prev", "label", "note", "next" from rtx to
13127         rtx_insn *.
13128         (clear_priorities): Likewise for local "pro".
13129
13130 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13131
13132         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13133         rtx_insn *.
13134         (test_insn): Likewise for this global.
13135         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13136         const rtx_insn *.
13137         (oprs_anticipatable_p): Likewise.
13138         (oprs_available_p): Likewise.
13139         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13140         rtx_insn *.
13141         (hash_scan_set): Likewise.
13142         (hash_scan_clobber): Likewise.
13143         (hash_scan_call): Likewise.
13144         (hash_scan_insn): Likewise.
13145         (compute_hash_table_work): Likewise for local "insn".
13146         (process_insert_insn): Likewise for return type and local "pat".
13147         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13148         "pat", "pat_end", "maybe_cc0_setter".
13149         (pre_edge_insert): Likewise for local "insn".
13150         (pre_insert_copy_insn): Likewise for param "insn".
13151         (pre_insert_copies): Likewise for local "insn".
13152         (struct set_data): Likewise for field "insn".
13153         (single_set_gcse): Likewise for param "insn".
13154         (gcse_emit_move_after): Likewise.
13155         (pre_delete): Likewise for local "insn".
13156         (update_bb_reg_pressure): Likewise for param "from" and local
13157         "insn".
13158         (should_hoist_expr_to_dom): Likewise for param "from".
13159         (hoist_code): Likewise for local "insn".
13160         (get_pressure_class_and_nregs): Likewise for param "insn".
13161         (calculate_bb_reg_pressure): Likewise for local "insn".
13162         (compute_ld_motion_mems): Likewise.
13163
13164 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13165
13166         * genpeep.c (main): Rename param back from "uncast_ins1" to
13167         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13168         checked cast.
13169
13170         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13171
13172 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13173
13174         PR target/62195
13175         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13176         documentation to state it is only for VSX operations.
13177
13178         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13179         constraint only active if VSX.
13180
13181         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13182         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13183         (lfiwzx): Likewise.
13184
13185 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13186
13187         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13188         Strengthen local "insn" from rtx to rtx_insn *.
13189         (use_killed_between): Likewise for param "target_insn".
13190         (all_uses_available_at): Likewise for param "target_insn" and
13191         local "next".
13192         (update_df_init): Likewise for params "def_insn", "insn".
13193         (update_df): Likewise for param "insn".
13194         (try_fwprop_subst): Likewise for param "def_insn" and local
13195         "insn".
13196         (free_load_extend): Likewise for param "insn".
13197         (forward_propagate_subreg): Likewise for param "def_insn" and
13198         local "use_insn".
13199         (forward_propagate_asm): Likewise for param "def_insn" and local
13200         "use_insn".
13201         (forward_propagate_and_simplify): Likewise for param "def_insn"
13202         and local "use_insn".
13203         (forward_propagate_into): Likewise for locals "def_insn" and
13204         "use_insn".
13205
13206 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13207
13208         * function.c (emit_initial_value_sets): Strengthen local "seq"
13209         from rtx to rtx_insn *.
13210         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13211         local "seq".
13212         (instantiate_virtual_regs): Likewise for local "insn".
13213         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13214         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13215         (expand_function_end): Likewise for locals "insn" and "seq".
13216         (epilogue_done): Likewise for local "insn".
13217         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13218         "last", "trial".
13219         (reposition_prologue_and_epilogue_notes): Likewise for locals
13220         "insn", "last", "note", "first".
13221         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13222         (pass_match_asm_constraints::execute): Likewise for local "insn".
13223
13224 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13225
13226         * output.h (final_scan_insn): Strengthen return type from rtx to
13227         rtx_insn *.
13228         (final_forward_branch_p): Likewise for param.
13229         (current_output_insn): Likewise for this global.
13230
13231         * final.c (rtx debug_insn): Likewise for this variable.
13232         (current_output_insn): Likewise.
13233         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13234         adding "insn" back in as an rtx_insn * with a checked cast, so
13235         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13236         first param.
13237         (compute_alignments): Strengthen local "label" from rtx to
13238         rtx_insn *.
13239         (shorten_branches): Rename param from "first" to "uncast_first",
13240         introducing a new local rtx_insn * "first" using a checked cast to
13241         effectively strengthen "first" from rtx to rtx_insn * without
13242         affecting the type signature.  Strengthen locals "insn", "seq",
13243         "next", "label" from rtx to rtx_insn *.
13244         (change_scope): Strengthen param "orig_insn" and local "insn" from
13245         rtx to rtx_insn *.
13246         (final_start_function): Rename param from "first" to "uncast_first",
13247         introducing a new local rtx_insn * "first" using a checked cast to
13248         effectively strengthen "first" from rtx to rtx_insn * without
13249         affecting the type signature.  Strengthen local "insn" from rtx to
13250         rtx_insn *.
13251         (dump_basic_block_info): Strengthen param "insn" from rtx to
13252         rtx_insn *.
13253         (final): Rename param from "first" to "uncast_first",
13254         introducing a new local rtx_insn * "first" using a checked cast to
13255         effectively strengthen "first" from rtx to rtx_insn * without
13256         affecting the type signature.  Strengthen locals "insn", "next"
13257         from rtx to rtx_insn *.
13258         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13259         rtx_insn *.
13260         (call_from_call_insn): Strengthen param "insn" from rtx to
13261         rtx_call_insn *.
13262         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13263         introducing a new local rtx_insn * "insn" using a checked cast to
13264         effectively strengthen "insn" from rtx to rtx_insn * without
13265         affecting the type signature.  Strengthen return type and locals
13266         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13267         now-redundant checked cast to rtx_insn * from both invocations of
13268         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13269         introducing a local "call_insn" for use when invoking
13270         call_from_call_insn.
13271         (notice_source_line): Strengthen param "insn" from rtx to
13272         rtx_insn *.
13273         (leaf_function_p): Likewise for local "insn".
13274         (final_forward_branch_p): Likewise.
13275         (leaf_renumber_regs): Likewise for param "first".
13276         (rest_of_clean_state): Likewise for locals "insn" and "next".
13277         (self_recursive_call_p): Likewise for param "insn".
13278         (collect_fn_hard_reg_usage): Likewise for local "insn".
13279         (get_call_fndecl): Likewise for param "insn".
13280         (get_call_cgraph_rtl_info): Likewise.
13281         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13282         introducing a new local rtx_insn * "insn" using a checked cast to
13283         effectively strengthen "insn" from rtx to rtx_insn * without
13284         affecting the type signature.
13285
13286         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13287         cast when assigning from param "insn" to current_output_insn.
13288         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13289         so that we can assign it back to current_output_insn.
13290
13291 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13292
13293         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13294         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13295         atmxt540s and atmxt540sreva devices.
13296         * config/avr/avr-tables.opt: Regenerate.
13297         * config/avr/t-multilib: Regenerate.
13298         * doc/avr-mmcu.texi: Regenerate.
13299
13300 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13301
13302         * expr.c (convert_move): Strengthen local "insns" from rtx to
13303         rtx_insn *.
13304         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13305         "top_label" from rtx to rtx_code_label *.
13306         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13307         rtx_insn *.
13308         (emit_single_push_insn): Likewise for locals "prev", "last".
13309         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13310         to rtx_code_label *.
13311         (store_constructor): Likewise for locals "loop_start", "loop_end".
13312         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13313         rtx_insn *.
13314         (expand_expr_real_2): Likewise.
13315         (expand_expr_real_1): Strengthen local "label" from rtx to
13316         rtx_code_label *.
13317
13318 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13319
13320         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13321         from rtx to rtx_insn *.
13322         (store_bit_field_1): Likewise.
13323         (extract_bit_field_1): Likewise.
13324         (expand_mult_const): Likewise for local "insns".
13325         (expmed_mult_highpart): Strengthen local "label" from rtx to
13326         rtx_code_label *.
13327         (expand_smod_pow2): Likewise.
13328         (expand_sdiv_pow2): Likewise.
13329         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13330         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13331         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13332         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13333         (emit_store_flag): Likewise.
13334         (emit_store_flag_force): Strengthen local "label" from rtx to
13335         rtx_code_label *.
13336         (do_cmp_and_jump): Likewise for param "label".
13337
13338 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13339
13340         * explow.c (force_reg): Strengthen local "insn" from rtx to
13341         rtx_insn *.
13342         (adjust_stack_1): Likewise.
13343         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13344         "final_label", "available_label", "space_available" from rtx to
13345         rtx_code_label *.
13346         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13347         (anti_adjust_stack_and_probe): Likewise.
13348
13349 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13350
13351         * except.h (sjlj_emit_function_exit_after): Strengthen param
13352         "after" from rtx to rtx_insn *.  This is only called with
13353         result of get_last_insn (in function.c) so type-change should be
13354         self-contained.
13355
13356         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13357         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13358         to rtx_insn *.  These fields are only used from except.c so this
13359         type-change should be self-contained to this patch.
13360
13361         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13362         local "last" from rtx to rtx_insn *.
13363         (dw2_build_landing_pads): Likewise for local "seq".
13364         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13365         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13366         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13367         rtx to rtx_insn *.
13368         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13369         to rtx_insn *.
13370         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13371         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13372         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13373         referring to an insn.  Strengthen local "dispatch_label" from
13374         rtx to rtx_code_label *.
13375         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13376         rtx_insn *.
13377         (expand_eh_return): Strengthen local "around_label" from
13378         rtx to rtx_code_label *.
13379         (convert_to_eh_region_ranges): Strengthen locals "iter",
13380         "last_action_insn", "first_no_action_insn",
13381         "first_no_action_insn_before_switch",
13382         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13383
13384 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13385
13386         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13387         from rtx to rtx_insn *.
13388         (cached_next_real_insn): Likewise.
13389         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13390         working with insns.
13391         (dwarf2out_var_location): Strengthen locals "next_real",
13392         "next_note", "expected_next_loc_note", "last_start", "insn" from
13393         rtx to rtx_insn *.
13394
13395 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13396
13397         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13398         from rtx to rtx_insn *.
13399         (create_pseudo_cfg): Likewise for local "insn".
13400
13401 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13402
13403         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13404         from rtx to rtx_insn *.
13405         (df_bb_regno_last_def_find): Likewise.
13406
13407         * df-problems.c (df_rd_bb_local_compute): Likewise.
13408         (df_lr_bb_local_compute): Likewise.
13409         (df_live_bb_local_compute): Likewise.
13410         (df_chain_remove_problem): Likewise.
13411         (df_chain_create_bb): Likewise.
13412         (df_word_lr_bb_local_compute): Likewise.
13413         (df_remove_dead_eq_notes): Likewise for param "insn".
13414         (df_note_bb_compute): Likewise for local "insn".
13415         (simulate_backwards_to_point): Likewise.
13416         (df_md_bb_local_compute): Likewise.
13417
13418         * df-scan.c (df_scan_free_bb_info): Likewise.
13419         (df_scan_start_dump): Likewise.
13420         (df_scan_start_block): Likewise.
13421         (df_install_ref_incremental): Likewise for local "insn".
13422         (df_insn_rescan_all): Likewise.
13423         (df_reorganize_refs_by_reg_by_insn): Likewise.
13424         (df_reorganize_refs_by_insn_bb): Likewise.
13425         (df_recompute_luids): Likewise.
13426         (df_bb_refs_record): Likewise.
13427         (df_update_entry_exit_and_calls): Likewise.
13428         (df_bb_verify): Likewise.
13429
13430 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13431
13432         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13433         "first_note" from rtx to rtx_insn *.
13434         (get_node_of_insn): Likewise for param 2 "insn".
13435         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13436
13437         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13438         rtx_insn *.
13439         (mem_write_insn_p): Likewise.
13440         (mem_access_insn_p): Likewise.
13441         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13442         (def_has_ccmode_p): Likewise for param "insn".
13443         (add_cross_iteration_register_deps): Likewise for locals
13444         "def_insn" and "use_insn".
13445         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13446         (build_intra_loop_deps): Likewise for local "src_insn".
13447         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13448         to rtx_insn *.
13449         (get_node_of_insn): Likewise for param "insn".
13450
13451 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13452
13453         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13454         (deletable_insn_p): Strengthen param "insn" from rtx to
13455         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
13456         find_call_stack_args, since this is guarded by CALL_P (insn).
13457         (marked_insn_p): Strengthen param "insn" from rtx to
13458         rtx_insn *.
13459         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
13460         invoking find_call_stack_args, since this is guarded by
13461         CALL_P (insn).
13462         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13463         rtx_insn *; we know this is an insn since this was called by
13464         mark_nonreg_stores.
13465         (mark_nonreg_stores_2): Likewise.
13466         (mark_nonreg_stores): Strengthen param "insn" from rtx to
13467         rtx_insn *.
13468         (find_call_stack_args): Strengthen param "call_insn" from rtx to
13469         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13470         to rtx_insn *.
13471         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13472         from rtx to rtx_insn *.
13473         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13474         "next", "ref_insn".
13475         (delete_unmarked_insns): Likewise for locals "insn", "next".
13476         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13477         (mark_reg_dependencies): Likewise for param "insn".
13478         (rest_of_handle_ud_dce): Likewise for local "insn".
13479         (word_dce_process_block): Likewise.
13480         (dce_process_block): Likewise.
13481
13482 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13483
13484         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13485         from rtx to rtx_insn *.
13486         (struct change_cc_mode_args): Likewise for field "insn".
13487         (this_insn): Strengthen from rtx to rtx_insn *.
13488         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13489         with insn.
13490         (validate_canon_reg): Strengthen param "insn" from rtx to
13491         rtx_insn *.
13492         (canon_reg): Likewise.
13493         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
13494         dealing with insn.
13495         (record_jump_equiv): Strengthen param "insn" from rtx to
13496         rtx_insn *.
13497         (try_back_substitute_reg): Likewise, also for locals "prev",
13498         "bb_head".
13499         (find_sets_in_insn): Likewise for param "insn".
13500         (canonicalize_insn): Likewise.
13501         (cse_insn): Likewise.  Add a checked cast.
13502         (invalidate_from_clobbers): Likewise for param "insn".
13503         (invalidate_from_sets_and_clobbers): Likewise.
13504         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
13505         dealing with insn.
13506         (cse_prescan_path): Strengthen local "insn" from rtx to
13507         rtx_insn *.
13508         (cse_extended_basic_block): Likewise for locals "insn" and
13509         "prev_insn".
13510         (cse_main): Likewise for param "f".
13511         (check_for_label_ref): Likewise for local "insn".
13512         (set_live_p): Likewise for second param ("insn").
13513         (insn_live_p): Likewise for first param ("insn") and for local
13514         "next".
13515         (cse_change_cc_mode_insn): Likewise for first param "insn".
13516         (cse_change_cc_mode_insns): Likewise for first and second params
13517         "start" and "end".
13518         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
13519         and "end".
13520         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
13521         "cc_src_insn".
13522
13523 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13524             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13525             Anna Tikhonova  <anna.tikhonova@intel.com>
13526             Ilya Tocar  <ilya.tocar@intel.com>
13527             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13528             Ilya Verbin  <ilya.verbin@intel.com>
13529             Kirill Yukhin  <kirill.yukhin@intel.com>
13530             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13531
13532         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
13533         New.
13534         * config/i386/sse.md
13535         (define_mode_iterator VI248_AVX2): Delete.
13536         (define_mode_iterator VI2_AVX2_AVX512BW): New.
13537         (define_mode_iterator VI48_AVX2): Ditto.
13538         (define_insn <shift_insn><mode>3): Delete.
13539         (define_insn "<shift_insn><mode>3<mask_name>" with
13540         VI2_AVX2_AVX512BW): New.
13541         (define_insn "<shift_insn><mode>3<mask_name>" with
13542         VI48_AVX2): Ditto.
13543
13544 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13545             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13546             Anna Tikhonova  <anna.tikhonova@intel.com>
13547             Ilya Tocar  <ilya.tocar@intel.com>
13548             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13549             Ilya Verbin  <ilya.verbin@intel.com>
13550             Kirill Yukhin  <kirill.yukhin@intel.com>
13551             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13552
13553         * config/i386/sse.md
13554         (define_mode_iterator VI4F_BRCST32x2): New.
13555         (define_mode_attr 64x2_mode): Ditto.
13556         (define_mode_attr 32x2mode): Ditto.
13557         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
13558         with VI4F_BRCST32x2): Ditto.
13559         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
13560         with V16FI mode iterator): Ditto.
13561         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13562         with V16FI): Ditto.
13563         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13564         with VI8F_BRCST64x2): Ditto.
13565
13566 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13567             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13568             Anna Tikhonova  <anna.tikhonova@intel.com>
13569             Ilya Tocar  <ilya.tocar@intel.com>
13570             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13571             Ilya Verbin  <ilya.verbin@intel.com>
13572             Kirill Yukhin  <kirill.yukhin@intel.com>
13573             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13574
13575         * config/i386/sse.md
13576         (define_mode_iterator VI8_AVX512VL): New.
13577         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
13578
13579 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
13580
13581         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
13582         (define_mode_iterator V48_AVX512VL): New.
13583         (define_mode_iterator V12_AVX512VL): Ditto.
13584         (define_insn <avx512>_load<mode>_mask): Split into two similar
13585         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
13586         Refactor output template.
13587         (define_insn "<avx512>_store<mode>_mask"): Ditto.
13588
13589 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13590
13591         * cprop.c (struct occr): Strengthen field "insn" from rtx to
13592         rtx_insn *.
13593         (reg_available_p): Likewise for param "insn".
13594         (insert_set_in_table): Likewise.
13595         (hash_scan_set): Likewise.
13596         (hash_scan_insn): Likewise.
13597         (make_set_regs_unavailable): Likewise.
13598         (compute_hash_table_work): Likewise for local "insn".
13599         (reg_not_set_p): Strengthen param "insn" from const_rtx to
13600         const rtx_insn *.
13601         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
13602         (try_replace_reg): Likewise.
13603         (find_avail_set): Likewise.
13604         (cprop_jump): Likewise for params "setcc", "jump".
13605         (constprop_register): Likewise for param "insn".
13606         (cprop_insn): Likewise.
13607         (do_local_cprop): Likewise.
13608         (local_cprop_pass): Likewise for local "insn".
13609         (bypass_block): Likewise for params "setcc" and "jump".
13610         (bypass_conditional_jumps): Likewise for locals "setcc" and
13611         "insn".
13612         (one_cprop_pass): Likewise for local "insn".
13613
13614 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13615
13616         * compare-elim.c (struct comparison_use): Strengthen field "insn"
13617         from rtx to rtx_insn *.
13618         (struct comparison): Likewise, also for field "prev_clobber".
13619         (conforming_compare): Likewise for param "insn".
13620         (arithmetic_flags_clobber_p): Likewise.
13621         (find_flags_uses_in_insn): Likewise.
13622         (find_comparison_dom_walker::before_dom_children): Likewise for
13623         locals "insn", "next", "last_clobber".
13624         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
13625
13626 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13627
13628         * combine-stack-adj.c (struct csa_reflist): Strengthen field
13629         "insn" from rtx to rtx_insn *.
13630         (single_set_for_csa): Likewise for param "insn".
13631         (record_one_stack_ref): Likewise.
13632         (try_apply_stack_adjustment): Likewise.
13633         (struct record_stack_refs_data): Likewise for field "insn".
13634         (maybe_move_args_size_note): Likewise for params "last" and "insn".
13635         (prev_active_insn_bb): Likewise for return type and param "insn".
13636         (next_active_insn_bb): Likewise.
13637         (force_move_args_size_note): Likewise for params "prev" and "last"
13638         and locals "test", "next_candidate", "prev_candidate".
13639         (combine_stack_adjustments_for_block): Strengthen locals
13640         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
13641         rtx_insn *.
13642
13643 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13644
13645         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
13646         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
13647         (subst_insn): Likewise for this variable.
13648         (added_links_insn): Likewise.
13649         (struct insn_link): Likewise for field "insn".
13650         (alloc_insn_link): Likewise for param "insn".
13651         (struct undobuf): Likewise for field "other_insn".
13652         (find_single_use): Likewise for param "insn" and local "next".
13653         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
13654         (delete_noop_moves): Likewise for locals "insn", "next".
13655         (create_log_links): Likewise for locals "insn", "use_insn".
13656         Strengthen local "next_use" from rtx * to rtx_insn **.
13657         (insn_a_feeds_b): Likewise for params "a", "b".
13658         (combine_instructions): Likewise for param "f" and locals "insn",
13659         "next", "prev", "first", "last_combined_insn", "link", "link1",
13660         "temp".  Replace use of NULL_RTX with NULL when referring to
13661         insns.
13662         (setup_incoming_promotions): Likewise for param "first"
13663         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
13664         (can_combine_p): Likewise for params "insn", "i3", "pred",
13665         "pred2", "succ", "succ2" and for local "p".
13666         (combinable_i3pat): Likewise for param "i3".
13667         (cant_combine_insn_p): Likewise for param "insn".
13668         (likely_spilled_retval_p): Likewise.
13669         (adjust_for_new_dest): Likewise.
13670         (update_cfg_for_uncondjump): Likewise, also for local "insn".
13671         (try_combine): Likewise for return type and for params "i3", "i2",
13672         "i1", "i0", "last_combined_insn", and for locals "insn",
13673         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
13674         "i0_insn".  Eliminate local "tem" in favor of new locals
13675         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
13676         checked cast for now to rtx_insn * on the return type of
13677         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
13678         insns.
13679         (find_split_point): Strengthen param "insn" from rtx to
13680         rtx_insn *.
13681         (simplify_set): Likewise for local "other_insn".
13682         (recog_for_combine): Likewise for param "insn".
13683         (record_value_for_reg): Likewise.
13684         (record_dead_and_set_regs_1): Likewise for local
13685         "record_dead_insn".
13686         (record_dead_and_set_regs): Likewise for param "insn".
13687         (record_promoted_value): Likewise.
13688         (check_promoted_subreg): Likewise.
13689         (get_last_value_validate): Likewise.
13690         (reg_dead_at_p): Likewise.
13691         (move_deaths): Likewise for param "to_insn".
13692         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
13693         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
13694         in favor of new locals "tem_note" and "tem_insn", the latter being
13695         an rtx_insn *.
13696         (distribute_links): Strengthen locals "place", "insn" from rtx to
13697         rtx_insn *.
13698
13699 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13700
13701         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
13702         than a const_rtx.
13703         (can_delete_label_p): Require a const rtx_code_label * rather than
13704         a const_rtx.
13705         (delete_insn): Add checked cast to rtx_code_label * when we know
13706         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
13707         rtx to rtx_insn *.
13708         (delete_insn_chain): Strengthen locals "prev" and "current" from
13709         rtx to rtx_insn *.  Add a checked cast when assigning from
13710         "finish" (strengthening the params will come later).  Add a
13711         checked cast to rtx_note * in region where we know
13712         NOTE_P (current).
13713         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
13714         rtx_insn *.
13715         (compute_bb_for_insn): Likewise.
13716         (free_bb_for_insn): Likewise for local "insn".
13717         (compute_bb_for_insn): Likewise.
13718         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
13719         local "insn" from rtx to rtx_insn *
13720         (flow_active_insn_p): Require a const rtx_insn * rather than a
13721         const_rtx.
13722         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
13723         rtx_insn *.
13724         (can_fallthru): Likewise for locals "insn" and "insn2".
13725         (bb_note): Likewise for local "note".
13726         (first_insn_after_basic_block_note): Likewise for local "note" and
13727         for return type.
13728         (rtl_split_block): Likewise for locals "insn" and "next".
13729         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
13730         "end".
13731         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
13732         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
13733         "prev", "tmp".
13734         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
13735         them), "kill_from", "barrier", "new_insn".
13736         (patch_jump_insn): Likewise for params "insn", "old_label".
13737         (redirect_branch_edge): Likewise for locals "old_label", "insn".
13738         (force_nonfallthru_and_redirect): Likewise for locals "insn",
13739         "old_label", "new_label".
13740         (rtl_tidy_fallthru_edge): Likewise for local "q".
13741         (rtl_split_edge): Likewise for locals "before", "last".
13742         (commit_one_edge_insertion): Likewise for locals "before",
13743         "after", "insns", "tmp", "last", adding a checked cast where
13744         currently necessary.
13745         (commit_edge_insertions): Likewise.
13746         (rtl_dump_bb): Likewise for locals "insn", "last".
13747         (print_rtl_with_bb): Likewise for local "x".
13748         (rtl_verify_bb_insns): Likewise for local "x".
13749         (rtl_verify_bb_pointers): Likewise for local "insn".
13750         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
13751         "head", "end".
13752         (rtl_verify_fallthru): Likewise for local "insn".
13753         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
13754         (purge_dead_edges): Likewise for local "insn".
13755         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
13756         (skip_insns_after_block): Likewise for return type and for locals
13757         "insn", "last_insn", "next_head", "prev".
13758         (record_effective_endpoints): Likewise for locals "next_insn",
13759         "insn", "end".
13760         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
13761         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
13762         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
13763         (duplicate_insn_chain): For now, add checked cast from rtx to
13764         rtx_insn * when returning insn.
13765         (cfg_layout_duplicate_bb): Likewise for local "insn".
13766         (cfg_layout_delete_block): Likewise for locals "insn", "next",
13767         "prev", "remaints".
13768         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
13769         (rtl_block_empty_p): Likewise.
13770         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
13771         "split_point", "last".
13772         (rtl_block_ends_with_call_p): Likewise for local "insn".
13773         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
13774         const rtx_insn *.
13775         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
13776         "split_at_insn" from rtx to rtx_insn *.
13777         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
13778         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
13779         to const rtx_insn *.
13780         (rtl_account_profile_record): Likewise.
13781
13782 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13783
13784         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
13785         rtx to rtx_insn *.
13786         (average_num_loop_insns): Likewise.
13787         (init_set_costs): Likewise for local "seq".
13788         (seq_cost): Likewise for param "seq", from const_rtx to const
13789         rtx_insn *.
13790
13791 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13792
13793         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
13794         rtx to rtx_insn *.
13795
13796 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13797
13798         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
13799         "f1" and "f2" from rtx * to rtx_insn **.
13800         (flow_find_head_matching_sequence): Likewise.
13801
13802         * cfgcleanup.c (try_simplify_condjump): Strengthen local
13803         "cbranch_insn" from rtx to rtx_insn *.
13804         (thread_jump): Likewise for local "insn".
13805         (try_forward_edges): Likewise for local "last".
13806         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
13807         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
13808         "real_b_end".
13809         (can_replace_by): Likewise for params "i1", "i2".
13810         (old_insns_match_p): Likewise.
13811         (merge_notes): Likewise.
13812         (walk_to_nondebug_insn): Likewise for param "i1".
13813         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
13814         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
13815         "afterlast1", "afterlast2" from rtx to rtx_insn *.
13816         (flow_find_head_matching_sequence): Strengthen params "f1" and
13817         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
13818         "last1", "last2", "beforelast1", "beforelast2" from rtx to
13819         rtx_insn *.
13820         (outgoing_edges_match): Likewise for locals "last1", "last2".
13821         (try_crossjump_to_edge): Likewise for local "insn".
13822         Replace call to for_each_rtx with for_each_rtx_in_insn.
13823
13824         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
13825         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
13826         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
13827         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
13828         (try_optimize_cfg): Strengthen local "last" from rtx to
13829         rtx_insn *.
13830         (delete_dead_jumptables): Likewise for locals "insn", "next",
13831         "label".
13832
13833         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
13834         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
13835         "rtx else_first_tail", to reflect the basic-block.h changes above.
13836
13837 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13838
13839         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
13840         rtx_insn *.
13841         (purge_dead_tablejump_edges): Likewise.
13842         (find_bb_boundaries): Likewise for locals "insn", "end",
13843         "flow_transfer_insn".
13844
13845 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13846
13847         * caller-save.c (save_call_clobbered_regs): Strengthen locals
13848         "ins" and "prev" from rtx to rtx_insn *.
13849
13850 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13851
13852         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
13853         rtx_insn *.
13854         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
13855         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
13856         "scan_start".
13857         (load_register_parameters): Likewise for local "before_arg".
13858         (check_sibcall_argument_overlap): Likewise for param "insn".
13859         (expand_call): Likewise for locals "normal_call_insns",
13860         "tail_call_insns", "insns", "before_call", "after_args",
13861         "before_arg", "last", "prev".  Strengthen one of the "last" from
13862         rtx to rtx_call_insn *.
13863         (fixup_tail_calls): Strengthen local "insn" from rtx to
13864         rtx_insn *.
13865         (emit_library_call_value_1): Likewise for locals "before_call" and
13866         "last".
13867
13868 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13869
13870         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
13871         and "last" from rtx to rtx_insn *.
13872         (expand_builtin_nonlocal_goto): Likewise for local "insn".
13873         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
13874         rtx_call_insn *.
13875         (expand_errno_check): Strengthen local "lab" from rtx to
13876         rtx_code_label *.
13877         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
13878         rtx_insn *.
13879         (expand_builtin_mathfn_2): Likewise.
13880         (expand_builtin_mathfn_ternary): Likewise.
13881         (expand_builtin_mathfn_3): Likewise.
13882         (expand_builtin_interclass_mathfn): Likewise for local "last".
13883         (expand_builtin_int_roundingfn): Likewise for local "insns".
13884         (expand_builtin_int_roundingfn_2): Likewise.
13885         (expand_builtin_strlen): Likewise for local "before_strlen".
13886         (expand_builtin_strncmp): Likewise for local "seq".
13887         (expand_builtin_signbit): Likewise for local "last".
13888         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
13889         from rtx to rtx_code_label *.
13890         (expand_stack_restore):  Strengthen local "prev" from rtx to
13891         rtx_insn *.
13892
13893 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13894
13895         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
13896         to rtx_insn *.
13897         (struct btr_def_s): Likewise.
13898         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
13899         const rtx_insn *.
13900         (add_btr_def): Likewise.
13901         (new_btr_user): Likewise.
13902         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
13903         rtx to rtx_insn *.
13904         (link_btr_uses): Likewise.
13905         (move_btr_def): Likewise for locals "insp", "old_insn",
13906         "new_insn".  Add checked cast to rtx_insn * for now on result of
13907         gen_move_insn.
13908         (can_move_up): Strengthen param "insn" from const_rtx to
13909         const rtx_insn *.
13910
13911 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13912
13913         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
13914         rtx_insn *.
13915         (get_uncond_jump_length): Likewise for locals "label", "jump".
13916         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
13917         "jump", "insn".
13918         (add_labels_and_missing_jumps): Likewise for local "new_jump".
13919         (fix_up_fall_thru_edges): Likewise for local "old_jump".
13920         (find_jump_block): Likewise for local "insn".
13921         (fix_crossing_conditional_branches): Likewise for locals
13922         "old_jump", "new_jump".
13923         (fix_crossing_unconditional_branches): Likewise for locals
13924         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
13925         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
13926
13927 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13928
13929         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
13930         rtx to rtx_insn *.
13931         (struct mem_insn): Likewise for field "insn".
13932         (reg_next_use): Strengthen from rtx * to rtx_insn **.
13933         (reg_next_inc_use): Likewise.
13934         (reg_next_def): Likewise.
13935         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
13936         from rtx to rtx_insn *.
13937         (move_insn_before): Likewise for param "next_insn" and local "insns".
13938         (attempt_change): Likewise for local "mov_insn".
13939         (try_merge): Likewise for param "last_insn".
13940         (get_next_ref): Likewise for return type and local "insn".
13941         Strengthen param "next_array" from rtx * to rtx_insn **.
13942         (parse_add_or_inc): Strengthen param "insn" from rtx to
13943         rtx_insn *.
13944         (find_inc): Likewise for locals "insn" and "other_insn" (three of
13945         the latter).
13946         (merge_in_block): Likewise for locals "insn", "curr",
13947         "other_insn".
13948         (pass_inc_dec::execute): Update allocations of the arrays to
13949         reflect the stronger types.
13950
13951 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13952
13953         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
13954         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
13955         from rtx to rtx_code_label *.
13956
13957 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13958
13959         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
13960         to rtx_insn *.
13961
13962 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
13963
13964         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
13965         generated a warning and prevented bootstrapping the compiler.
13966
13967 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13968
13969         * rtl.h (delete_related_insns): Strengthen return type from rtx to
13970         rtx_insn *.
13971
13972         * jump.c (delete_related_insns): Likewise, also for locals "next"
13973         and "prev".
13974
13975 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13976
13977         * genautomata.c (output_internal_insn_latency_func): When writing
13978         the function "internal_insn_latency" to insn-automata.c,
13979         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
13980         allowing the optional guard function of (define_bypass) clauses to
13981         expect a pair of rtx_insn *, rather than a pair of rtx.
13982         (output_insn_latency_func): When writing the function
13983         "insn_latency", add an "uncast_" prefix to params "insn" and
13984         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
13985         using checked casts from the params, thus enabling the above
13986         change to the generated "internal_insn_latency" function.
13987
13988 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
13989
13990         PR tree-optimization/62091
13991         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
13992         handle correctly arrays.
13993         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
13994         inheritance binfos.
13995         (record_known_type): Walk into inner type.
13996         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
13997         condition on no type changes.
13998
13999 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14000
14001         * genattrtab.c (write_attr_get): Within the generated get_attr_
14002         functions, rename param "insn" to "uncast_insn" and reintroduce
14003         "insn" as an local rtx_insn * using a checked cast, so that "insn"
14004         is an rtx_insn * within insn-attrtab.c
14005
14006 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14007
14008         * output.h (peephole): Strengthen return type from rtx to
14009         rtx_insn *.
14010         * rtl.h (delete_for_peephole): Likewise for both params.
14011         * genpeep.c (main): In generated "peephole" function, strengthen
14012         return type and local "insn" from rtx to rtx_insn *.  For now,
14013         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14014         rtx_insn *, with a checked cast.
14015         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14016         locals "insn", "next", "prev" from rtx to rtx_insn *.
14017
14018 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
14019
14020         PR tree-optimization/62112
14021         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14022         * gimple-iterator.h (gsi_replace): Return bool.
14023         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14024         moved from ref_may_alias_global_p.
14025         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14026         New overloads.
14027         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14028         (stmt_kills_ref_p_1): Rename...
14029         (stmt_kills_ref_p): ... to this.
14030         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14031         stmt_kills_ref_p): Declare.
14032         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14033         Move the self-assignment case...
14034         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14035
14036 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14037
14038         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14039
14040         * emit-rtl.c (try_split): Likewise, also for locals "before" and
14041         "after".  For now, don't strengthen param "trial", which requires
14042         adding checked casts when returning it.
14043
14044 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14045
14046         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14047         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
14048         "var_location" hook from rtx to rtx_insn *.
14049         (debug_nothing_rtx): Delete in favor of...
14050         (debug_nothing_rtx_code_label): New prototype.
14051         (debug_nothing_rtx_rtx): Delete unused prototype.
14052         (debug_nothing_rtx_insn): New prototype.
14053
14054         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14055         invoking debug_hooks->var_location (in two places, one in a NOTE
14056         case of a switch statement, the other guarded by a CALL_P
14057         conditional.  Add checked cast to rtx_code_label * when invoking
14058         debug_hooks->label (within CODE_LABEL case of switch statement).
14059
14060         * dbxout.c (dbx_debug_hooks): Update "label" hook from
14061         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14062         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14063         (xcoff_debug_hooks): Likewise.
14064         * debug.c (do_nothing_debug_hooks): Likewise.
14065         (debug_nothing_rtx): Delete in favor of...
14066         (debug_nothing_rtx_insn): New function.
14067         (debug_nothing_rtx_rtx): Delete unused function.
14068         (debug_nothing_rtx_code_label): New function.
14069         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14070         debug_nothing_rtx to debug_nothing_rtx_code_label.
14071         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14072         to rtx_insn *.
14073         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14074         debug_nothing_rtx to debug_nothing_rtx_insn.
14075         (sdbout_label): Strengthen param "insn" from rtx to
14076         rtx_code_label *.
14077         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14078         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14079         "var_location" hook from debug_nothing_rtx to
14080         debug_nothing_rtx_insn.
14081
14082 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14083
14084         * recog.h (insn_output_fn): Update this function typedef to match
14085         the changes below to the generated output functions, strengthening
14086         the 2nd param from rtx to rtx_insn *.
14087
14088         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14089         insn when invoking an output function, to match the new signature
14090         of insn_output_fn with a stronger second param.
14091
14092         * genconditions.c (write_header): In the generated code for
14093         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14094         to match the other changes in this patch.
14095
14096         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14097         the generated "gen_" functions from rtx to rtx_insn * within their
14098         implementations.
14099
14100         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14101         the subfunctions within the generated "recog_", "split", "peephole2"
14102         function trees from rtx to rtx_insn *.  For now, the top-level
14103         generated functions ("recog", "split", "peephole2") continue to
14104         take a plain rtx for "insn", to avoid introducing dependencies on
14105         other patches.  Rename this 2nd param from "insn" to
14106         "uncast_insn", and reintroduce "insn" as a local variable of type
14107         rtx_insn *, initialized at the top of the generated function with
14108         a checked cast on "uncast_insn".
14109         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14110         the generated "gen_" functions from rtx to rtx_insn * within their
14111         prototypes.
14112
14113         * genoutput.c (process_template): Strengthen the 2nd param within
14114         the generated "output_" functions "insn" from rtx to rtx_insn *.
14115
14116 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14117
14118         * tree-profile.c (tree_profiling): Skip external functions
14119         when doing coverage instrumentation.
14120         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14121
14122 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14123
14124         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14125         (vec_mergee): Likewise.
14126         (vec_mergeo): Likewise.
14127         (vec_cntlz): Likewise.
14128         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14129         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14130         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14131         VMRGEW, and VMRGOW.
14132         * doc/extend.texi: Document various forms of vec_cpsgn,
14133         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14134         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14135         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14136         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14137         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14138
14139 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14140
14141         * config/rs6000/rs6000.c (context.h): New include.
14142         (tree-pass.h): Likewise.
14143         (make_pass_analyze_swaps): New decl.
14144         (rs6000_option_override): Register pass_analyze_swaps.
14145         (swap_web_entry): New subsclass of web_entry_base (df.h).
14146         (special_handling_values): New enum.
14147         (union_defs): New function.
14148         (union_uses): Likewise.
14149         (insn_is_load_p): Likewise.
14150         (insn_is_store_p): Likewise.
14151         (insn_is_swap_p): Likewise.
14152         (rtx_is_swappable_p): Likewise.
14153         (insn_is_swappable_p): Likewise.
14154         (chain_purpose): New enum.
14155         (chain_contains_only_swaps): New function.
14156         (mark_swaps_for_removal): Likewise.
14157         (swap_const_vector_halves): Likewise.
14158         (adjust_subreg_index): Likewise.
14159         (permute_load): Likewise.
14160         (permute_store): Likewise.
14161         (handle_special_swappables): Likewise.
14162         (replace_swap_with_copy): Likewise.
14163         (dump_swap_insn_table): Likewise.
14164         (rs6000_analyze_swaps): Likewise.
14165         (pass_data_analyze_swaps): New pass_data.
14166         (pass_analyze_swaps): New rtl_opt_pass.
14167         (make_pass_analyze_swaps): New function.
14168         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14169
14170 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14171
14172         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14173         type from rtx to rtx_insn *.
14174         (create_copy_of_insn_rtx): Likewise.
14175         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14176         (create_copy_of_insn_rtx): Likewise, also for local "res".
14177
14178 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14179
14180         * rtl.h (find_first_parameter_load): Strengthen return type from
14181         rtx to rtx_insn *.
14182         * rtlanal.c (find_first_parameter_load): Strengthen return type
14183         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14184         strengthening the params.
14185
14186 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14187
14188         PR fortran/44054
14189         * diagnostic.c: Set default caret.
14190         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14191         line is needed.
14192         * diagnostic.h (struct diagnostic_context):
14193
14194 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14195
14196         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14197         (sel_bb_head): Strengthen return type insn_t (currently just an
14198         rtx) to rtx_insn *.
14199         (sel_bb_end): Likewise.
14200
14201         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14202         (sel_bb_head): Strengthen return type and local "head" from
14203         insn_t (currently just an rtx) to rtx_insn *.
14204         (sel_bb_end): Likewise for return type.
14205         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14206         working with insn.
14207
14208 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14209
14210         * basic-block.h (get_last_bb_insn): Strengthen return type from
14211         rtx to rtx_insn *.
14212         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14213         end".
14214
14215 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14216
14217         PR fortran/44054
14218         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14219         to here ...
14220         (diagnostic_report_diagnostic): ... from here.
14221         * toplev.c (general_init): Move code to c-family.
14222
14223 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14224
14225         * df.h (web_entry_base): Replace existing struct web_entry with a
14226         new class web_entry_base with only the predecessor member.
14227         (unionfind_root): Remove declaration and move to class member.
14228         (unionfind_union): Remove declaration and move to friend
14229         function.
14230         (union_defs): Remove declaration.
14231         * web.c (web_entry_base::unionfind_root): Modify to be member
14232         function and adjust accessors.
14233         (unionfind_union): Modify to be friend function and adjust
14234         accessors.
14235         (web_entry): New subclass of web_entry_base containing the reg
14236         member.
14237         (union_match_dups): Modify for struct -> class changes.
14238         (union_defs): Likewise.
14239         (entry_register): Likewise.
14240         (pass_web::execute): Likewise.
14241
14242 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14243
14244         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14245         builtin define __VEC_ELEMENT_REG_ORDER__.
14246
14247 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14248             Wei Mi  <wmi@google.com>
14249
14250         PR ipa/60449
14251         PR middle-end/61776
14252         * tree-ssa-operands.c (update_stmt_operands): Remove
14253         MODIFIED_NORETURN_CALLS.
14254         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14255         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14256         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14257         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14258         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14259         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14260         (gimple_call_set_ctrl_altering): New func.
14261         (gimple_call_ctrl_altering_p): Ditto.
14262         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14263         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14264         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14265         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14266         remove MODIFIED_NORETURN_CALLS.
14267
14268 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14269
14270         * coverage.c (coverage_compute_profile_id): Return non-0;
14271         also handle symbols with unique name.
14272         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14273
14274 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14275
14276         PR middle-end/49191
14277         * doc/sourcebuild.texi (non_strict_align): New.
14278
14279 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14280
14281         * cgraphunit.c (ipa_passes, compile): Reshedule
14282         symtab_remove_unreachable_nodes passes; update comments.
14283         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14284         TODO_remove_functions before the pass; the functions ought to be
14285         already removed.
14286         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14287         TODO_remove_functions.
14288         * passes.c (pass_data_early_local_passes): Do not schedule function
14289         removal.
14290         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14291
14292 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14293
14294         PR c/59304
14295         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14296         before setting the option.
14297         * diagnostic.c (diagnostic_classify_diagnostic): Record
14298         command-line status.
14299
14300 2014-08-20  Richard Biener  <rguenther@suse.de>
14301
14302         PR lto/62190
14303         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14304         to build uint{16,32,64}_type_node.
14305
14306 2014-08-20  Terry Guo  <terry.guo@arm.com>
14307
14308         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14309         with immediate_operand.
14310
14311 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14312
14313         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14314         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14315         NULL.
14316
14317 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14318
14319         PR preprocessor/51303
14320         * incpath.c (remove_duplicates): Use cpp_warning.
14321
14322 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14323
14324         PR c/60975
14325         PR c/53063
14326         * doc/options.texi (CPP): Document it.
14327         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14328         * optc-gen.awk: Handle CPP.
14329         * opth-gen.awk: Likewise.
14330
14331 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14332
14333         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14334         rtx_insn *.
14335         (duplicate_insn_chain): Likewise.
14336         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14337         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14338         checked cast for now (until we can strengthen the params in the
14339         same way).
14340         (duplicate_insn_chain): Likewise.
14341
14342 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14343
14344         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14345         rtx_insn *.
14346         (prev_cc0_setter): Likewise.
14347
14348         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14349         rtx_insn *, adding checked casts for now as necessary.
14350         (prev_cc0_setter): Likewise.
14351
14352 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14353
14354         * expr.h (emit_move_insn): Strengthen return type from rtx to
14355         rtx_insn *.
14356         (emit_move_insn_1): Likewise.
14357         (emit_move_complex_push): Likewise.
14358         (emit_move_complex_parts): Likewise.
14359
14360         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14361         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14362         with insns.
14363         (emit_move_complex_push): Strengthen return type from rtx to
14364         rtx_insn *.
14365         (emit_move_complex): Likewise, also for local "ret".
14366         (emit_move_ccmode): Likewise.
14367         (emit_move_multi_word): Likewise for return type and locals
14368         "last_insn", "seq".
14369         (emit_move_insn_1): Likewise for return type and locals "result",
14370         "ret".
14371         (emit_move_insn): Likewise for return type and local "last_insn".
14372         (compress_float_constant): Likewise.
14373
14374 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14375
14376         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14377         from rtx to rtx_insn *.
14378
14379         * rtl.h (emit_insn_before): Likewise.
14380         (emit_insn_before_noloc): Likewise.
14381         (emit_insn_before_setloc): Likewise.
14382         (emit_jump_insn_before): Likewise.
14383         (emit_jump_insn_before_noloc): Likewise.
14384         (emit_jump_insn_before_setloc): Likewise.
14385         (emit_call_insn_before): Likewise.
14386         (emit_call_insn_before_noloc): Likewise.
14387         (emit_call_insn_before_setloc): Likewise.
14388         (emit_debug_insn_before): Likewise.
14389         (emit_debug_insn_before_noloc): Likewise.
14390         (emit_debug_insn_before_setloc): Likewise.
14391         (emit_label_before): Likewise.
14392         (emit_insn_after): Likewise.
14393         (emit_insn_after_noloc): Likewise.
14394         (emit_insn_after_setloc): Likewise.
14395         (emit_jump_insn_after): Likewise.
14396         (emit_jump_insn_after_noloc): Likewise.
14397         (emit_jump_insn_after_setloc): Likewise.
14398         (emit_call_insn_after): Likewise.
14399         (emit_call_insn_after_noloc): Likewise.
14400         (emit_call_insn_after_setloc): Likewise.
14401         (emit_debug_insn_after): Likewise.
14402         (emit_debug_insn_after_noloc): Likewise.
14403         (emit_debug_insn_after_setloc): Likewise.
14404         (emit_label_after): Likewise.
14405         (emit_insn): Likewise.
14406         (emit_debug_insn): Likewise.
14407         (emit_jump_insn): Likewise.
14408         (emit_call_insn): Likewise.
14409         (emit_label): Likewise.
14410         (gen_clobber): Likewise.
14411         (emit_clobber): Likewise.
14412         (gen_use): Likewise.
14413         (emit_use): Likewise.
14414         (emit): Likewise.
14415
14416         (emit_barrier_before): Strengthen return type from rtx to
14417         rtx_barrier *.
14418         (emit_barrier_after): Likewise.
14419         (emit_barrier): Likewise.
14420
14421         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14422         from rtx to rtx_insn *.  Add checked casts for now when converting
14423         "last" from rtx to rtx_insn *.
14424         (emit_insn_before_noloc): Likewise for return type.
14425         (emit_jump_insn_before_noloc): Likewise.
14426         (emit_call_insn_before_noloc): Likewise.
14427         (emit_debug_insn_before_noloc): Likewise.
14428         (emit_barrier_before): Strengthen return type and local "insn"
14429         from rtx to rtx_barrier *.
14430         (emit_label_before): Strengthen return type from rtx to
14431         rtx_insn *.  Add checked cast for now when returning param
14432         (emit_pattern_after_noloc): Strengthen return type from rtx to
14433         rtx_insn *.  Add checked casts for now when converting "last" from
14434         rtx to rtx_insn *.
14435         (emit_insn_after_noloc): Strengthen return type from rtx to
14436         rtx_insn *.
14437         (emit_jump_insn_after_noloc): Likewise.
14438         (emit_call_insn_after_noloc): Likewise.
14439         (emit_debug_insn_after_noloc): Likewise.
14440         (emit_barrier_after): Strengthen return type from rtx to
14441         rtx_barrier *.
14442         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14443         Add checked cast for now when converting "label" from rtx to
14444         rtx_insn *.
14445         (emit_pattern_after_setloc): Strengthen return type from rtx to
14446         rtx_insn *.  Add checked casts for now when converting "last" from
14447         rtx to rtx_insn *.
14448         (emit_pattern_after): Strengthen return type from rtx to
14449         rtx_insn *.
14450         (emit_insn_after_setloc): Likewise.
14451         (emit_insn_after): Likewise.
14452         (emit_jump_insn_after_setloc): Likewise.
14453         (emit_jump_insn_after): Likewise.
14454         (emit_call_insn_after_setloc): Likewise.
14455         (emit_call_insn_after): Likewise.
14456         (emit_debug_insn_after_setloc): Likewise.
14457         (emit_debug_insn_after): Likewise.
14458         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
14459         when converting "last" from rtx to rtx_insn *.
14460         (emit_pattern_before): Strengthen return type from rtx to
14461         rtx_insn *.
14462         (emit_insn_before_setloc): Likewise.
14463         (emit_insn_before): Likewise.
14464         (emit_jump_insn_before_setloc): Likewise.
14465         (emit_jump_insn_before): Likewise.
14466         (emit_call_insn_before_setloc): Likewise.
14467         (emit_call_insn_before): Likewise.
14468         (emit_debug_insn_before_setloc): Likewise.
14469         (emit_debug_insn_before): Likewise.
14470         (emit_insn): Strengthen return type and locals "last", "insn",
14471         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
14472         within cases where we know we have an insn.
14473         (emit_debug_insn): Likewise.
14474         (emit_jump_insn): Likewise.
14475         (emit_call_insn): Strengthen return type and local "insn" from rtx
14476         to rtx_insn *.
14477         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
14478         a checked cast to rtx_insn * for now on "label".
14479         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14480         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14481         (emit_use): Likewise.
14482         (gen_use): Likewise, also for local "seq".
14483         (emit): Likewise for return type and local "insn".
14484         (rtx_insn): Likewise for return type and local "new_rtx".
14485
14486         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14487         from rtx to rtx_barrier *.
14488
14489         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14490         changed return type from rtx to rtx_insn *, we must update
14491         "emit_fn" type, and this in turn means updating...
14492         (frame_insn): ...this.  Strengthen return type from rtx to
14493         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
14494
14495 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14496
14497         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
14498         rtx to rtx_jump_table_data *.  Also for local.
14499         * rtl.h (emit_jump_table_data): Likewise.
14500
14501 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14502
14503         * basic-block.h (create_basic_block_structure): Strengthen third
14504         param "bb_note" from rtx to rtx_note *.
14505         * rtl.h (emit_note_before): Strengthen return type from rtx to
14506         rtx_note *.
14507         (emit_note_after): Likewise.
14508         (emit_note): Likewise.
14509         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14510         * function.h (struct rtl_data): Strengthen field
14511         "x_stack_check_probe_note" from rtx to rtx_note *.
14512
14513         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
14514         from rtx to rtx_note *.
14515         * cfgrtl.c (create_basic_block_structure): Strengthen third param
14516         "bb_note" from rtx to rtx_note *.
14517         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
14518         when calling emit_note_copy.
14519         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
14520         rtx_note *.
14521         (emit_note_after): Likewise.
14522         (emit_note_before): Likewise.
14523         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14524         (emit_note): Likewise.
14525         * except.c (emit_note_eh_region_end): Likewise for return type.
14526         Strengthen local "next" from rtx to rtx_insn *.
14527         (convert_to_eh_region_ranges): Strengthen local "note"
14528         from rtx to rtx_note *.
14529         * final.c (change_scope): Likewise.
14530         (reemit_insn_block_notes): Likewise, for both locals named "note".
14531         Also, strengthen local "insn" from rtx to rtx_insn *.
14532         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
14533         rtx to rtx_note *.
14534         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
14535         strengthen local "seq" from rtx to rtx_insn *.
14536         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
14537         to rtx_note *.
14538         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
14539         vec<rtx_note *>.
14540         (get_bb_note_from_pool): Strengthen return type from rtx to
14541         rtx_note *.
14542         (sel_create_basic_block): Strengthen local "new_bb_note" from
14543         insn_t to rtx_note *.
14544         * var-tracking.c (emit_note_insn_var_location): Strengthen local
14545         "note" from rtx to rtx_note *.
14546         (emit_notes_in_bb): Likewise.
14547
14548 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14549
14550         * function.h (struct rtl_data): Strengthen field
14551         "x_parm_birth_insn" from rtx to rtx_insn *.
14552         * function.c (struct assign_parm_data_all): Strengthen fields
14553         "first_conversion_insn" and "last_conversion_insn" from rtx to
14554         rtx_insn *.
14555
14556 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14557
14558         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
14559         to rtx_insn *; also for local "var_end_seq".
14560         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
14561         (maybe_cleanup_end_of_block): Likewise for param "last" and local
14562         "insn".
14563         (expand_gimple_cond): Likewise for locals "last2" and "last".
14564         (mark_transaction_restart_calls): Likewise for local "insn".
14565         (expand_gimple_stmt): Likewise for return type and locals "last"
14566         and "insn".
14567         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
14568         (avoid_complex_debug_insns): Likewise for param "insn".
14569         (expand_debug_locations): Likewise for locals "insn", "last",
14570         "prev_insn" and "insn2".
14571         (expand_gimple_basic_block): Likewise for local "last".
14572         (construct_exit_block): Likewise for locals "head", "end",
14573         "orig_end".
14574         (pass_expand::execute): Likewise for locals "var_seq",
14575         "var_ret_seq", "next".
14576
14577 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14578
14579         * asan.h (asan_emit_stack_protection): Strengthen return type from
14580         rtx to rtx_insn *.
14581         * asan.c (asan_emit_stack_protection): Likewise.  Add local
14582         "insns" to hold the return value.
14583
14584 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14585
14586         * basic-block.h (bb_note): Strengthen return type from rtx to
14587         rtx_note *.
14588         * sched-int.h (bb_note): Likewise.
14589         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
14590
14591 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14592
14593         * rtl.h (make_insn_raw): Strengthen return type from rtx to
14594         rtx_insn *.
14595
14596         * emit-rtl.c (make_insn_raw): Strengthen return type and local
14597         "insn" from rtx to rtx_insn *.
14598         (make_debug_insn_raw): Strengthen return type from rtx to
14599         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
14600         (make_jump_insn_raw):  Strengthen return type from rtx to
14601         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
14602         (make_call_insn_raw):  Strengthen return type from rtx to
14603         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
14604         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
14605         callback from rtx to rtx_insn *; likewise for local "insn" and
14606         "next", adding a checked cast to rtx_insn in the relevant cases of
14607         the switch statement.
14608         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
14609         callback from rtx to rtx_insn *.
14610         (emit_pattern_after_setloc): Likewise.
14611         (emit_pattern_after): Likewise.
14612         (emit_pattern_before_setloc): Likewise.
14613         (emit_pattern_before): Likewise.
14614
14615 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14616
14617         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
14618         rtx_call_insn *.
14619         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
14620         accepting an rtx_insn *.
14621         (last_call_insn): Strengthen return type from rtx to
14622         rtx_call_insn *.
14623
14624 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14625
14626         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
14627         "insns" from rtx to rtx_insn *.
14628         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
14629         locals "insn" and "prev".
14630
14631 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14632
14633         * rtl.h (tablejump_p): Strengthen third param from rtx * to
14634         rtx_jump_table_data **.
14635
14636         * cfgbuild.c (make_edges): Introduce local "table", using it in
14637         place of "tmp" for jump table data.
14638         (find_bb_boundaries): Strengthen local "table" from rtx to
14639         rtx_jump_table_data *.
14640         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14641         (outgoing_edges_match): Likewise for locals "table1" and "table2".
14642         (try_crossjump_to_edge): Likewise.
14643         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
14644         "table".
14645         (patch_jump_insn): Introduce local "table", using it in place of
14646         "tmp" for jump table data.
14647         (force_nonfallthru_and_redirect): Introduce local "table", so that
14648         call to tablejump_p can receive an rtx_jump_table_data **.  Update
14649         logic around the call to overwrite "note" appropriately if
14650         tablejump_p returns non-zero.
14651         (get_last_bb_insn): Introduce local "table", using it in place of
14652         "tmp" for jump table data.
14653         * dwarf2cfi.c (create_trace_edges): Likewise.
14654
14655         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
14656         from rtx to rtx_jump_table_data *.
14657         (create_fix_barrier): Strengthen local "tmp" from rtx to
14658         rtx_jump_table_data *.
14659         (arm_reorg): Likewise for local "table".
14660
14661         * config/s390/s390.c (s390_chunkify_start): Likewise.
14662
14663         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
14664
14665         * jump.c (delete_related_insns): Strengthen local "lab_next" from
14666         rtx to rtx_jump_table_data *.
14667
14668         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
14669         rtx_jump_table_data **.  Add a checked cast when writing through
14670         the pointer: we know there that local "table" is non-NULL and that
14671         JUMP_TABLE_DATA_P (table) holds.
14672         (label_is_jump_target_p): Introduce local "table", using it in
14673         place of "tmp" for jump table data.
14674
14675 2014-08-19  Marek Polacek  <polacek@redhat.com>
14676
14677         PR c++/62153
14678         * doc/invoke.texi: Document -Wbool-compare.
14679
14680 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14681
14682         * rtl.h (entry_of_function): Strengthen return type from rtx to
14683         rtx_insn *.
14684         * cfgrtl.c (entry_of_function): Likewise.
14685
14686 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14687
14688         * emit-rtl.h (get_insns): Strengthen return type from rtx to
14689         rtx_insn *, adding a checked cast for now.
14690         (get_last_insn): Likewise.
14691
14692 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14693
14694         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
14695         rtx_code_label *.
14696
14697         * emit-rtl.c (gen_label_rtx): Likewise.
14698
14699 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14700
14701         * rtl.h (previous_insn): Strengthen return type from rtx to
14702         rtx_insn *.
14703         (next_insn): Likewise.
14704         (prev_nonnote_insn): Likewise.
14705         (prev_nonnote_insn_bb): Likewise.
14706         (next_nonnote_insn): Likewise.
14707         (next_nonnote_insn_bb): Likewise.
14708         (prev_nondebug_insn): Likewise.
14709         (next_nondebug_insn): Likewise.
14710         (prev_nonnote_nondebug_insn): Likewise.
14711         (next_nonnote_nondebug_insn): Likewise.
14712         (prev_real_insn): Likewise.
14713         (next_real_insn): Likewise.
14714         (prev_active_insn): Likewise.
14715         (next_active_insn): Likewise.
14716
14717         * emit-rtl.c (next_insn): Strengthen return type from rtx to
14718         rtx_insn *, adding a checked cast.
14719         (previous_insn): Likewise.
14720         (next_nonnote_insn): Likewise.
14721         (next_nonnote_insn_bb): Likewise.
14722         (prev_nonnote_insn): Likewise.
14723         (prev_nonnote_insn_bb): Likewise.
14724         (next_nondebug_insn): Likewise.
14725         (prev_nondebug_insn): Likewise.
14726         (next_nonnote_nondebug_insn): Likewise.
14727         (prev_nonnote_nondebug_insn): Likewise.
14728         (next_real_insn): Likewise.
14729         (prev_real_insn): Likewise.
14730         (next_active_insn): Likewise.
14731         (prev_active_insn): Likewise.
14732
14733         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
14734         param "stepfunc" so that it returns an rtx_insn * rather than an
14735         rtx, to track the change to prev_nonnote_insn_bb, which is the
14736         only function this is called with.
14737         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
14738
14739 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
14740
14741         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
14742         assert.
14743
14744 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14745
14746         * coretypes.h (class rtx_debug_insn): Add forward declaration.
14747         (class rtx_nonjump_insn): Likewise.
14748         (class rtx_jump_insn): Likewise.
14749         (class rtx_call_insn): Likewise.
14750         (class rtx_jump_table_data): Likewise.
14751         (class rtx_barrier): Likewise.
14752         (class rtx_code_label): Likewise.
14753         (class rtx_note): Likewise.
14754
14755         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
14756         adding the invariant DEBUG_INSN_P (X).
14757         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
14758         the invariant NONJUMP_INSN_P (X).
14759         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
14760         the invariant JUMP_P (X).
14761         (class rtx_call_insn): New, a subclass of rtx_insn, adding
14762         the invariant CALL_P (X).
14763         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
14764         invariant JUMP_TABLE_DATA_P (X).
14765         (class rtx_barrier): New, a subclass of rtx_insn, adding the
14766         invariant BARRIER_P (X).
14767         (class rtx_code_label): New, a subclass of rtx_insn, adding
14768         the invariant LABEL_P (X).
14769         (class rtx_note): New, a subclass of rtx_insn, adding
14770         the invariant NOTE_P(X).
14771         (is_a_helper <rtx_debug_insn *>::test): New.
14772         (is_a_helper <rtx_nonjump_insn *>::test): New.
14773         (is_a_helper <rtx_jump_insn *>::test): New.
14774         (is_a_helper <rtx_call_insn *>::test): New.
14775         (is_a_helper <rtx_jump_table_data *>::test): New functions,
14776         overloaded for both rtx and rtx_insn *.
14777         (is_a_helper <rtx_barrier *>::test): New.
14778         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
14779         for both rtx and rtx_insn *.
14780         (is_a_helper <rtx_note *>::test): New.
14781
14782 2014-08-19  Marek Polacek  <polacek@redhat.com>
14783
14784         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
14785         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14786         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
14787         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14788
14789 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14790
14791         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
14792         rtx_insn *.  To help with transition, for now, convert from an
14793         access macro into a pair of functions: BND_TO, returning an
14794         rtx_insn *, and...
14795         (SET_BND_TO): New function, for use where BND_TO is used as an
14796         lvalue.
14797
14798         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
14799         SET_BND_TO.
14800         (BND_TO): New function, adding a checked cast.
14801         (SET_BND_TO): New function.
14802
14803         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
14804         SET_BND_TO.
14805         (compute_av_set_on_boundaries): Likewise.
14806
14807 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14808
14809         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
14810         destination if it is used in source.
14811         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
14812         (*popcount<mode>2_falsedep_1): Likewise.
14813
14814 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14815
14816         PR other/62168
14817         * configure.ac: Set install_gold_as_default to no first.
14818         * configure: Regenerated.
14819
14820 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14821
14822         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
14823         "note_list" field will eventually be an rtx_insn *.  To help with
14824         transition, for now, convert from an access macro into a pair of
14825         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
14826         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
14827         used as an lvalue.
14828
14829         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
14830         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
14831
14832         * sel-sched-ir.c (init_bb): Likewise.
14833         (sel_restore_notes): Likewise.
14834         (move_bb_info): Likewise.
14835         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
14836         (SET_BB_NOTE_LIST): New function.
14837
14838 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14839
14840         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
14841         field will eventually be an rtx_insn *.  To help with transition,
14842         for now, convert from an access macro into a pair of functions:
14843         VINSN_INSN_RTX, returning an rtx_insn *, and...
14844         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
14845         is used as an lvalue.
14846
14847         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
14848         SET_VINSN_INSN_RTX where it's used as an lvalue.
14849         (VINSN_INSN_RTX): New function.
14850         (SET_VINSN_INSN_RTX): New function.
14851
14852 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14853
14854         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
14855         eventually be rtx_insn *, but to help with transition, for now,
14856         convert from an access macro into a pair of functions: DEP_PRO
14857         returning an rtx_insn * and...
14858         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
14859         lvalue, returning an rtx&.
14860         (DEP_CON): Analogous changes to DEP_PRO above.
14861         (SET_DEP_CON): Likewise.
14862
14863         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
14864         an lvalue to SET_DEP_CON.
14865         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
14866         (sd_copy_back_deps): Likewise for DEP_CON.
14867         (DEP_PRO): New function, adding a checked cast for now.
14868         (DEP_CON): Likewise.
14869         (SET_DEP_PRO): New function.
14870         (SET_DEP_CON): Likewise.
14871
14872 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14873
14874         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
14875         (extra_options): Add i386/cygwin.opt.
14876         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
14877         (CPP_SPEC): Accept -pthread.
14878         (LINK_SPEC): Ditto.
14879         (GOMP_SELF_SPECS): Update comment.
14880         * config/i386/cygwin.opt: New file for -pthread flag.
14881
14882 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14883
14884         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
14885         * df.h (DF_REF_INSN): Convert from a macro to a function, so
14886         that we can return an rtx_insn *.
14887
14888 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14889
14890         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
14891         when building executables, not DLLs.  Add --large-address-aware
14892         under the same conditions.
14893         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
14894         when building executables, not DLLs.  Add --large-address-aware
14895         under the same conditions when using -m32.
14896
14897         * config/i386/cygwin-stdint.h: Throughout, make type
14898         definitions dependent on target architecture, not host.
14899
14900 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14901
14902         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
14903         the return type from rtx to rtx_insn *,  which will enable various
14904         conversions in followup patches.  For now this is is done by a
14905         checked cast.
14906         (NEXT_INSN): Likewise.
14907         (SET_PREV_INSN): Convert to an inline function.  This is intended
14908         for use as an lvalue, and so returns an rtx& to allow in-place
14909         modification.
14910         (SET_NEXT_INSN): Likewise.
14911
14912 2014-07-08  Mark Wielaard  <mjw@redhat.com>
14913
14914         PR debug/59051
14915         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
14916
14917 2014-08-19  Marek Polacek  <polacek@redhat.com>
14918
14919         PR c/61271
14920         * cgraphunit.c (handle_alias_pairs): Fix condition.
14921
14922 2014-08-19  Richard Biener  <rguenther@suse.de>
14923
14924         * gimple-fold.c (fold_gimple_assign): Properly build a
14925         null-pointer constant when devirtualizing addresses.
14926
14927 2014-07-07  Mark Wielaard  <mjw@redhat.com>
14928
14929         * dwarf2out.c (decl_quals): New function.
14930         (modified_type_die): Take one cv_quals argument instead of two,
14931         one for const and one for volatile.
14932         (add_type_attribute): Likewise.
14933         (generic_parameter_die): Call add_type_attribute with one modifier
14934         argument.
14935         (base_type_for_mode): Likewise.
14936         (add_bounds_info): Likewise.
14937         (add_subscript_info): Likewise.
14938         (gen_array_type_die): Likewise.
14939         (gen_descr_array_type_die): Likewise.
14940         (gen_entry_point_die): Likewise.
14941         (gen_enumeration_type_die): Likewise.
14942         (gen_formal_parameter_die): Likewise.
14943         (gen_subprogram_die): Likewise.
14944         (gen_variable_die): Likewise.
14945         (gen_const_die): Likewise.
14946         (gen_field_die): Likewise.
14947         (gen_pointer_type_die): Likewise.
14948         (gen_reference_type_die): Likewise.
14949         (gen_ptr_to_mbr_type_die): Likewise.
14950         (gen_inheritance_die): Likewise.
14951         (gen_subroutine_type_die): Likewise.
14952         (gen_typedef_die): Likewise.
14953         (force_type_die): Likewise.
14954
14955 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14956
14957         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
14958         if unset.
14959         * configure: Regenerate.
14960
14961 2014-08-19  Richard Biener  <rguenther@suse.de>
14962
14963         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
14964         DECL_EXTERNALs in BLOCKs as non-references.
14965         * tree-streamer-out.c (streamer_write_chain): Likewise.
14966
14967 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14968             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14969             Anna Tikhonova  <anna.tikhonova@intel.com>
14970             Ilya Tocar  <ilya.tocar@intel.com>
14971             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14972             Ilya Verbin  <ilya.verbin@intel.com>
14973             Kirill Yukhin  <kirill.yukhin@intel.com>
14974             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14975
14976         * config/i386/sse.md
14977         (define_mode_iterator VI48_AVX512F): Delete.
14978         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
14979         (define_mode_iterator VI2_AVX512VL): Ditto.
14980         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
14981         Delete.
14982         (define_insn
14983         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
14984         New.
14985         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
14986         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
14987         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14988         with VI48_AVX512F_AVX512VL): New.
14989         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14990         with VI2_AVX512VL): Ditto.
14991
14992 2014-08-19  Marek Polacek  <polacek@redhat.com>
14993
14994         * doc/invoke.texi: Document -Wc99-c11-compat.
14995
14996 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14997
14998         * rtl.h (PREV_INSN): Split macro in two: the existing one,
14999         for rvalues, and...
15000         (SET_PREV_INSN): New macro, for use as an lvalue.
15001         (NEXT_INSN, SET_NEXT_INSN): Likewise.
15002
15003         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15004         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15005         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15006         (fixup_abnormal_edges): Likewise.
15007         (unlink_insn_chain): Likewise.
15008         (fixup_reorder_chain): Likewise.
15009         (cfg_layout_delete_block): Likewise.
15010         (cfg_layout_merge_blocks): Likewise.
15011         * combine.c (update_cfg_for_uncondjump): Likewise.
15012         * emit-rtl.c (link_insn_into_chain): Likewise.
15013         (remove_insn): Likewise.
15014         (delete_insns_since): Likewise.
15015         (reorder_insns_nobb): Likewise.
15016         (emit_insn_after_1): Likewise.
15017         * final.c (rest_of_clean_state): Likewise.
15018         (final_scan_insn): Likewise.
15019         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15020         * haifa-sched.c (concat_note_lists): Likewise.
15021         (remove_notes): Likewise.
15022         (restore_other_notes): Likewise.
15023         (move_insn): Likewise.
15024         (unlink_bb_notes): Likewise.
15025         (restore_bb_notes): Likewise.
15026         * jump.c (delete_for_peephole): Likewise.
15027         * optabs.c (emit_libcall_block_1): Likewise.
15028         * reorg.c (emit_delay_sequence): Likewise.
15029         (fill_simple_delay_slots): Likewise.
15030         * sel-sched-ir.c (sel_move_insn): Likewise.
15031         (sel_remove_insn): Likewise.
15032         (get_bb_note_from_pool): Likewise.
15033         * sel-sched.c (move_nop_to_previous_block): Likewise.
15034
15035         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15036         * config/c6x/c6x.c (gen_one_bundle): Likewise.
15037         (c6x_gen_bundles): Likewise.
15038         (hwloop_optimize): Likewise.
15039         * config/frv/frv.c (frv_function_prologue): Likewise.
15040         (frv_register_nop): Likewise.
15041         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15042         (ia64_reorg): Likewise.
15043         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15044         (mep_make_bundle): Likewise.
15045         (mep_bundle_insns): Likewise.
15046         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15047         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15048         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15049
15050 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15051
15052         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
15053         return type from rtx to rtx_insn *.
15054         (BB_END): Likewise.
15055         (BB_HEADER): Likewise.
15056         (BB_FOOTER): Likewise.
15057         (SET_BB_HEAD): Convert to a function.
15058         (SET_BB_END): Likewise.
15059         (SET_BB_HEADER): Likewise.
15060         (SET_BB_FOOTER): Likewise.
15061
15062         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15063         Strengthen the return type from rtx to rtx_insn *.  For now, this
15064         is done by adding a checked cast, but this will eventually
15065         become a field lookup.
15066         (BB_END): Likewise.
15067         (BB_HEADER): Likewise.
15068         (BB_FOOTER): Likewise.
15069         (SET_BB_HEAD): New function, from macro of same name.  This is
15070         intended for use as an lvalue, and so returns an rtx& to allow
15071         in-place modification.
15072         (SET_BB_END): Likewise.
15073         (SET_BB_HEADER): Likewise.
15074         (SET_BB_FOOTER): Likewise.
15075
15076 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15077
15078         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15079         for rvalues, and...
15080         (SET_BB_HEAD): New macro, for use as a lvalue.
15081         (BB_END, SET_BB_END): Likewise.
15082         (BB_HEADER, SET_BB_HEADER): Likewise.
15083         (BB_FOOTER, SET_BB_FOOTER): Likewise.
15084
15085         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15086         of BB_* macros into SET_BB_* macros.
15087         (fix_crossing_unconditional_branches): Likewise.
15088         * caller-save.c (save_call_clobbered_regs): Likewise.
15089         (insert_one_insn): Likewise.
15090         * cfgbuild.c (find_bb_boundaries): Likewise.
15091         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15092         (outgoing_edges_match): Likewise.
15093         (try_optimize_cfg): Likewise.
15094         * cfgexpand.c (expand_gimple_cond): Likewise.
15095         (expand_gimple_tailcall): Likewise.
15096         (expand_gimple_basic_block): Likewise.
15097         (construct_exit_block): Likewise.
15098         * cfgrtl.c (delete_insn): Likewise.
15099         (create_basic_block_structure): Likewise.
15100         (rtl_delete_block): Likewise.
15101         (rtl_split_block): Likewise.
15102         (emit_nop_for_unique_locus_between): Likewise.
15103         (rtl_merge_blocks): Likewise.
15104         (block_label): Likewise.
15105         (try_redirect_by_replacing_jump): Likewise.
15106         (emit_barrier_after_bb): Likewise.
15107         (fixup_abnormal_edges): Likewise.
15108         (record_effective_endpoints): Likewise.
15109         (relink_block_chain): Likewise.
15110         (fixup_reorder_chain): Likewise.
15111         (fixup_fallthru_exit_predecessor): Likewise.
15112         (cfg_layout_duplicate_bb): Likewise.
15113         (cfg_layout_split_block): Likewise.
15114         (cfg_layout_delete_block): Likewise.
15115         (cfg_layout_merge_blocks): Likewise.
15116         * combine.c (update_cfg_for_uncondjump): Likewise.
15117         * emit-rtl.c (add_insn_after): Likewise.
15118         (remove_insn): Likewise.
15119         (reorder_insns): Likewise.
15120         (emit_insn_after_1): Likewise.
15121         * haifa-sched.c (get_ebb_head_tail): Likewise.
15122         (restore_other_notes): Likewise.
15123         (move_insn): Likewise.
15124         (sched_extend_bb): Likewise.
15125         (fix_jump_move): Likewise.
15126         * ifcvt.c (noce_process_if_block): Likewise.
15127         (dead_or_predicable): Likewise.
15128         * ira.c (update_equiv_regs): Likewise.
15129         * reg-stack.c (change_stack): Likewise.
15130         * sel-sched-ir.c (sel_move_insn): Likewise.
15131         * sel-sched.c (move_nop_to_previous_block): Likewise.
15132
15133         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15134         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15135
15136 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15137
15138         * rtl.h (for_each_rtx_in_insn): New function.
15139         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15140
15141 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15142
15143         * coretypes.h (class rtx_insn): Add forward declaration.
15144
15145         * rtl.h: Include is-a.h.
15146         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15147         workaround to ensure gengtype knows inheritance is occurring,
15148         whilst continuing to use the pre-existing special-casing for
15149         rtx_def.
15150         (class rtx_insn): New subclass of rtx_def, adding the
15151         invariant that we're dealing with something we can sanely use
15152         INSN_UID, NEXT_INSN, PREV_INSN on.
15153         (is_a_helper <rtx_insn *>::test): New.
15154         (is_a_helper <const rtx_insn *>::test): New.
15155
15156 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15157
15158         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15159
15160 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15161
15162         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15163         comdats as extern.
15164
15165 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15166
15167         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15168         to BUILT_IN_UNREACHABLE.
15169
15170 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15171
15172         PR target/62011
15173         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15174         New tune flag.
15175         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15176         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15177         (ffs<mode>2): Do not expand with tzcnt for
15178         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15179         (ffssi2_no_cmove): Ditto.
15180         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15181         (ctz<mode>2): New expander.
15182         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15183         (*ctz<mode>2_falsedep): New insn.
15184         (*ctz<mode>2): Rename from ctz<mode>2.
15185         (clz<mode>2_lzcnt): New expander.
15186         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15187         (*clz<mode>2_lzcnt_falsedep): New insn.
15188         (*clz<mode>2): Rename from ctz<mode>2.
15189         (popcount<mode>2): New expander.
15190         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15191         (*popcount<mode>2_falsedep): New insn.
15192         (*popcount<mode>2): Rename from ctz<mode>2.
15193         (*popcount<mode>2_cmp): Remove.
15194         (*popcountsi2_cmp_zext): Ditto.
15195
15196 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15197
15198         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15199         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15200         * config/microblaze/microblaze.h
15201         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15202
15203 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15204
15205         PR other/62168
15206         * configure.ac: Set install_gold_as_default to no for
15207         --enable-gold=no.
15208         * configure: Regenerated.
15209
15210 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15211
15212         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15213         * config.in: Add undef of HAVE_isl.
15214         * configure: Regenerate.
15215         * configure.ac: Add definition of HAVE_isl.
15216         * graphite-blocking.c: Add checking of HAVE_isl.
15217         * graphite-dependences.c: Likewise.
15218         * graphite-interchange.c: Likewise.
15219         * graphite-isl-ast-to-gimple.c: Likewise.
15220         * graphite-optimize-isl.c: Likewise.
15221         * graphite-poly.c: Likewise.
15222         * graphite-scop-detection.c: Likewise.
15223         * graphite-sese-to-poly.c: Likewise.
15224         * graphite.c: Likewise.
15225         * toplev.c: Replace the checking of HAVE_cloog with the checking
15226         of HAVE_isl.
15227
15228 2014-08-18  Richard Biener  <rguenther@suse.de>
15229
15230         PR tree-optimization/62090
15231         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15232         (fold_builtin_3): Do not fold snprintf.
15233         (fold_builtin_4): Likewise.
15234         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15235         moved from builtins.c.
15236         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15237         (gimple_fold_builtin): Do not fold sprintf here.
15238
15239 2014-08-18  Richard Biener  <rguenther@suse.de>
15240
15241         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15242         code to ...
15243         (maybe_canonicalize_mem_ref_addr): ... this function.
15244         (fold_stmt_1): Apply it here before all simplification.
15245
15246 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15247
15248         PR ipa/61800
15249         * cgraph.h (cgraph_node::create_indirect_edge): Add
15250         compute_indirect_info param.
15251         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15252         indirect_info only when it is required.
15253         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15254         indirect_info fore cloned indirect edge.
15255
15256 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15257             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15258             Anna Tikhonova  <anna.tikhonova@intel.com>
15259             Ilya Tocar  <ilya.tocar@intel.com>
15260             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15261             Ilya Verbin  <ilya.verbin@intel.com>
15262             Kirill Yukhin  <kirill.yukhin@intel.com>
15263             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15264
15265         * config/i386/sse.md
15266         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15267         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15268
15269 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15271             Anna Tikhonova  <anna.tikhonova@intel.com>
15272             Ilya Tocar  <ilya.tocar@intel.com>
15273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15274             Ilya Verbin  <ilya.verbin@intel.com>
15275             Kirill Yukhin  <kirill.yukhin@intel.com>
15276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15277
15278         * config/i386/sse.md
15279         (define_mode_iterator VF1_AVX512VL): New.
15280         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15281         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15282         New.
15283
15284 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15285             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15286             Anna Tikhonova  <anna.tikhonova@intel.com>
15287             Ilya Tocar  <ilya.tocar@intel.com>
15288             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15289             Ilya Verbin  <ilya.verbin@intel.com>
15290             Kirill Yukhin  <kirill.yukhin@intel.com>
15291             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15292
15293         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15294         * config/i386/i386.md
15295         (define_code_iterator any_float): New.
15296         (define_code_attr floatsuffix): New.
15297         * config/i386/sse.md
15298         (define_mode_iterator VF1_128_256VL): New.
15299         (define_mode_iterator VF2_512_256VL): New.
15300         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15301         TARGET check.
15302         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15303         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15304         New.
15305         (define_mode_attr qq2pssuff): New.
15306         (define_mode_attr sselongvecmode): New.
15307         (define_mode_attr sselongvecmodelower): New.
15308         (define_mode_attr sseintvecmode3): New.
15309         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15310         New.
15311         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15312         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15313         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15314         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15315
15316 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15317             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15318             Anna Tikhonova  <anna.tikhonova@intel.com>
15319             Ilya Tocar  <ilya.tocar@intel.com>
15320             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15321             Ilya Verbin  <ilya.verbin@intel.com>
15322             Kirill Yukhin  <kirill.yukhin@intel.com>
15323             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15324
15325         * config/i386/sse.md
15326         (define_mode_iterator VF2_AVX512VL): New.
15327         (define_mode_attr sseintvecmode2): New.
15328         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15329         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15330         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15331         (define_insn
15332         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15333         Ditto.
15334         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15335         Ditto.
15336         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15337         Ditto.
15338
15339 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15340             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15341             Anna Tikhonova  <anna.tikhonova@intel.com>
15342             Ilya Tocar  <ilya.tocar@intel.com>
15343             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15344             Ilya Verbin  <ilya.verbin@intel.com>
15345             Kirill Yukhin  <kirill.yukhin@intel.com>
15346             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15347
15348         * config/i386/i386.md
15349         (define_insn "*movoi_internal_avx"): Add evex version.
15350         (define_insn "*movti_internal"): Ditto.
15351
15352 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15353             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15354             Anna Tikhonova  <anna.tikhonova@intel.com>
15355             Ilya Tocar  <ilya.tocar@intel.com>
15356             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15357             Ilya Verbin  <ilya.verbin@intel.com>
15358             Kirill Yukhin  <kirill.yukhin@intel.com>
15359             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15360
15361         * config/i386/i386.md
15362         (define_attr "isa"): Add avx512dq, noavx512dq.
15363         (define_attr "enabled"): Ditto.
15364         * config/i386/sse.md
15365         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15366
15367 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15368             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15369             Anna Tikhonova  <anna.tikhonova@intel.com>
15370             Ilya Tocar  <ilya.tocar@intel.com>
15371             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15372             Ilya Verbin  <ilya.verbin@intel.com>
15373             Kirill Yukhin  <kirill.yukhin@intel.com>
15374             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15375
15376         * config/i386/i386.c
15377         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15378         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15379         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15380         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15381         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15382         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15383         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15384         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15385         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15386         * config/i386/sse.md
15387         (define_mode_iterator VMOVE): Allow V4TI mode.
15388         (define_mode_iterator V_AVX512VL): New.
15389         (define_mode_iterator V): New handling for AVX512VL.
15390         (define_insn "avx512f_load<mode>_mask"): Delete.
15391         (define_insn "<avx512>_load<mode>_mask"): New.
15392         (define_insn "avx512f_store<mode>_mask"): Delete.
15393         (define_insn "<avx512>_store<mode>_mask"): New.
15394
15395
15396 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15397
15398         PR sanitizer/62089
15399         * asan.c (instrument_derefs): Fix bitfield check.
15400
15401 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15402
15403         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15404         * config/rs6000/htm.md (ttest): Remove clobber.
15405         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15406         (and_operand): Reformat.
15407         (and_2rld_operand): New predicate.
15408         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15409         parameter.
15410         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15411         parameter.  Handle AND directly.
15412         (rs6000_split_logical_di): Remove last parameter.
15413         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15414         comment.
15415         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15416         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15417         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15418         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15419         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15420         and 5 anonymous splitters):  Delete.
15421         (and<mode>3): New expander.
15422         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15423         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15424         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15425         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15426         (floatdisf2_internal1): Remove clobbers.
15427         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15428         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15429         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15430         (and<mode>3 for BOOL_128): Remove clobber.
15431         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15432         rs6000_split_logical.
15433         (*bool<mode>3_internal for BOOL_128): Adjust call of
15434         rs6000_split_logical.
15435         (*boolc<mode>3_internal1 for BOOL_128,
15436         *boolc<mode>3_internal2 for BOOL_128,
15437         *boolcc<mode>3_internal1 for BOOL_128,
15438         *boolcc<mode>3_internal2 for BOOL_128,
15439         *eqv<mode>3_internal1 for BOOL_128,
15440         *eqv<mode>3_internal2 for BOOL_128,
15441         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15442         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15443         clobber.
15444         (*vec_reload_and_reg_<mptrsize>): Delete.
15445
15446 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15447
15448         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15449         and split, *boolccsi3_internal3 and split): Delete.
15450         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15451         *boolccdi3_internal3 and split): Delete.
15452         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15453         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
15454
15455 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15456
15457         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15458         and split, *boolcsi3_internal3 and split): Delete.
15459         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15460         *boolcdi3_internal3 and split): Delete.
15461         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15462
15463 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15464
15465         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15466         <'u'>: Also support printing the low-order 16 bits.
15467         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15468         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15469         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15470         *booldi3_internal3 and split): Delete.
15471         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15472         *bool<mode>3_dot2): New.
15473         (two anonymous define_splits for non_logical_cint_operand): Merge.
15474
15475 2014-08-17  Marek Polacek  <polacek@redhat.com>
15476             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15477
15478         PR c/62059
15479         * diagnostic.c (adjust_line): Add gcc_checking_assert.
15480         (diagnostic_show_locus): Don't print caret diagnostic
15481         if a column is larger than the line_width.
15482
15483 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
15484
15485         * common.opt: Make the ISL AST generator to be the main code generator
15486         of Graphite.
15487
15488 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
15489
15490         * wide-int.h (generic_wide_int): Declare as class instead of struct.
15491
15492 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
15493
15494         PR target/61641
15495         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
15496         Declare.
15497         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
15498         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
15499         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
15500         Define.
15501         * config/pa/pa.md (begin_brtab): Delete insn.
15502         (end_brtab): Likewise.
15503
15504 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15505
15506         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
15507
15508 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
15509
15510         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15511         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15512         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15513         (get_dynamic_type): Remove.
15514         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15515         (clear_speculation): Bring to ipa-deivrt.h
15516         (get_class_context): Rename to ...
15517         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15518         (contains_type_p): Update.
15519         (get_dynamic_type): Rename to ...
15520         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15521         (possible_polymorphic_call_targets): UPdate.
15522         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15523         * ipa-prop.c (ipa_analyze_call_uses): Update.
15524
15525 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
15526
15527         * doc/invoke.texi (SH options): Document missing processor variant
15528         options.  Remove references to Hitachi.  Undocument deprecated mspace
15529         option.
15530
15531 2014-08-15  Jason Merrill  <jason@redhat.com>
15532
15533         * tree.c (type_hash_canon): Uncomment assert.
15534
15535 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15536
15537         * input.h (in_system_header_at): Add comment.
15538
15539 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15540
15541         PR fortran/44054
15542         * diagnostic.c (build_message_string): Make it extern.
15543         * diagnostic.h (build_message_string): Make it extern.
15544
15545 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
15546
15547         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
15548         load/store from/to non-floating class pseudo.
15549
15550 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15551
15552         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
15553
15554 2014-08-15  Richard Biener  <rguenther@suse.de>
15555
15556         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
15557         (get_constraint_for_ssa_var): Remove dead code.
15558         (get_constraint_for_1): Adjust.
15559         (find_what_var_points_to): Likewise.
15560         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
15561
15562 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
15563
15564         PR target/61878
15565         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
15566         (_mm512_mask_cmpge_epu32_mask): Ditto.
15567         (_mm512_cmpge_epu32_mask): Ditto.
15568         (_mm512_mask_cmpge_epi64_mask): Ditto.
15569         (_mm512_cmpge_epi64_mask): Ditto.
15570         (_mm512_mask_cmpge_epu64_mask): Ditto.
15571         (_mm512_cmpge_epu64_mask): Ditto.
15572         (_mm512_mask_cmple_epi32_mask): Ditto.
15573         (_mm512_cmple_epi32_mask): Ditto.
15574         (_mm512_mask_cmple_epu32_mask): Ditto.
15575         (_mm512_cmple_epu32_mask): Ditto.
15576         (_mm512_mask_cmple_epi64_mask): Ditto.
15577         (_mm512_cmple_epi64_mask): Ditto.
15578         (_mm512_mask_cmple_epu64_mask): Ditto.
15579         (_mm512_cmple_epu64_mask): Ditto.
15580         (_mm512_mask_cmplt_epi32_mask): Ditto.
15581         (_mm512_cmplt_epi32_mask): Ditto.
15582         (_mm512_mask_cmplt_epu32_mask): Ditto.
15583         (_mm512_cmplt_epu32_mask): Ditto.
15584         (_mm512_mask_cmplt_epi64_mask): Ditto.
15585         (_mm512_cmplt_epi64_mask): Ditto.
15586         (_mm512_mask_cmplt_epu64_mask): Ditto.
15587         (_mm512_cmplt_epu64_mask): Ditto.
15588         (_mm512_mask_cmpneq_epi32_mask): Ditto.
15589         (_mm512_mask_cmpneq_epu32_mask): Ditto.
15590         (_mm512_cmpneq_epu32_mask): Ditto.
15591         (_mm512_mask_cmpneq_epi64_mask): Ditto.
15592         (_mm512_cmpneq_epi64_mask): Ditto.
15593         (_mm512_mask_cmpneq_epu64_mask): Ditto.
15594         (_mm512_cmpneq_epu64_mask): Ditto.
15595         (_mm512_castpd_ps): Ditto.
15596         (_mm512_castpd_si512): Ditto.
15597         (_mm512_castps_pd): Ditto.
15598         (_mm512_castps_si512): Ditto.
15599         (_mm512_castsi512_ps): Ditto.
15600         (_mm512_castsi512_pd): Ditto.
15601         (_mm512_castpd512_pd128): Ditto.
15602         (_mm512_castps512_ps128): Ditto.
15603         (_mm512_castsi512_si128): Ditto.
15604         (_mm512_castpd512_pd256): Ditto.
15605         (_mm512_castps512_ps256): Ditto.
15606         (_mm512_castsi512_si256): Ditto.
15607         (_mm512_castpd128_pd512): Ditto.
15608         (_mm512_castps128_ps512): Ditto.
15609         (_mm512_castsi128_si512): Ditto.
15610         (_mm512_castpd256_pd512): Ditto.
15611         (_mm512_castps256_ps512): Ditto.
15612         (_mm512_castsi256_si512): Ditto.
15613         (_mm512_cmpeq_epu32_mask): Ditto.
15614         (_mm512_mask_cmpeq_epu32_mask): Ditto.
15615         (_mm512_mask_cmpeq_epu64_mask): Ditto.
15616         (_mm512_cmpeq_epu64_mask): Ditto.
15617         (_mm512_cmpgt_epu32_mask): Ditto.
15618         (_mm512_mask_cmpgt_epu32_mask): Ditto.
15619         (_mm512_mask_cmpgt_epu64_mask): Ditto.
15620         (_mm512_cmpgt_epu64_mask): Ditto.
15621         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
15622         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
15623         * config/i386/i386.c (enum ix86_builtins): Add
15624         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
15625         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
15626         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
15627         (bdesc_args): Add __builtin_ia32_si512_256si,
15628         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
15629         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
15630         __builtin_ia32_pd512_pd.
15631         (ix86_expand_args_builtin): Handle new FTYPEs.
15632         * config/i386/sse.md (castmode): Add 512-bit modes.
15633         (AVX512MODE2P): New.
15634         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
15635         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
15636
15637 2014-08-15  Richard Biener  <rguenther@suse.de>
15638
15639         * fold-const.c (tree_swap_operands_p): Put all constants
15640         last, also strip sign-changing NOPs when considering further
15641         canonicalization.  Canonicalize also when optimizing for size.
15642
15643 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15644
15645         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
15646         one_match > zero_match case to just before simple_sequence.
15647
15648 2014-08-15  Richard Biener  <rguenther@suse.de>
15649
15650         * data-streamer.h (streamer_string_index, string_for_index):
15651         Remove.
15652         * data-streamer-out.c (streamer_string_index): Make static.
15653         * data-streamer-in.c (string_for_index): Likewise.
15654         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
15655         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
15656
15657 2014-08-15  Richard Biener  <rguenther@suse.de>
15658
15659         PR tree-optimization/62031
15660         * tree-data-ref.c (dr_analyze_indices): Do not set
15661         DR_UNCONSTRAINED_BASE.
15662         (dr_may_alias_p): All indirect accesses have to go the
15663         formerly DR_UNCONSTRAINED_BASE path.
15664         * tree-data-ref.h (struct indices): Remove
15665         unconstrained_base member.
15666         (DR_UNCONSTRAINED_BASE): Remove.
15667
15668 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
15669
15670         PR middle-end/62092
15671         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
15672         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
15673         in OMP_CLAUSE_MAP in some outer target region.
15674
15675 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
15676
15677         * tree-ssa-loop-ivopts.c (ivopts_data): New field
15678         name_expansion_cache.
15679         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
15680         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
15681         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
15682         (difference_cannot_overflow_p): New parameter.  Use affine
15683         expansion for equality check.
15684         (iv_elimination_compare_lt): Pass new argument.
15685
15686 2014-08-14  DJ Delorie  <dj@redhat.com>
15687
15688         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
15689         variables to the accumulator.
15690
15691         * config/rl78/predicates.md (rl78_near_mem_operand): New.
15692         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
15693         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
15694         with far-far moves.
15695
15696         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
15697         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
15698         (umulqihi3_virt): Likewise.
15699         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
15700         (umulqihi3_real): Likewise.
15701
15702         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
15703
15704 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15705
15706         PR tree-optimization/62091
15707         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
15708         function_entry_reached.
15709         (walk_aliased_vdefs): Clear it here.
15710         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
15711
15712 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15713
15714         * ipa-utils.h (compare_virtual_tables): Declare.
15715         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
15716
15717 2014-08-14  Marek Polacek  <polacek@redhat.com>
15718
15719         DR 458
15720         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
15721         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
15722
15723 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15724
15725         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
15726
15727 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15728
15729         PR rtl-optimization/62004
15730         PR rtl-optimization/62030
15731         * ifcvt.c (rtx_interchangeable_p): New function.
15732         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
15733         * emit-rtl.h (mem_attrs_eq_p): Declare.
15734
15735 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
15736
15737         * graphite-scop-detection.c:
15738         Add inclusion of cp-tree.h.
15739         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
15740         in case they are pointers to object types
15741
15742 2014-08-14  Richard Biener  <rguenther@suse.de>
15743
15744         * BASE-VER: Change to 5.0.0
15745
15746 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15747             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15748             Anna Tikhonova  <anna.tikhonova@intel.com>
15749             Ilya Tocar  <ilya.tocar@intel.com>
15750             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15751             Ilya Verbin  <ilya.verbin@intel.com>
15752             Kirill Yukhin  <kirill.yukhin@intel.com>
15753             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15754
15755         * config/i386/sse.md (define_mode_attr avx512): New.
15756         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
15757         V4DI modes.
15758         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
15759         (define_mode_attr ssse3_avx2): Ditto.
15760         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
15761         (define_mode_attr avx2_avx512bw): New.
15762         (define_mode_attr ssedoublemodelower): New.
15763         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
15764         V32HI, V64QI modes.
15765         (define_mode_attr ssebytemode): Allow V8DI modes.
15766         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
15767         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
15768         (define_mode_attr ssePSmode2): New.
15769         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
15770         V16HI, V32HI modes.
15771         (define_mode_attr dbpsadbwmode): New.
15772         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
15773         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
15774         (vi8_sse4_1_avx2_avx512): New.
15775         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
15776         mode attribute.
15777         (define_mode_attr blendbits): Move before its immediate use.
15778
15779 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15780             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15781             Anna Tikhonova  <anna.tikhonova@intel.com>
15782             Ilya Tocar  <ilya.tocar@intel.com>
15783             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15784             Ilya Verbin  <ilya.verbin@intel.com>
15785             Kirill Yukhin  <kirill.yukhin@intel.com>
15786             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15787
15788         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
15789         * config/i386/subst.md
15790         (define_mode_iterator SUBST_V): Update.
15791         (define_mode_iterator SUBST_A): Ditto.
15792         (define_subst_attr "mask_operand7"): New.
15793         (define_subst_attr "mask_operand10"): New.
15794         (define_subst_attr "mask_operand_arg34") : New.
15795         (define_subst_attr "mask_expand_op3"): New.
15796         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
15797         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
15798         (define_subst_attr "mask_avx512vl_condition"): New.
15799         (define_subst_attr "round_mask_operand4"): Ditto.
15800         (define_subst_attr "round_mask_scalar_op3"): Delete.
15801         (define_subst_attr "round_mask_op4"): New.
15802         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
15803         V16SImode.
15804         (define_subst_attr "round_modev8sf_condition"): New.
15805         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
15806         <MODE>mode.
15807         (define_subst_attr "round_saeonly_mask_operand4"): New.
15808         (define_subst_attr "round_saeonly_mask_op4"): New.
15809         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
15810         V8DImode, V16SImode.
15811         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
15812         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
15813         (define_subst_attr "mask_expand4_args"): New.
15814         (define_subst "mask_expand4"): New.
15815
15816 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15817             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15818             Anna Tikhonova  <anna.tikhonova@intel.com>
15819             Ilya Tocar  <ilya.tocar@intel.com>
15820             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15821             Ilya Verbin  <ilya.verbin@intel.com>
15822             Kirill Yukhin  <kirill.yukhin@intel.com>
15823             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15824
15825         * config/i386/i386.md
15826         (define_attr "isa"): Add avx512bw,noavx512bw.
15827         (define_attr "enabled"): Ditto.
15828         (define_split): Add 32/64-bit mask logic.
15829         (define_insn "*k<logic>qi"): New.
15830         (define_insn "*k<logic>hi"): New.
15831         (define_insn "*anddi_1"): Add mask version.
15832         (define_insn "*andsi_1"): Ditto.
15833         (define_insn "*<code><mode>_1"): Ditto.
15834         (define_insn "*<code>hi_1"): Ditto.
15835         (define_insn "kxnor<mode>"): New.
15836         (define_insn "kunpcksi"): New.
15837         (define_insn "kunpckdi"): New.
15838         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
15839         (define_insn "*one_cmplhi2_1"): Ditto.
15840
15841 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15842             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15843             Anna Tikhonova  <anna.tikhonova@intel.com>
15844             Ilya Tocar  <ilya.tocar@intel.com>
15845             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15846             Ilya Verbin  <ilya.verbin@intel.com>
15847             Kirill Yukhin  <kirill.yukhin@intel.com>
15848             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15849
15850         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
15851         V32HImode.
15852
15853 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15854             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15855             Anna Tikhonova  <anna.tikhonova@intel.com>
15856             Ilya Tocar  <ilya.tocar@intel.com>
15857             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15858             Ilya Verbin  <ilya.verbin@intel.com>
15859             Kirill Yukhin  <kirill.yukhin@intel.com>
15860             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15861
15862         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
15863         registers.
15864         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
15865         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
15866         xmm/ymm16+ when availble.
15867         * config/i386/i386.h
15868         (HARD_REGNO_NREGS): Add mask regs.
15869         (VALID_AVX512F_REG_MODE): Ditto.
15870         (VALID_AVX512F_REG_MODE) : Define.
15871         (VALID_MASK_AVX512BW_MODE): Ditto.
15872         (reg_class) (MASK_REG_P(X)): Define.
15873         * config/i386/i386.md: Do not split long moves with mask register,
15874         use kmovb if avx512bw is availible.
15875         (movdi_internal): Handle mask registers.
15876
15877 2014-08-14  Richard Biener  <rguenther@suse.de>
15878
15879         PR tree-optimization/62081
15880         * tree-ssa-loop.c (pass_fix_loops): New pass.
15881         (pass_tree_loop::gate):  Do not fixup loops here.
15882         * tree-pass.h (make_pass_fix_loops): Declare.
15883         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
15884
15885 2014-08-14  Richard Biener  <rguenther@suse.de>
15886
15887         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
15888         (type_hash_canon): ... this and avoid 2nd lookup for the add.
15889
15890 2014-08-14  Richard Biener  <rguenther@suse.de>
15891
15892         PR tree-optimization/62090
15893         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
15894         (fold_builtin_2): Do not fold sprintf.
15895         (fold_builtin_3): Likewise.
15896         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
15897         moved from builtins.c.
15898         (gimple_fold_builtin): Fold sprintf.
15899
15900 2014-08-14  Richard Biener  <rguenther@suse.de>
15901
15902         PR rtl-optimization/62079
15903         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
15904         run cleanup_cfg.
15905
15906 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15907
15908         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
15909         current_function_decl.
15910
15911 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15912
15913         * cgraph.c (cgraph_node::function_symbol): Fix wrong
15914         cgraph_function_node to cgraph_node::function_symbol
15915         refactoring.
15916
15917 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
15918
15919         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
15920         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
15921
15922 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
15923
15924         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
15925         warning.
15926
15927 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
15928
15929         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
15930         generator.
15931
15932 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
15933
15934         PR target/62025
15935         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
15936         any registers that are used in mem_insn.
15937
15938 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15939
15940         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
15941
15942 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15943
15944         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
15945         (MULTILIB_DIRNAMES): Ditto.
15946         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
15947         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
15948         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
15949         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
15950         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
15951         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
15952
15953 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15954
15955         PR target/61413
15956         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
15957         of __ARM_SIZEOF_WCHAR_T.
15958
15959 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15960
15961         PR target/62098
15962         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
15963         Remove unnecessary attributes.
15964
15965 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
15966
15967         * internal-fn.c (init_internal_fns): Fix off-by-one.
15968
15969 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15970             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15971             Anna Tikhonova  <anna.tikhonova@intel.com>
15972             Ilya Tocar  <ilya.tocar@intel.com>
15973             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15974             Ilya Verbin  <ilya.verbin@intel.com>
15975             Kirill Yukhin  <kirill.yukhin@intel.com>
15976             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15977
15978         * config/i386/i386.c (standard_sse_constant_opcode): Use
15979         vpxord/vpternlog if avx512 is availible.
15980
15981 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15982
15983         PR middle-end/62103
15984         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
15985         bitfields, that is when size doesn't match the size of type or the
15986         size of the constructor.
15987
15988 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15989
15990         * config/rs6000/constraints.md (wh constraint): New constraint,
15991         for FP registers if direct move is available.
15992         (wi constraint): New constraint, for VSX/FP registers that can
15993         handle 64-bit integers.
15994         (wj constraint): New constraint for VSX/FP registers that can
15995         handle 64-bit integers for direct moves.
15996         (wk constraint): New constraint for VSX/FP registers that can
15997         handle 64-bit doubles for direct moves.
15998         (wy constraint): Make documentation match implementation.
15999
16000         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16001         scalar_in_vmx_p field to simplify tests of whether SFmode or
16002         DFmode can go in the Altivec registers.
16003         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16004         (rs6000_setup_reg_addr_masks): Likewise.
16005         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16006         field, and wh/wi/wj/wk constraints.
16007         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16008         the wh/wi/wj/wk constraints.
16009         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16010         upper registers, prefer VSX registers unless the operation is a
16011         memory operation with REG+OFFSET addressing.
16012
16013         * config/rs6000/vsx.md (VSr mode attribute): Add support for
16014         DImode.  Change SFmode to use ww constraint instead of d to allow
16015         SF registers in the upper registers.
16016         (VSr2): Likewise.
16017         (VSr3): Likewise.
16018         (VSr5): Fix thinko in comment.
16019         (VSa): New mode attribute that is an alternative to wa, that
16020         returns the VSX register class that a mode can go in, but may not
16021         be the preferred register class.
16022         (VS_64dm): New mode attribute for appropriate register classes for
16023         referencing 64-bit elements of vectors for direct moves and normal
16024         moves.
16025         (VS_64reg): Likewise.
16026         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16027         register allocator to only registers the data type can handle.
16028         (vsx_le_perm_load_<mode>): Likewise.
16029         (vsx_le_perm_store_<mode>): Likewise.
16030         (vsx_xxpermdi2_le_<mode>): Likewise.
16031         (vsx_xxpermdi4_le_<mode>): Likewise.
16032         (vsx_lxvd2x2_le_<mode>): Likewise.
16033         (vsx_lxvd2x4_le_<mode>): Likewise.
16034         (vsx_stxvd2x2_le_<mode>): Likewise.
16035         (vsx_add<mode>3): Likewise.
16036         (vsx_sub<mode>3): Likewise.
16037         (vsx_mul<mode>3): Likewise.
16038         (vsx_div<mode>3): Likewise.
16039         (vsx_tdiv<mode>3_internal): Likewise.
16040         (vsx_fre<mode>2): Likewise.
16041         (vsx_neg<mode>2): Likewise.
16042         (vsx_abs<mode>2): Likewise.
16043         (vsx_nabs<mode>2): Likewise.
16044         (vsx_smax<mode>3): Likewise.
16045         (vsx_smin<mode>3): Likewise.
16046         (vsx_sqrt<mode>2): Likewise.
16047         (vsx_rsqrte<mode>2): Likewise.
16048         (vsx_tsqrt<mode>2_internal): Likewise.
16049         (vsx_fms<mode>4): Likewise.
16050         (vsx_nfma<mode>4): Likewise.
16051         (vsx_eq<mode>): Likewise.
16052         (vsx_gt<mode>): Likewise.
16053         (vsx_ge<mode>): Likewise.
16054         (vsx_eq<mode>_p): Likewise.
16055         (vsx_gt<mode>_p): Likewise.
16056         (vsx_ge<mode>_p): Likewise.
16057         (vsx_xxsel<mode>): Likewise.
16058         (vsx_xxsel<mode>_uns): Likewise.
16059         (vsx_copysign<mode>3): Likewise.
16060         (vsx_float<VSi><mode>2): Likewise.
16061         (vsx_floatuns<VSi><mode>2): Likewise.
16062         (vsx_fix_trunc<mode><VSi>2): Likewise.
16063         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16064         (vsx_x<VSv>r<VSs>i): Likewise.
16065         (vsx_x<VSv>r<VSs>ic): Likewise.
16066         (vsx_btrunc<mode>2): Likewise.
16067         (vsx_b2trunc<mode>2): Likewise.
16068         (vsx_floor<mode>2): Likewise.
16069         (vsx_ceil<mode>2): Likewise.
16070         (vsx_<VS_spdp_insn>): Likewise.
16071         (vsx_xscvspdp): Likewise.
16072         (vsx_xvcvspuxds): Likewise.
16073         (vsx_float_fix_<mode>2): Likewise.
16074         (vsx_set_<mode>): Likewise.
16075         (vsx_extract_<mode>_internal1): Likewise.
16076         (vsx_extract_<mode>_internal2): Likewise.
16077         (vsx_extract_<mode>_load): Likewise.
16078         (vsx_extract_<mode>_store): Likewise.
16079         (vsx_splat_<mode>): Likewise.
16080         (vsx_xxspltw_<mode>): Likewise.
16081         (vsx_xxspltw_<mode>_direct): Likewise.
16082         (vsx_xxmrghw_<mode>): Likewise.
16083         (vsx_xxmrglw_<mode>): Likewise.
16084         (vsx_xxsldwi_<mode>): Likewise.
16085         (vsx_xscvdpspn): Tighten constraints to only use register classes
16086         the types use.
16087         (vsx_xscvspdpn): Likewise.
16088         (vsx_xscvdpspn_scalar): Likewise.
16089
16090         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16091         wj, and wk constraints.
16092         (GPR_REG_CLASS_P): New helper macro for register classes targeting
16093         general purpose registers.
16094
16095         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16096         direct moves.
16097         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16098         DImode instead of wm.  Use wk constraint for direct move of DFmode
16099         instead of wm.
16100         (extendsidi2_lfiwax): Likewise.
16101         (lfiwax): Likewise.
16102         (lfiwzx): Likewise.
16103         (movdi_internal64): Likewise.
16104
16105         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16106         wk constraints. Make the wy constraint documentation match them
16107         implementation.
16108
16109 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16110
16111         Replacement of isl_int by isl_val
16112         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16113         (compute_bounds_for_param): use isl_val instead of isl_int
16114         (compute_bounds_for_loop): likewise
16115         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16116         (build_linearized_memory_access): use isl_val instead of isl_int
16117         (pdr_stride_in_loop): likewise
16118         * graphite-optimize-isl.c:
16119         (getPrevectorMap): use isl_val instead of isl_int
16120         * graphite-poly.c:
16121         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16122         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16123         (extern the_isl_ctx): declare
16124         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16125         (extract_affine_gmp): likewise
16126         (wrap): likewise
16127         (build_loop_iteration_domains): likewise
16128         (add_param_constraints): likewise
16129
16130 2014-08-11  Richard Biener  <rguenther@suse.de>
16131
16132         PR tree-optimization/62075
16133         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16134         handle uses in patterns.
16135
16136 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16137             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16138             Anna Tikhonova  <anna.tikhonova@intel.com>
16139             Ilya Tocar  <ilya.tocar@intel.com>
16140             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16141             Ilya Verbin  <ilya.verbin@intel.com>
16142             Kirill Yukhin  <kirill.yukhin@intel.com>
16143             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16144
16145         * common/config/i386/i386-common.c
16146         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16147         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16148         (ix86_handle_option): Handle OPT_mavx512vl.
16149         * config/i386/cpuid.h (bit_AVX512VL): Define.
16150         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16151         set -mavx512vl accordingly.
16152         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16153         OPTION_MASK_ISA_AVX512VL.
16154         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16155         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16156         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16157         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16158         * config/i386/i386.h (TARGET_AVX512VL): Define.
16159         (TARGET_AVX512VL_P(x)): Ditto.
16160         * config/i386/i386.opt: Add mavx512vl.
16161
16162 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16163
16164         PR tree-optimization/62073
16165         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16166         a basic block.
16167
16168 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16169             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16170             Anna Tikhonova  <anna.tikhonova@intel.com>
16171             Ilya Tocar  <ilya.tocar@intel.com>
16172             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16173             Ilya Verbin  <ilya.verbin@intel.com>
16174             Kirill Yukhin  <kirill.yukhin@intel.com>
16175             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16176
16177         * common/config/i386/i386-common.c
16178         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16179         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16180         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16181         (ix86_handle_option): Handle OPT_mavx512bw.
16182         * config/i386/cpuid.h (bit_AVX512BW): Define.
16183         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16184         set -mavx512bw accordingly.
16185         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16186         OPTION_MASK_ISA_AVX512BW.
16187         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16188         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16189         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16190         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16191         * config/i386/i386.h (TARGET_AVX512BW): Define.
16192         (TARGET_AVX512BW_P(x)): Ditto.
16193         * config/i386/i386.opt: Add mavx512bw.
16194
16195 2014-08-11  Richard Biener  <rguenther@suse.de>
16196
16197         PR tree-optimization/62070
16198         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16199         Remove SSA checking.
16200
16201 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16202
16203         * asan.c (asan_check_flags): New enum.
16204         (build_check_stmt_with_calls): Removed function.
16205         (build_check_stmt): Split inlining logic to
16206         asan_expand_check_ifn.
16207         (instrument_derefs): Rename parameter.
16208         (instrument_mem_region_access): Rename parameter.
16209         (instrument_strlen_call): Likewise.
16210         (asan_expand_check_ifn): New function.
16211         (asan_instrument): Remove old code.
16212         (pass_sanopt::execute): Change handling of
16213         asan-instrumentation-with-call-threshold.
16214         (asan_clear_shadow): Fix formatting.
16215         (asan_function_start): Likewise.
16216         (asan_emit_stack_protection): Likewise.
16217         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16218         Update description.
16219         * internal-fn.c (expand_ASAN_CHECK): New function.
16220         * internal-fn.def (ASAN_CHECK): New internal function.
16221         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16222         Update description.
16223         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16224         * tree.c: Small comment fix.
16225
16226 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16227
16228         * gimple.c (gimple_call_fnspec): Support internal functions.
16229         (gimple_call_return_flags): Use const.
16230         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16231         * internal-fn.def: Add fnspec information.
16232         * internal-fn.h (internal_fn_fnspec): New function.
16233         (init_internal_fns): Declare new function.
16234         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16235         (init_internal_fns): New function.
16236         * tree-core.h: Update macro call.
16237         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16238
16239 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16240
16241         * lto-streamer.h (struct output_block::symbol): Change from
16242         struct symtab_node to plain symtab_node.
16243         (referenced_from_this_partition_p): Change first parameter
16244         from struct symtab_node to plain symtab_node.
16245
16246 2014-08-10  Marek Polacek  <polacek@redhat.com>
16247
16248         PR c/51849
16249         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16250
16251 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16252
16253         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16254         DECL correctly; do not give up on types in static storage.
16255
16256 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16257
16258         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16259
16260 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16261
16262         * graphite-isl-ast-to-gimple.c:
16263         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16264
16265         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16266
16267 2014-08-08  Guozhi Wei  <carrot@google.com>
16268
16269         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16270
16271 2014-08-08  Cary Coutant  <ccoutant@google.com>
16272
16273         * dwarf2out.c (get_skeleton_type_unit): Remove.
16274         (output_skeleton_debug_sections): Remove skeleton type units.
16275         (output_comdat_type_unit): Likewise.
16276         (dwarf2out_finish): Likewise.
16277
16278 2014-08-07  Yi Yang  <ahyangyi@google.com>
16279
16280         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16281
16282 2014-08-08  Richard Biener  <rguenther@suse.de>
16283
16284         * lto-streamer.h (struct lto_input_block): Make it a class
16285         with a constructor.
16286         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16287         (struct lto_function_header, struct lto_simple_header,
16288         struct lto_simple_header_with_strings,
16289         struct lto_decl_header, struct lto_function_header): Make
16290         a simple inheritance hieararchy.  Remove unused fields.
16291         (struct lto_asm_header): Remove.
16292         * lto-streamer-out.c (produce_asm): Adjust.
16293         (lto_output_toplevel_asms): Likewise.
16294         (produce_asm_for_decls): Likewise.
16295         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16296         * data-streamer-in.c (string_for_index): Likewise.
16297         * ipa-inline-analysis.c (inline_read_section): Likewise.
16298         * ipa-prop.c (ipa_prop_read_section): Likewise.
16299         (read_replacements_section): Likewise.
16300         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16301         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16302         (lto_destroy_simple_input_block): Likewise.
16303         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16304         (lto_input_toplevel_asms): Likewise.
16305
16306 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16307             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16308             Anna Tikhonova  <anna.tikhonova@intel.com>
16309             Ilya Tocar  <ilya.tocar@intel.com>
16310             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16311             Ilya Verbin  <ilya.verbin@intel.com>
16312             Kirill Yukhin  <kirill.yukhin@intel.com>
16313             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16314
16315         * common/config/i386/i386-common.c
16316         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16317         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16318         (ix86_handle_option): Handle OPT_mavx512dq.
16319         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16320         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16321         set -mavx512dq accordingly.
16322         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16323         OPTION_MASK_ISA_AVX512DQ.
16324         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16325         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16326         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16327         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16328         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16329         (TARGET_AVX512DQ_P(x)): Ditto.
16330         * config/i386/i386.opt: Add mavx512dq.
16331
16332 2014-08-08  Richard Biener  <rguenther@suse.de>
16333
16334         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16335         target_percent, target_percent_s): Export.
16336         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16337         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16338         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16339         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16340         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16341         Move to gimple-fold.c.
16342         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16343         strcat and strcpy.
16344         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16345         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16346         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16347         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16348         (rewrite_call_expr_array): Remove.
16349         (fold_builtin_sprintf_chk): Likewise.
16350         (fold_builtin_snprintf_chk): Likewise.
16351         (fold_builtin_varargs): Remove handling of sprintf_chk,
16352         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16353         (gimple_fold_builtin_sprintf_chk): Remove.
16354         (gimple_fold_builtin_snprintf_chk): Likewise.
16355         (gimple_fold_builtin_varargs): Likewise.
16356         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16357         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16358         * gimple.c (gimple_seq_add_seq_without_update): New function.
16359         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16360         * gimple-fold.c: Include output.h.
16361         (gsi_replace_with_seq_vops): New function, split out from ...
16362         (gimplify_and_update_call_from_tree): ... here.
16363         (replace_call_with_value): New function.
16364         (replace_call_with_call_and_fold): Likewise.
16365         (var_decl_component_p): Moved from builtins.c.
16366         (gimple_fold_builtin_memory_op): Moved from builtins.c
16367         fold_builtin_memory_op and rewritten to GIMPLE.
16368         (gimple_fold_builtin_memset): Likewise.
16369         (gimple_fold_builtin_strcpy): Likewise.
16370         (gimple_fold_builtin_strncpy): Likewise.
16371         (gimple_fold_builtin_strcat): Likewise.
16372         (gimple_fold_builtin_fputs): Likewise.
16373         (gimple_fold_builtin_memory_chk): Likewise.
16374         (gimple_fold_builtin_stxcpy_chk): Likewise.
16375         (gimple_fold_builtin_stxncpy_chk): Likewise.
16376         (gimple_fold_builtin_snprintf_chk): Likewise.
16377         (gimple_fold_builtin_sprintf_chk): Likewise.
16378         (gimple_fold_builtin_strlen): New function.
16379         (gimple_fold_builtin_with_strlen): New function split out from
16380         gimple_fold_builtin.
16381         (gimple_fold_builtin): Change signature and handle
16382         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16383         here.  Call gimple_fold_builtin_with_strlen.
16384         (gimple_fold_call): Adjust.
16385
16386 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16387
16388         * calls.c (precompute_arguments): Check
16389         promoted_for_signed_and_unsigned_p and set the promoted mode.
16390         (promoted_for_signed_and_unsigned_p): New function.
16391         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16392         and set the promoted mode.
16393         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16394         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16395         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16396
16397
16398 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16399
16400         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16401         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16402         (expand_call): Likewise.
16403         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16404         to get promoted mode.
16405         * combine.c (record_promoted_value): Skip > 0 comparison with
16406         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16407         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16408         of SUBREG_PROMOTED_UNSIGNED_P.
16409         (convert_modes): Likewise.
16410         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16411         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16412         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16413         SUBREG_PROMOTED_UNSIGNED_SET.
16414         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16415         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16416         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16417         SUBREG_PROMOTED_SET.
16418         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16419         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16420         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16421         of SUBREG_PROMOTED_UNSIGNED_P.
16422         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16423         (SUBREG_PROMOTED_SET): New define.
16424         (SUBREG_PROMOTED_GET): Likewise.
16425         (SUBREG_PROMOTED_SIGN): Likewise.
16426         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16427         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16428         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16429         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16430         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16431         (nonzero_bits1): Skip > 0 comparison with the results as
16432         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16433         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16434         of !SUBREG_PROMOTED_UNSIGNED_P.
16435         * simplify-rtx.c (simplify_unary_operation_1): Use new
16436         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16437         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16438         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16439         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16440
16441 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
16442
16443         * ipa-devirt.c: Include gimple-pretty-print.h
16444         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16445         further tests.
16446         (decl_maybe_in_construction_p): Fix conditional on cdtor check
16447         (get_polymorphic_call_info): Fix return value
16448         (type_change_info): New sturcture based on ipa-prop
16449         variant.
16450         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16451         based on ipa-prop variant.
16452         (extr_type_from_vtbl_ptr_store): New function
16453         based on ipa-prop variant.
16454         (record_known_type): New function.
16455         (check_stmt_for_type_change): New function.
16456         (get_dynamic_type): New function.
16457         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16458         * tree-ssa-pre.c: ipa-utils.h
16459         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16460         machinery; sanity check with ipa-prop devirtualization.
16461         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16462         polymorphic flag.
16463
16464 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16465
16466         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16467         * alias.c, cfgexpand.c, cgraphbuild.c,
16468         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16469         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16470         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16471         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16472         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16473         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16474         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16475         dse.c, except.c, gengtype.c, gimple-expr.c,
16476         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16477         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16478         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16479         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16480         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16481         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16482         pointer-set.h.
16483         * pointer-set.c: Remove file.
16484         * pointer-set.h: Remove file.
16485
16486 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16487
16488         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16489         * config/arm/types.md (f_sels, f_seld): Delete.
16490
16491 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16492
16493         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
16494         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
16495         (aarch64_movdi_<mode>high): Likewise.
16496         (aarch64_mov<mode>high_di): Likewise.
16497         (aarch64_movdi_<mode>low): Likewise.
16498         (aarch64_mov<mode>low_di): Likewise.
16499         (aarch64_movtilow_tilow): Likewise.
16500         Add comment explaining usage of fp,simd attributes and of
16501         TARGET_FLOAT and TARGET_SIMD.
16502
16503 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
16504             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16505
16506         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
16507         Use MOVN when one of the half-words is 0xffff.
16508
16509 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16510
16511         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
16512
16513 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16514
16515         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
16516         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
16517         (rfs_str): String corresponding to RFS_* constants.
16518         (rank_for_schedule_stats_t): New typedef.
16519         (rank_for_schedule_stats): New static variable.
16520         (rfs_result): New static function.
16521         (rank_for_schedule): Track statistics for deciding heuristics.
16522         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
16523         static functions.
16524         (ready_sort): Use them for debug printouts.
16525         (schedule_block): Init statistics state.  Print statistics on
16526         rank_for_schedule decisions.
16527
16528 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16529
16530         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
16531
16532 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
16533
16534         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
16535         constraint.
16536
16537 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16538
16539         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
16540         function to not conflict.
16541         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
16542         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
16543         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
16544         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
16545         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
16546         of pointer_map.
16547
16548 2014-08-07  Marek Polacek  <polacek@redhat.com>
16549
16550         * fold-const.c (fold_binary_loc): Add folding of
16551         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
16552
16553 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
16554
16555         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
16556         instead of type size.
16557         (ASM_FINISH_DECLARE_OBJECT): Likewise.
16558
16559 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16560
16561         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
16562         (*thumb1_movqi_insn): Likewise.
16563         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
16564
16565 2014-08-07  Tom de Vries  <tom@codesourcery.com>
16566
16567         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16568         (glibc_2_11_or_earlier): Remove effective-target keywords.
16569
16570 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
16571
16572         * config/arm/arm.c (bdesc_2arg): Fix typo.
16573         (arm_atomic_assign_expand_fenv): Remove The default implementation.
16574
16575 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16576
16577         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
16578
16579 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
16580
16581         PR debug/61923
16582         * haifa-sched.c (advance_one_cycle): Fix dump.
16583         (schedule_block): Don't advance cycle if we are already at the
16584         beginning of the cycle.
16585
16586 2014-08-06  Martin Jambor  <mjambor@suse.cz>
16587
16588         PR ipa/61393
16589         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
16590
16591 2014-08-06  Richard Biener  <rguenther@suse.de>
16592
16593         PR lto/62034
16594         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
16595         SCCs here.
16596         (lto_input_tree): Pop SCCs here.
16597
16598 2014-08-06  Richard Biener  <rguenther@suse.de>
16599
16600         PR tree-optimization/61320
16601         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
16602         handle misaligned loads.
16603
16604 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
16605
16606         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
16607         (aarch64_expand_vec_perm_const): Check for dup before zip.
16608
16609 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16610
16611         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
16612         CONST_INT_P instead of GET_CODE and compare.
16613         (aarch64_select_cc_mode): Likewise.
16614         (aarch64_print_operand): Likewise.
16615         (aarch64_rtx_costs): Likewise.
16616         (aarch64_simd_valid_immediate): Likewise.
16617         (aarch64_simd_check_vect_par_cnst_half): Likewise.
16618         (aarch64_simd_emit_pair_result_insn): Likewise.
16619
16620 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
16621
16622         * gdbhooks.py (find_gcc_source_dir): New helper function.
16623         (class PassNames): New class, locating and parsing passes.def.
16624         (class BreakOnPass): New command "break-on-pass".
16625
16626 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
16627
16628         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
16629         getting olde.
16630
16631 2014-08-05  Richard Biener  <rguenther@suse.de>
16632
16633         PR rtl-optimization/61672
16634         * emit-rtl.h (mem_attrs_eq_p): Declare.
16635         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
16636         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
16637         * cfgcleanup.c (merge_memattrs): Likewise.
16638         Include emit-rtl.h.
16639
16640 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16641
16642         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
16643         rather than singleton vectors.
16644         (vqdmlsls_lane_s32): Likewise.
16645
16646 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16647
16648         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
16649         Use VSDQ_HSI mode iterator.
16650         (aarch64_sqrdmulh_laneq<mode>): Likewise.
16651         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
16652         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
16653         Use BUILTIN_VDQHS macro.
16654         (sqrdmulh_laneq): Likewise.
16655         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
16656         (vqdmlals_laneq_s32): Likewise.
16657         (vqdmlslh_laneq_s16): Likewise.
16658         (vqdmlsls_laneq_s32): Likewise.
16659         (vqdmulhh_laneq_s16): Likewise.
16660         (vqdmulhs_laneq_s32): Likewise.
16661         (vqrdmulhh_laneq_s16): Likewise.
16662         (vqrdmulhs_laneq_s32): Likewise.
16663
16664 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16665
16666         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
16667         (vmuld_laneq_f64): Likewise.
16668         (vmuls_laneq_f32): Likewise.
16669         (vmul_n_f64): Likewise.
16670         (vmuld_lane_f64): Reimplement in C.
16671         (vmuls_lane_f32): Likewise.
16672
16673 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16674
16675         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
16676         to reservation.
16677         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
16678
16679 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16680
16681         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
16682         (rbitsi2): Likewise.
16683         (*arm_rev): Set predicable and predicable_short_it attributes.
16684
16685 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16686
16687         * convert.c (convert_to_integer): Guard transformation to lrint by
16688         -fno-math-errno.
16689
16690 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
16691
16692         * config/aarch64/aarch64-builtins.c
16693         (aarch64_simd_builtin_type_mode): Delete.
16694         (v8qi_UP): Remap to V8QImode.
16695         (v4hi_UP): Remap to V4HImode.
16696         (v2si_UP): Remap to V2SImode.
16697         (v2sf_UP): Remap to V2SFmode.
16698         (v1df_UP): Remap to V1DFmode.
16699         (di_UP): Remap to DImode.
16700         (df_UP): Remap to DFmode.
16701         (v16qi_UP):V16QImode.
16702         (v8hi_UP): Remap to V8HImode.
16703         (v4si_UP): Remap to V4SImode.
16704         (v4sf_UP): Remap to V4SFmode.
16705         (v2di_UP): Remap to V2DImode.
16706         (v2df_UP): Remap to V2DFmode.
16707         (ti_UP): Remap to TImode.
16708         (ei_UP): Remap to EImode.
16709         (oi_UP): Remap to OImode.
16710         (ci_UP): Map to CImode.
16711         (xi_UP): Remap to XImode.
16712         (si_UP): Remap to SImode.
16713         (sf_UP): Remap to SFmode.
16714         (hi_UP): Remap to HImode.
16715         (qi_UP): Remap to QImode.
16716         (aarch64_simd_builtin_datum): Make mode a machine_mode.
16717         (VAR1): Build builtin name.
16718         (aarch64_init_simd_builtins): Remove dead code.
16719
16720 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16721
16722         * graphite-isl-ast-to-gimple.c:
16723         (set_options): New function.
16724         (scop_to_isl_ast): Add calling of set_options.
16725
16726 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
16727
16728         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
16729         (analyze_iv_to_split_insn): Don't initialize them.
16730         (get_ivts_expr): Removed.
16731         (allocate_basic_variable, insert_base_initialization): Use
16732         SET_SRC instead of *get_ivts_expr.
16733         (split_iv): Use &SET_SRC instead of get_ivts_expr.
16734
16735 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16736
16737         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
16738         (translate_isl_ast_for_loop): Add checking of the
16739         flag_loop_parallelize_all.
16740         (ast_build_before_for): New function.
16741         (scop_to_isl_ast): Add checking of the
16742         flag_loop_parallelize_all.
16743         * graphite-dependences.c: Move the defenition of the
16744         scop_get_dependences from graphite-optimize-isl.c to this file.
16745         (apply_schedule_on_deps): Add checking of the ux's emptiness.
16746         (carries_deps): Add checking of the x's value.
16747         * graphite-optimize-isl.c: Move the defenition of the
16748         scop_get_dependences to graphite-dependences.c.
16749         * graphite-poly.h: Add declarations of scop_get_dependences
16750         and carries_deps.
16751
16752 2014-08-04  Rohit  <rohitarulraj@freescale.com>
16753
16754         PR target/60102
16755         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
16756         names.
16757         (alt_reg_names): Likewise.
16758         (rs6000_dwarf_register_span): For SPE high registers, replace
16759         dwarf register numbers with GCC hard register numbers.
16760         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
16761         (rs6000_dbx_register_number): For SPE high registers, return dwarf
16762         register number for the corresponding GCC hard register number.
16763         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
16764         newly added GCC hard register numbers for SPE high registers.
16765         (DWARF_FRAME_REGISTERS):  Likewise.
16766         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
16767         (DWARF_FRAME_REGNUM): Likewise.
16768         (FIXED_REGISTERS): Likewise.
16769         (CALL_USED_REGISTERS): Likewise.
16770         (CALL_REALLY_USED_REGISTERS): Likewise.
16771         (REG_ALLOC_ORDER): Likewise.
16772         (enum reg_class): Likewise.
16773         (REG_CLASS_NAMES): Likewise.
16774         (REG_CLASS_CONTENTS): Likewise.
16775         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
16776
16777 2014-08-04  Richard Biener  <rguenther@suse.de>
16778
16779         * gimple-fold.h (gimple_fold_builtin): Remove.
16780         * gimple-fold.c (gimple_fold_builtin): Make static.
16781         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
16782         fold_stmt, not gimple_fold_builtin.
16783
16784 2014-08-04  Martin Liska <mliska@suse.cz>
16785
16786         * cgraph.h (csi_end_p): Removed.
16787         (csi_next): Likewise.
16788         (csi_node): Likewise.
16789         (csi_start): Likewise.
16790         (cgraph_node_in_set_p): Likewise.
16791         (cgraph_node_set_size): Likewise.
16792         (vsi_end_p): Likewise.
16793         (vsi_next): Likewise.
16794         (vsi_node): Likewise.
16795         (vsi_start): Likewise.
16796         (varpool_node_set_size): Likewise.
16797         (cgraph_node_set_nonempty_p): Likewise.
16798         (varpool_node_set_nonempty_p): Likewise.
16799         * cgraphunit.c (cgraph_process_new_functions): vec replaces
16800         cgraph_node_set.
16801         * ipa-inline-transform.c: Likewise.
16802         * ipa-utils.c (cgraph_node_set_new): Removed.
16803         (cgraph_node_set_add): Likewise.
16804         (cgraph_node_set_remove): Likewise.
16805         (cgraph_node_set_find): Likewise.
16806         (dump_cgraph_node_set): Likewise.
16807         (debug_cgraph_node_set): Likewise.
16808         (free_cgraph_node_set): Likewise.
16809         (varpool_node_set_new): Likewise.
16810         (varpool_node_set_add): Likewise.
16811         (varpool_node_set_remove): Likewise.
16812         (varpool_node_set_find): Likewise.
16813         (dump_varpool_node_set): Likewise.
16814         (free_varpool_node_set): Likewise.
16815         (debug_varpool_node_set): Likewise.
16816         * tree-emutls.c (struct tls_var_data):
16817         (emutls_index): Removed.
16818         (emutls_decl): Likewise.
16819         (gen_emutls_addr): Function implementation uses newly added
16820         hash_map<varpool_node *, tls_var_data>.
16821         (clear_access_vars): Likewise.
16822         (create_emultls_var): Likewise.
16823         (ipa_lower_emutls): Likewise.
16824         (reset_access): New function.
16825
16826 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16827
16828         * config/i386/i386.c (ix86_option_override_internal): Add
16829         PTA_RDRND and PTA_MOVBE for bdver4.
16830
16831 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16832             James Greenhalgh  <james.greenhalgh@arm.com>
16833
16834         * doc/md.texi (clrsb): Document.
16835         (clz): Change reference to x into operand 1.
16836         (ctz): Likewise.
16837         (popcount): Likewise.
16838
16839 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16840
16841         PR target/61713
16842         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
16843         move to subtarget in serial version if result is ignored.
16844
16845 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16846             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16847
16848         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
16849         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
16850         (sched_analyze_insn): Update use of try_group_insn to
16851         sched_macro_fuse_insns.
16852         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
16853         arguments that are not conditional jumps.
16854
16855 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16856
16857         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
16858         family information. Handle BTVER2 cpu with cpuid family value.
16859
16860 2014-08-04  Tom de Vries  <tom@codesourcery.com>
16861
16862         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16863         (glibc_2_11_or_earlier): Document effective-target keywords.
16864
16865 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16866
16867         * ipa-devirt.c (odr_type_warn_count): Add type.
16868         (possible_polymorphic_call_targets): Set it.
16869         (ipa_devirt): Use it.
16870
16871 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16872
16873         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
16874         Document.
16875         * ipa-devirt.c: Include hash-map.h
16876         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
16877         (clear_speculation): Break out of ...
16878         (get_class_context): ... here; speed up handling obviously useless
16879         speculations.
16880         (odr_type_warn_count, decl_warn_count): New structures.
16881         (final_warning_record): New structure.
16882         (final_warning_records): New static variable.
16883         (possible_polymorphic_call_targets): Cleanup handling of
16884         speculative info; do not build speculation when user do not care;
16885         record info about warnings when asked for.
16886         (add_decl_warning): New function.
16887         (type_warning_cmp): New function.
16888         (decl_warning_cmp): New function.
16889         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
16890         (gate): Enable pass when warnings are requested.
16891         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
16892         options.
16893
16894 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16895
16896         * hash-map.h (default_hashmap_traits::mark_key_deleted):
16897         Fix cast.
16898         (hash_map::remove): New method.
16899         (hash_map::traverse): New method.
16900         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
16901         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
16902         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
16903         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
16904         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
16905         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
16906         pointer_map.
16907
16908 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16909
16910         * hash-set.h: new File.
16911         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
16912         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
16913         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
16914         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
16915         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
16916         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
16917         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
16918         varpool.c: Use hash_set instead of pointer_set.
16919
16920 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
16921
16922         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
16923
16924 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16925
16926         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
16927         for frame access when strict_p is false.
16928
16929 2014-08-01  Renlin Li <renlin.li@arm.com>
16930 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16931
16932         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
16933         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
16934         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
16935         Declaration.
16936         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
16937         predicate.
16938         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
16939         aarch64_mem_pair_offset.
16940
16941 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16942
16943         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
16944         offset.
16945         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
16946         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
16947
16948 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
16949
16950         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
16951
16952 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
16953
16954         PR regression/61510
16955         * cgraphunit.c (analyze_functions): Use get_create rather than get
16956         for decls which are clones of abstract functions.
16957
16958 2014-08-01  Martin Liska  <mliska@suse.cz>
16959
16960         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
16961         * ipa-prop.h (count_formal_params): Global function created from static.
16962         * ipa-prop.c (count_formal_params): Likewise.
16963         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
16964         profiles for semantically equivalent functions.
16965         * passes.c (do_per_function): If we load body of a function
16966         during WPA, this condition should behave same.
16967         * varpool.c (ctor_for_folding): More tolerant assert for variable
16968         aliases created during WPA.
16969
16970 2014-08-01  Martin Liska  <mliska@suse.cz>
16971
16972         * doc/invoke.texi (Options That Control Optimization): Documentation
16973         for -foptimize-strlen introduced. Optimization levels default options
16974         fixed.
16975
16976 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
16977
16978         * opts.c (common_handle_option): Handle -fsanitize=alignment.
16979         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
16980         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
16981         type to bool.
16982         * stor-layout.h (min_align_of_type): New prototype.
16983         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
16984         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
16985         check.
16986         * ubsan.c: Include builtins.h.
16987         (ubsan_expand_bounds_ifn): Change return type to bool,
16988         always return true.
16989         (ubsan_expand_null_ifn): Change return type to bool, change
16990         argument to gimple_stmt_iterator *.  Handle both null and alignment
16991         sanitization, take type from ckind argument's type rather than
16992         first argument.
16993         (instrument_member_call): Removed.
16994         (instrument_mem_ref): Remove t argument, add mem and base arguments.
16995         Handle both null and alignment sanitization, don't say whole
16996         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
16997         call instead of 2 argument.
16998         (instrument_null): Adjust instrument_mem_ref caller.  Don't
16999         instrument calls here.
17000         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17001         like SANITIZE_NULL.
17002         * stor-layout.c (min_align_of_type): New function.
17003         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17004         Or it into SANITIZE_UNDEFINED.
17005         * doc/invoke.texi (-fsanitize=alignment): Document.
17006
17007 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17008
17009         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17010
17011 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17012
17013         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17014         inchash.
17015         (vn_reference_compute_hash): Dito.
17016         (vn_nary_op_compute_hash): Dito.
17017         (vn_phi_compute_hash): Dito.
17018         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17019
17020 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17021
17022         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17023         Rename to inchash:add_expr_commutative. Convert to inchash.
17024         (iterative_hash_hashable_expr): Rename to
17025         inchash:add_hashable_expr. Convert to inchash.
17026         (avail_expr_hash): Dito.
17027
17028 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17029
17030         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17031         Convert to inchash.
17032
17033 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17034
17035         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17036
17037 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17038
17039         * Makefile.in (OBJS): Add rtlhash.o
17040         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17041         (loc_checksum): Dito.
17042         (loc_checksum_ordered): Dito.
17043         (hash_loc_operands): Dito.
17044         (hash_locs): Dito.
17045         (hash_loc_list): Dito.
17046         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17047         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17048         * rtlhash.c: New file.
17049         * rtlhash.h: New file.
17050
17051 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17052
17053         * inchash.h (inchash): Change inchash class to namespace.
17054         (class hash): ... Rename from inchash.
17055         (add_object): Move from macro to class template.
17056         * lto-streamer-out.c (hash_tree): Change inchash
17057         to inchash::hash.
17058         * tree.c (build_type_attribute_qual_variant): Dito.
17059         (type_hash_list): Dito.
17060         (attribute_hash_list): Dito.
17061         (iterative_hstate_expr): Rename to inchash::add_expr
17062         (build_range_type_1): Change inchash to inchash::hash
17063         and use hash::add_expr.
17064         (build_array_type_1): Dito.
17065         (build_function_type): Dito
17066         (build_method_type_directly): Dito.
17067         (build_offset_type): Dito.
17068         (build_complex_type): Dito.
17069         (make_vector_type): Dito.
17070         * tree.h (iterative_hash_expr): Dito.
17071
17072 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
17073
17074         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17075
17076 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17077
17078         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17079         correct alphabetical position.
17080         (vpaddd_f64): Rewrite using builtins.
17081         (vpaddd_s64): Move to correct alphabetical position.
17082         (vpaddd_u64): New.
17083
17084 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
17085
17086         PR target/61844
17087         * config/sh/sh.c (sh_legitimate_address_p,
17088         sh_legitimize_reload_address): Handle reg+reg address modes when
17089         ALLOW_INDEXED_ADDRESS is false.
17090         * config/sh/predicates.md (general_movsrc_operand,
17091         general_movdst_operand): Likewise.
17092
17093 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17094
17095         * config/aarch64/aarch64-builtins.c
17096         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17097         BYTES_BIG_ENDIAN.
17098
17099 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17100
17101         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17102         the generated mask based on BYTES_BIG_ENDIAN.
17103         (aarch64_simd_check_vect_par_cnst_half): New.
17104         * config/aarch64/aarch64-protos.h
17105         (aarch64_simd_check_vect_par_cnst_half): New.
17106         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17107         the check out to aarch64_simd_check_vect_par_cnst_half.
17108         (vect_par_cnst_lo_half): Likewise.
17109         * config/aarch64/aarch64-simd.md
17110         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17111         (move_hi_quad_<mode>): Always generate a low mask.
17112
17113 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17114
17115         * doc/invoke.texi (AVR Options): Add documentation about
17116         __AVR_DEVICE_NAME__ built-in macro.
17117
17118 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17119
17120         PR target/61948
17121         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17122         constraints are satisfied.
17123         (<shift>di3_neon): Likewise.
17124
17125 2014-07-31  Richard Biener  <rguenther@suse.de>
17126
17127         PR tree-optimization/61964
17128         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17129         by structural equality.
17130
17131 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17132
17133         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17134         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17135         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17136         New enums.
17137         * gcc.c (sanitize_spec_function): Support new option.
17138         (SANITIZER_SPEC): Remove now redundant check.
17139         * opts.c (common_handle_option): Support new option.
17140         (finish_options): Check for incompatibilities.
17141         * toplev.c (process_options): Split userspace-specific checks.
17142
17143 2014-07-31  Richard Biener  <rguenther@suse.de>
17144
17145         * lto-streamer.h (struct output_block): Remove global.
17146         (struct data_in): Remove labels, num_named_labels and
17147         num_unnamed_labels.
17148         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17149         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17150
17151 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17152
17153         PR c++/60517
17154         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17155         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17156         (isolate_path): New argument to avoid inserting a trap.
17157         (find_implicit_erroneous_behaviour): Handle returning the address
17158         of a local variable.
17159         (find_explicit_erroneous_behaviour): Likewise.
17160
17161 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17162
17163         PR lto/61868
17164         * toplev.c (init_random_seed): Move piece of code never called to
17165         set_random_seed.
17166         (set_random_seed): see above.
17167
17168 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17169
17170         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17171
17172 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17173
17174         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17175         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17176
17177 2014-07-31  Richard Biener  <rguenther@suse.de>
17178
17179         * data-streamer.h (streamer_write_data_stream): Declare here,
17180         renamed from ...
17181         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17182         * lto-cgraph.c (lto_output_node): Adjust.
17183         (lto_output_varpool_node): Likewise.
17184         * data-streamer-out.c (streamer_string_index): Likewise.
17185         (streamer_write_data_stream, lto_append_block): Move from ...
17186         * lto-section-out.c (lto_output_data_stream,
17187         lto_append_block): ... here.
17188
17189 2014-07-30  Mike Stump  <mikestump@comcast.net>
17190
17191         * configure.ac: Also check for popen.
17192         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17193         * configure: Regenerate.
17194         * config.in:  Regenerate.
17195
17196 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17197
17198         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17199         parameter to gimple.
17200
17201 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17202
17203         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17204         address as second parameter to __tpf_eh_return routine.
17205
17206 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17207
17208         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17209         Thumb2.
17210
17211 2014-07-30  Tom Tromey  <tromey@redhat.com>
17212
17213         PR c/59855
17214         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17215         * doc/extend.texi (Type Attributes): Document designated_init
17216         attribute.
17217
17218 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17219
17220         * graphite-isl-ast-to-gimple.c:
17221         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17222         (gcc_expression_from_isl_expression): Pass type to
17223         gcc_expression_from_isl_ast_expr_id.
17224
17225 2014-07-30  Richard Biener  <rguenther@suse.de>
17226
17227         * lto-streamer.h (lto_write_data): New function.
17228         * langhooks.c (lhd_append_data): Do not free block.
17229         * lto-section-out.c (lto_write_data): New function writing
17230         raw data to the current section.
17231         (lto_write_stream): Adjust for langhook semantic change.
17232         (lto_destroy_simple_output_block): Write header directly.
17233         * lto-opts.c (lto_write_options): Write options directly.
17234         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17235         (lto_output_toplevel_asms): Likewise.
17236         (copy_function_or_variable): Copy data directly.
17237         (write_global_references): Output index table directly.
17238         (lto_output_decl_state_refs): Likewise.
17239         (write_symbol): Write data directly.
17240         (produce_symtab): Adjust.
17241         (produce_asm_for_decls): Output header and refs directly.
17242
17243 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17244
17245         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17246         to speculative_targets
17247         (get_class_context): Fix handling of contextes without outer type;
17248         avoid matching non-polymorphic types in LTO.
17249         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17250         parameter to speculative_targetsp; handle speculation.
17251         (dump_possible_polymorphic_call_targets): Update dumping.
17252
17253 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17254
17255         * common.opt (Wodr): Enable by default.
17256
17257 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17258
17259         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17260
17261 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17262
17263         PR bootstrap/61914
17264         * gengtype.c (strtoken): New function.
17265         (create_user_defined_type): Replace strtok with strtoken.
17266
17267 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17268
17269         * gcov-io.c (gcov_var): Make hidden.
17270         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17271         (gcov_do_dump): Declare.
17272         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17273
17274 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17275
17276         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17277         parameter to gimple.
17278         (sra_modify_assign): Likewise.
17279
17280 2014-07-29  Richard Biener  <rguenther@suse.de>
17281
17282         PR middle-end/52478
17283         * expr.c (expand_expr_real_2): Revert last change.
17284
17285 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17286
17287         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17288         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17289         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17290         call.
17291         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17292         (contains_type_p): Forward declare.
17293         (polymorphic_call_target_hasher::hash): Hash speculative info.
17294         (polymorphic_call_target_hasher::equal): Compare speculative info.
17295         (get_class_context): Handle speuclation.
17296         (contains_type_p): Update.
17297         (get_polymorphic_call_info_for_decl): Update.
17298         (walk_ssa_copies): Break out from ...
17299         (get_polymorphic_call_info): ... here; set speculative context
17300         before giving up.
17301         * ipa-prop.c (ipa_write_indirect_edge_info,
17302         ipa_read_indirect_edge_info): Stream speculative context.
17303         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17304         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17305         SPECULATIVE_MAYBE_DERIVED_TYPE).
17306         (possible_polymorphic_call_targets overriders): Update.
17307         (dump_possible_polymorphic_call_targets overriders): Update.
17308         (dump_possible_polymorphic_call_target_p overriders): Update.
17309
17310 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17311
17312         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17313         ipa-devirt path; fix thinko there.
17314
17315 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17316
17317         * config/i386/i386.c (ix86_return_in_memory): Replace one
17318         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17319
17320 2014-07-28  Marek Polacek  <polacek@redhat.com>
17321
17322         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17323
17324 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17325
17326         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17327         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17328         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17329         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17330         (USE_LD_AS_NEEDED): Likewise.
17331         (ASM_APP_ON): Likewise.
17332         (ASM_APP_OFF): Likewise.
17333         (TARGET_POSIX_IO): Likewise.
17334         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17335         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17336         (USE_LD_AS_NEEDED): Likewise.
17337         (ASM_APP_ON): Likewise.
17338         (ASM_APP_OFF): Likewise.
17339         (TARGET_POSIX_IO): Likewise.
17340
17341 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17342
17343         PR middle-end/61734
17344         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17345         operators other than the equality operators.
17346
17347 2014-07-28  Richard Biener  <rguenther@suse.de>
17348
17349         PR middle-end/52478
17350         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17351         sure to register SImode ones, not only >= word_mode ones.
17352         * expr.c (expand_expr_real_2): When expanding -ftrapv
17353         binops do not use OPTAB_LIB_WIDEN.
17354
17355 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17356
17357         PR middle-end/61919
17358         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17359         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17360         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17361         inserting them in the insn stream.
17362
17363 2014-07-28  Marek Polacek  <polacek@redhat.com>
17364
17365         PR middle-end/61913
17366         * common.opt (Wodr): Add Var.
17367
17368 2014-07-28  Richard Biener  <rguenther@suse.de>
17369
17370         PR tree-optimization/61921
17371         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17372         if there is a varpool node before dereferencing it.
17373
17374 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17375
17376         * graphite-sese-to-poly.c:
17377         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17378         id of the pbb), which contains pointer to the pbb1.
17379
17380         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17381
17382 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17383
17384         * graphite-isl-ast-to-gimple.c:
17385         (graphite_create_new_guard): New function.
17386         (translate_isl_ast_node_if): New function.
17387         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17388
17389         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17390
17391 2014-07-27  Anthony Green  <green@moxielogic.com>
17392
17393         * config.gcc: Add moxie-*-moxiebox* configuration.
17394         * config/moxie/moxiebox.h: New file.
17395
17396 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17397
17398         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17399         from the read only register.
17400
17401 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17402
17403         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17404         as the allocation class if it isn't likely to be spilled.
17405
17406 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17407
17408         * rtl.h (tls_referenced_p): Declare.
17409         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17410         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17411         (mips_cannot_force_const_mem): Use tls_referenced_p.
17412         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17413         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17414         instead of pa_tls_referenced_p.
17415         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17416         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17417         (pa_legitimate_constant_p): Likewise.
17418         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17419         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17420         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17421         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17422         rs6000_tls_referenced_p.
17423         (rs6000_tls_symbol_ref_1): Delete.
17424
17425 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17426
17427         PR target/44551
17428         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17429         Optimize inverse of a VEC_CONCAT.
17430
17431 2014-07-25  Xinliang David Li  <davidxl@google.com>
17432
17433         * params.def: New parameter.
17434         * coverage.c (get_coverage_counts): Check new flag.
17435         (coverage_compute_profile_id): Check new flag.
17436         (coverage_begin_function): Check new flag.
17437         (coverage_end_function): Check new flag.
17438         * value-prof.c (coverage_node_map_initialized_p): New function.
17439         (init_node_map): Populate map with all functions.
17440         * doc/invoke.texi: Document new parameter.
17441
17442 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
17443             Richard Biener <rguenther@suse.de>
17444
17445         * lto-streamer-out.c (struct sccs): Turn to ...
17446         (class DFS): ... this one; refactor the DFS walk so it can
17447         be re-done on per-SCC basis.
17448         (DFS::DFS): New constructor.
17449         (DFS::~DFS): New destructor.
17450         (hash_tree): Add new MAP argument holding in-SCC hash values;
17451         remove POINTER_TYPE hashing hack.
17452         (scc_entry_compare): Rename to ...
17453         (DFS::scc_entry_compare): ... this one.
17454         (hash_scc): Rename to ...
17455         (DFS::hash_scc): ... this one; pass output_block instead
17456         of streamer_cache; work harder to get unique and stable SCC
17457         hashes.
17458         (DFS_write_tree): Rename to ...
17459         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17460         (lto_output_tree): Update.
17461
17462 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17463
17464         * lto-streamer-out.c (hash_tree): Convert to inchash.
17465
17466 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17467
17468         * tree.c (build_type_attribute_qual_variant): Use inchash.
17469         (type_hash_list): Dito.
17470         (attribute_hash_list): Dito
17471         (iterative_hstate_expr): Dito.
17472         (iterative_hash_expr): Dito.
17473         (build_range_type_1): Dito.
17474         (build_array_type_1): Dito.
17475         (build_function_type): Dito.
17476         (build_method_type_directly): Dito.
17477         (build_offset_type): Dito.
17478         (build_complex_type): Dito.
17479         (make_vector_type): Dito.
17480         * tree.h (iterative_hash_expr): Add compat wrapper.
17481         (iterative_hstate_expr): Add.
17482
17483 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17484
17485         * Makefile.in (OBJS): Add inchash.o.
17486         (PLUGIN_HEADERS): Add inchash.h.
17487         * ipa-devirt.c: Include inchash.h.
17488         * lto-streamer-out.c: Dito.
17489         * tree-ssa-dom.c: Dito.
17490         * tree-ssa-pre.c: Dito.
17491         * tree-ssa-sccvn.c: Dito.
17492         * tree-ssa-tail-merge.c: Dito.
17493         * asan.c: Dito.
17494         * tree.c (iterative_hash_hashval_t): Move to ...
17495         (iterative_hash_host_wide_int): Move to ...
17496         * inchash.c: Here. New file.
17497         * tree.h (iterative_hash_hashval_t): Move to ...
17498         (iterative_hash_host_wide_int): Move to ...
17499         * inchash.h: Here. New file.
17500
17501 2014-07-25  Richard Biener  <rguenther@suse.de>
17502
17503         PR middle-end/61762
17504         PR middle-end/61894
17505         * fold-const.c (native_encode_int): Add and handle offset
17506         parameter to do partial encodings of expr.
17507         (native_encode_fixed): Likewise.
17508         (native_encode_real): Likewise.
17509         (native_encode_complex): Likewise.
17510         (native_encode_vector): Likewise.
17511         (native_encode_string): Likewise.
17512         (native_encode_expr): Likewise.
17513         * fold-const.c (native_encode_expr): Add offset parameter
17514         defaulting to -1.
17515         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
17516         (fold_ctor_reference): Handle all reads from tcc_constant
17517         ctors.
17518
17519 2014-07-25  Richard Biener  <rguenther@suse.de>
17520
17521         * tree-inline.c (estimate_move_cost): Mark speed_p argument
17522         as possibly unused.
17523
17524 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17525
17526         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
17527
17528 2014-07-24  Kyle McMartin  <kyle@redhat.com>
17529
17530         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
17531
17532 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17533
17534         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
17535         Add prototype.
17536         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
17537         function.
17538         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
17539         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17540         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
17541
17542 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17543
17544         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
17545         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
17546         aggregate types.  Instead, *all* aggregate types, except for single-
17547         element or homogeneous float/vector aggregates, are quadword-aligned
17548         if required by their type alignment.  Issue -Wpsabi note when a type
17549         is now treated differently than before.
17550
17551 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17552
17553         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
17554         does not fit fully into floating-point registers, and there is still
17555         space in the register parameter area, use GPRs to pass those parts
17556         of the argument.  Issue -Wpsabi note if any parameter is now treated
17557         differently than before.
17558         (rs6000_arg_partial_bytes): Update.
17559
17560 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
17561
17562         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
17563
17564 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17565
17566         * rtl.h (target_rtl): Remove lang_dependent_initialized.
17567         * toplev.c (initialize_rtl): Don't use it.  Move previously
17568         "language-dependent" calls to...
17569         (backend_init): ...here.
17570         (lang_dependent_init_target): Don't set lang_dependent_initialized.
17571         Assert that RTL initialization hasn't happend yet.
17572
17573 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17574
17575         PR rtl-optimization/61629
17576         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
17577         they have already been initialized.
17578
17579 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17580
17581         PR middle-end/61268
17582         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
17583         DECL_INCOMING_RTL and entry_parm.
17584         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
17585         * calls.c (load_register_parameters): Likewise argument values.
17586         (emit_library_call_value_1, store_one_arg): Likewise argument
17587         save areas.
17588         * config/i386/i386.c (assign_386_stack_local): Likewise the local
17589         stack slot.
17590         * explow.c (validize_mem): Modify the argument in-place.
17591
17592 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17593
17594         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
17595         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
17596
17597 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17598
17599         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
17600         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
17601
17602 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17603
17604         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
17605         (aarch64_save_callee_saves): New parameter "skip_wb".
17606         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
17607
17608 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17609
17610         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
17611         "wb_candidate2".
17612         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
17613
17614 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17615
17616         * graphite-isl-ast-to-gimple.c:
17617         (graphite_create_new_loop): Add calling of isl_id_free to properly
17618         decrement reference counts.
17619
17620         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
17621
17622 2014-07-24  Martin Liska  <mliska@suse.cz>
17623         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
17624         function used.
17625         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
17626         (rs6000_code_end): Likewise.
17627
17628 2014-07-24  Martin Liska  <mliska@suse.cz>
17629
17630         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
17631         symtab_node funtion used.
17632         (rs6000_xcoff_declare_object_name): Likewise.
17633
17634 2014-07-24  Martin Liska  <mliska@suse.cz>
17635
17636         * cgraphunit.c (compile): Correct function used.
17637
17638 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17639
17640         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
17641         as non-indexable.
17642
17643 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17644
17645         PR lto/61802
17646         * varasm.c (bss_initializer_p): Handle offlined ctors.
17647         (align_variable, get_variable_align): Likewise.
17648         (make_decl_one_only): Likewise.
17649         (default_binds_local_p_1): Likewise.
17650         (decl_binds_to_current_def_p): Likewise.
17651         (get_variable_section): Get constructor if it is offlined.
17652         (assemble_variable_contents): Sanity check that the caller
17653         streamed in the ctor in LTO.
17654
17655 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17656
17657         * graphite-isl-ast-to-gimple.c:
17658         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
17659         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
17660         isl_ast_op_pdiv_r to the different case.
17661
17662         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
17663
17664 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17665
17666         PR middle-end/61876
17667         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
17668         when flag_errno_math is on.
17669
17670 2014-07-24  Martin Liska  <mliska@suse.cz>
17671
17672         * cgraph.h (varpool_node):
17673         (availability get_availability (void)):
17674         created from cgraph_variable_initializer_availability
17675         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
17676         created from: cgraph_variable_initializer_availability
17677         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
17678         (void finalize_named_section_flags (void)):
17679         created from varpool_finalize_named_section_flags
17680         (bool assemble_decl (void)): created from varpool_assemble_decl
17681         (void analyze (void)): created from varpool_analyze_node
17682         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
17683         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
17684         (void remove_initializer (void)): created from varpool_remove_initializer
17685         (tree get_constructor (void)): created from varpool_get_constructor
17686         (bool externally_visible_p (void)): created from varpool_externally_visible_p
17687         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
17688         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
17689         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
17690         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
17691         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
17692         (static bool output_variables (void)): created from varpool_output_variables
17693         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
17694         created from varpool_extra_name_alias
17695         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
17696         (static void dump_varpool (FILE *f)): created from dump_varpool
17697         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
17698         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
17699         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
17700         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
17701         (void assemble_aliases (void)): created from assemble_aliases
17702
17703 2014-07-24  Martin Liska  <mliska@suse.cz>
17704
17705         * cgraph.h (symtab_node):
17706         (void register_symbol (void)): created from symtab_register_node
17707         (void remove (void)): created from symtab_remove_node
17708         (void dump (FILE *f)): created from dump_symtab_node
17709         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
17710         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
17711         (struct ipa_ref *add_reference (symtab_node *referred_node,
17712         enum ipa_ref_use use_type)): created from add_reference
17713         (struct ipa_ref *add_reference (symtab_node *referred_node,
17714         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
17715         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
17716         gimple stmt)): created from maybe_add_reference
17717         (bool semantically_equivalent_p (symtab_node *target)): created from
17718         symtab_semantically_equivalent_p
17719         (void remove_from_same_comdat_group (void)): created from
17720         remove_from_same_comdat_group
17721         (void add_to_same_comdat_group (symtab_node *old_node)): created from
17722         symtab_add_to_same_comdat_group
17723         (void dissolve_same_comdat_group_list (void)): created from
17724         symtab_dissolve_same_comdat_group_list
17725         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
17726         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
17727         created from symtab_alias_ultimate_target
17728         (inline symtab_node *next_defined_symbol (void)): created from
17729         symtab_next_defined_symbol
17730         (bool resolve_alias (symtab_node *target)): created from
17731         symtab_resolve_alias
17732         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
17733         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
17734         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
17735         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
17736         (void set_section (const char *section)): created from set_section_1
17737         (enum availability get_availability (void)): created from symtab_node_availability
17738         (void make_decl_local (void)): created from symtab_make_decl_local
17739         (bool real_symbol_p (void)): created from symtab_read_node
17740         (can_be_discarded_p (void)): created from symtab_can_be_discarded
17741         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
17742         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
17743         symtab_in_same_comdat_p;
17744         (bool address_taken_from_non_vtable_p (void)): created from
17745         address_taken_from_non_vtable_p
17746         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
17747         (static void dump_table (FILE *)): created from dump_symtab
17748         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
17749         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
17750         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
17751         symtab_used_from_object_file_p
17752         (void dump_base (FILE *)): created from dump_symtab_base
17753         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
17754         (void unregister (void)): created from symtab_unregister_node
17755         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
17756         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
17757         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
17758         symtab_nonoverwritable_alias_1
17759         * cgraph.h (cgraph_node):
17760         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
17761         created from cgraph_remove_node_and_inline_clones
17762         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
17763         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
17764         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
17765         (cgraph_node *function_symbol (enum availability *avail = NULL)):
17766         created from cgraph_function_node
17767         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
17768         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
17769         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
17770         created from cgraph_create_clone
17771         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
17772         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
17773         created from cgraph_create_virtual_clone
17774         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
17775         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
17776         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
17777         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
17778         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
17779         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
17780         created from cgraph_function_version_info
17781         (struct cgraph_function_version_info *insert_new_function_version (void)):
17782         created from insert_new_cgraph_node_version
17783         (struct cgraph_function_version_info *function_version (void)): created from
17784         get_cgraph_node_version
17785         (void analyze (void)): created from analyze_function
17786         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
17787         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
17788         tree real_alias) cgraph_add_thunk
17789         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
17790         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
17791         created from cgraph_function_or_thunk_node
17792         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
17793         created from expand_thunk
17794         (void reset (void)): created from cgraph_reset_node
17795         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
17796         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
17797         (void remove (void)): created from cgraph_remove_node
17798         (void dump (FILE *f)): created from dump_cgraph_node
17799         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
17800         (bool get_body (void)): created from cgraph_get_body
17801         (void release_body (void)): created from cgraph_release_function_body
17802         (void unnest (void)): created from cgraph_unnest_node
17803         (void make_local (void)): created from cgraph_make_node_local
17804         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
17805         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
17806         gcov_type count, int freq)): created from cgraph_create_edge
17807         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
17808         gcov_type count, int freq)): created from cgraph_create_indirect_edge
17809         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
17810         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
17811         created from cgraph_create_edge_including_clones
17812         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
17813         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
17814         (void remove_callers (void)): created from cgraph_node_remove_callers
17815         (void remove_callees (void)): created from cgraph_node_remove_callees
17816         (enum availability get_availability (void)): created from cgraph_function_body_availability
17817         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
17818         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
17819         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
17820         (void call_duplication_hooks (cgraph_node *node2)): created from
17821         cgraph_call_node_duplication_hooks
17822         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
17823         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
17824         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
17825         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
17826         (void call_function_insertion_hooks (void)):
17827         created from cgraph_call_function_insertion_hooks
17828         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
17829         (bool local_p (void)): created from cgraph_local_node
17830         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
17831         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
17832         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
17833         (inline bool only_called_directly_or_aliased_p (void)):
17834         created from cgraph_only_called_directly_or_aliased_p
17835         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
17836         created from cgraph_will_be_removed_from_program_if_no_direct_calls
17837         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
17838         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
17839         (bool can_remove_if_no_direct_calls_p (void)):
17840         created from cgraph_can_remove_if_no_direct_calls_p
17841         (inline bool has_gimple_body_p (void)):
17842         created from cgraph_function_with_gimple_body_p
17843         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
17844         (static void dump_cgraph (FILE *f)): created from dump_cgraph
17845         (static inline void debug_cgraph (void)): created from debug_cgraph
17846         (static void record_function_versions (tree decl1, tree decl2)):
17847         created from record_function_versions
17848         (static void delete_function_version (tree decl)):
17849         created from delete_function_version
17850         (static void add_new_function (tree fndecl, bool lowered)):
17851         created from cgraph_add_new_function
17852         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
17853         (static cgraph_node * create (tree decl)): created from cgraph_create_node
17854         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
17855         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
17856         (static cgraph_node *get_for_asmname (tree asmname)):
17857         created from cgraph_node_for_asm
17858         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
17859         created from cgraph_same_body_alias
17860         (static bool used_from_object_file_p_worker (cgraph_node *node,
17861         void *): new function
17862         (static bool non_local_p (cgraph_node *node, void *)):
17863         created from cgraph_non_local_node_p_1
17864         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
17865         created from verify_cgraph
17866         (static bool make_local (cgraph_node *node, void *)):
17867         created from cgraph_make_node_local
17868         (static cgraph_node *create_alias (tree alias, tree target)):
17869         created from cgraph_create_function_alias
17870         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
17871         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
17872         created from cgraph_create_edge_1
17873         * cgraph.h (varpool_node):
17874         (void remove (void)): created from varpool_remove_node
17875         (void dump (FILE *f)): created from dump_varpool_node
17876
17877 2014-07-24  Richard Biener  <rguenther@suse.de>
17878
17879         PR ipa/61823
17880         * tree-ssa-structalias.c (create_variable_info_for_1):
17881         Use varpool_get_constructor.
17882         (create_variable_info_for): Likewise.
17883
17884 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17885
17886         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
17887         subtract outgoing area size when restoring stack_pointer_rtx.
17888
17889 2014-07-24  Nick Clifton  <nickc@redhat.com>
17890
17891         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
17892         that operations are taking place in parallel.
17893         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
17894
17895 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
17896
17897         * omp-low.c (extract_omp_for_data): Add missing break statement.
17898
17899 2014-07-24  Richard Biener  <rguenther@suse.de>
17900
17901         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
17902         * tree-inline.c (estimate_move_cost): Add speed_p parameter
17903         and adjust MOVE_RATIO query accordingly.
17904         (estimate_num_insns): Adjust callers.
17905         * ipa-prop.c (ipa_populate_param_decls): Likewise.
17906         * ipa-cp.c (gather_context_independent_values,
17907         estimate_local_effects): Likewise.
17908         * ipa-split.c (consider_split): Likewise.
17909
17910 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
17911
17912         * config/i386/driver-i386.c: Remove names of unused arguments and
17913         unnecessary unused attributes.
17914         * config/i386/host-mingw32.c: Likewise.
17915         * config/i386/i386.c: Likewise.
17916         * config/i386/winnt-stubs.c: Likewise.
17917         * config/i386/winnt.c: Likewise.
17918
17919 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17920
17921         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
17922         (aarch64_gen_loadwb_pair): New helper function.
17923         (aarch64_expand_epilogue): Simplify code using new helper functions.
17924         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
17925
17926 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17927
17928         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
17929         (aarch64_gen_storewb_pair): New helper function.
17930         (aarch64_expand_prologue): Simplify code using new helper functions.
17931         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
17932
17933 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17934
17935         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
17936         Rename to aarch64_save_callee_saves, remove restore code.
17937         (aarch64_restore_callee_saves): New function.
17938
17939 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17940
17941         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
17942         (aarch64_save_callee_saves): New function to handle reg save
17943         for both core and vectore regs.
17944
17945 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17946
17947         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
17948         (aarch64_gen_store_pair): New helper function.
17949         (aarch64_save_or_restore_callee_save_registers)
17950         (aarch64_save_or_restore_fprs): Use new helper functions.
17951
17952 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17953
17954         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
17955         (aarch64_save_or_restore_callee_save_registers)
17956         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
17957
17958 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17959
17960         * config/aarch64/aarch64.c
17961         (aarch64_save_or_restore_callee_save_registers)
17962         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
17963
17964 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17965
17966         * config/aarch64/aarch64.c
17967         (aarch64_save_or_restore_callee_save_registers)
17968         (aarch64_save_or_restore_fprs): Remove 'increment'.
17969
17970 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17971
17972         * config/aarch64/aarch64.c
17973         (aarch64_save_or_restore_callee_save_registers)
17974         (aarch64_save_or_restore_fprs): Use register offset in
17975         cfun->machine->frame.reg_offset.
17976
17977 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17978
17979         * config/aarch64/aarch64.c
17980         (aarch64_save_or_restore_callee_save_registers)
17981         (aarch64_save_or_restore_fprs): Remove base_rtx.
17982
17983 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17984
17985         * config/aarch64/aarch64.c
17986         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
17987         to 'start_offset'.  Remove local variable 'start_offset'.
17988
17989 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17990
17991         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
17992         type to HOST_WIDE_INT.
17993
17994 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17995
17996         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17997         (aarch64_save_or_restore_fprs)
17998         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
17999
18000 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18001
18002         * config/arm/t-rtems-eabi: Add
18003         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18004         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18005         mbig-endian/mthumb/march=armv7-r, and
18006         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18007         multilibs.
18008
18009 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18010             Chris Johns <chrisj@rtems.org>
18011             Joel Sherrill <joel.sherrill@oarcorp.com>
18012
18013         * config.gcc: Add nios2-*-rtems*.
18014         * config/nios2/rtems.h: New file.
18015         * gcc/config/nios2/t-rtems: New file.
18016
18017 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18018
18019         PR target/61396
18020         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18021         constant numbers, not general constants.
18022         (rs6000_expand_vector_init): Ditto.
18023
18024 2014-07-23  Nathan Sidwell  <nathan@acm.org>
18025
18026         * gcov-tool.c (gcov_list): Declare here.
18027         (set_gcov_list): Remove.
18028         (gcov_output_files): Set gcov_list directly.
18029
18030 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
18031
18032         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18033
18034 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18035
18036         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18037         callee-saved registers are available for padding purpose
18038         and r3 is not mandatory, then prefer use those callee-saved
18039         instead of r3.
18040
18041 2014-07-23  Richard Biener  <rguenther@suse.de>
18042
18043         * params.def (PARAM_MAX_COMBINE_INSNS): New.
18044         * combine.c: Include statistics.h and params.h.
18045         (combine_instructions): Guard three and four insn combines
18046         with max-combine-insns value.  Record statistics for combines
18047         performed.
18048         * doc/invoke.texi (max-combine-insns): Document new param.
18049
18050 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18051
18052         * graphite-isl-ast-to-gimple.c:
18053         (translate_isl_ast_node_block): New function.
18054         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18055
18056         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18057         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18058
18059 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18060
18061         * graphite-isl-ast-to-gimple.c:
18062         (get_max_schedule_dimensions): New function.
18063         (extend_schedule): Likewise.
18064         (generate_isl_schedule): Add calling of extend_schedule and
18065         get_max_schedule_dimensions.
18066
18067 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18068
18069         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18070         (case UNSPEC): Handle UNSPEC_RBIT.
18071
18072 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18073
18074         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18075         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18076
18077 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18078
18079         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18080
18081 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
18082
18083         * graphite-isl-ast-to-gimple.c:
18084         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18085         (ivs_params_clear):
18086         (build_iv_mapping): New function.
18087         (translate_isl_ast_node_user): Likewise.
18088         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18089
18090         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18091         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18092         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18093
18094 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18095
18096         PR target/55701
18097         * config/arm/arm.md (setmem): New pattern.
18098         * config/arm/arm-protos.h (struct tune_params): New fields.
18099         (arm_gen_setmem): New prototype.
18100         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18101         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18102         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18103         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18104         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18105         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18106         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18107         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18108         (arm_const_inline_cost): New function.
18109         (arm_block_set_max_insns): New function.
18110         (arm_block_set_non_vect_profit_p): New function.
18111         (arm_block_set_vect_profit_p): New function.
18112         (arm_block_set_unaligned_vect): New function.
18113         (arm_block_set_aligned_vect): New function.
18114         (arm_block_set_unaligned_non_vect): New function.
18115         (arm_block_set_aligned_non_vect): New function.
18116         (arm_block_set_vect, arm_gen_setmem): New functions.
18117
18118 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18119
18120         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18121
18122 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18123
18124         PR target/61855
18125         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18126         out of #ifdef __OPTIMIZE__.
18127
18128 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18129
18130         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18131         different trapping status if -fnon-call-exceptions is enabled.
18132
18133 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18134
18135         * expr.c (store_field): Handle VOIDmode for calls that return values
18136         in multiple locations.
18137
18138 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18139
18140         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18141         (altivec_vsldoi_<mode>): Likewise.
18142
18143 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18144
18145         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18146         to the number of characters in the line.
18147
18148 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18149
18150         * graphite-isl-ast-to-gimple.c: Add using of
18151         build_nonstandard_integer_type instead of int128_integer_type_node.
18152
18153 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18154
18155         * toplev.c (output_stack_usage): Adjust the location of the warning.
18156
18157 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18158
18159         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18160         (*membar_storeload): Disable for LEON3.
18161
18162 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18163
18164         PR rtl-optimization/61461
18165         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18166
18167 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18168
18169         PR target/61794
18170         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18171         Fix instruction constraint.
18172         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18173
18174 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18175
18176         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18177
18178 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18179
18180         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18181         GNU coding standards.
18182         (nds32_register_move_cost): Likewise.
18183         (nds32_memory_move_cost): Likewise.
18184         (nds32_address_cost): Likewise.
18185
18186 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18187
18188         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18189
18190 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18191
18192         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18193         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18194         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18195         (HAVE_sync_compare_and_swapqi): Define.
18196         (HAVE_sync_compare_and_swaphi): Likewise.
18197         (HAVE_sync_compare_and_swapsi): Likewise.
18198
18199 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18200
18201         * config/mips/p5600.md: Add missing cpu tests.
18202
18203 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18204
18205         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18206         (vmla_f64): Likewise.
18207         (vfms_f64): Likewise.
18208         (vmls_f64): Likewise.
18209
18210 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18211
18212         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18213         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18214
18215 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18216
18217         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18218         (vmlal_high_lane_s32): Likewise.
18219         (vmlal_high_lane_u16): Likewise.
18220         (vmlal_high_lane_u32): Likewise.
18221         (vmlsl_high_lane_s16): Likewise.
18222         (vmlsl_high_lane_s32): Likewise.
18223         (vmlsl_high_lane_u16): Likewise.
18224         (vmlsl_high_lane_u32): Likewise.
18225
18226 2014-07-17  Terry Guo  <terry.guo@arm.com>
18227
18228         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18229         (alus_reg): Renamed to alus_sreg.
18230         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18231         from alu_reg to alu_sreg.  Change type of dsp instructions from
18232         alu_reg to alu_dsp_reg.
18233         * config/arm/thumb1.md: Likewise.
18234         * config/arm/thumb2.md: Likewise.
18235         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18236         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18237         with alu_sreg and alus_sreg.
18238         * config/arm/arm1026ejs.md (alu_op): Likewise.
18239         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18240         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18241         * config/arm/fa526.md (526_alu_op): Likewise.
18242         * config/arm/fa606te.md (606te_alu_op): Likewise.
18243         * config/arm/fa626te.md (626te_alu_op): Likewise.
18244         * config/arm/fa726te.md (726te_alu_op): Likewise.
18245         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18246         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18247         alu_sreg, alu_dsp_reg and alus_sreg.
18248         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18249         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18250         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18251         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18252         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18253         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18254         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18255         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18256         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18257         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18258         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18259         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18260         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18261         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18262         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18263         alus_reg to alus_sreg.
18264
18265 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18266
18267         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18268         infinity format.
18269
18270 2014-07-17  Richard Biener  <rguenther@suse.de>
18271
18272         PR rtl-optimization/61801
18273         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18274         don't set reg_pending_barrier if it appears in a debug-insn.
18275
18276 2014-07-16  DJ Delorie  <dj@redhat.com>
18277
18278         * config/rx/rx.c (rx_option_override): Fix alignment values.
18279         (rx_align_for_label): Likewise.
18280
18281 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18282
18283         PR target/61737.
18284         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18285         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18286         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18287         functions.
18288         (cris_print_index, cris_print_operand, cris_constant_index_p)
18289         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18290         (cris_address_cost): Ditto last CONSTANT_P.
18291         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18292         callers changed.  Yield cris_offsettable_symbol for non-PIC
18293         constant symbolic expressions including labels.  Yield cris_unspec
18294         for all unspecs.
18295         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18296         target to pic_offset_table_rtx for calls that will likely go
18297         through PLT, const0_rtx when they can't.  All callers changed.
18298         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18299         symbolic expressions to be PICified.  Remove second, redundant,
18300         assert on can_create_pseudo_p returning non-zero.  Use
18301         replace_equiv_address_nv, not replace_equiv_address, for final
18302         operand update.
18303         * config/cris/cris.md ("movsi"): Move variable t to pattern
18304         toplevel. Adjust assert for new cris_symbol_type member.  Use
18305         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18306         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18307         for lapc stricter.
18308         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18309         ("call", "call_value"): Use second incoming operand as a marker
18310         for pic-offset-table-register being used.
18311         ("*expanded_call_non_v32", "*expanded_call_v32")
18312         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18313         second incoming operand to CALL, match cris_call_type_marker.
18314         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18315         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18316         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18317         CONSTANT_P.
18318         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18319         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18320         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18321         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18322         (cris_symbol_type): Rename from cris_pic_symbol_type.
18323         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18324         just CONSTANT_P.
18325         * config/cris/cris-protos.h (cris_symbol_type_of,
18326         cris_expand_pic_call_address): Adjust prototypes.
18327         (cris_legitimate_constant_p): New prototype.
18328
18329         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18330         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18331
18332 2014-07-17  Jason Merrill  <jason@redhat.com>
18333
18334         PR c++/61623
18335         * symtab.c (symtab_remove_from_same_comdat_group): Also
18336         set_comdat_group to NULL_TREE.
18337         (verify_symtab): Fix diagnostic.
18338
18339 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18340
18341         PR target/61662
18342         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18343
18344 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18345
18346         Support location tracking for built-in macro tokens
18347         * input.h (is_location_from_builtin_token): New function declaration.
18348         * input.c (is_location_from_builtin_token): New function definition.
18349         * toplev.c (general_init): Tell libcpp what the pre-defined
18350         spelling location for built-in tokens is.
18351
18352 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18353
18354         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18355         on the FUNCTION_DECL.
18356
18357 2014-07-16  Richard Biener  <rguenther@suse.de>
18358
18359         PR other/61782
18360         * doc/extend.texi (always_inline): Clarify.
18361
18362 2014-07-15  Eric Christopher  <echristo@gmail.com>
18363
18364         * doc/invoke.texi (Link Options): Document -z option.
18365
18366 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18367
18368         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18369         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18370
18371 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18372
18373         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18374
18375 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18376
18377         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18378         varpool_assemble_decl.
18379         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18380         true.
18381
18382 2014-07-15  Michael Matz  <matz@suse.de>
18383
18384         PR rtl-optimization/61772
18385         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18386
18387 2014-07-15  Richard Biener  <rguenther@suse.de>
18388
18389         * opts.c (default_options_table): Disable bit-ccp at -Og.
18390
18391 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18392
18393         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18394
18395 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18396
18397         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18398         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18399         call langhook for unknown declaration.
18400         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18401         * tree.h (DECL_ARGUMENTS): Update.
18402         * print-tree.c (print_node): Update.
18403         * tree-core.h (tree_decl_non_common): Remove arguments.
18404         (tree_function_decl): Add arguments.
18405
18406 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18407
18408         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18409
18410 2014-07-14  Richard Biener  <rguenther@suse.de>
18411
18412         PR tree-optimization/61779
18413         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18414         simplifying a condition.
18415
18416 2014-07-14  Richard Biener  <rguenther@suse.de>
18417
18418         * builtins.c (c_strlen): Make only_value == 2 really only
18419         affect warning generation.
18420
18421 2014-07-14  Richard Biener  <rguenther@suse.de>
18422
18423         PR tree-optimization/61757
18424         PR tree-optimization/61783
18425         PR tree-optimization/61787
18426         * tree-ssa-dom.c (record_equality): Revert canonicalization
18427         change and add comment.
18428         (propagate_rhs_into_lhs): Revert previous fix, removing
18429         loop depth restriction again.
18430
18431 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18432
18433         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18434         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18435         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18436         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18437         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18438         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18439         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18440
18441 2014-07-14  Richard Biener  <rguenther@suse.de>
18442
18443         * cgraph.h (decl_in_symtab_p): Make inline.
18444
18445 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
18446
18447         PR middle-end/61294
18448         * doc/invoke.texi (-Wmemset-transposed-args): Document.
18449
18450         PR target/61656
18451         * config/i386/i386.c (classify_argument): Don't merge classes above
18452         number of words.
18453
18454 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
18455
18456         * cgraph.h (symtab_node): Add nonzero_address.
18457         (decl_in_symtab_p): Break out from ...
18458         (symtab_get_node): ... here.
18459         * fold-const.c: Include cgraph.h
18460         (tree_single_nonzero_warnv_p): Use symtab to determine
18461         if symbol is non-zero.
18462         * symtab.c (symtab_node::nonzero_address): New method.
18463
18464 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18465
18466         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18467         forgotten in previous commit.
18468
18469 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18470
18471         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18472         on builtin types.
18473         * ipa-devirt.c: Include stor-layout.h and intl.h
18474         (odr_subtypes_equivalent_p): New function.
18475         (warn_odr): New function.
18476         (warn_type_mismatch): New function.
18477         (odr_types_equivalent_p): New function.
18478         (add_type_duplicate): Use it.
18479         * common.opt (Wodr): New flag.
18480         * doc/invoke.texi (Wodr): Document new warning.
18481
18482 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18483
18484         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18485         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18486         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18487         (varpool_get_constructor): Push CTORS_IN timevar.
18488         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18489
18490 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
18491
18492         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
18493         Remove VOID_FTYPE_PUSHORT.
18494         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
18495         Change code to USHORT_FTYPE_VOID.
18496         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
18497         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
18498         (ix86_atomic_assign_expand_fenv): Update for
18499         __builtin_ia32_fnstsw changes.
18500         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
18501         (fnstsw): Change operand 0 to nonimmediate operand.
18502
18503 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18504
18505         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
18506         (varpool_get_constructor): New function.
18507         (varpool_ctor_useable_for_folding_p): Break out from ...
18508         (ctor_for_folding): ... here; use varpool_get_constructor.
18509         (varpool_assemble_decl): Likewise.
18510         * lto-streamer.h (struct output_block): Turn cgraph_node
18511         to symbol filed.
18512         (lto_input_variable_constructor): Declare.
18513         * ipa-visibility.c (function_and_variable_visibility): Use
18514         varpool_get_constructor.
18515         * cgraph.h (varpool_get_constructor): Declare.
18516         (varpool_ctor_useable_for_folding_p): New function.
18517         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
18518         parameter; return error_mark_node for non-trivial constructors.
18519         (lto_write_tree_1, DFS_write_tree): Update use of
18520         get_symbol_initial_value.
18521         (output_function): Update initialization of symbol.
18522         (output_constructor): New function.
18523         (copy_function): Rename to ..
18524         (copy_function_or_variable): ... this one; handle vars too.
18525         (lto_output): Output variable sections.
18526         * lto-streamer-in.c (input_constructor): New function.
18527         (lto_read_body): Rename from ...
18528         (lto_read_body_or_constructor): ... this one; handle vars too.
18529         (lto_input_variable_constructor): New function.
18530         * ipa-prop.c (ipa_prop_write_jump_functions,
18531         ipa_prop_write_all_agg_replacement): Update.
18532         * lto-cgraph.c (compute_ltrans_boundary): Use it.
18533         (output_cgraph_opt_summary): Set symbol to NULL.
18534
18535 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18536
18537         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
18538         non-polymorphic types.
18539         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
18540         * ipa-devirt.c (types_same_for_odr): Do not explode when one
18541         of types is not polymorphic.
18542
18543 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
18544
18545         * lra-constraints.c (remove_inheritance_pseudos): Process
18546         destination pseudo too.
18547
18548 2014-07-11  Rong Xu  <xur@google.com>
18549
18550         * gcov-tool.c (gcov_output_files): Fix build error introduced in
18551         commit r212448.
18552
18553 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18554
18555         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
18556         * config/avr/avr-devices.c (AVR_MCU): Same.
18557         (avr_mcu_types): add text start value to end of device list.
18558         * config/avr/avr-mcus.def: Add text section start for all devices.
18559         (ata5782): Add new avr5 device.
18560         (ata5831): Same.
18561         * config/avr/avr-tables.opt: Regenerate.
18562         * config/avr/avr.h: Add declaration for text section start handler.
18563         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
18564         SPEC functions.
18565         (LINK_SPEC): Include text section start handler to linker spec.
18566         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
18567         pass -Ttext option to linker if the text section start for the device
18568         is not zero.
18569         * config/avr/t-multilib: Regenerate.
18570         * doc/avr-mmcu.texi: Regenerate.
18571
18572 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
18573
18574         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
18575         * config/rs6000/aix52.h (LINK_SPEC): Same.
18576         * config/rs6000/aix53.h (LINK_SPEC): Same.
18577         * config/rs6000/aix61.h (LINK_SPEC): Same.
18578         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
18579
18580 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
18581
18582         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
18583         (graphite_verify): New function.
18584         (ivs_params_clear): New function.
18585         (gcc_expression_from_isl_ast_expr_id): New function.
18586         (gcc_expression_from_isl_expr_int): New function.
18587         (binary_op_to_tree): New function.
18588         (ternary_op_to_tree): New function.
18589         (unary_op_to_tree): New function.
18590         (nary_op_to_tree): New function.
18591         (gcc_expression_from_isl_expr_op): New function.
18592         (gcc_expression_from_isl_expression): New function.
18593         (graphite_create_new_loop): New function.
18594         (translate_isl_ast_for_loop): New function.
18595         (get_upper_bound): New function.
18596         (graphite_create_new_loop_guard): New function.
18597         (translate_isl_ast_node_for): New function.
18598         (translate_isl_ast): New function.
18599         (add_parameters_to_ivs_params): New function.
18600         (scop_to_isl_ast): New parameter ip.
18601         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
18602
18603 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18604
18605         * config/xtensa/predicates.md (call expander): Update for
18606         DECL_SECTION_NAME being string.
18607
18608 2014-07-11  Richard Biener  <rguenther@suse.de>
18609
18610         PR middle-end/61473
18611         * builtins.c (fold_builtin_memory_op): Inline memory moves that
18612         can be implemented with a single load followed by a single store.
18613         (c_strlen): Only warn when only_value is not 2.
18614
18615 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
18616
18617         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
18618
18619 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
18620
18621         PR target/61561
18622         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
18623         (*movhi_bytes): Likewise.
18624         (*arm_movqi_insn): Likewise.
18625
18626 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
18627
18628         PR target/56858
18629         * config/alpha/alpha.c: Include tree-pass.h, context.h
18630         and pass_manager.h.
18631         (pass_data_handle_trap_shadows): New pass.
18632         (pass_handle_trap_shadows::gate): New pass gate function.
18633         (make_pass_handle_trap_shadows): New function.
18634         (rest_of_handle_trap_shadows): Ditto.
18635
18636         (alpha_align_insns_1): Rename from alpha_align_insns.
18637         (pass_data_align_insns): New pass.
18638         (pass_align_insns::gate): New pass gate function.
18639         (make_pass_aling_insns): New function.
18640         (rest_of_align_insns): Ditto.
18641         (alpha_align_insns): Ditto.
18642
18643         (alpha_option_override): Declare handle_trap_shadows info
18644         and align_insns_info.  Register handle_trap_shadows and align_insns
18645         passes here.
18646         (alpha_reorg): Do not call alpha_trap_shadows and
18647         alpha_align_insn from here.
18648
18649         (alpha_pad_function_end): Do not skip BARRIERs.
18650
18651 2014-07-10  Rong Xu  <xur@google.com>
18652
18653         Add gcov-tool: an offline gcda profile processing tool support.
18654         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
18655         (gcov_is_error): Ditto.
18656         (gcov_read_string): Ditto.
18657         (gcov_read_sync): Ditto.
18658         * gcov-io.h: Move counter defines to gcov-counter.def.
18659         * gcov-dump.c (tag_counters): Use gcov-counter.def.
18660         * coverage.c: Ditto.
18661         * gcov-tool.c: Offline gcda profile processing tool.
18662         (unlink_gcda_file): Remove one gcda file.
18663         (unlink_profile_dir): Remove gcda files from the profile path.
18664         (gcov_output_files): Output gcda files to an output dir.
18665         (profile_merge): Merge two profiles in directory.
18666         (print_merge_usage_message): Print merge usage.
18667         (merge_usage): Print merge usage and exit.
18668         (do_merge): Driver for profile merge sub-command.
18669         (profile_rewrite): Rewrite profile.
18670         (print_rewrite_usage_message): Print rewrite usage.
18671         (rewrite_usage): Print rewrite usage and exit.
18672         (do_rewrite): Driver for profile rewrite sub-command.
18673         (print_usage): Print gcov-info usage and exit.
18674         (print_version): Print gcov-info version.
18675         (process_args): Process arguments.
18676         (main): Main routine for gcov-tool.
18677         * Makefile.in: Build and install gcov-tool.
18678         * gcov-counter.def: New file split from gcov-io.h.
18679         * doc/gcc.texi: Include gcov-tool.texi.
18680         * doc/gcov-tool.texi: Document for gcov-tool.
18681
18682 2014-07-10  Richard Biener  <rguenther@suse.de>
18683
18684         PR tree-optimization/61757
18685         * tree-ssa-dom.c (loop_depth_of_name): Restore.
18686         (propagate_rhs_into_lhs): Revert part of last change.
18687
18688 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
18689
18690         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
18691         FUNCTION_DECLs.
18692
18693 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
18694
18695         PR middle-end/53590
18696         * function.c (allocate_struct_function): Revert r188667 change.
18697
18698         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
18699
18700 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
18701
18702         * doc/install.texi: Remove links to defunct package providers for
18703         Solaris.
18704
18705 2014-07-09  Tom de Vries  <tom@codesourcery.com>
18706
18707         * final.c (get_call_fndecl): Declare.
18708         (self_recursive_call_p): New function.
18709         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
18710
18711 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18712
18713         * ipa-devirt.c (record_node): Walk through aliases.
18714
18715 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18716
18717         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
18718
18719 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18720
18721         Revert:
18722         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
18723
18724 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18725
18726         * ipa-visibility.c (function_and_variable_visibility): Remove
18727         temporary hack disabling local aliases on AIX.
18728
18729 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18730
18731         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
18732         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
18733
18734 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18735
18736         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
18737         * rs6000/rs6000.c: Inline output of .set instruction.
18738         (declare_alias_data): New struct.
18739         (rs6000_declare_alias): New function.
18740         (rs6000_xcoff_declare_function_name): Use it.
18741         (rs6000_xcoff_declare_object_name): New function.
18742         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
18743         (ASM_OUTPUT_DEF): Turn to empty definition.
18744
18745 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18746
18747         PR bootstrap/61679
18748         * hash-table.h: use hash_table::value_type instead of
18749         Descriptor::value_type in the return types of several methods.
18750
18751 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18752
18753         * tree-pass.h (pass_data): Remove has_execute member.
18754         * passes.c (execute_one_pass): Don't check pass->has_execute.
18755         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
18756         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
18757         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
18758         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
18759         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
18760         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
18761         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
18762         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
18763         gimple-low.c, gimple-ssa-isolate-paths.c,
18764         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
18765         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
18766         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
18767         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
18768         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
18769         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
18770         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
18771         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
18772         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
18773         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
18774         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
18775         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18776         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
18777         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
18778         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
18779         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
18780         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
18781         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
18782         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
18783         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
18784         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
18785         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
18786         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
18787         web.c: Remove initializer for pass_data::has_execute.
18788
18789 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18790
18791         * graphite-htab.h: Use hash_map instead of hash_table.
18792         * graphite-clast-to-gimple.c: Adjust.
18793         * passes.c: Use hash_map instead of hash_table.
18794         * sese.c: Likewise.
18795         * sese.h: Remove now unused code.
18796
18797 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
18798
18799         PR target/61599
18800         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
18801         than zero.
18802
18803 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18804
18805         PR rtl-optimization/61673
18806         * combine.c (simplify_comparison): Test just mode's sign bit
18807         in tmode rather than the sign bit and any bits above it.
18808
18809 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
18810
18811         * graphite-isl-ast-to-gimple.c (generate_isl_context):
18812         Add __isl_give to the declaration.
18813         (generate_isl_schedule): Likewise.
18814         (scop_to_isl_ast): Likewise.
18815
18816 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18817
18818         * config/arm/arm.c (cortexa5_extra_costs): New table.
18819         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
18820
18821 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18822
18823         PR tree-optimization/61725
18824         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
18825         range, use range_includes_zerop_p instead of integer_zerop on
18826         vr0->min, only use log2 of max if min is not negative.
18827
18828 2014-07-08  Richard Biener  <rguenther@suse.de>
18829
18830         * tree-ssa-dom.h (loop_depth_of_name): Remove.
18831         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
18832         restriction on loop depth difference.
18833         (record_equality): Likewise.
18834         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
18835         (loop_depth_of_name): Remove.
18836         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
18837         restriction on loop depth difference.
18838         (init_copy_prop): Likewise.
18839
18840 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18841
18842         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
18843         parameter.
18844         (walk_aliased_vdefs): Likewise.
18845         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
18846         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
18847         (detect_type_change_from_memory_writes): Check if entry was reached.
18848
18849 2014-07-08  Richard Biener  <rguenther@suse.de>
18850
18851         PR tree-optimization/61681
18852         * tree-ssa-structalias.c (find_what_var_points_to): Expand
18853         NONLOCAL inside ESCAPED.
18854
18855 2014-07-08  Richard Biener  <rguenther@suse.de>
18856
18857         PR tree-optimization/61680
18858         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18859         Handle properly all read-write dependences with group accesses.
18860
18861 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
18862
18863         PR tree-optimization/61576
18864         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
18865         block containing reduction statement is predecessor of phi basi block.
18866
18867 2014-07-08  Marek Polacek  <polacek@redhat.com>
18868
18869         PR c/60226
18870         * fold-const.c (round_up_loc): Change the parameter type.
18871         Remove assert.
18872         * fold-const.h (round_up_loc): Adjust declaration.
18873         * stor-layout.c (finalize_record_size): Check for too large types.
18874
18875 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
18876
18877         * symtab.c: Include calls.h.
18878         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
18879
18880 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
18881
18882         * config/rs6000/rs6000.c (output_vec_const_move): Handle
18883         little-endian code generation.
18884         * config/rs6000/spe.md (spe_evmergehi): Rename to...
18885         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
18886         (spe_evmergehilo): Rename to...
18887         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
18888         (spe_evmergelo): Rename to...
18889         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
18890         (spe_evmergelohi): Rename to...
18891         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
18892         (spe_evmergehi, spe_evmergehilo): New expanders.
18893         (spe_evmergelo, spe_evmergelohi): Likewise.
18894         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
18895         (*frob_tf_ti): Likewise.
18896         (*frob_<mode>_di_2): Likewise.
18897         (*frob_tf_di_8_2): Likewise.
18898         (*frob_di_<mode>): Likewise.
18899         (*frob_ti_tf): Likewise.
18900         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
18901         (*frob_ti_<mode>_8_2): Likewise.
18902         (*frob_ti_tf_2): Likewise.
18903         (mov_si<mode>_e500_subreg0): Rename to...
18904         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
18905         endianness only.
18906         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
18907         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
18908         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
18909         the big endianness only.
18910         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
18911         (*mov_si<mode>_e500_subreg0_2): Rename to...
18912         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
18913         big big endianness only.
18914         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
18915         (*mov_si<mode>_e500_subreg4): Rename to...
18916         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
18917         endianness only.
18918         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
18919         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
18920         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
18921         the big endianness only.
18922         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
18923         pattern.
18924         (*mov_si<mode>_e500_subreg4_2): Rename to...
18925         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
18926         endianness only.
18927         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
18928         (*mov_sitf_e500_subreg8): Rename to...
18929         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
18930         endianness only.
18931         (*mov_sitf_e500_subreg8_le): New instruction pattern.
18932         (*mov_sitf_e500_subreg8_2): Rename to...
18933         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
18934         endianness only.
18935         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
18936         (*mov_sitf_e500_subreg12): Rename to...
18937         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
18938         endianness only.
18939         (*mov_sitf_e500_subreg12_le): New instruction pattern.
18940         (*mov_sitf_e500_subreg12_2): Rename to...
18941         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
18942         endianness only.
18943         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
18944
18945 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18946
18947         * asan.c (instrument_strlen_call): Do not instrument first byte
18948         in strlen if already instrumented.
18949
18950 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18951
18952         * config/arm/arm.opt (mwords-little-endian): Delete.
18953         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
18954         of TARGET_LITTLE_WORDS.
18955         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
18956         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
18957         warning.
18958         * doc/invoke.texi: Remove references to -mwords-little-endian.
18959
18960 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
18961
18962         * expmed.c (struct init_expmed_rtl): Change all fields but
18963         pow2 and cint from struct rtx_def to rtx.
18964         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
18965         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
18966         at the end again.
18967
18968 2014-07-06  Marek Polacek  <polacek@redhat.com>
18969
18970         PR c/6940
18971         * doc/invoke.texi: Document -Wsizeof-array-argument.
18972
18973 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
18974
18975         * wide-int.h (wide_int_storage): Change declaration from struct
18976         to class.
18977
18978 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
18979
18980         * cgraph.c (cgraph_create_indirect_edge): Update call of
18981         get_polymorphic_call_info.
18982         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
18983         (possible_polymorphic_call_targets): Add parameter call.
18984         (decl_maybe_in_construction_p): New predicate.
18985         (get_polymorphic_call_info): Add parameter call;
18986         use decl_maybe_in_construction_p.
18987         * gimple-fold.c (fold_gimple_assign): Update use of
18988         possible_polymorphic_call_targets.
18989         (gimple_fold_call): Likewise.
18990         * ipa-prop.c: Inlcude calls.h
18991         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
18992         (param_type_may_change_p): New predicate.
18993         (detect_type_change_from_memory_writes): Break out from ...
18994         (detect_type_change): ... this one; use param_type_may_change_p.
18995         (detect_type_change_ssa): Use param_type_may_change_p.
18996         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
18997
18998 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
18999
19000         PR target/49423
19001         * config/arm/arm-protos.h (arm_legitimate_address_p,
19002         arm_is_constant_pool_ref): Add prototypes.
19003         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19004         (arm_is_constant_pool_ref) New function.
19005         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19006         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19007         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19008         operand. Remove pool_range and neg_pool_range attributes.
19009         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19010         pool_range and neg_pool_range attributes.
19011         * config/arm/constraints.md (Uh): New constraint.
19012         (Uq): Don't allow constant pool references.
19013
19014 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
19015
19016         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19017         (move_lo_quad_internal_be_<mode>): Likewise.
19018         (move_lo_quad_<mode>): Convert to define_expand.
19019         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19020         (aarch64_simd_move_hi_quad_be_<mode>): New.
19021         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19022         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19023         (aarch64_combinez_be<mode>): New.
19024         (aarch64_combine<mode>): Convert to define_expand.
19025         (aarch64_combine_internal<mode>): New.
19026         (aarch64_simd_combine<mode>): Remove bogus RTL description.
19027
19028 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19029
19030         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19031         combination of earlyclobber and read/write modifiers.
19032
19033 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19034
19035         * config/aarch64/aarch64-simd.md
19036         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19037
19038 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
19039
19040         PR target/61714
19041         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19042
19043 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
19044
19045         PR middle-end/61654
19046         * cgraphunit.c (expand_thunk): Call free_dominance_info.
19047
19048         PR tree-optimization/61684
19049         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19050         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19051
19052 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19053             Kito Cheng  <kito@0xlab.org>
19054             Monk Chiang  <sh.chiang04@gmail.com>
19055
19056         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19057         (nds32_symbol_load_store_p): Move to ...
19058         (nds32_fp_as_gp_check_available): Move to ...
19059         * config/nds32/nds32-fp-as-gp.c: ... here.
19060         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19061         extern declaration.
19062
19063 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19064             Kito Cheng  <kito@0xlab.org>
19065             Monk Chiang  <sh.chiang04@gmail.com>
19066
19067         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19068         (nds32_expand_store_multiple): Move to ...
19069         (nds32_expand_movmemqi): Move to ...
19070         * config/nds32/nds32-memory-manipulation.c: ... here.
19071
19072 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19073             Kito Cheng  <kito@0xlab.org>
19074             Monk Chiang  <sh.chiang04@gmail.com>
19075
19076         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19077         (nds32_output_casesi_pc_relative): Move to ...
19078         (nds32_output_casesi): Move to ...
19079         (nds32_mem_format): Move to ...
19080         (nds32_output_16bit_store): Move to ...
19081         (nds32_output_16bit_load): Move to ...
19082         (nds32_output_32bit_store): Move to ...
19083         (nds32_output_32bit_load): Move to ...
19084         (nds32_output_32bit_load_s): Move to ...
19085         (nds32_output_stack_push): Move to ...
19086         (nds32_output_stack_pop): Move to ...
19087         * config/nds32/nds32-md-auxiliary.c: ... here.
19088
19089 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19090             Ling-Hua Tseng  <uranus@tinlans.org>
19091
19092         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19093         the purpose of this file.
19094
19095 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19096             Kito Cheng  <kito@0xlab.org>
19097             Monk Chiang  <sh.chiang04@gmail.com>
19098
19099         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19100         (nds32_address_cost): Move implementation to ...
19101         * config/nds32/nds32-cost.c: ... here.
19102         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19103         (nds32_address_cost_impl): Declare.
19104
19105 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19106             Kito Cheng  <kito@0xlab.org>
19107             Monk Chiang  <sh.chiang04@gmail.com>
19108
19109         * config/nds32/nds32.c
19110         (nds32_consecutive_registers_load_store_p): Move to ...
19111         (nds32_valid_multiple_load_store): Move to ...
19112         (nds32_valid_stack_push_pop): Move to ...
19113         (nds32_can_use_bclr_p): Move to ...
19114         (nds32_can_use_bset_p): Move to ...
19115         (nds32_can_use_btgl_p): Move to ...
19116         (nds32_can_use_bitci_p): Move to ...
19117         * config/nds32/nds32-predicates.c: ... here.
19118
19119 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19120             Kito Cheng  <kito@0xlab.org>
19121             Monk Chiang  <sh.chiang04@gmail.com>
19122
19123         * config/nds32/nds32.c
19124         (nds32_expand_builtin_null_ftype_reg): Move to ...
19125         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19126         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19127         (nds32_init_builtins): Move implementation to ...
19128         (nds32_expand_builtin): Move implementation to ...
19129         * config/nds32/nds32-intrinsic.c: ... here.
19130         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19131         (nds32_expand_builtin_impl): Declare.
19132
19133 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19134             Kito Cheng  <kito@0xlab.org>
19135             Monk Chiang  <sh.chiang04@gmail.com>
19136
19137         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19138         (nds32_emit_section_tail_template): Move to ...
19139         (nds32_emit_isr_jmptbl_section): Move to ...
19140         (nds32_emit_isr_vector_section): Move to ...
19141         (nds32_emit_isr_reset_conten): Move to ...
19142         (nds32_check_isr_attrs_conflict): Move to ...
19143         (nds32_construct_isr_vectors_information): Move to ...
19144         (nds32_asm_file_start): Move implementation to ...
19145         (nds32_asm_file_end): Move implementation to ...
19146         * config/nds32/nds32-isr.c: ... here.
19147         * config/nds32/nds32-protos.h
19148         (nds32_check_isr_attrs_conflict): Declare.
19149         (nds32_construct_isr_vectors_information): Declare.
19150         (nds32_asm_file_start_for_isr): Declare.
19151         (nds32_asm_file_end_for_isr): Declare.
19152
19153 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19154             Kito Cheng  <kito@0xlab.org>
19155             Monk Chiang  <sh.chiang04@gmail.com>
19156
19157         * config.gcc (nds32*): Add new modules to extra_objs.
19158         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19159         (nds32be-*-*): Likewise.
19160         * config/nds32/nds32-cost.c: New file.
19161         * config/nds32/nds32-fp-as-gp.c: New file.
19162         * config/nds32/nds32-intrinsic.c: New file.
19163         * config/nds32/nds32-isr.c: New file.
19164         * config/nds32/nds32-md-auxiliary.c: New file.
19165         * config/nds32/nds32-memory-manipulation.c: New file.
19166         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19167         * config/nds32/nds32-predicates.c: New file.
19168         * config/nds32/t-nds32: New file.
19169
19170 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19171
19172         PR tree-optimization/61682
19173         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19174         using cases and when one of the operands is equal to 1.
19175
19176 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19177
19178         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19179         ashr<mode>3): Correct mode of operands[2].
19180         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19181         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19182         Correct mode of operands[2].  Fix split condition.
19183
19184 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19185
19186         * arm.md (arch): Add armv6_or_vfpv3.
19187         (arch_enabled): Add test for the above.
19188         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19189         on VFP9.
19190         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19191
19192 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19193
19194         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19195         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19196         HWI 1 and negate the unsigned value.
19197         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19198         use AND instead of shift.
19199         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19200
19201 2014-07-03  Marek Polacek  <polacek@redhat.com>
19202
19203         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19204         (-fsanitize=float-divide-by-zero): Move to the table with
19205         -fsanitize=undefined suboptions.
19206         (-fsanitize=float-cast-overflow): Likewise.
19207
19208 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19209
19210         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19211         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19212         endianness.
19213
19214 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19215
19216         * loop-invariant.c (struct invariant): Add a new member: eqno;
19217         (find_identical_invariants): Update eqno;
19218         (create_new_invariant): Init eqno;
19219         (get_inv_cost): Compute comp_cost with eqno;
19220
19221 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19222
19223         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19224         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19225         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19226         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19227         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19228
19229 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19230
19231         PR target/29349
19232         PR target/53513
19233         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19234         (make_preds_opaque): Delete.
19235         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19236         (commit_mode_sets): New function.
19237         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19238         Process all modes at once.
19239         * basic-block.h (pre_edge_lcm_avs): Declare.
19240         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19241         Call clear_aux_for_edges. Fix comments.
19242         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19243         (pre_edge_rev_lcm): Idem.
19244         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19245         parameter.
19246         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19247         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19248         Idem.
19249         * config/i386/i386.c (x96_emit_mode_set): Idem.
19250         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19251         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19252         (fpscr_toggle) Disallow from delay slot.
19253         * target.def (emit_mode_set): Add prev_mode parameter.
19254         * doc/tm.texi: Regenerate.
19255
19256 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19257
19258         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19259         variable i.
19260
19261 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19262
19263         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19264         vtable_pointer_value_to_vtable): Constify.
19265         (contains_polymorphic_type_p): Declare.
19266         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19267         vtable_pointer_value_to_vtable): Constify.
19268         (contains_polymorphic_type_p): New predicate.
19269         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19270         polymorphic types.
19271         (ipa_set_ancestor_jf): Likewise.
19272         (detect_type_change): Return false in easy cases.
19273         (compute_complex_assign_jump_func): Require type to contain
19274         polymorphic type.
19275         (compute_known_type_jump_func): Likewise.
19276
19277 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19278
19279         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19280         Remove.
19281         (type_in_anonymous_namespace_p): Constify argument.
19282         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19283         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19284         (main_odr_variant): New function.
19285         (hash_type_name): Make static; update assert; do not ICE on
19286         non-records.
19287         (types_same_for_odr): Bring here from tree.c; simplify and remove
19288         old structural comparing code that doesn't work for templates.
19289         (odr_hasher::equal): Update assert.
19290         (add_type_duplicate): Return true when bases should be computed;
19291         replace incomplete loader by complete; do not output duplicated
19292         warnings; do not ICE on non-records; set odr_violated flag.
19293         (get_odr_type): Be ready to replace incomplete type by complete
19294         one; work on ODR variants instead of main variants; reorder item
19295         in array so bases have still smaller indexes.
19296         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19297         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19298
19299 2014-07-01  Cary Coutant  <ccoutant@google.com>
19300
19301         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19302         lookup.
19303         (resolve_addr_in_expr): When replacing the rtx in a location list
19304         entry, get a new address table entry.
19305         (dwarf2out_finish): Call index_location_lists even if there are no
19306         addr_index_table entries yet.
19307
19308 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19309
19310         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19311         change for not being obvious.
19312
19313 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19314
19315         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19316         unused argument.
19317
19318 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19319
19320         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19321         (vcagt_f64): Likewise.
19322         (vcale_f64): Likewise.
19323         (vcaled_f64): Likewise.
19324         (vcales_f32): Likewise.
19325         (vcalt_f64): Likewise.
19326         (vcaltd_f64): Likewise.
19327         (vcalts_f32): Likewise.
19328
19329 2014-07-01  Marek Polacek  <polacek@redhat.com>
19330
19331         * doc/invoke.texi: Document -Wint-conversion.
19332
19333 2014-07-01  Marek Polacek  <polacek@redhat.com>
19334
19335         PR c/58286
19336         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19337
19338 2014-07-01  Martin Liska  <mliska@suse.cz>
19339
19340         IPA REF alias refactoring
19341         * cgraph.h (iterate_direct_aliases): New function.
19342         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19343         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19344         FOR_EACH_ALIAS added.
19345         (cgraph_for_node_and_aliases): Likewise.
19346         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19347         * ipa-inline.c (reset_edge_caches): Likewise.
19348         (update_caller_keys): Likewise.
19349         * trans-mem.c (ipa_tm_execute): Likewise.
19350         *varpool.c (varpool_analyze_node): Likewise.
19351         (varpool_for_node_and_aliases): Likewise.
19352         * ipa-ref.h (first_alias): New function.
19353         (last_alias): Likewise.
19354         (has_aliases_p): Likewise.
19355         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19356         is sensitive to IPA_REF_ALIASes.
19357         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19358         are put at the beginning of the list.
19359         (symtab_node::iterate_direct_aliases): New function.
19360
19361 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19362
19363         Revert:
19364         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19365         type is complete.
19366         (write_ts_type_common_tree_pointers): Do not stream fields not set
19367         for incomplete types; do not stream duplicated fields for variants;
19368         sanity check that variant and type match.
19369         (write_ts_type_non_common_tree_pointers): Likewise.
19370         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19371         TYPE_SIZE whether type is complete.
19372         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19373         write_ts_type_common_tree_pointers
19374         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19375
19376 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19377
19378         * var-tracking.c (add_stores): Return instead of asserting if old
19379         and new values for conditional store are the same.
19380
19381 2014-06-30  Richard Henderson  <rth@redhat.com>
19382
19383         PR rtl-opt/61608
19384         PR target/39284
19385         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19386         the cfg if there were any changes.
19387         * passes.def: Revert move of peephole2 after reorder_blocks;
19388         move duplicate_computed_gotos before peephole2.
19389
19390 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19391
19392         * except.c (emit_note_eh_region_end): New helper function.
19393         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19394         emit EH_REGION_END note.
19395         * jump.c (cleanup_barriers): Do not split a call and its
19396         corresponding CALL_ARG_LOCATION note.
19397
19398 2014-06-30  Jeff Law  <law@redhat.com>
19399
19400         PR tree-optimization/61607
19401         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19402         deeper into the SSA_NAME_VALUE chain.
19403
19404 2014-06-30  Marek Polacek  <polacek@redhat.com>
19405
19406         * convert.c (convert_to_integer): Don't instrument conversions if the
19407         function has no_sanitize_undefined attribute.
19408         * ubsan.c: Don't run the ubsan pass if the function has
19409         no_sanitize_undefined attribute.
19410
19411 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19412
19413         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19414         -fsanitize=undefined suboptions.
19415
19416 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19417
19418         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19419         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19420         against bigendian and adjust indices.
19421
19422 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19423
19424         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19425
19426 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19427
19428         PR target/61633
19429         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19430         Add alternative; make early clobber.  Adjust both split patterns
19431         to use operand 0 as the working register.
19432
19433 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19434
19435         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19436         as ira_object_id_map might be NULL, or 1.
19437
19438 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19439
19440         * loop-invariant.c (get_inv_cost): Handle register class.
19441         (gain_for_invariant): Check the register pressure of the inv
19442         and its overlapped register class, other than all.
19443
19444 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19445
19446         * doc/invoke.texi (Optimize Options): Fix descriptions of
19447         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19448
19449 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
19450
19451         * doc/extend.texi (Function Attributes): Update 'naked' attribute
19452         documentation.
19453
19454 2014-06-29  Tobias Grosser <tobias@grosser.es>
19455
19456         PR bootstrap/61650
19457         * graphite-isl-ast-to-gimple.c: Add missing guards.
19458
19459 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19460
19461         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19462         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19463         * flag-types.h: Add new enum fgraphite_generator.
19464         * graphite-isl-ast-to-gimple.c: New.
19465         * graphite-isl-ast-to-gimple.h: New.
19466         * graphite.c (graphite_transform_loops): Add choice of Graphite
19467         code generator, which depends on flag_graphite_code_gen.
19468
19469 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19470
19471         * graphite-dependences.c (subtract_commutative_associative_deps):
19472         Add NULL checking of the following variables: must_raw_no_source,
19473         may_raw_no_source, must_war_no_source, may_war_no_source,
19474         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19475         must_war, may_war, must_waw, may_waw.
19476
19477 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19478
19479         * graphite-clast-to-gimple.c: gloog is renamed to
19480         graphite_regenerate_ast_cloog.  gloog_error is renamed to
19481         graphite_regenerate_error.
19482         * graphite-clast-to-gimple.h: The definition of the struct
19483         bb_pbb_def is moved to graphite-htab.h.
19484         Add inclusion of the hash-table.h.
19485         * graphite-htab.h: The declaration of the function gloog is moved
19486         to graphite-clast-to-gimple.h and renamed to
19487         graphite_regenerate_ast_cloog.
19488         * graphite.c (graphite_transform_loops): gloog is renamed
19489         to graphite_regenerate_ast_cloog.
19490
19491 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19492
19493         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19494         type is complete.
19495         (write_ts_type_common_tree_pointers): Do not stream fields not set
19496         for incomplete types; do not stream duplicated fields for variants;
19497         sanity check that variant and type match.
19498         (write_ts_type_non_common_tree_pointers): Likewise.
19499         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19500         TYPE_SIZE whether type is complete.
19501         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19502         write_ts_type_common_tree_pointers
19503         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19504
19505 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19506
19507         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
19508
19509 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19510
19511         * tree-inline.c (remap_type_1): Do not duplicate fields
19512         that are shared in between type and its main variant.
19513
19514 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19515
19516         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
19517         of the type.
19518         (ipa_set_ancestor_jf) Likewise.
19519         (check_stmt_for_type_change): Check that we work on main variant.
19520         (detect_type_change): Look into main variant.
19521         (compute_known_type_jump_func): Check that main variant has BINFO.
19522
19523 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19524
19525         * ipa-devirt.c (set_type_binfo): New function.
19526         (add_type_duplicate): Use it.
19527         (get_odr_type): Sanity check that binfos points to main variants.
19528         (get_class_context): Be sure the context's outer_type is main variant.
19529         (contains_type_p): Walk main variant.
19530         (get_polymorphic_call_info_for_decl): Set outer_type to be
19531         main variant.
19532         (get_polymorphic_call_info): Likewise.
19533         (possible_polymorphic_call_targets): Sanity check that we operate
19534         on main variant.
19535
19536 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19537
19538         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19539
19540 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19541
19542         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
19543         accidental change due to wide-int branch merge.
19544
19545 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19546
19547         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
19548         compressed debug support.
19549         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
19550         * configure: Regenerate.
19551         * config.in: Regenerate.
19552         * common.opt (compressed_debug_sections): New enum.
19553         (gz, gz=): New options.
19554         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
19555         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
19556         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
19557         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
19558         LINK_COMPRESS_DEBUG_SPEC.
19559         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
19560         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
19561         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
19562         (Debugging Options): Document -gz[=type].
19563
19564 2014-06-27  Martin Jambor  <mjambor@suse.cz>
19565
19566         PR ipa/61160
19567         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
19568         args_to_skip, use those from node instead.  Copy args_to_skip and
19569         combined_args_to_skip from node to the new thunk.
19570         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
19571         (cgraph_create_virtual_clone): Moved computation of
19572         combined_args_to_skip...
19573         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
19574
19575 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
19576
19577         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
19578         redundant diagnostic machinary.
19579
19580 2014-06-27  Richard Biener  <rguenther@suse.de>
19581
19582         * tree-ssa-math-opts.c (bswap_replace): Fix
19583         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
19584
19585 2014-06-27  Martin Liska  <mliska@suse.cz>
19586
19587         * gimple.h (gimple_location_safe): New function introduced.
19588         * cgraphunit.c (walk_polymorphic_call_targets): Usage
19589         of gimple_location_safe replaces gimple_location.
19590         (gimple_fold_call): Likewise.
19591         * ipa-devirt.c (ipa_devirt): Likewise.
19592         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19593         * ipa.c (walk_polymorphic_call_targets): Likewise.
19594         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
19595
19596 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
19597
19598         PR tree-optimization/57233
19599         PR tree-optimization/61299
19600         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
19601         functions.
19602         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
19603         would be lowered to scalar shifts, check if corresponding
19604         shifts and vector BIT_IOR_EXPR are supported and don't lower
19605         or lower just to narrower vector type in that case.
19606         * expmed.c (expand_shift_1): Fix up handling of vector
19607         shifts and rotates.
19608
19609 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
19610
19611         PR target/61586
19612         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
19613
19614 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
19615
19616         * doc/invoke.texi (-fsemantic-interposition): Document.
19617         * common.opt (fsemantic-interposition): New flag.
19618         * varasm.c (decl_replaceable_p): Use it.
19619
19620 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19621
19622         PR target/61542
19623         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
19624         extraction other than index 3.
19625
19626 2014-06-26  Teresa Johnson  <tejohnson@google.com>
19627
19628         * doc/invoke.texi: Fix typo.
19629         * dumpfile.c: Add support for documented -fdump-* options
19630         optimized/missed/note/optall.
19631
19632 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19633
19634         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
19635         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
19636         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
19637         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
19638         * opts.c (default_options_optimization): Set
19639         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
19640         * doc/invoke.texi (allow-load-data-races)
19641         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
19642         (allow-store-data-races): Document the new default.
19643
19644 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19645
19646         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
19647         renamed to ipa_impossible_devirt_target.  Fix typo.
19648         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
19649         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
19650         ipa_impossible_devirt_target.
19651
19652 2014-06-26  Richard Biener  <rguenther@suse.de>
19653
19654         PR tree-optimization/61607
19655         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
19656         explaining why we restrict copies on loop depth.
19657         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19658         on loop depth.
19659         (record_equivalences_from_phis): Instead add it here.
19660
19661 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
19662
19663         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
19664         (LTO_WRAPPER_OBJS): New variable.
19665         (lto-wrapper$(exeext)): Use it.
19666         * collect2.c: Include "collect-utils.h".
19667         (verbose, debug): Remove variables.
19668         (at_file_supplied): No longer static.
19669         (tool_name): New variable.
19670         (do_wait, fork_execute, maybe_unlink): Don't declare.
19671         (tool_cleanup): No longer static.
19672         (notice): Remove function.
19673         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
19674         fork_execute calls.
19675         (collect_wait, do_wait, collect_execute): Remove functions.
19676         (maybe_unlink): No longer static.
19677         * collect2.h (verbose, debug): Don't declare.
19678         (at_file_supplied): Declare.
19679         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
19680         changed.
19681         (collect_execute): Replace with implementation from collect2, plus a
19682         new arg use_atfile.  All callers changed.
19683         (collect_wait): Replace with implementation from collect2.
19684         (maybe_unlink_file): Remove function.
19685         (fork_execute): Replace with implementation from collect2, plus a
19686         new arg use_atfile.  All callers changed.
19687         (do_wait): Add call to utils_cleanup to the error path.
19688         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
19689         (tool_cleanup): Adjust declarations.
19690         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
19691         * tlink.c: Include "collect-utils.h".
19692         (tlink_execute): New arg use_atfile.  All callers changed.
19693         (tlink_init, tlink_execute): Remove declarations.
19694
19695         * collect-utils.c (save_temps): New variable.
19696         (do_wait): Use it instead of debug.  Use fatal_error.
19697         * collect-utils.h (save_temps): Declare.
19698         * collect2.c (verbose): Rename from vflag.  All uses changed.
19699         (tool_cleanup): New function, copied from collect_atexit.
19700         (collect_atexit, handler): Just call it.
19701         * collect2.h (verbose): Declaration renamed from vflag.
19702         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
19703         debug.
19704
19705         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
19706         (lto-wrapper$(exeext)): Link with collect-utils.o.
19707         * collect-utils.c: New file.
19708         * collect-utils.h: New file.
19709         * lto-wrapper.c: Include "collect-utils.h".
19710         (args_name): Delete variable.
19711         (tool_name): New variable.
19712         (tool_cleanup): New function.
19713         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
19714         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
19715         (fork_execute): Remove functions.
19716
19717 2014-06-26  Nick Clifton  <nickc@redhat.com>
19718
19719         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
19720
19721         * doc/extend.texi (Function Attributes): Fix typo in description
19722         of RX vector attribute.
19723
19724 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
19725
19726         * config.gcc (supported_defaults): Error when passing either
19727         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
19728
19729 2014-06-26  Richard Biener  <rguenther@suse.de>
19730
19731         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19732         propagating volatile pointers.
19733
19734 2014-06-26  Richard Biener  <rguenther@suse.de>
19735
19736         PR tree-optimization/61607
19737         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
19738         loop if we redirected its latch edge.
19739         (thread_block_1): Do not cancel loops prematurely.
19740
19741 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
19742
19743         * toplev.c (backend_init_target): Move init_emit_regs and
19744         init_regs to...
19745         (backend_init) ... here; skip ira_init_once and backend_init_target.
19746         (target_reinit) ... and here; clear
19747         this_target_rtl->lang_dependent_initialized.
19748         (lang_dependent_init_target): Clear
19749         this_target_rtl->lang_dependent_initialized;
19750         break out rtl initialization to ...
19751         (initialize_rtl): ... here; call also backend_init_target
19752         and ira_init_once.
19753         * toplev.h (initialize_rtl): New function.
19754         * function.c: Include toplev.h
19755         (init_function_start): Call initialize_rtl.
19756         * rtl.h (target_rtl): Add target_specific_initialized,
19757         lang_dependent_initialized.
19758
19759 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
19760             Jakub Jelinek  <jakub@redhat.com>
19761
19762         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
19763
19764 2014-06-25  Tom de Vries  <tom@codesourcery.com>
19765
19766         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
19767
19768 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19769
19770         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
19771         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
19772         Issue a strict overflow warning if appropriate.
19773
19774 2014-06-25  Martin Liska  <mliska@suse.cz>
19775
19776         IPA REF refactoring
19777         * Makefile.in: Removed header file (ipa-ref-inline.h).
19778         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
19779         called.
19780         (cgraph_speculative_call_info): Likewise.
19781         (cgraph_for_node_thunks_and_aliases): Likewise.
19782         (cgraph_for_node_and_aliases): Likewise.
19783         (verify_cgraph_node): Likewise.
19784         * cgraph.h: Batch of IPA REF functions become member functions of
19785         symtab_node: add_reference, maybe_add_reference, clone_references,
19786         clone_referring, clone_reference, find_reference,
19787         remove_stmt_references, remove_all_references,
19788         remove_all_referring, dump_references, dump_referring,
19789         has_alias_p, iterate_reference, iterate_referring.
19790         * cgraphbuild.c (record_reference): New IPA REF function used.
19791         (record_type_list): Likewise.
19792         (record_eh_tables): Likewise.
19793         (mark_address): Likewise.
19794         (mark_load): Likewise.
19795         (mark_store): Likewise.
19796         (pass_build_cgraph_edges): Likewise.
19797         (rebuild_cgraph_edge): Likewise.
19798         (cgraph_rebuild_references): Likewise.
19799         (pass_remove_cgraph_callee_edges): Likewise.
19800         * cgraphclones.c (cgraph_clone_node): Likewise.
19801         (cgraph_create_virtual_clone): Likewise.
19802         (cgraph_materialize_clone): Likewise.
19803         (cgraph_materialize_all_clones): Likewise.
19804         * cgraphunit.c (cgraph_reset_node): Likewise.
19805         (cgraph_reset_node): Likewise.
19806         (analyze_function): Likewise.
19807         (assemble_thunks_and_aliases): Likewise.
19808         (expand_function): Likewise.
19809         * ipa-comdats.c (propagate_comdat_group): Likewise.
19810         (enqueue_references): Likewise.
19811         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
19812         (create_specialized_node): Likewise.
19813         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
19814         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
19815         * ipa-inline.c (reset_edge_caches): Likewise.
19816         (update_caller_keys): Likewise.
19817         (execute): Likewise.
19818         * ipa-prop.c (remove_described_reference): Likewise.
19819         (propagate_controlled_uses): Likewise.
19820         (ipa_edge_duplication_hook): Likewise.
19821         (ipa_modify_call_arguments): Likewise.
19822         * ipa-pure-const.c (propagate_pure_const): Likewise.
19823         * ipa-ref-inline.h: Header file removed, functions moved
19824         to symtab_node class.
19825         * ipa-ref.c (remove_reference): New class member function.
19826         (cannot_lead_to_return): New class member function.
19827         (referring_ref_list): Likewise.
19828         (referred_ref_list): Likewise.
19829         Rest of functions moved to symtab_node class.
19830         * ipa-ref.h: New member functions remove_reference,
19831         cannot_lead_to_return, referring_ref_list, referred_ref_list added
19832         to ipa_ref class.
19833         ipa_ref_list class has new member functions: first_reference,
19834         first_referring, clear, nreferences.
19835         * ipa-reference.c (analyze_function): New IPA REF function used.
19836         (write_node_summary_p): Likewise.
19837         (ipa_reference_write_optimization_summary): Likewise.
19838         * ipa-split.c (split_function): Likewise.
19839         * ipa-utils.c (ipa_reverse_postorder): Likewise.
19840         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
19841         (function_and_variable_visibility): Likewise.
19842         * ipa.c (has_addr_references_p): Likewise.
19843         (process_references): Argument type changed.
19844         (symtab_remove_unreachable_nodes): New IPA REF function used.
19845         (process_references): Likewise.
19846         (set_writeonly_bit): Likewise.
19847         * lto-cgraph.c: Implementation of new symtab_node member functions
19848         that uses new IPA REF functions.
19849         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
19850         function used.
19851         * lto-streamer-out.c (output_symbol_p): Likewise.
19852         * lto-streamer.h (referenced_from_this_partition_p): Argument type
19853         changed.
19854         * symtab.c: Implementation of new IPA REF API.
19855         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
19856         (ipa_tm_create_version): Likewise.
19857         (ipa_tm_execute): Likewise.
19858         * tree-emutls.c (gen_emutls_addr): Likewise.
19859         * tree-inline.c (copy_bb): Likewise.
19860         (delete_unreachable_blocks_update_callgraph): Likewise.
19861         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
19862         (varpool_for_node_and_aliases): Likewise.
19863
19864 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19865
19866         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
19867
19868 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19869
19870         PR bootstrap/61598
19871         * fold-const.c (fold_checksum_tree): Use a hash_table of const
19872         tree_node * instead of tree_node *.
19873         (fold): Adjust.
19874         (print_fold_checksum): Likewise.
19875         (fold_check_failed): Likewise.
19876         (debug_fold_checksum): Likewise.
19877         (fold_build1_stat_loc): Likewise.
19878         (fold_build2_stat_loc): Likewise.
19879         (fold_build3_stat_loc): Likewise.
19880         (fold_build_call_array_loc): Likewise.
19881
19882 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
19883
19884         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
19885         implementation with call to...
19886         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
19887         function.
19888         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
19889         Declare.
19890
19891 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
19892
19893         PR tree-optimization/57742
19894         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
19895         after replacing the statement.
19896
19897 2014-06-25  Nick Clifton  <nickc@redhat.com>
19898
19899         * config/v850/v850.c (GHS_default_section_names): Change to const
19900         char * type.
19901         (GHS_current_section_names): Likewise.
19902         (v850_insert_attributes): Do not build strings, just assign the
19903         names directly.  Change the type of 'chosen_section' to const
19904         char*.
19905         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
19906         directly to the array entry.
19907         * config/v850/v850.h (GHS_default_section_names): Change to const
19908         char * type.
19909         (GHS_current_section_names): Likewise.
19910
19911 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
19912
19913         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
19914         (LANG_HOOKS_DECLS): Add it.
19915         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
19916         has correct type.
19917         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
19918         * langhooks.h (struct lang_hooks_for_decls): Add
19919         omp_clause_linear_ctor hook.
19920         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
19921         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
19922         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
19923         combined simd loop use omp_clause_linear_ctor hook.
19924
19925 2014-06-24  Cong Hou  <congh@google.com>
19926
19927         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
19928         pattern recognition.
19929         (type_conversion_p): PROMOTION is true if it's a type promotion
19930         conversion, and false otherwise.  Return true if the given expression
19931         is a type conversion one.
19932         * tree-vectorizer.h: Adjust the number of patterns.
19933         * tree.def: Add SAD_EXPR.
19934         * optabs.def: Add sad_optab.
19935         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
19936         * expr.c (expand_expr_real_2): Likewise.
19937         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
19938         * gimple.c (get_gimple_rhs_num_ops): Likewise.
19939         * optabs.c (optab_for_tree_code): Likewise.
19940         * tree-cfg.c (estimate_operator_cost): Likewise.
19941         * tree-ssa-operands.c (get_expr_operands): Likewise.
19942         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
19943         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
19944         * doc/generic.texi: Add document for SAD_EXPR.
19945         * doc/md.texi: Add document for ssad and usad.
19946
19947 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19948
19949         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
19950         qualification in cast.
19951
19952 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
19953
19954         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
19955         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
19956         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
19957         (tree_function_decl): ... here.
19958         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
19959         streaming of vindex to ...
19960         (write_ts_function_decl_tree_pointers): ... here.
19961         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
19962         Do not stream DECL_VINDEX.
19963         (lto_input_ts_function_decl_tree_pointers): Stream it here.
19964
19965 2014-06-24  Catherine Moore  <clm@codesourcery.com>
19966             Sandra Loosemore  <sandra@codesourcery.com>
19967
19968         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
19969         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
19970         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
19971
19972 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19973
19974         * doc/invoke.texi (Warning Options): Remove duplicated
19975         -Wmaybe-uninitialized.
19976
19977 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19978
19979         PR tree-optimization/57742
19980         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
19981         (handle_builtin_malloc, handle_builtin_memset): New functions.
19982         (strlen_optimize_stmt): Call them.
19983         * passes.def: Move strlen after loop+dom but before vrp.
19984
19985 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
19986
19987         PR target/61570
19988         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
19989         model family 6 CPU with has_longmode never use a CPU without
19990         64-bit support.
19991
19992 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
19993
19994         PR target/61570
19995         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
19996         the last change.
19997
19998 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19999
20000         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20001         * dominance.c (iterate_fix_dominators): Use hash_map instead of
20002         pointer_map.
20003         * hash-map.h: New file.
20004         * ipa-comdats.c: Use hash_map instead of pointer_map.
20005         * ipa.c: Likewise.
20006         * lto-section-out.c: Adjust.
20007         * lto-streamer.h: Replace pointer_map with hash_map.
20008         * symtab.c (verify_symtab): Likewise.
20009         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20010         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20011         * tree-streamer.h: Likewise.
20012         * tree-streamer.c: Adjust.
20013         * pointer-set.h: Remove pointer_map.
20014
20015 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20016
20017         * hash-table.h: Add a template arg to choose between storing values
20018         and storing pointers to values, and then provide partial
20019         specializations for both.
20020         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20021         should store, not the type values should point to.
20022         * tree-into-ssa.c (var_info_hasher): Likewise.
20023         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20024         * tree-complex.c: Adjust.
20025         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20026         table instead of int_tree_map *.
20027         * tree-parloops.c: Adjust.
20028         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20029         type is being stored.
20030         * tree-vectorizer.c: Adjust.
20031
20032 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20033
20034         * hash-table.h: Remove a layer of indirection from hash_table so that
20035         it contains the hash table's data instead of a pointer to the data.
20036         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20037         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20038         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20039         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20040         fold-const.c, gcse.c, ggc-common.c,
20041         gimple-ssa-strength-reduction.c, gimplify.c,
20042         graphite-clast-to-gimple.c, graphite-dependences.c,
20043         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20044         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20045         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20046         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20047         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20048         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20049         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20050         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20051         tree-ssa-live.c, tree-ssa-loop-im.c,
20052         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20053         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20054         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20055         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20056         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20057         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20058         vtable-verify.c, vtable-verify.h: Adjust.
20059
20060 2014-06-24  Richard Biener  <rguenther@suse.de>
20061
20062         PR tree-optimization/61572
20063         * tree-ssa-sink.c (statement_sink_location): Do not sink
20064         loads from hard registers.
20065
20066 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20067
20068         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20069         not mentioned in clauses use private clause if the iterator is
20070         declared in #pragma omp for simd, and when adding lastprivate
20071         instead, add it to the outer #pragma omp for too.  Diagnose
20072         if the variable is private in outer context.  For simd collapse > 1
20073         loops, replace all iterators with temporaries.
20074         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20075         same even in collapse > 1 loops.
20076
20077         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20078         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20079         non-NULL.
20080         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20081         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20082         non-NULL.
20083         (gimplify_adjust_omp_clauses): Likewise.
20084         * omp-low.c (lower_rec_simd_input_clauses,
20085         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20086         safelen the same as safelen(1).
20087         * tree-nested.c (convert_nonlocal_omp_clauses,
20088         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
20089         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20090         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20091         Fixup handling of GIMPLE_OMP_TARGET.
20092         (convert_tramp_reference_stmt, convert_gimple_call): Handle
20093         GIMPLE_OMP_TARGET.
20094
20095 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
20096
20097         PR tree-optimization/61554
20098         * tree-ssa-propagate.c: Include "bitmap.h".
20099         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20100         properly update constructor/destructor.
20101         (substitute_and_fold_dom_walker::before_dom_children):
20102         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20103         need_eh_cleaup instead.
20104         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20105         need_eh_cleanup.
20106
20107 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20108
20109         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20110         * tree-pass.h (make_pass_ipa_single_use): New pass.
20111         * cgraph.h (used_by_single_function): New flag.
20112         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20113         Stream it.
20114         * passes.def (pass_ipa_single_use): Scedule.
20115         * ipa.c (BOTTOM): New macro.
20116         (meet): New function
20117         (propagate_single_user): New function.
20118         (ipa_single_use): New function.
20119         (pass_data_ipa_single_use): New pass.
20120         (pass_ipa_single_use): New pass.
20121         (pass_ipa_single_use::gate): New gate.
20122         (make_pass_ipa_single_use): New function.
20123
20124 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20125
20126         PR target/39284
20127         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20128         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20129
20130 2014-06-23  Richard Biener  <rguenther@suse.de>
20131
20132         * tree-ssa-loop.c (gate_loop): New function.
20133         (pass_tree_loop::gate): Call it.
20134         (pass_data_tree_no_loop, pass_tree_no_loop,
20135         make_pass_tree_no_loop): New.
20136         * tree-vectorizer.c: Include tree-scalar-evolution.c
20137         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20138         required.
20139         (pass_slp_vectorize::clone): New method.
20140         * timevar.def (TV_TREE_NOLOOP): New.
20141         * tree-pass.h (make_pass_tree_no_loop): Declare.
20142         * passes.def (pass_tree_no_loop): New pass group with
20143         SLP vectorizer.
20144
20145 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20146
20147         PR target/61570
20148         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20149         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20150
20151 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20152
20153         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20154         "yes" where needed.
20155
20156 2014-06-23  Alan Modra  <amodra@gmail.com>
20157
20158         PR bootstrap/61583
20159         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20160         to zero on debug statements.
20161
20162 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20163
20164         PR target/60825
20165         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20166         Ignore third operand if present by marking qualifier_internal.
20167
20168         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20169
20170         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20171         vector extension.
20172         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20173         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20174         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20175         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20176         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20177         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20178         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20179         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20180         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20181         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20182         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20183         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20184         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20185         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20186         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20187         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20188         logic in GCC vector extensions
20189
20190         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20191         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20192         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20193         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20194         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20195         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20196         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20197         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20198         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20199         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20200
20201         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20202
20203         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20204         extensions.
20205
20206         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20207         (vget_low_s64): Use __GET_LOW macro.
20208         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20209         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20210         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20211         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20212         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20213
20214         (vcombine_s64): Use GCC vector extensions; remove cast.
20215         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20216         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20217         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20218         Fix type signature; remove cast.
20219
20220 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20221
20222         PR target/60825
20223         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20224         V1DFmode.
20225         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20226         add V1DFmode
20227         (BUILTIN_VD1): New.
20228         (BUILTIN_VD_RE): Remove.
20229         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20230         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20231         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20232         variant but not df.
20233         (vreinterpretv1df*, vreinterpret*v1df): New.
20234         (vreinterpretdf*, vreinterpret*df): Remove.
20235         * config/aarch64/aarch64-simd.md (aarch64_create,
20236         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20237         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20238         (VD1): New.
20239         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20240         (vcreate_f64): Remove cast, use v1df builtin.
20241         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20242         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20243         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20244         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20245         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20246         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20247         add range check using __builtin_aarch64_im_lane_boundsi.
20248         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20249         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20250         type signature, use gcc vector extensions.
20251         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20252         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20253         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20254         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20255         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20256         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20257         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20258         vreinterpret_u64_f64): Use v1df builtin not df.
20259
20260 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20261
20262         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20263         vector registers.
20264
20265 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20266
20267         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20268         priority directly.
20269
20270 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20271
20272         * loop-invariant.c (pre_check_invariant_p): New function.
20273         (find_invariant_insn): Call pre_check_invariant_p.
20274
20275 2014-06-22  Richard Henderson  <rth@redhat.com>
20276
20277         PR target/61565
20278         * compare-elim.c (struct comparison): Add eh_note.
20279         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20280         a redundant comparison in a different EH region.  Purge EH edges if
20281         necessary.
20282
20283 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20284
20285         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20286         (var_shift): Use it.
20287         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20288         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20289         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20290         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20291         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20292         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20293         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20294         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20295         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20296         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20297         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20298         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20299         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20300         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20301         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20302         *rotldi3_internal15be): Use the new attribute.  Merge register and
20303         integer alternatives.
20304
20305 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20306
20307         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20308         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20309         split, *ashrdi3_internal3 and split): Delete, merge into...
20310         (ashr<mode>3): New expander.
20311         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20312         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20313
20314 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20315
20316         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20317         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20318         *rotldi3_internal3 and split): Delete, merge into...
20319         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20320         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20321         Use "rotlw" extended mnemonic.
20322
20323 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20324
20325         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20326         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20327         and split, *ashldi3_internal3 and split): Delete, merge into...
20328         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20329         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20330
20331 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20332
20333         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20334         (lshrsi3, two anonymous define_insns and define_splits,
20335         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20336         *lshrdi3_internal3 and split): Delete, merge into...
20337         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20338         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20339
20340 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20341
20342         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20343         Remove "O" alternative.
20344
20345 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20346
20347         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20348         (mips_move_from_gpr_cost): Likewise.
20349         (mips_register_move_cost): Update accordingly.
20350         (mips_secondary_reload_class): Remove name of in_p.
20351
20352 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20353
20354         PR target/61503
20355         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20356         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20357
20358 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20359
20360         * config/nios2/nios2.c: Include "builtins.h".
20361
20362 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20363
20364         * cgraph.h (tls_model_names): New variable.
20365         * print-tree.c (print_node): Simplify.
20366         * varpool.c (tls_model_names): New variable.
20367         (dump_varpool_node): Output tls model.
20368
20369 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20370
20371         * ipa-visibility.c (function_and_variable_visibility): Disable
20372         temporarily local aliases for some targets.
20373
20374 2014-06-20  Marek Polacek  <polacek@redhat.com>
20375
20376         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20377         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20378         into SANITIZE_UNDEFINED.
20379         * doc/invoke.texi: Describe -fsanitize=bounds.
20380         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20381         functions created in the FEs.
20382         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20383         (expand_UBSAN_BOUNDS): New function.
20384         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20385         * internal-fn.h: Don't define internal functions here.
20386         * opts.c (common_handle_option): Add -fsanitize=bounds.
20387         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20388         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20389         * tree-core.h: Define internal functions here.
20390         (struct tree_base): Add ifn field.
20391         * tree-pretty-print.c: Include "internal-fn.h".
20392         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20393         * tree.c (get_callee_fndecl): Likewise.
20394         (build_call_expr_internal_loc): New function.
20395         * tree.def (CALL_EXPR): Update description.
20396         * tree.h (CALL_EXPR_IFN): Define.
20397         (build_call_expr_internal_loc): Declare.
20398         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20399         types.
20400         (ubsan_type_descriptor): Change bool parameter to enum
20401         ubsan_print_style.  Adjust the code.  Add handling of
20402         UBSAN_PRINT_ARRAY.
20403         (ubsan_expand_bounds_ifn): New function.
20404         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20405         (ubsan_build_overflow_builtin): Likewise.
20406         (instrument_bool_enum_load): Likewise.
20407         (ubsan_instrument_float_cast): Likewise.
20408         * ubsan.h (enum ubsan_print_style): New enum.
20409         (ubsan_expand_bounds_ifn): Declare.
20410         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20411
20412 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20413
20414         * config/rs6000/rs6000.md: Append `DONE' to preparation
20415         statements of `bswap' pattern splitters.
20416
20417 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20418
20419         * target.def (call_fusage_contains_non_callee_clobbers): Update
20420         definition.
20421         * doc/tm.texi: Regenerate.
20422
20423 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20424             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20425
20426         PR sanitizer/61547
20427         * asan.c (instrument_strlen_call): Fixed instrumentation of
20428         trailing byte.
20429
20430 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20431
20432         PR ipa/61540
20433         * ipa-prop.c (impossible_devirt_target): New function.
20434         (try_make_edge_direct_virtual_call): Use it, also instead of
20435         asserting.
20436
20437 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20438             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20439
20440         PR sanitizer/61530
20441         * asan.c (build_check_stmt): Add condition.
20442
20443 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20444
20445         PR ipa/61211
20446         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20447         expanded clones.
20448
20449 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20450
20451         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20452         Update comments.
20453         (VCONQ): Make comment more helpful.
20454         (VCON): Delete.
20455         * config/aarch64/aarch64-simd.md
20456         (aarch64_sqdmulh_lane<mode>):
20457         Use VCOND for operands 2.  Update lane checking and flipping logic.
20458         (aarch64_sqrdmulh_lane<mode>): Likewise.
20459         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20460         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20461         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20462         attribute of operand 3 to VCOND.
20463         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20464         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20465         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20466         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20467         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20468         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20469         define_insn.
20470         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20471         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20472         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20473         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20474         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20475         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20476         operand to VCOND.  Update lane flipping and bounds checking logic.
20477         (aarch64_sqdmlal2_lane<mode>): Likewise.
20478         (aarch64_sqdmlsl_lane<mode>): Likewise.
20479         (aarch64_sqdmull_lane<mode>): Likewise.
20480         (aarch64_sqdmull2_lane<mode>): Likewise.
20481         (aarch64_sqdmlal_laneq<mode>):
20482         Replace VCON usage with VCONQ.
20483         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20484         (aarch64_sqdmlal2_laneq<mode>): Emit
20485         aarch64_sqdmlal2_laneq<mode>_internal insn.
20486         Replace VCON with VCONQ.
20487         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20488         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20489         (aarch64_sqdmull_laneq<mode>): Emit
20490         aarch64_sqdmull_laneq<mode>_internal insn.
20491         Replace VCON with VCONQ.
20492         (aarch64_sqdmull2_laneq<mode>): Emit
20493         aarch64_sqdmull2_laneq<mode>_internal insn.
20494         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
20495         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
20496         of 3rd argument to int16x4_t.
20497         (vqdmlalh_lane_s16): Likewise.
20498         (vqdmlslh_lane_s16): Likewise.
20499         (vqdmull_high_lane_s16): Likewise.
20500         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
20501         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
20502         (vqdmlsl_lane_s16): Likewise.
20503         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
20504         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
20505         (vqdmlals_lane_s32): Likewise.
20506         (vqdmlsls_lane_s32): Likewise.
20507         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
20508         (vqdmulls_lane_s32): Likewise.
20509         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
20510         (vqdmlsl_lane_s32): Likewise.
20511         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
20512         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
20513         (vqrdmulhh_lane_s16): Likewise.
20514         (vqdmlsl_high_lane_s16): Likewise.
20515         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
20516         (vqdmlsl_high_lane_s32): Likewise.
20517         (vqrdmulhs_lane_s32): Likewise.
20518
20519 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20520
20521         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
20522         get_call_reg_set_usage.
20523
20524 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20525
20526         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
20527         it contains all call_used_regs.
20528
20529 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20530
20531         * final.c (collect_fn_hard_reg_usage): Add and use variable
20532         function_used_regs.
20533
20534 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20535
20536         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
20537         (set_init_priority, get_init_priority, set_fini_priority,
20538         get_fini_priority): New methods.
20539         * tree.c (init_priority_for_decl): Remove.
20540         (init_ttree): Do not initialize init priority.
20541         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
20542         (decl_priority_info): Remove.
20543         (decl_init_priority_insert): Rewrite.
20544         (decl_fini_priority_insert): Rewrite.
20545         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
20546         tree_priority_map_marked_p): Remove.
20547         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
20548         * lto-streamer-out.c (hash_tree): Do not hash priorities.
20549         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
20550         not output priorities.
20551         (pack_ts_function_decl_value_fields): Likewise.
20552         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20553         not input priorities.
20554         (unpack_ts_function_decl_value_fields): Likewise.
20555         * symtab.c (symbol_priority_map): Declare.
20556         (init_priority_hash): Declare.
20557         (symtab_unregister_node): Unregister from priority hash, too.
20558         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
20559         New methods.
20560         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
20561         (symbol_priority_info): New function.
20562         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
20563         New methods.
20564         * tree-core.h (tree_priority_map): Remove.
20565
20566 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
20567
20568         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
20569         0xff to uint64_t before shifting it up.
20570
20571 2014-06-20  Julian Brown  <julian@codesourcery.com>
20572             Chung-Lin Tang  <cltang@codesourcery.com>
20573
20574         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
20575         TARGET_THUMB1_ONLY. Add comments.
20576
20577 2014-06-19  Tom de Vries  <tom@codesourcery.com>
20578
20579         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
20580         return type to void.
20581         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
20582
20583 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20584
20585         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
20586         as "move", from depends_on.
20587
20588 2014-06-19  Terry Guo  <terry.guo@arm.com>
20589
20590         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
20591         stage.
20592
20593 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
20594
20595         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
20596         Remove cr5.
20597         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
20598
20599 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20600
20601         PR target/61550
20602         * config/sh/sh.c (prepare_move_operands): Don't process TLS
20603         addresses here if reload in progress or completed.
20604
20605 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20606
20607         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
20608         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
20609         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
20610         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
20611         (mips_register_priority): New function that implements the target
20612         hook TARGET_REGISTER_PRIORITY.
20613         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
20614         (mips_lra_p): Likewise for TARGET_LRA_P.
20615         (TARGET_REGISTER_PRIORITY): Define macro.
20616         (TARGET_SPILL_CLASS): Likewise.
20617         (TARGET_LRA_P): Likewise.
20618         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
20619         classes.
20620         (REG_CLASS_NAMES): Likewise.
20621         (REG_CLASS_CONTENTS): Likewise.
20622         (BASE_REG_CLASS): Use M16_SP_REGS.
20623         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
20624         New set attribute to enable alternatives depending on the register
20625         allocator used.
20626         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
20627         (*lea64): Disable pattern for MIPS16.
20628         * config/mips/mips.opt (mlra): New option.
20629
20630 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20631
20632         * lra-constraints.c (base_to_reg): New function.
20633         (process_address): Use new function.
20634
20635 2014-06-18  Tom de Vries  <tom@codesourcery.com>
20636
20637         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
20638         * config/aarch64/aarch64.c
20639         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
20640         (aarch64_emit_call_insn): New function.
20641         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
20642         of emit_call_insn.
20643         * config/aarch64/aarch64.md (define_expand "call_internal")
20644         (define_expand "call_value_internal", define_expand "sibcall_internal")
20645         (define_expand "sibcall_value_internal"): New.
20646         (define_expand "call", define_expand "call_value")
20647         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
20648         expand variant and aarch64_emit_call_insn.
20649
20650 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
20651             Tom de Vries  <tom@codesourcery.com>
20652
20653         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
20654         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
20655         Redefine to true.
20656         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
20657         clobbers to CALL_INSN_FUNCTION_USAGE.
20658         (define_expand "sibcall_internal")
20659         (define_expand "sibcall_value_internal"): New.
20660         (define_expand "call", define_expand "call_value"): Add argument to
20661         arm_emit_call_insn.
20662         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
20663         (define_expand "sibcall_value"): Use sibcall_value_internal and
20664         arm_emit_call_insn.
20665
20666 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20667
20668         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
20669
20670 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20671
20672         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
20673         __udivmoddi4.
20674
20675 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20676
20677         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
20678         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
20679         annotations. Fix DWARF information.
20680
20681 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20682
20683         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
20684         __udivmoddi4, and fixups for negative operands.
20685
20686 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20687
20688         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
20689
20690 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20691
20692         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
20693         to __udivmoddi4.
20694
20695 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20696
20697         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
20698         manipulation.
20699
20700 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20701
20702         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
20703         describing register usage on function entry and exit.
20704
20705 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20706
20707         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
20708         (__aeabi_ldivmod): Fix whitespace.
20709
20710 2014-06-18  Andreas Schwab  <schwab@suse.de>
20711
20712         * doc/md.texi (Standard Names): Use @itemx for grouped items.
20713         Remove blank line after @item.
20714
20715 2014-06-18  Richard Henderson  <rth@redhat.com>
20716
20717         PR target/61545
20718         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
20719
20720 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20721
20722         * config/arm/arm.c (neon_vector_mem_operand): Allow register
20723         POST_MODIFY for neon loads and stores.
20724         (arm_print_operand): Output post-index register for neon loads and
20725         stores.
20726
20727 2014-06-18  Richard Biener  <rguenther@suse.de>
20728
20729         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
20730
20731 2014-06-18  Richard Biener  <rguenther@suse.de>
20732
20733         * tree-pass.h (make_pass_dce_loop): Remove.
20734         * passes.def: Replace pass_dce_loop with pass_dce.
20735         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
20736         changed free niter estimates and reset the scev cache.
20737         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
20738         make_pass_dce_loop): Remove.
20739         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
20740         (fini_copy_prop): Return whether something changed.  Always
20741         let substitute_and_fold perform DCE and free niter estimates
20742         and reset the scev cache if so.
20743         (execute_copy_prop): If sth changed schedule cleanup-cfg.
20744         (pass_data_copy_prop): Do not unconditionally schedule
20745         cleanup-cfg or update-ssa.
20746
20747 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
20748
20749         PR tree-optimization/61518
20750         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
20751         reduction var is used in reduction stmt or phi-function only.
20752
20753 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20754
20755         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
20756
20757 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20758
20759         PR tree-optimization/61517
20760         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
20761         whose rhs's first tree is the source expression instead of the
20762         expression itself.
20763         (find_bswap_or_nop): Likewise.
20764         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
20765         gimple stmt whose rhs's first tree is the source. In the memory source
20766         case, move the stmt to be replaced close to one of the original load to
20767         avoid the problem of a store between the load and the stmt's original
20768         location.
20769         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
20770         signature.
20771
20772 2014-06-18  Andreas Schwab  <schwab@suse.de>
20773
20774         PR rtl-optimization/54555
20775         * postreload.c (move2add_use_add2_insn): Substitute
20776         STRICT_LOW_PART only if it is cheaper.
20777
20778 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
20779
20780         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
20781         Do not use unspec as call operand.  Use memory_operand instead of
20782         memory_nox32_operand and add "m" operand constraint.  Disable
20783         pattern for TARGET_X32.
20784         (*sibcall_pop_memory): Ditto.
20785         (*sibcall_value_memory): Ditto.
20786         (*sibcall_value_pop_memory): Ditto.
20787         (sibcall peepholes): Merge SImode and DImode patterns using
20788         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
20789         Disable pattern for TARGET_X32.  Check if eliminated register is
20790         really dead after call insn.  Generate call RTX without unspec operand.
20791         (sibcall_value peepholes): Ditto.
20792         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
20793         instead of memory_nox32_operand.  Check if eliminated register is
20794         really dead after call insn. Generate call RTX without unspec operand.
20795         (sibcall_value_pop peepholes): Ditto.
20796         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
20797
20798 2014-06-18  Terry Guo  <terry.guo@arm.com>
20799
20800         PR target/61544
20801         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
20802         reach the head.
20803
20804 2014-06-18  Olivier Hainque  <hainque@adacore.com>
20805
20806         * tree-core.h (tree_block): Add an "end_locus" field, allowing
20807         memorization of the end of block source location.
20808         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
20809         * gimplify.c (gimplify_bind_expr): Propagate the block start and
20810         end source location info we have on the block entry/exit code we
20811         generate.
20812
20813 2014-06-18  Richard Biener  <rguenther@suse.de>
20814
20815         * common.opt (fssa-phiopt): New option.
20816         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
20817         but not with -Og.
20818         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
20819         * doc/invoke.texi (-fssa-phiopt): Document.
20820
20821 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20822
20823         * genattrtab.c (n_bypassed): New variable.
20824         (process_bypasses): Initialise n_bypassed.
20825         Count number of bypassed reservations.
20826         (make_automaton_attrs): Allocate space for bypassed reservations
20827         rather than number of bypasses.
20828
20829 2014-06-18  Richard Biener  <rguenther@suse.de>
20830
20831         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
20832         we propagated anything.
20833         (substitute_and_fold_dom_walker::before_dom_children): Something
20834         changed if we propagated into PHI arguments.
20835         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
20836         we removed a stmt.
20837
20838 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
20839
20840         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
20841         vector case.
20842         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
20843         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
20844         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
20845         Introduces alternative way of loads group permutaions.
20846         (vect_transform_grouped_load): Try alternative way of permutations.
20847
20848 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
20849
20850         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
20851         changed in ORT_TARGET region, don't jump to do_outer.
20852         (struct gimplify_adjust_omp_clauses_data): New type.
20853         (gimplify_adjust_omp_clauses_1): Adjust for data being
20854         a struct gimplify_adjust_omp_clauses_data pointer instead
20855         of tree *.  Pass pre_p as a new argument to
20856         lang_hooks.decls.omp_finish_clause hook.
20857         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
20858         splay_tree_foreach to pass both list_p and pre_p.
20859         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
20860         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
20861         gimplify_adjust_omp_clauses callers.
20862         * langhooks.c (lhd_omp_finish_clause): New function.
20863         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
20864         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
20865         * langhooks.h (struct lang_hooks_for_decls): Add a new
20866         gimple_seq * argument to omp_finish_clause hook.
20867         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
20868         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
20869         (scan_omp_parallel, lower_omp_for): When adding
20870         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
20871         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
20872         * tree-nested.c (convert_nonlocal_omp_clauses,
20873         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
20874         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
20875
20876 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
20877
20878         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
20879         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
20880
20881 2014-06-17  Xinliang David Li  <davidxl@google.com>
20882
20883         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
20884         * passes.c (pass_init_dump_file): Do not set initialize
20885         flag to false unconditionally.
20886
20887 2014-06-17  Richard Biener  <rguenther@suse.de>
20888
20889         * genopinit.c (main): Use vec<>::qsort method.
20890         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
20891         Likewise.
20892         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
20893
20894 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
20895
20896         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
20897         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
20898         (mips_move_to_gpr_cost): Remove ST_REGS case.
20899         (mips_move_from_gpr_cost): Likewise.
20900         (mips_register_move_cost): Likewise.
20901         (mips_secondary_reload_class): Likewise.
20902
20903 2014-06-17  Richard Biener  <rguenther@suse.de>
20904
20905         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
20906         (pass_all_optimizations): Move 3rd copy-prop pass from after
20907         fre to before ifcombine/phiopt.
20908
20909 2014-06-17  Richard Biener  <rguenther@suse.de>
20910
20911         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
20912         and allow all blocks to be forwarders.
20913
20914 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
20915
20916         PR target/61483
20917         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
20918         variable 'size'; calculate 'size' right in the front; use
20919         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
20920         pcum->aapcs_stack_words.
20921
20922 2014-06-17  Nick Clifton  <nickc@redhat.com>
20923
20924         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
20925         (umulhi3, mulsidi3, umulsidi3): Likewise.
20926
20927 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
20928
20929         PR middle-end/61508
20930         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
20931         check for section name.
20932
20933 2014-06-17  Richard Biener  <rguenther@suse.de>
20934
20935         * tree-ssa-propagate.c: Include domwalk.h.
20936         (substitute_and_fold): Outline main worker into a domwalker ...
20937         (substitute_and_fold_dom_walker::before_dom_children): ... here.
20938         Schedule stmts we can fully propagate for removal.  Remove
20939         poor-mans DCE.
20940         (substitute_and_fold): Apply a dominator walk to perform
20941         substitution.  Process stmts scheduled for removal here.
20942
20943 2014-06-17  Richard Biener  <rguenther@suse.de>
20944
20945         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
20946         of PHI node moving.
20947
20948 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
20949
20950         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
20951         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
20952         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
20953         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
20954         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
20955         TARGET_HARD_FLOAT.
20956         (get_fpscr) : Likewise.
20957
20958 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20959
20960         PR rtl-optimization/61325
20961         * lra-constraints.c (valid_address_p): Add forward declaration.
20962         (simplify_operand_subreg): Check address validity before and after
20963         alter_reg of memory subreg.
20964
20965 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
20966
20967         * config/i386/i386.c (decide_alg): Correctly handle
20968         maximum size of stringop algorithm.
20969
20970 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
20971
20972         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
20973
20974 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20975
20976         PR rtl-optimization/61522
20977         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
20978
20979 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
20980
20981         Revert:
20982         * symtab.c (symtab_node::reset_section): New method.
20983         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
20984         for localization.
20985         * cgraph.h (reset_section): Declare.
20986         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
20987         do not consider comdat locals.
20988         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
20989         for new symbol.
20990         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
20991         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
20992         reset sections of symbols dragged out of the comdats.
20993         (function_and_variable_visibility): Reset sections of
20994         localized symbols.
20995
20996 2014-06-16  Richard Biener  <rguenther@suse.de>
20997
20998         PR tree-optimization/61482
20999         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21000         [-INF(OVF), +INF(OVF)] range.
21001
21002 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21003
21004         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21005         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21006         handling 32-bit multiplication.
21007
21008 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
21009
21010         PR middle-end/61430
21011         * lra-lives.c (process_bb_lives): Skip creating copy during
21012         insn scan when src/dest has constrained to same regno.
21013
21014 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21015
21016         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21017         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21018
21019 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21020
21021         * asan.c (check_func): New function.
21022         (maybe_create_ssa_name): Likewise.
21023         (build_check_stmt_with_calls): Likewise.
21024         (use_calls_p): Likewise.
21025         (report_error_func): Change interface.
21026         (build_check_stmt): Allow non-integer lengths; add support
21027         for new parameter.
21028         (asan_instrument): Likewise.
21029         (instrument_mem_region_access): Moved code to build_check_stmt.
21030         (instrument_derefs): Likewise.
21031         (instrument_strlen_call): Likewise.
21032         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21033         * doc/invoke.texi: Describe new parameter.
21034         * params.def: Define new parameter.
21035         * params.h: Likewise.
21036         * sanitizer.def: Describe new builtins.
21037
21038 2014-06-16  Richard Biener  <rguenther@suse.de>
21039
21040         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21041         Make all defs available at the end.
21042         (eliminate): If we remove a PHI node schedule cfg-cleanup.
21043
21044 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21045
21046         PR plugins/45078
21047         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21048
21049 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
21050
21051         PR bootstrap/61516
21052         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21053         initialization.  Replace remaining use of uid.
21054
21055 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21056
21057         * c-family/c-common.c (handle_tls_model_attribute): Use
21058         set_decl_tls_model.
21059         * c-family/c-common.c (handle_tls_model_attribute): Use
21060         set_decl_tls_model.
21061         * cgraph.h (struct varpool_node): Add tls_model.
21062         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21063         * tree.h (DECL_TLS_MODEL): Update.
21064         (DECL_THREAD_LOCAL_P): Check that variable is static.
21065         (decl_tls_model): Declare.
21066         (set_decl_tls_model): Declare.
21067         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21068         set symbol prorperties.
21069         (get_emutls_init_templ_addr): Cleanup.
21070         (new_emutls_decl): Update.
21071         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21072         (lto_input_varpool_node): Likewise.
21073         * lto-streamer-out.c (hash_tree): Likewise.
21074         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21075         not stream DECL_TLS_MODEL.
21076         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21077         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21078
21079 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21080
21081         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21082
21083 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21084
21085         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21086         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21087         lists.
21088         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21089         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21090         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21091         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21092         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21093         (df_get_artificial_defs, df_get_artificial_uses)
21094         (df_single_def, df_single_use): Update accordingly.
21095         (df_refs_chain_dump): Take the first element in a linked list as
21096         parameter, rather than a pointer to an array of pointers.
21097         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21098         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21099         (df_chain_create_bb_process_use): Likewise.
21100         (df_md_bb_local_compute_process_def): Likewise.
21101         * fwprop.c (process_defs, process_uses): Likewise.
21102         (register_active_defs, update_uses): Likewise.
21103         (forward_propagate_asm): Update for new df_ref linking.
21104         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21105         (df_null_ref_rec, df_null_mw_rec): Likewise.
21106         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21107         explicitly.
21108         (df_scan_free_bb_info): Remove check for null artificial_defs.
21109         (df_install_ref_incremental): Adjust for new df_ref linking.
21110         Use a single-element insertion rather than a full sort.
21111         (df_ref_chain_delete_du_chain): Take the first element
21112         in a linked list as parameter, rather than a pointer to an array of
21113         pointers.
21114         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21115         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21116         (df_insn_info_delete): Remove check for null defs and call to
21117         df_scan_free_mws_vec.
21118         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21119         null rather than df_null_*_rec.
21120         (df_insn_rescan_debug_internal): Likewise, and update null
21121         checks in the same way.  Remove check for null defs.
21122         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21123         Move a single element rather doing a full sort.
21124         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21125         linking.
21126         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21127         Initialize df_ref and df_mw_hardreg lists to null rather than
21128         df_null_*_rec.
21129         (df_ref_compare): Take df_refs as parameter, transferring the
21130         old interface to...
21131         (df_ref_ptr_compare): ...this new function.
21132         (df_sort_and_compress_refs): Update accordingly.
21133         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21134         old interface to...
21135         (df_mw_ptr_compare): ...this new function.
21136         (df_sort_and_compress_mws): Update accordingly.
21137         (df_install_refs, df_install_mws): Return a linked list rather than
21138         an array of pointers.
21139         (df_refs_add_to_chains): Assert that old lists are empty rather
21140         than freeing them.
21141         (df_insn_refs_verify): Don't handle null defs speciailly.
21142         * web.c (union_match_dups): Update for new df_ref linking.
21143
21144 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21145
21146         * df.h (df_ref_create, df_ref_remove): Delete.
21147         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21148         (df_ref_remove): Likewise.
21149
21150 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21151
21152         * df.h (df_single_def, df_single_use): New functions.
21153         * ira.c (find_moveable_pseudos): Use them.
21154
21155 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21156
21157         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21158         * df-problems.c (df_note_bb_compute): Use it.
21159         * regstat.c (regstat_bb_compute_ri): Likewise.
21160
21161 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21162
21163         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21164         * cse.c (cse_extended_basic_block): Use them.
21165         * dce.c (mark_artificial_use): Likewise.
21166         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21167         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21168         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21169         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21170         (df_simulate_initialize_backwards): Likewise.
21171         (df_simulate_finalize_backwards): Likewise.
21172         (df_simulate_initialize_forwards): Likewise.
21173         (df_md_simulate_artificial_defs_at_top): Likewise.
21174         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21175         * regrename.c (init_rename_info): Likewise.
21176         * regstat.c (regstat_bb_compute_ri): Likewise.
21177         (regstat_bb_compute_calls_crossed): Likewise.
21178
21179 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21180
21181         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21182         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21183         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21184         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21185         * combine.c (create_log_links): Likewise.
21186         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21187         (try_eliminate_compare): Likewise.
21188         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21189         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21190         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21191         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21192         (word_dce_process_block, dce_process_block): Likewise.
21193         * ddg.c (def_has_ccmode_p): Likewise.
21194         * df-core.c (df_bb_regno_first_def_find): Likewise.
21195         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21196         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21197         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21198         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21199         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21200         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21201         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21202         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21203         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21204         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21205         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21206         * fwprop.c (local_ref_killed_between_p): Likewise.
21207         (all_uses_available_at, free_load_extend): Likewise.
21208         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21209         * hw-doloop.c (scan_loop): Likewise.
21210         * ifcvt.c (dead_or_predicable): Likewise.
21211         * init-regs.c (initialize_uninitialized_regs): Likewise.
21212         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21213         (process_bb_node_lives): Likewise.
21214         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21215         (find_moveable_pseudos): Likewise.
21216         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21217         * recog.c (peep2_find_free_register): Likewise.
21218         * ree.c (get_defs): Likewise.
21219         * regstat.c (regstat_bb_compute_ri): Likewise.
21220         (regstat_bb_compute_calls_crossed): Likewise.
21221         * sched-deps.c (find_inc, find_mem): Likewise.
21222         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21223         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21224         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21225         (prepare_shrink_wrap): Likewise.
21226         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21227         * web.c (union_defs, pass_web::execute): Likewise.
21228         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21229         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21230
21231 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21232
21233         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21234         to inheritance pseudos.
21235         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21236
21237 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21238
21239         PR target/61415
21240         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21241         (BU_MISC_2): Rename to ...
21242         (BU_LDBL128_2): ... this.
21243         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21244         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21245         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21246         RS6000_BTM_LDBL128.
21247         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21248         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21249         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21250         (unpacktf_1): Likewise.
21251         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21252         (__builtin_longdouble_dw1): Likewise.
21253         * doc/sourcebuild.texi (longdouble128): Document.
21254
21255 2014-06-13  Jeff Law  <law@redhat.com>
21256
21257         PR rtl-optimization/61094
21258         PR rtl-optimization/61446
21259         * ree.c (combine_reaching_defs): Get the mode for the copy from
21260         the extension insn rather than the defining insn.
21261
21262 2014-06-13  Dehao Chen  <dehao@google.com>
21263
21264         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21265
21266 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21267
21268         * doc/install.texi (--enable-linker-plugin-configure-flags)
21269         (--enable-linker-plugin-flags): Document new flags.
21270
21271 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21272
21273         PR ipa/61186
21274         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21275         cache_token if returning early.
21276
21277 2014-06-13  Nick Clifton  <nickc@redhat.com>
21278
21279         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21280         requested alignment is active.
21281         (LABEL_ALIGN): Likewise.
21282         (LOOP_ALIGN): Likewise.
21283
21284 2014-06-13  Richard Biener  <rguenther@suse.de>
21285
21286         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21287         Rewrite to propagate the VN result into all uses where
21288         possible and to remove stmts becoming dead because of that.
21289         (eliminate): Generalize stmt removal handling, remove in
21290         reverse dominator order to support proper debug stmt
21291         generation.  Update stmts before removing stmts.
21292         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21293
21294 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21295
21296         PR tree-optimization/61375
21297         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21298         symbolic number cannot be represented in an uint64_t.
21299         (find_bswap_or_nop_1): Likewise.
21300
21301 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21302
21303         * symtab.c (symtab_node::reset_section): New method.
21304         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21305         for localization.
21306         * cgraph.h (reset_section): Declare.
21307         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21308         do not consider comdat locals.
21309         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21310         for new symbol.
21311         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21312         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21313         reset sections of symbols dragged out of the comdats.
21314         (function_and_variable_visibility): Reset sections of
21315         localized symbols.
21316
21317 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21318
21319         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21320         to use symtab and decl_binds_to_current_def_p
21321         * tree-vectorizer.c (increase_alignment): Increase alignment
21322         of alias target, too.
21323
21324 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21325
21326         PR middle-end/61486
21327         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21328         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21329         if outer combined construct is distribute.
21330         (gimplify_omp_for): For OMP_DISTRIBUTE set
21331         gimplify_omp_ctxp->distribute.
21332         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21333         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21334         mapping into decl map.
21335
21336 2014-06-12  Jason Merrill  <jason@redhat.com>
21337
21338         * common.opt (fabi-version): Change default to 0.
21339
21340 2014-06-12  Jason Merrill  <jason@redhat.com>
21341
21342         * toplev.c (process_options): Reject -fabi-version=1.
21343
21344 2014-06-12  Jeff Law  <law@redhat.com>
21345
21346         PR tree-optimization/61009
21347         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21348         value when we stop processing a block due to problematic PHIs.
21349
21350 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21351
21352         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21353         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21354         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21355         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21356         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21357         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21358         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21359         are not in the spec.
21360
21361 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21362
21363         PR target/59843
21364         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21365         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21366         Support V1DFmode.
21367
21368 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21369
21370         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21371
21372 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21373
21374         PR target/61443
21375         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21376         loading from address spaces.
21377
21378 2014-06-12  Martin Liska  <mliska@suse.cz>
21379
21380         PR ipa/61462
21381         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21382         statement is reachable.
21383
21384 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21385
21386         * symtab.c (section_hash): New hash.
21387         (symtab_unregister_node): Clear section before freeing.
21388         (hash_section_hash_entry): New haser.
21389         (eq_sections): New function.
21390         (symtab_node::set_section_for_node): New method.
21391         (set_section_1): Update.
21392         (symtab_node::set_section): Take string instead of tree as parameter.
21393         (symtab_resolve_alias): Update.
21394         * cgraph.h (section_hash_entry_d): New structure.
21395         (section_hash_entry): New typedef.
21396         (cgraph_node): Change comdat_group_ to x_comdat_group,
21397         change section_ to x_section and turn into section_hash_entry;
21398         update accestors; put set_section_for_node offline.
21399         * tree.c (decl_section_name): Turn into string.
21400         (set_decl_section_name): Change parameter to be string.
21401         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21402         * sdbout.c (sdbout_one_type): Update.
21403         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21404         * varasm.c (IN_NAMED_SECTION, get_named_section,
21405         resolve_unique_section, hot_function_section, get_named_text_section,
21406         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21407         make_decl_rtl, default_unique_section): Update.
21408         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21409         (c6x_elf_unique_section): Update.
21410         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21411         * config/pa/pa.c (pa_function_section): Update.
21412         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21413         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21414         * config/arc/arc.c (arc_in_small_data_p): Update.
21415         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21416         * config/mcore/mcore.c (mcore_unique_section): Update.
21417         * config/mips/mips.c (mips16_build_function_stub): Update.
21418         (mips16_build_call_stub): Update.
21419         (mips_function_rodata_section): Update.
21420         (mips_in_small_data_p): Update.
21421         * config/score/score.c (score_in_small_data_p): Update.
21422         * config/rx/rx.c (rx_in_small_data): Update.
21423         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21424         (rs6000_xcoff_asm_named_section): Update.
21425         (rs6000_xcoff_unique_section): Update.
21426         * config/frv/frv.c (frv_string_begins_with): Update.
21427         (frv_in_small_data_p): Update.
21428         * config/v850/v850.c (v850_encode_data_area): Update.
21429         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21430         (bfin_handle_l1_data_attribute): Update.
21431         (bfin_handle_l2_attribute): Update.
21432         * config/mep/mep.c (mep_unique_section): Update.
21433         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21434         Update.
21435         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21436         (h8300_handle_tiny_data_attribute): Update.
21437         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21438         (m32r_in_small_data_p): Update.
21439         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21440         * config/i386/i386.c (ix86_in_large_data_p): Update.
21441         * config/i386/winnt.c (i386_pe_unique_section): Update.
21442         * config/darwin.c (darwin_function_section): Update.
21443         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21444         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21445         (new_emutls_decl): Update.
21446         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21447         input_varpool_node): Update.
21448         (ead_string_cst): Turn to ...
21449         (read_string): ... this one.
21450         * dwarf2out.c (secname_for_decl): Update.
21451         * asan.c (asan_protect_global): Update.
21452
21453 2014-06-11  DJ Delorie  <dj@redhat.com>
21454
21455         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21456         cache lines.
21457         * config/rx/rx.c (rx_option_override): Likewise.
21458         (rx_align_for_label): Likewise.
21459
21460         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21461
21462 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
21463
21464         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21465         prototype.
21466
21467 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21468
21469         * common.md: New file.
21470         * doc/md.texi: Update description of generic, machine-independent
21471         constraints.
21472         * config/s390/constraints.md (e): Delete.
21473         * Makefile.in (md_file): Include common.md.
21474         * config/m32c/t-m32c (md_file): Likewise.
21475         * genpreds.c (general_mem): New array.
21476         (generic_constraint_letters): Remove constraints now defined by
21477         common.md.
21478         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21479         Allow the first character to be '<' or '>' as well.
21480         * genoutput.c (general_mem): New array.
21481         (indep_constraints): Remove constraints now defined by common.md.
21482         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21483         Remove special handling of 'm'.
21484         * ira-costs.c (record_reg_classes): Remove special handling of
21485         constraints now defined by common.md.
21486         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21487         * ira-lives.c (single_reg_class): Likewise.
21488         (ira_implicitly_set_insn_hard_regs): Likewise.
21489         * lra-constraints.c (reg_class_from_constraints): Likewise.
21490         (process_alt_operands, process_address, curr_insn_transform): Likewise.
21491         * postreload.c (reload_cse_simplify_operands): Likewise.
21492         * reload.c (push_secondary_reload, scratch_reload_class)
21493         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21494         * reload1.c (maybe_fix_stack_asms): Likewise.
21495         * targhooks.c (default_secondary_reload): Likewise.
21496         * stmt.c (parse_output_constraint): Likewise.
21497         * recog.c (preprocess_constraints): Likewise.
21498         (constrain_operands, peep2_find_free_register): Likewise.
21499         (asm_operand_ok): Likewise, but add a comment saying why 'o'
21500         must be handled specially.
21501
21502 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21503
21504         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
21505         * genpreds.c (have_const_dbl_constraints): Delete.
21506         (add_constraint): Don't set it.
21507         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
21508         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
21509         constraints using the lookup_constraint logic.
21510         * ira-lives.c (single_reg_class): Likewise.
21511         * ira.c (ira_setup_alts): Likewise.
21512         * lra-constraints.c (process_alt_operands): Likewise.
21513         * recog.c (asm_operand_ok, constrain_operands): Likewise.
21514         * reload.c (find_reloads): Likewise.
21515
21516 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21517
21518         * genpreds.c (const_int_start, const_int_end): New variables.
21519         (choose_enum_order): Output CONST_INT constraints before memory
21520         constraints.
21521         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
21522         Add CT_CONST_INT.
21523         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
21524         * ira.c (ira_setup_alts): Likewise.
21525         * lra-constraints.c (process_alt_operands): Likewise.
21526         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21527         * reload.c (find_reloads): Likewise.
21528
21529 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21530
21531         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
21532         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
21533         * recog.c (preprocess_constraints): Update accordingly.
21534
21535 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21536
21537         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
21538         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
21539         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
21540         * genpreds.c (print_type_tree): New function.
21541         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
21542         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
21543         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
21544         Write out enum constraint_type and get_constraint_type.
21545         * lra-constraints.c (satisfies_memory_constraint_p): Take a
21546         constraint_num rather than a constraint string.
21547         (satisfies_address_constraint_p): Likewise.
21548         (reg_class_from_constraints): Avoid old constraint macros.
21549         (process_alt_operands, process_address_1): Likewise.
21550         (curr_insn_transform): Likewise.
21551         * ira-costs.c (record_reg_classes): Likewise.
21552         (record_operand_costs): Likewise.
21553         * ira-lives.c (single_reg_class): Likewise.
21554         (ira_implicitly_set_insn_hard_regs): Likewise.
21555         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21556         * postreload.c (reload_cse_simplify_operands): Likewise.
21557         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21558         (constrain_operands, peep2_find_free_register): Likewise.
21559         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
21560         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21561         * reload1.c (maybe_fix_stack_asms): Likewise.
21562         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
21563         * targhooks.c (default_secondary_reload): Likewise.
21564         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
21565         to EXTRA_CONSTRAINT_STR.
21566         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
21567
21568 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21569
21570         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
21571         (write_constraint_satisfied_p_array): ...this new function.
21572         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
21573         an array.
21574         (write_insn_preds_c): Update accordingly.
21575
21576 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21577
21578         * genpreds.c (write_lookup_constraint): Rename to...
21579         (write_lookup_constraint_1): ...this.
21580         (write_lookup_constraint_array): New function.
21581         (write_tm_preds_h): Define lookup_constraint as an inline function
21582         that uses write_lookup_constraint_array where possible.
21583         (write_insn_preds_c): Update for the changes above.
21584
21585 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21586
21587         * doc/md.texi (regclass_for_constraint): Rename to...
21588         (reg_class_for_constraint): ...this.
21589         * genpreds.c (num_constraints, enum_order, register_start)
21590         (register_end, satisfied_start, memory_start, memory_end)
21591         (address_start, address_end): New variables.
21592         (add_constraint): Count the number of constraints.
21593         (choose_enum_order): New function.
21594         (write_enum_constraint_num): Iterate over enum_order.
21595         (write_regclass_for_constraint): Rename to...
21596         (write_reg_class_for_constraint_1): ...this and update output
21597         accordingly.
21598         (write_constraint_satisfied_p): Rename to...
21599         (write_constraint_satisfied_p_1): ...this and update output
21600         accordingly.  Do nothing if all extra constraints are register
21601         constraints.
21602         (write_insn_extra_memory_constraint): Delete.
21603         (write_insn_extra_address_constraint): Delete.
21604         (write_range_function): New function.
21605         (write_tm_preds_h): Define constraint_satisfied_p and
21606         reg_class_for_constraint as inline functions that do a range check
21607         before calling the out-of-line function.  Use write_range_function
21608         to implement insn_extra_{register,memory,address}_constraint,
21609         the first of which is new.
21610         (write_insn_preds_c): Update after above changes to write_* functions.
21611         (main): Call choose_enum_order.
21612
21613 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21614
21615         PR tree-optimization/61306
21616         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
21617         expression instead of its size.
21618         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
21619         false to prevent optimization when the result is unpredictable due to
21620         arithmetic right shift of signed type with highest byte is set.
21621         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
21622         (init_symbolic_number): Likewise.
21623         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
21624         when the result is unpredictable due to sign extension.
21625
21626 2014-06-11  Terry Guo  <terry.guo@arm.com>
21627
21628         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
21629         (*thumb1_addsi3): Ditto.
21630         (*thumb_subdi3): Ditto.
21631         (thumb1_subsi3_insn): Ditto.
21632         (*thumb_mulsi3): Ditto.
21633         (*thumb_mulsi3_v6): Ditto.
21634         (*thumb1_andsi3_insn): Ditto.
21635         (thumb1_bicsi3): Ditto.
21636         (*thumb1_iorsi3_insn): Ditto.
21637         (*thumb1_xorsi3_insn): Ditto.
21638         (*thumb1_ashlsi3): Ditto.
21639         (*thumb1_ashrsi3): Ditto.
21640         (*thumb1_lshrsi3): Ditto.
21641         (*thumb1_rotrsi3): Ditto.
21642         (*thumb1_negdi2): Ditto.
21643         (*thumb1_negsi2): Ditto.
21644         (*thumb1_abssi2): Ditto.
21645         (*thumb1_neg_abssi2): Ditto.
21646         (*thumb1_one_cmplsi2): Ditto.
21647         (*thumb1_zero_extendhisi2): Ditto.
21648         (*thumb1_zero_extendqisi2): Ditto.
21649         (*thumb1_zero_extendqisi2_v6): Ditto.
21650         (thumb1_extendhisi2): Ditto.
21651         (thumb1_extendqisi2): Ditto.
21652         (*thumb1_movdi_insn): Ditto.
21653         (*thumb1_movsi_insn): Ditto.
21654         (*thumb1_movhi_insn): Ditto.
21655         (thumb_movhi_clobber): Ditto.
21656         (*thumb1_movqi_insn): Ditto.
21657         (*thumb1_movhf): Ditto.
21658         (*thumb1_movsf_insn): Ditto.
21659         (*thumb_movdf_insn): Ditto.
21660         (movmem12b): Ditto.
21661         (movmem8b): Ditto.
21662         (cbranchqi4): Ditto.
21663         (cbranchsi4_insn): Ditto.
21664         (cbranchsi4_scratch): Ditto.
21665         (*negated_cbranchsi4): Ditto.
21666         (*tbit_cbranch): Ditto.
21667         (*tlobits_cbranch): Ditto.
21668         (*tstsi3_cbranch): Ditto.
21669         (*cbranchne_decr1): Ditto.
21670         (*addsi3_cbranch): Ditto.
21671         (*addsi3_cbranch_scratch): Ditto.
21672         (*thumb_cmpdi_zero): Ditto.
21673         (cstoresi_eq0_thumb1): Ditto.
21674         (cstoresi_ne0_thumb1): Ditto.
21675         (*cstoresi_eq0_thumb1_insn): Ditto.
21676         (*cstoresi_ne0_thumb1_insn): Ditto.
21677         (cstoresi_nltu_thumb1): Ditto.
21678         (cstoresi_ltu_thumb1): Ditto.
21679         (thumb1_addsi3_addgeu): Ditto.
21680         (*thumb_jump): Ditto.
21681         (*call_reg_thumb1_v5): Ditto.
21682         (*call_reg_thumb1): Ditto.
21683         (*call_value_reg_thumb1_v5): Ditto.
21684         (*call_value_reg_thumb1): Ditto.
21685         (*call_insn): Ditto.
21686         (*call_value_insn): Ditto.
21687         (thumb1_casesi_internal_pic): Ditto.
21688         (thumb1_casesi_dispatch): Ditto.
21689         (*thumb1_indirect_jump): Ditto.
21690         (prologue_thumb1_interwork): Ditto.
21691         (*epilogue_insns): Ditto.
21692         (consttable_1): Ditto.
21693         (consttable_2): Ditto.
21694         (tablejump): Ditto.
21695         (*thumb1_tablejump): Ditto.
21696         (thumb_eh_return): Ditto.
21697         (define_peephole2): Two of them are thumb1 only and got moved into
21698         new file thumb1.md.
21699         (define_split): Six of them are thumb1 only and got moved into new
21700         file thumb1.md.
21701         * config/arm/thumb1.md: New file comprised of above thumb1 only
21702         patterns.
21703
21704 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21705
21706         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
21707         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
21708         dependencies.
21709         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
21710         (aarch64_crc_builtin_datum): New struct.
21711         (aarch64_crc_builtin_data): New.
21712         (aarch64_init_crc32_builtins): New function.
21713         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
21714         (aarch64_crc32_expand_builtin): New.
21715         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
21716         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
21717         __ARM_FEATURE_CRC32 when appropriate.
21718         (TARGET_CRC32): Define.
21719         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
21720         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
21721         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
21722         (aarch64_<crc_variant>): New pattern.
21723         * config/aarch64/arm_acle.h: New file.
21724         * config/aarch64/iterators.md (CRC): New int iterator.
21725         (crc_variant, crc_mode): New int attributes.
21726         * doc/aarch64-acle-intrinsics.texi: New file.
21727         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
21728         Include aarch64-acle-intrinsics.texi.
21729
21730 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
21731
21732         * tree-vect-data-refs.c (vect_grouped_store_supported): New
21733         check for stores group of length 3.
21734         (vect_permute_store_chain): New permutations for stores group of
21735         length 3.
21736         * tree-vect-stmts.c (vect_model_store_cost): Change cost
21737         of vec_perm_shuffle for the new permutations.
21738
21739 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21740
21741         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
21742         table rewriting temporarily on targets not supporting ONE_ONLY.
21743
21744 2014-06-11  Richard Biener  <rguenther@suse.de>
21745
21746         PR middle-end/61437
21747         Revert
21748         2014-06-04  Richard Biener  <rguenther@suse.de>
21749
21750         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
21751         TREE_PUBLIC and DECL_EXTERNAL decls.
21752
21753 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21754
21755         * varasm.c (set_implicit_section): New function.
21756         (resolve_unique_section): Use it to set implicit section
21757         for aliases, too.
21758         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
21759         (default_function_section): Likewise.
21760         (decl_binds_to_current_def_p): Constify argument.
21761         * varasm.h (decl_binds_to_current_def_p): Update prototype.
21762         * asan.c (asan_protect_global): Use
21763         symtab_get_node (decl)->implicit_section.
21764         * symtab.c (dump_symtab_base): Dump implicit sections.
21765         (verify_symtab_base): Verify sanity of sectoins and comdats.
21766         (symtab_resolve_alias): Alias share the section of its target.
21767         (set_section_1): New function.
21768         (symtab_node::set_section): Move here, recurse to aliases.
21769         (verify_symtab): Check for duplicated symtab lists.
21770         * tree-core.h (implicit_section_name_p): Remove.
21771         * tree-vect-data-refs.c: Include varasm.h.
21772         (vect_can_force_dr_alignment_p): Fix conditional on when
21773         decl bints to current definition; use
21774         symtab_get_node (decl)->implicit_section.
21775         * cgraph.c (cgraph_make_node_local_1): Fix section set.
21776         * cgraph.h (struct symtab_node): Add implicit_section.
21777         (set_section): Rename to ...
21778         (set_section_for_node): ... this one.
21779         (set_section): Declare.
21780         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
21781         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
21782         input_overwrite_node, input_varpool_node): Stream implicit_section.
21783         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
21784         removal; it will fail in LTO.
21785
21786 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21787
21788         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
21789         Change second alternative type to f_mcr.
21790         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
21791         and 12th alternatives' types to f_mcr and f_mrc.
21792         (*movdi_aarch64): Same for 12th and 13th alternatives.
21793         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
21794         (aarch64_movtilow_tilow): Change type to fmov.
21795
21796 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
21797
21798         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
21799         (aarch64_save_or_restore_callee_save_registers): Fix layout.
21800
21801 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21802
21803         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
21804         New expander.
21805         (aarch64_sqrdmulh_lane<mode>): Likewise.
21806         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21807         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21808         (aarch64_sqdmulh_laneq<mode>): New expander.
21809         (aarch64_sqrdmulh_laneq<mode>): Likewise.
21810         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
21811         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
21812         (aarch64_sqdmulh_lane<mode>): New expander.
21813         (aarch64_sqrdmulh_lane<mode>): Likewise.
21814         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21815         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21816         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
21817         (aarch64_sqdmlal_laneq<mode>): Likewise.
21818         (aarch64_sqdmlsl_lane<mode>): Likewise.
21819         (aarch64_sqdmlsl_laneq<mode>): Likewise.
21820         (aarch64_sqdmlal2_lane<mode>): Likewise.
21821         (aarch64_sqdmlal2_laneq<mode>): Likewise.
21822         (aarch64_sqdmlsl2_lane<mode>): Likewise.
21823         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21824         (aarch64_sqdmull_lane<mode>): Likewise.
21825         (aarch64_sqdmull_laneq<mode>): Likewise.
21826         (aarch64_sqdmull2_lane<mode>): Likewise.
21827         (aarch64_sqdmull2_laneq<mode>): Likewise.
21828
21829 2014-06-10  Richard Biener  <rguenther@suse.de>
21830
21831         PR tree-optimization/61438
21832         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
21833         (eliminate_dom_walker::before_dom_children): Only try to inhibit
21834         insertion of IVs if running PRE.
21835         (eliminate): Adjust.
21836         (pass_pre::execute): Likewise.
21837         (pass_fre::execute): Likewise.
21838
21839 2014-06-10  Richard Biener  <rguenther@suse.de>
21840
21841         PR middle-end/61456
21842         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21843         Do not use the main variant for the type comparison.
21844         (ncr_compar): Likewise.
21845         (nonoverlapping_component_refs_p): Likewise.
21846
21847 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21848
21849         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
21850         REG_CFA_RESTORE mode.
21851
21852 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
21853
21854         * config/i386/i386.c (expand_vec_perm_pblendv): New.
21855         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
21856         expand_vec_perm_pblendv.
21857
21858 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21859
21860         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
21861         available.
21862         Simplify description of __crc32d and __crc32cd intrinsics.
21863         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
21864         availability.
21865
21866 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
21867
21868         PR lto/61334
21869         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
21870         * config.in: Regenerate.
21871         * configure: Likewise.
21872
21873 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21874
21875         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
21876         and public vars.
21877         (intersect_static_var_sets): Remove.
21878         (propagate): Do not prune local statics.
21879
21880 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
21881
21882         PR fortran/60928
21883         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
21884         Set lastprivate_firstprivate even if omp_private_outer_ref
21885         langhook returns true.
21886         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
21887         langhook, call unshare_expr on new_var and call
21888         build_outer_var_ref to get the last argument.
21889
21890 2014-06-10  Marek Polacek  <polacek@redhat.com>
21891
21892         PR c/60988
21893         * doc/extend.texi: Add cindex for transparent_union.
21894
21895 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21896
21897         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
21898         init_symbolic_number ().
21899
21900 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
21901
21902         PR middle-end/61141
21903         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
21904         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
21905         (verify_rtl_sharing): Likewise.
21906
21907 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
21908
21909         PR c++/54442
21910         * tree.c (build_qualified_type): Use a canonical type for
21911         TYPE_CANONICAL.
21912
21913 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21914
21915         * config/arm/arm-modes.def: Remove XFmode.
21916
21917 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
21918
21919         PR target/61062
21920         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
21921         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
21922         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
21923         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
21924         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
21925         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
21926         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
21927         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
21928         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
21929
21930 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
21931
21932         * tree-core.h (tree_decl_with_vis): Remove section_name.
21933
21934 2014-06-09  Kito Cheng  <kito@0xlab.org>
21935
21936         * ira.c (ira): Don't call init_caller_save if LRA enabled
21937         since LRA use its own infrastructure to handle that.
21938
21939 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21940
21941         * symtab.c (dump_symtab_base): Update dumping.
21942         (symtab_make_decl_local): Clear only DECL_COMDAT.
21943         * tree-vect-data-refs.c (Check that variable is static before
21944         tampering with sections.
21945         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
21946         (cgraph_create_virtual_clone): Likewise.
21947         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
21948         (decl_section_name, set_decl_section_name): New accessors.
21949         (find_decls_types_r): Do not walk section name
21950         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
21951         (decl_comdat_group, decl_comdat_group_id): Constify.
21952         (decl_section_name, set_decl_section_name): Update.
21953         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
21954         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
21955         (cgraph_make_node_local_1): Clear section and comdat group.
21956         * cgraph.h (set_comdat_group): Sanity check.
21957         (get_section, set_section): New.
21958         * ipa-comdats.c (ipa_comdats): Use get_section.
21959         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
21960         * lto-streamer-out.c: Do not follow section names.
21961         * c-family/c-common.c (handle_section_attribute): Update.
21962         * lto-cgraph.c (lto_output_node): Output section.
21963         (lto_output_varpool_node): Likewise.
21964         (read_comdat_group): Rename to ...
21965         (read_identifier): ... this one.
21966         (read_string_cst): New function.
21967         (input_node, input_varpool_node): Input section names.
21968         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21969         (new_emutls_decl): Update.
21970         (secname_for_decl): Check section names only of static vars.
21971         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
21972         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
21973         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21974         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21975         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
21976         * config/mcore/mcore.c (mcore_unique_section): Likewise.
21977         * config/mips/mips.c (mips16_build_function_stub): Likewise.
21978         * config/v850/v850.c (v850_insert_attributes): Likewise.
21979         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
21980         Likewise.
21981         (h8300_handle_tiny_data_attribute): Likewise.
21982         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
21983         (bfin_handle_l2_attribute): Likewise.
21984
21985 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21986
21987         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
21988         remove static initializer.
21989
21990 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21991
21992         * varasm.c (use_blocks_for_decl_p): Check symbol table
21993         instead of alias attribute.
21994         (place_block_symbol): Recurse on aliases.
21995
21996 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21997
21998         * ipa-visibility.c: Include varasm.h
21999         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22000
22001 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22002
22003         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22004         outputting aliases.
22005
22006 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
22007
22008         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22009         from test_insn into GGC space escape via SET_SRC.
22010
22011 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
22012
22013         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22014         call statement, if any.
22015         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22016         statements, if any.  Tidy up.
22017
22018 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22019
22020         PR target/61431
22021         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22022         iterators, VSX_D that handles 64-bit types, and VSX_LE that
22023         handles swapping the two 64-bit double words on little endian
22024         systems.  Include V1TImode and optionally TImode in VSX_LE so that
22025         these types are properly swapped.  Change all of the insns and
22026         splits that do the 64-bit swaps to use VSX_LE.
22027         (vsx_le_perm_load_<mode>): Likewise.
22028         (vsx_le_perm_store_<mode>): Likewise.
22029         (splitters for little endian memory operations): Likewise.
22030         (vsx_xxpermdi2_le_<mode>): Likewise.
22031         (vsx_lxvd2x2_le_<mode>): Likewise.
22032         (vsx_stxvd2x2_le_<mode>): Likewise.
22033
22034 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
22035
22036         PR target/61423
22037         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22038         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22039         and corresponding splitters.  Zero extend general register
22040         or memory input operand to XMM temporary.  Enable for
22041         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22042         (floatunssi<mode>2): Update expander predicate.
22043
22044 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
22045
22046         PR rtl-optimization/61325
22047         * lra-constraints.c (process_address_1): Check scale equal to one
22048         to prevent transformation: base + scale * index => base + new_reg.
22049
22050 2014-06-06  Richard Biener  <rguenther@suse.de>
22051
22052         PR tree-optimization/59299
22053         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22054         a def operand.
22055         (nearest_common_dominator_of_uses): Likewise.
22056         (statement_sink_location): Adjust.  Support sinking loads.
22057
22058 2014-06-06  Martin Jambor  <mjambor@suse.cz>
22059
22060         * ipa-prop.c (get_place_in_agg_contents_list): New function.
22061         (build_agg_jump_func_from_list): Likewise.
22062         (determine_known_aggregate_parts): Renamed to
22063         determine_locally_known_aggregate_parts.  Moved some functionality
22064         to the two functions above, removed bound checks.
22065
22066 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
22067
22068         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22069         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22070         (aarch64_progress_pointer): Likewise.
22071         (aarch64_copy_one_part_and_move_pointers): Likewise.
22072         (aarch64_expand_movmen): Likewise.
22073         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22074         * config/aarch64/aarch64.md (movmem<mode>): New.
22075
22076 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
22077
22078         * targhooks.c (default_add_stmt_cost): Call target specific
22079         hook instead of default one.
22080
22081 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22082
22083         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22084         endianness instead of host endianness.
22085         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22086         comments.
22087
22088 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22089
22090         PR debug/53927
22091         * function.c (instantiate_decls): Process the saved static chain.
22092         (expand_function_start): If not optimizing, save the static chain
22093         onto the stack.
22094         * tree-nested.c (convert_all_function_calls): Always create the static
22095         chain for nested functions if not optimizing.
22096
22097 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22098
22099         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22100
22101 2014-06-06  Richard Biener  <rguenther@suse.de>
22102
22103         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22104         (construct_init_block): Likewise.
22105         (construct_exit_block): Likewise.
22106         (pass_expand::execute): Likewise.
22107         * graphite.c (graphite_transforms): Replace check for current_loops
22108         with a check for > 1 loops.
22109         (pass_graphite_transforms::execute): Adjust.
22110         * ipa-split.c (split_function): Remove check for current_loops.
22111         * omp-low.c (expand_parallel_call): Likewise.
22112         (expand_omp_for_init_counts): Likewise.
22113         (extract_omp_for_update_vars): Likewise.
22114         (expand_omp_for_generic): Likewise.
22115         (expand_omp_sections): Likewise.
22116         (expand_omp_target): Likewise.
22117         * tracer.c (tail_duplicate): Likewise.
22118         (pass_tracer::execute): Likewise.
22119         * trans-mem.c (expand_transaction): Likewise.
22120         * tree-complex.c (expand_complex_div_wide): Likewise.
22121         * tree-eh.c (lower_resx): Likewise.
22122         (cleanup_empty_eh_merge_phis): Likewise.
22123         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22124         current_loops with a check for > 1 loops.
22125         (pass_predcom::execute): Adjust.
22126         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22127         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22128         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22129         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22130         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22131         * tree-switch-conversion.c (process_switch): Likewise.
22132         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22133         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22134         (execute_vrp): Likewise.
22135         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22136
22137 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22138
22139         * rtl.h (insn_location): Declare.
22140         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22141         with UNKNOWN_LOCATION.
22142         * emit-rtl.c (insn_location): New function.
22143         * final.c (notice_source_line): Check that the instruction has a
22144         location before retrieving it and use insn_location.
22145         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22146         * print-rtl.c (print_rtx): Likewise.
22147
22148 2014-06-06  Richard Biener  <rguenther@suse.de>
22149
22150         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22151
22152 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22153
22154         PR tree-optimization/43934
22155         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22156         cost.
22157
22158 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22159
22160         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22161         return NO_REGS for extra address and memory constraints.  Handle
22162         operands that match (or are equivalent to something that matches)
22163         extra constant constraints.  Ignore other non-register operands.
22164
22165 2014-06-06  Alan Modra  <amodra@gmail.com>
22166
22167         PR target/61300
22168         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22169         * doc/tm.texi: Regenerate.
22170         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22171         Use throughout in place of REG_PARM_STACK_SPACE.
22172         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22173         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22174         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22175         prototype_p when incoming.  Use function decl when incoming
22176         to handle K&R style functions.
22177         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22178         (INCOMING_REG_PARM_STACK_SPACE): Define.
22179
22180 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22181
22182         PR target/52472
22183         * cfgexpand.c (expand_debug_expr): Use address space of nested
22184         TREE_TYPE for ADDR_EXPR and MEM_REF.
22185
22186 2014-06-05  Jeff Law  <law@redhat.com>
22187
22188         PR tree-optimization/61289
22189         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22190         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22191         looking for those which match LHS.  All callers changed.
22192         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22193         parameters and code which manipulated them.  All callers changed.
22194         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22195         and DST_MAP parameters.  Simplify invalidation code by just calling
22196         invalidate_equivalences.  All callers changed.
22197         (thread_across_edge): Simplify now that we don't need to maintain
22198         the map of equivalences to invalidate.
22199
22200 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22201             Richard Henderson  <rth@redhat.com>
22202
22203         PR target/46219
22204         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22205         checking for !TARGET_X32.
22206         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22207         (sibcall_intern): New define_insn, plus required peepholes.
22208         (sibcall_pop_intern): Likewise.
22209         (sibcall_value_intern): Likewise.
22210         (sibcall_value_pop_intern): Likewise.
22211
22212 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22213
22214         * tree-inline.c (tree_function_versioning): Check DF info existence
22215         before accessing it.
22216
22217 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22218
22219         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22220         frame_size.
22221         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22222         aarch64_frame hard_fp_offset and frame_size.
22223         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22224         frame_size; remove original_frame_size.
22225         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22226         (aarch64_initial_elimination_offset): Remove frame_size and
22227         offset.  Use aarch64_frame frame_size.
22228
22229 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22230             Jiong Wang  <jiong.wang@arm.com>
22231             Renlin  <renlin.li@arm.com>
22232
22233         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22234         initialization of R30 offset.  Update offset.  Iterate core
22235         regisers upto X30.  Remove X29, X30 specific code.
22236
22237 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22238             Jiong Wang  <jiong.wang@arm.com>
22239
22240         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22241         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22242         (aarch64_register_saved_on_entry): Adjust test.
22243
22244 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22245
22246         * config/aarch64/aarch64.h (machine_function): Move
22247         saved_varargs_size from here...
22248         (aarch64_frame): ... to here.
22249
22250         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22251         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22252         (aarch64_initial_elimination_offset)
22253         (aarch64_setup_incoming_varargs): Adjust location of
22254         saved_varargs_size.
22255
22256 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22257
22258         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22259         layout comment.
22260
22261 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22262             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22263
22264         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22265         mips32r5 entry to use PROCESSOR_P5600.
22266         * config/mips/mips-tables.opt: Regenerate.
22267         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22268         * config/mips/mips.c (mips_fmadd_bypass): New function.
22269         (mips_rtx_cost_data): Add costs for p5600.
22270         (mips_issue_rate): Add support for p5600.
22271         (mips_multipass_dfa_lookahead): Likewise.
22272         * config/mips/mips.h (TUNE_P5600): New define.
22273         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22274         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22275         * config/mips/mips.md: Include p5600.md.
22276         (processor): Add p5600.
22277         * config/mips/p5600.md: New file.
22278
22279 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22280
22281         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22282         * config/i386/predicates.md (palignr_operand): New.
22283         Indicates if permutation is suitable for palignr instruction.
22284
22285 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22286
22287         PR tree-optimization/61319
22288         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22289         stmt belongs to loop.
22290
22291 2014-06-05  Richard Biener  <rguenther@suse.de>
22292
22293         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22294         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22295         (lookup_tmp_var): Adjust.
22296         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22297
22298 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22299
22300         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22301
22302 2014-06-05  Marek Polacek  <polacek@redhat.com>
22303
22304         PR c/49706
22305         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22306
22307 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22308
22309         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22310         CONST_INT.
22311
22312 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22313
22314         PR tree-optimization/61385
22315         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22316
22317 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22318
22319         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22320         changed to use fatal_error.
22321         (main): Ensure lto_wrapper_cleanup is run atexit.
22322
22323 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22324
22325         * lra-constraints.c (valid_address_p): Move earlier in file.
22326         (address_eliminator): New structure.
22327         (satisfies_memory_constraint_p): New function.
22328         (satisfies_address_constraint_p): Likewise.
22329         (process_alt_operands, process_address, curr_insn_transform): Use them.
22330
22331 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22332
22333         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22334         const pointer.
22335         (target_lra_int, default_target_lra_int, this_target_lra_int)
22336         (op_alt_data): Delete.
22337         * lra.h (lra_init): Delete.
22338         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22339         (init_insn_code_data_once): Remove op_alt_data handling.
22340         (finish_insn_code_data_once): Likewise.
22341         (init_op_alt_data): Delete.
22342         (get_static_insn_data): Initialize operand_alternative to null.
22343         (free_insn_recog_data): Cast operand_alternative before freeing it.
22344         (setup_operand_alternative): Take the operand_alternative as
22345         parameter and assume it isn't already cached in the static
22346         insn data.
22347         (lra_set_insn_recog_data): Update accordingly.
22348         (lra_init): Delete.
22349         * ira.c (ira_init): Don't call lra_init.
22350         * target-globals.h (this_target_lra_int): Declare.
22351         (target_globals): Remove lra_int.
22352         (restore_target_globals): Update accordingly.
22353         * target-globals.c: Don't include lra-int.h.
22354         (default_target_globals, save_target_globals): Remove lra_int.
22355
22356 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22357
22358         * recog.h (operand_alternative): Convert reg_class, reject,
22359         matched and matches into bitfields.
22360         (preprocess_constraints): New overload.
22361         (preprocess_insn_constraints): New function.
22362         (preprocess_constraints): Take the insn as parameter.
22363         (recog_op_alt): Change into a pointer.
22364         (target_recog): Add x_op_alt.
22365         * recog.c (asm_op_alt): New variable.
22366         (recog_op_alt): Change into a pointer.
22367         (preprocess_constraints): New overload, replacing the old function
22368         definition with one that doesn't use global state.
22369         (preprocess_insn_constraints): New function.
22370         (preprocess_constraints): Use them.  Take the insn as parameter.
22371         Use asm_op_alt for asms.
22372         (recog_init): Free existing x_op_alt entries.
22373         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22374         pointer const.
22375         (make_early_clobber_and_input_conflicts): Likewise.
22376         (process_bb_node_lives): Pass the insn to process_constraints.
22377         * reg-stack.c (check_asm_stack_operands): Likewise.
22378         (subst_asm_stack_regs): Likewise.
22379         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22380         * regrename.c (build_def_use): Likewise.
22381         * sched-deps.c (sched_analyze_insn): Likewise.
22382         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22383         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22384         (note_invalid_constants): Likewise.
22385         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22386         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22387         const.
22388
22389 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22390
22391         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22392         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22393         alternatives.
22394         (make_early_clobber_and_input_conflicts): Likewise.
22395         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22396
22397 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22398
22399         * recog.h (alternative_class): New function.
22400         (which_op_alt): Return a const recog_op_alt.
22401         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22402         (subst_asm_stack_regs): Likewise.
22403         * config/arm/arm.c (note_invalid_constants): Likewise.
22404         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22405         the operand_alternative; use alternative class instead.
22406         * sel-sched.c (get_reg_class): Likewise.
22407         * regrename.c (build_def_use): Likewise.
22408         (hide_operands, restore_operands, record_out_operands): Update type
22409         accordingly.
22410
22411 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22412
22413         * recog.h (recog_op_alt): Convert to a flat array.
22414         (which_op_alt): New function.
22415         * recog.c (recog_op_alt): Convert to a flat array.
22416         (preprocess_constraints): Update accordingly, grouping all
22417         operands of the same alternative together, rather than the
22418         other way around.
22419         * ira-lives.c (check_and_make_def_conflict): Likewise.
22420         (make_early_clobber_and_input_conflicts): Likewise.
22421         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22422         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22423         (subst_asm_stack_regs): Likewise.
22424         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22425         * regrename.c (hide_operands, record_out_operands): Likewise.
22426         (build_def_use): Likewise.
22427         * sel-sched.c (get_reg_class): Likewise.
22428         * config/arm/arm.c (note_invalid_constants): Likewise.
22429
22430 2014-06-04  Jason Merrill  <jason@redhat.com>
22431
22432         PR c++/51253
22433         PR c++/61382
22434         * gimplify.c (gimplify_arg): Non-static.
22435         * gimplify.h: Declare it.
22436
22437 2014-06-04  Richard Biener  <rguenther@suse.de>
22438
22439         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22440         TREE_PUBLIC and DECL_EXTERNAL decls.
22441
22442 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
22443
22444         * regcprop.c (copyprop_hardreg_forward_1): Account for
22445         HARD_REGNO_CALL_PART_CLOBBERED.
22446
22447 2014-06-04  Richard Biener  <rguenther@suse.de>
22448
22449         * configure.ac: Check whether the underlying type of int64_t
22450         is long or long long.
22451         * configure: Regenerate.
22452         * config.in: Likewise.
22453         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22454         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22455
22456 2014-06-04  Richard Biener  <rguenther@suse.de>
22457
22458         PR tree-optimization/60098
22459         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22460         we hit a kill.
22461         (dse_optimize_stmt): Simplify, now that we found a kill
22462         earlier.
22463
22464 2014-06-04  Richard Biener  <rguenther@suse.de>
22465
22466         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22467         of accesses with non-invariant address.
22468
22469 2014-06-04  Martin Liska  <mliska@suse.cz>
22470
22471         * cgraph.h (cgraph_make_wrapper): New function introduced.
22472         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22473         * ipa-inline.h (inline_analyze_function): The function is global.
22474         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22475
22476 2014-06-04  Martin Liska  <mliska@suse.cz>
22477
22478         * tree.h (private_lookup_attribute_starting): New function.
22479         (lookup_attribute_starting): Likewise.
22480         * tree.c (private_lookup_attribute_starting): Likewise.
22481
22482 2014-06-04  Martin Liska  <mliska@suse.cz>
22483
22484         * cgraph.h (expand_thunk): New argument added.
22485         (address_taken_from_non_vtable_p): New global function.
22486         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22487         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22488         * cgraphunit.c (analyze_function): Likewise.
22489         (assemble_thunks_and_aliases): Argument added to call.
22490         (expand_thunk): New argument forces to produce GIMPLE thunk.
22491
22492 2014-06-04  Martin Liska  <mliska@suse.cz>
22493
22494         * coverage.h (coverage_compute_cfg_checksum): Argument added.
22495         * coverage.c (coverage_compute_cfg_checksum): Likewise.
22496         * profile.c (branch_prob): Likewise.
22497
22498 2014-06-04  Martin Jambor  <mjambor@suse.cz>
22499
22500         PR ipa/61340
22501         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
22502         handler for switch on an ipa_ref_use enum.
22503         * ipa-reference.c (analyze_function): Likewise.
22504
22505 2014-06-04  Kai Tietz  <ktietz@redhat.com>
22506
22507         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
22508         from old call-instruction.
22509
22510 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
22511
22512         * config/aarch64/aarch64.c (aarch64_classify_address)
22513         (aarch64_legitimize_reload_address): Support full addressing modes
22514         for vector modes.
22515         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
22516         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
22517
22518 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22519
22520         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
22521         for OP0.
22522
22523 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22524
22525         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
22526         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
22527
22528 2014-06-03  Kai Tietz  <ktietz@redhat.com>
22529
22530         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
22531         for 64-bit ms-abi.
22532
22533 2014-06-03  Dehao Chen  <dehao@google.com>
22534
22535         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
22536         the same loop.
22537
22538 2014-06-03  Marek Polacek  <polacek@redhat.com>
22539
22540         PR c/60439
22541         * doc/invoke.texi: Document -Wswitch-bool.
22542         * function.c (stack_protect_epilogue): Cast controlling expression of
22543         the switch to int.
22544         * gengtype.c (walk_type): Generate switch expression with its
22545         controlling expression cast to int.
22546
22547 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
22548
22549         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
22550         and attiny841.
22551         * config/avr/avr-tables.opt: Regenerate.
22552         * config/avr/t-multilib: Regenerate.
22553         * doc/avr-mmcu.texi: Regenerate.
22554
22555 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
22556             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22557
22558         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
22559         (ata6617c, ata664251): Add new avr35 devices.
22560         (ata6612c): Add new avr4 device.
22561         (ata6613c, ata6614q): Add new avr5 devices.
22562         * config/avr/avr-tables.opt: Regenerate.
22563         * config/avr/t-multilib: Regenerate.
22564         * doc/avr-mmcu.texi: Regenerate.
22565
22566 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22567
22568         * gcc/config/aarch64/aarch64-builtins.c
22569         (aarch64_types_binop_ssu_qualifiers): New static data.
22570         (TYPES_BINOP_SSU): Define.
22571         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
22572         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
22573         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
22574         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
22575         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
22576         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
22577         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
22578         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
22579         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
22580         suffix to builtin function name, remove cast.
22581         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
22582         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
22583         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
22584
22585 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22586
22587         * gcc/config/aarch64/aarch64-builtins.c
22588         (aarch64_types_binop_uus_qualifiers,
22589         aarch64_types_shift_to_unsigned_qualifiers,
22590         aarch64_types_unsigned_shiftacc_qualifiers): Define.
22591         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
22592         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
22593         sqshlu_n, uqshl_n): Update qualifiers.
22594         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
22595         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
22596         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
22597         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
22598         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
22599         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
22600         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
22601         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
22602         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
22603         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
22604         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
22605         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
22606         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
22607         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
22608         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
22609         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
22610         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
22611         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
22612         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
22613         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
22614         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
22615         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
22616         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
22617         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
22618         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
22619         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
22620         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
22621
22622 2014-06-03  Teresa Johnson  <tejohnson@google.com>
22623
22624         * tree-sra.c (modify_function): Record caller nodes after rebuild.
22625
22626 2014-06-02  Jason Merrill  <jason@redhat.com>
22627
22628         PR c++/61020
22629         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
22630
22631 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22632
22633         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
22634         location == 0.
22635
22636 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22637
22638         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
22639         New pattern.
22640         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
22641         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
22642         * config/aarch64/iterators.md (REVERSE): New iterator.
22643         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
22644         (rev_op): New int_attribute.
22645         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
22646         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
22647         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
22648         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
22649         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
22650         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
22651         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
22652         Replace temporary __asm__ with __builtin_shuffle.
22653
22654 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22655
22656         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
22657         mips64r5.
22658         * config/mips/mips-tables.opt: Regenerate.
22659         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
22660         to use mips_isa_rev rather than ISA_MIPS32R2.
22661         * config/mips/mips.h (ISA_MIPS32R3): New define.
22662         (ISA_MIPS32R5): New define.
22663         (ISA_MIPS64R3): New define.
22664         (ISA_MIPS64R5): New define.
22665         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
22666         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
22667         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
22668         and mips64r5.
22669         (MIPS_ISA_SYNCI_SPEC): Likewise.
22670         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
22671         (LINK_SPEC): Added mips32r3 and mips32r5.
22672         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
22673         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
22674         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
22675         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
22676         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
22677         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
22678         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
22679
22680 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22681
22682         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
22683         options.
22684         * config/mips/mips.opt (mxpa): New option.
22685         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
22686         assembler.
22687
22688 2014-06-03  Martin Jambor  <mjambor@suse.cz>
22689
22690         PR ipa/61160
22691         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
22692         thunks.
22693
22694 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22695
22696         PR tree-optimization/61328
22697         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
22698         initialization from find_bswap_or_nop_1.
22699         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
22700         in source_expr2 before using the size value the function sets. Also
22701         make use of init_symbolic_number () in both the old place and
22702         find_bswap_or_nop_load () to avoid reading uninitialized memory when
22703         doing recursion in the GIMPLE_BINARY_RHS case.
22704
22705 2014-06-03  Richard Biener  <rguenther@suse.de>
22706
22707         PR tree-optimization/61383
22708         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
22709         stmts can't trap.
22710
22711 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
22712
22713         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
22714         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
22715         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
22716         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
22717         in this file.
22718         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
22719         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
22720         * system.h: ...here and make it unconditional.
22721         * target.def (conditional_register_usage): Mention
22722         define_register_constraint instead of old-style constraint macros.
22723         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
22724         * doc/tm.texi: Regenerate.
22725         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
22726         protected by !USE_MD_CONSTRAINTS.
22727         * config/frv/frv.md: Remove quote from old version of documentation.
22728         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
22729         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
22730         CONST_DOUBLE_OK_FOR_LETTER.
22731         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
22732
22733 2014-06-02  Andrew Pinski  <apinski@cavium.com>
22734
22735         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
22736         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
22737         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
22738         file whose name depends on -mabi= and -mbig-endian.
22739         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
22740         Handle LP64 better and handle ilp32 too.
22741         (MULTILIB_OPTIONS): Delete.
22742         (MULTILIB_DIRNAMES): Delete.
22743
22744 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
22745
22746         * expr.h: Remove prototypes of functions defined in builtins.c.
22747         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
22748         Remove prototypes of functions defined in builtins.c.
22749         * builtins.h: Update prototype list to include all exported functions.
22750         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
22751         no_c99_libc_has_function): Move to targhooks.c
22752         (build_string_literal, build_call_expr_loc_array,
22753         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
22754         to tree.c.
22755         (expand_builtin_object_size, fold_builtin_object_size): Make static.
22756         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
22757         no_c99_libc_has_function): Relocate from builtins.c.
22758         * tree.c: Include builtins.h.
22759         (build_call_expr_loc_array, build_call_expr_loc_vec,
22760         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
22761         from builtins.c.
22762         * fold-const.h (fold_fma): Move prototype to builtins.h.
22763         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
22764         * asan.c: Include builtins.h.
22765         * cfgexpand.c: Likewise.
22766         * convert.c: Likewise.
22767         * emit-rtl.c: Likewise.
22768         * except.c: Likewise.
22769         * expr.c: Likewise.
22770         * fold-const.c: Likewise.
22771         * gimple-fold.c: Likewise.
22772         * gimple-ssa-strength-reduction.c: Likewise.
22773         * gimplify.c: Likewise.
22774         * ipa-inline.c: Likewise.
22775         * ipa-prop.c: Likewise.
22776         * lto-streamer-out.c: Likewise.
22777         * stmt.c: Likewise.
22778         * tree-inline.c: Likewise.
22779         * tree-object-size.c: Likewise.
22780         * tree-sra.c: Likewise.
22781         * tree-ssa-ccp.c: Likewise.
22782         * tree-ssa-forwprop.c: Likewise.
22783         * tree-ssa-loop-ivcanon.c: Likewise.
22784         * tree-ssa-loop-ivopts.c: Likewise.
22785         * tree-ssa-math-opts.c: Likewise.
22786         * tree-ssa-reassoc.c: Likewise.
22787         * tree-ssa-threadedge.c: Likewise.
22788         * tree-streamer-in.c: Likewise.
22789         * tree-vect-data-refs.c: Likewise.
22790         * tree-vect-patterns.c: Likewise.
22791         * tree-vect-stmts.c: Likewise.
22792         * config/aarch64/aarch64.c: Likewise.
22793         * config/alpha/alpha.c: Likewise.
22794         * config/arc/arc.c: Likewise.
22795         * config/arm/arm.c: Likewise.
22796         * config/avr/avr.c: Likewise.
22797         * config/bfin/bfin.c: Likewise.
22798         * config/c6x/c6x.c: Likewise.
22799         * config/cr16/cr16.c: Likewise.
22800         * config/cris/cris.c: Likewise.
22801         * config/epiphany/epiphany.c: Likewise.
22802         * config/fr30/fr30.c: Likewise.
22803         * config/frv/frv.c: Likewise.
22804         * config/h8300/h8300.c: Likewise.
22805         * config/i386/i386.c: Likewise.
22806         * config/i386/winnt.c: Likewise.
22807         * config/ia64/ia64.c: Likewise.
22808         * config/iq2000/iq2000.c: Likewise.
22809         * config/lm32/lm32.c: Likewise.
22810         * config/m32c/m32c.c: Likewise.
22811         * config/m32r/m32r.c: Likewise.
22812         * config/m68k/m68k.c: Likewise.
22813         * config/mcore/mcore.c: Likewise.
22814         * config/mep/mep.c: Likewise.
22815         * config/microblaze/microblaze.c: Likewise.
22816         * config/mips/mips.c: Likewise.
22817         * config/mmix/mmix.c: Likewise.
22818         * config/mn10300/mn10300.c: Likewise.
22819         * config/moxie/moxie.c: Likewise.
22820         * config/msp430/msp430.c: Likewise.
22821         * config/nds32/nds32.c: Likewise.
22822         * config/pa/pa.c: Likewise.
22823         * config/pdp11/pdp11.c: Likewise.
22824         * config/picochip/picochip.c: Likewise.
22825         * config/rl78/rl78.c: Likewise.
22826         * config/rs6000/rs6000.c: Likewise.
22827         * config/rx/rx.c: Likewise.
22828         * config/s390/s390.c: Likewise.
22829         * config/score/score.c: Likewise.
22830         * config/sh/sh.c: Likewise.
22831         * config/sparc/sparc.c: Likewise.
22832         * config/spu/spu.c: Likewise.
22833         * config/stormy16/stormy16.c: Likewise.
22834         * config/tilegx/tilegx.c: Likewise.
22835         * config/tilepro/tilepro.c: Likewise.
22836         * config/v850/v850.c: Likewise.
22837         * config/vax/vax.c: Likewise.
22838         * config/xtensa/xtensa.c: Likewise.
22839
22840 2014-06-02  Jeff Law  <law@redhat.com>
22841
22842         PR rtl-optimization/61094
22843         * ree.c (combine_reaching_defs): Do not reextend an insn if it
22844         was marked as do_no_reextend.  If a copy is needed to eliminate
22845         an extension, then mark it as do_not_reextend.
22846
22847 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22848
22849         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
22850
22851 2014-06-02  Richard Henderson  <rth@redhat.com>
22852
22853         PR target/61336
22854         * config/alpha/alpha.c (print_operand_address): Allow symbolic
22855         addresses inside asms.  Use output_operand_lossage instead of
22856         gcc_unreachable.
22857
22858 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
22859
22860         PR target/61239
22861         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
22862         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
22863
22864 2014-06-02  Tom de Vries  <tom@codesourcery.com>
22865
22866         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
22867         case that x has VOIDmode.
22868
22869 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
22870
22871         * varasm.c (copy_constant): Delete function.
22872         (build_constant_desc): Don't call it.
22873
22874 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22875
22876         PR target/61154
22877         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
22878         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
22879         with immediate_operand.
22880
22881 2014-06-02  Andreas Schwab  <schwab@suse.de>
22882
22883         * config/ia64/ia64.c
22884         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
22885         pending_data_specs first.
22886
22887 2014-06-02  Richard Biener  <rguenther@suse.de>
22888
22889         PR tree-optimization/61378
22890         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
22891         valueized_anything.
22892
22893 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
22894
22895         * config/i386/constraints.md (Bw): Rename from 'w'.
22896         (Bz): Rename from 'z'.
22897         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
22898
22899 2014-06-01  Kai Tietz  <ktietz@redhat.com>
22900
22901         PR target/61377
22902         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
22903         * config/i386/i386.md (sibcall_insn_operand): Use Bs
22904         instead of m constraint.
22905
22906 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
22907
22908         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
22909         a separate alternative where the scratch operand 2 is marked as
22910         early clobber.
22911
22912 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
22913
22914         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
22915         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
22916         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
22917         and __builtins_arm_get_fpscr.
22918         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
22919         __builtins_arm_get_fpscr.
22920         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
22921         __builtins_arm_ldfpscr.
22922         (arm_atomic_assign_expand_fenv): New function.
22923         * config/arm/vfp.md (set_fpscr): New pattern.
22924         (get_fpscr) : Likewise.
22925         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
22926         VUNSPEC_SET_FPSCR.
22927         * doc/extend.texi (AARCH64 Built-in Functions) : Document
22928         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
22929
22930 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
22931
22932         * asan.c (report_error_func): Add SLOW_P argument, use
22933         BUILT_IN_ASAN_*_N if set.
22934         (build_check_stmt): Likewise.
22935         (instrument_derefs): If T has insufficient alignment,
22936         force same handling as for odd sizes.
22937
22938         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
22939         BUILT_IN_ASAN_REPORT_STORE_N): New.
22940         * asan.c (struct asan_mem_ref): Change access_size type to
22941         HOST_WIDE_INT.
22942         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
22943         update_mem_ref_hash_table): Likewise.
22944         (asan_mem_ref_hasher::hash): Hash in a HWI.
22945         (report_error_func): Change size_in_bytes argument to HWI.
22946         Use *_N builtins if size_in_bytes is larger than 16 or not power of
22947         two.
22948         (build_shadow_mem_access): New function.
22949         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
22950         Handle size_in_bytes not power of two or larger than 16.
22951         (instrument_derefs): Don't give up if size_in_bytes is not
22952         power of two or is larger than 16.
22953
22954 2014-05-30  Kai Tietz  <ktietz@redhat.com>
22955
22956         PR target/60104
22957         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
22958         for sibling-tail-calls.
22959         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
22960         to its use.
22961         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
22962         (sibcall_insn_operand): Add check for sibcall_memory_operand.
22963
22964 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22965
22966         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
22967         * config/avr/avr-tables.opt: Regenerate.
22968         * config/avr/t-multilib: Regenerate.
22969         * doc/avr-mmcu.texi: Regenerate.
22970
22971 2014-05-30  Ian Lance Taylor  <iant@google.com>
22972
22973         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
22974         target("sse").
22975
22976 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22977
22978         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
22979         Redefine as true.
22980
22981 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22982
22983         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22984         * lra.c (initialize_lra_reg_info_element): Add init of
22985         actual_call_used_reg_set field.
22986         (lra): Call lra_create_live_ranges before lra_inheritance for
22987         -fuse-caller-save.
22988         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22989         -fuse-caller-save.
22990         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
22991         instead of call_used_reg_set for -fuse-caller-save.
22992         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22993
22994 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22995
22996         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
22997         to mov_imm.
22998         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
22999
23000 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23001
23002         * ira.c (ira_get_dup_out_num): Check for output operands at
23003         the start of the loop.  Handle cases where an included alternative
23004         follows an excluded one.
23005
23006 2014-05-29  Mike Stump  <mikestump@comcast.net>
23007
23008         PR debug/61352
23009         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23010         post ld passes when lto is used.
23011
23012 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
23013
23014         PR rtl-optimization/61325
23015         * lra-constraints.c (process_address): Rename to process_address_1.
23016         (process_address): New function.
23017
23018 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
23019
23020         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23021         TYPES_BINOPV): New static data.
23022         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23023         New builtin.
23024         * config/aarch64/aarch64-simd.md (aarch64_ext,
23025         aarch64_im_lane_boundsi): New patterns.
23026         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23027         patterns for EXT.
23028         (aarch64_evpc_ext): New function.
23029
23030         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23031
23032         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23033         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23034         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23035         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23036         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23037
23038 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23039
23040         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23041
23042 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
23043             Richard Sandiford  <rdsandiford@googlemail.com>
23044
23045         * arm/iterators.md (shiftable_ops): New code iterator.
23046         (t2_binop0, arith_shift_insn): New code attributes.
23047         * arm/predicates.md (shift_nomul_operator): New predicate.
23048         * arm/arm.md (insn_enabled): Delete.
23049         (enabled): Remove insn_enabled test.
23050         (*arith_shiftsi): Delete.  Replace with ...
23051         (*<arith_shift_insn>_multsi): ... new pattern.
23052         (*<arith_shift_insn>_shiftsi): ... new pattern.
23053         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23054
23055 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
23056             Tom de Vries  <tom@codesourcery.com>
23057
23058         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23059         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23060         clobber.
23061         (mips_split_call): Use POST_CALL_TMP_REG.
23062         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23063
23064 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23065
23066         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23067         with #ifdef STACK_REGS.
23068
23069 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
23070
23071         * varasm.c (get_variable_section): Walk aliases.
23072         (place_block_symbol): Walk aliases.
23073
23074 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23075
23076         Revert:
23077         2014-05-28  Tom de Vries  <tom@codesourcery.com>
23078
23079         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23080         * lra.c (initialize_lra_reg_info_element): Add init of
23081         actual_call_used_reg_set field.
23082         (lra): Call lra_create_live_ranges before lra_inheritance for
23083         -fuse-caller-save.
23084         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23085         -fuse-caller-save.
23086         * lra-constraints.c (need_for_call_save_p): Use
23087         actual_call_used_reg_set instead of call_used_reg_set for
23088         -fuse-caller-save.
23089         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23090
23091 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23092
23093         * doc/md.texi: Document that the % constraint character must
23094         be at the beginning of the string.
23095         * genoutput.c (validate_insn_alternatives): Check that '=',
23096         '+' and '%' only appear at the beginning of a constraint.
23097         * ira.c (commutative_constraint_p): Delete.
23098         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23099         at the start of the string.
23100         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23101         duplicate '='s.
23102         * config/arm/neon.md (bicdi3_neon): Likewise.
23103         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23104         (slt_si, sltu_si): Likewise.
23105         * config/vax/vax.md (sbcdi3): Likewise.
23106         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23107         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23108         (mul64): Move '%' to beginning of constraint.
23109         * config/arm/arm.md (*xordi3_insn): Likewise.
23110         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23111         (xorsi3): Likewise.
23112
23113 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23114
23115         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23116
23117 2014-05-28  Jason Merrill  <jason@redhat.com>
23118
23119         PR c++/47202
23120         * cgraph.h (symtab_node::get_comdat_group_id): New.
23121         * cgraphunit.c (analyze_functions): Call it.
23122         * symtab.c (dump_symtab_node): Likewise.
23123         * tree.c (decl_comdat_group_id): New.
23124         * tree.h: Declare it.
23125         * lto-streamer-out.c (write_symbol): Use it.
23126         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23127
23128 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23129
23130         PR bootstrap/PR61146
23131         * wide-int.cc: Do not include longlong.h when compiling with clang.
23132
23133 2014-05-28  Richard Biener  <rguenther@suse.de>
23134
23135         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23136         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23137         (vrp_visit_assignment_or_call): Print less vertical space.
23138         (vrp_visit_stmt): Likewise.
23139         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23140         VR_VARYING range consider recording it as copy.
23141
23142 2014-05-28  Richard Biener  <rguenther@suse.de>
23143
23144         Revert
23145         2014-05-28  Richard Biener  <rguenther@suse.de>
23146
23147         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23148
23149 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23150
23151         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23152         sufficiently aligned and an offset is used at the same time.
23153         (expand_expr_real_1): Likewise.
23154
23155 2014-05-28  Richard Biener  <rguenther@suse.de>
23156
23157         PR middle-end/61045
23158         * fold-const.c (fold_comparison): When folding
23159         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23160         the sign of the remaining constant operand stays the same.
23161
23162 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23163
23164         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23165         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23166         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23167         to the assembler.
23168         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23169         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23170         (m32bit-doubles) Likewise.
23171         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23172         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23173         option for RL78.
23174
23175 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23176
23177         * configure.ac ($gcc_cv_ld_clearcap): New test.
23178         * configure: Regenerate.
23179         * config.in: Regenerate.
23180         * config/sol2.opt (mclear-hwcap): New option.
23181         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23182         * config/sol2-clearcap.map: Moved here from
23183         testsuite/gcc.target/i386/clearcap.map.
23184         * config/sol2-clearcapv2.map: Move here from
23185         gcc.target/i386/clearcapv2.map.
23186         * config/t-sol2 (install): Depend on install-clearcap-map.
23187         (install-clearcap-map): New target.
23188         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23189         -mclear-hwcap.
23190
23191 2014-05-28  Richard Biener  <rguenther@suse.de>
23192
23193         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23194         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23195         ... here and remove the rest.
23196         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23197
23198 2014-05-28  Richard Biener  <rguenther@suse.de>
23199
23200         PR tree-optimization/61335
23201         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23202         new range fails, drop to varying.
23203
23204 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23205
23206         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23207         (CPP_SPEC): Add entry for -mcpu=8548.
23208         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23209         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23210
23211 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23212
23213         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23214         * lra.c (initialize_lra_reg_info_element): Add init of
23215         actual_call_used_reg_set field.
23216         (lra): Call lra_create_live_ranges before lra_inheritance for
23217         -fuse-caller-save.
23218         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23219         -fuse-caller-save.
23220         * lra-constraints.c (need_for_call_save_p): Use
23221         actual_call_used_reg_set instead of call_used_reg_set for
23222         -fuse-caller-save.
23223         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23224
23225 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23226             Tom de Vries  <tom@codesourcery.com>
23227
23228         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23229         to gccoptlist.
23230         (@item -fuse-caller-save): New item.
23231
23232 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23233             Tom de Vries  <tom@codesourcery.com>
23234
23235         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23236         OPT_fuse_caller_save.
23237
23238 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23239             Tom de Vries  <tom@codesourcery.com>
23240
23241         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23242         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23243         get_call_reg_set_usage.
23244         * resource.c (mark_set_resources, mark_target_live_regs): Use
23245         get_call_reg_set_usage.
23246         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23247         field.
23248         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23249         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23250         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23251         * ira-build.c (ira_create_allocno): Init
23252         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23253         (create_cap_allocno, propagate_allocno_info)
23254         (propagate_some_info_from_allocno)
23255         (copy_info_to_removed_store_destinations): Handle
23256         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23257         * ira-costs.c (ira_tune_allocno_costs): Use
23258         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23259
23260 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23261             Tom de Vries  <tom@codesourcery.com>
23262
23263         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23264         and function_used_regs_valid fields.
23265         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23266         find_all_hard_reg_sets.
23267         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23268         (get_call_reg_set_usage): New function.
23269         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23270         * regs.h (get_call_reg_set_usage): Declare.
23271
23272 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23273
23274         PR libgcc/61152
23275         * config/dbx.h (License): Add Runtime Library Exception.
23276         * config/newlib-stdint.h (License): Same.
23277         * config/rtems.h (License): Same
23278         * config/initfini-array.h (License): Same
23279         * config/v850/v850.h (License): Same.
23280         * config/v850/v850-opts.h (License): Same
23281         * config/v850/rtems.h (License): Same.
23282
23283 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23284
23285         PR target/61044
23286         * doc/extend.texi (Local Labels): Note that label differences are
23287         not supported for AVR.
23288
23289 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23290             Olivier Hainque  <hainque@adacore.com>
23291
23292         * rtl.h (set_for_reg_notes): Declare.
23293         * emit-rtl.c (set_for_reg_notes): New function.
23294         (set_unique_reg_note): Use it.
23295         * optabs.c (add_equal_note): Likewise
23296
23297 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23298
23299         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23300         Use <w> for the register in assembly template.
23301         (stack_protect_test): Use the mode of operands[0] for the result.
23302         (stack_protect_test_<mode>): Use <w> for the register
23303         in assembly template.
23304
23305 2014-05-27  DJ Delorie  <dj@redhat.com>
23306
23307         * config/rx/rx.c (add_vector_labels): New.
23308         (rx_output_function_prologue): Call it.
23309         (rx_handle_func_attribute): Don't require empty arguments.
23310         (rx_handle_vector_attribute): New.
23311         (rx_attribute_table): Add "vector" attribute.
23312         * doc/extend.texi (interrupt, vector): Document new/changed
23313         RX-specific attributes.
23314
23315         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23316
23317 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23318
23319         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23320         predicate to detect a negative quotient.
23321
23322 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23323
23324         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23325         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23326         Add X - Y CMP 0 to X CMP Y transformation.
23327         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23328
23329 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23330
23331         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23332         before printing.
23333
23334 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23335
23336         * config/mips/mips.c: Add include of cgraph.h.
23337
23338 2014-05-27  Richard Biener  <rguenther@suse.de>
23339
23340         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23341
23342 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23343
23344         PR libgcc/61152
23345         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23346         * config/arm/arm-cores.def (License): Same.
23347         * config/arm/arm-opts.h (License): Same.
23348         * config/arm/aout.h (License): Same.
23349         * config/arm/bpabi.h (License): Same.
23350         * config/arm/elf.h (License): Same.
23351         * config/arm/linux-elf.h (License): Same.
23352         * config/arm/linux-gas.h (License): Same.
23353         * config/arm/netbsd-elf.h (License): Same.
23354         * config/arm/uclinux-eabi.h (License): Same.
23355         * config/arm/uclinux-elf.h (License): Same.
23356         * config/arm/vxworks.h (License): Same.
23357
23358 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23359
23360         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23361         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23362         (arm_init_neon_builtins): Handle NEON_BSWAP.
23363         Define required type nodes.
23364         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23365         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23366         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23367         * config/arm/iterators.md (VDQHSD): New mode iterator.
23368
23369 2014-05-27  Richard Biener  <rguenther@suse.de>
23370
23371         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23372         Try using literal operands when comparing value-ranges failed.
23373
23374 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23375
23376         * ira.c (commutative_operand): Adjust for change to recog_data.
23377         [Missing from previous commit.]
23378
23379 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23380
23381         * system.h (TEST_BIT): New macro.
23382         * recog.h (alternative_mask): New type.
23383         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23384         (recog_data_d): Replace alternative_enabled_p array with
23385         enabled_alternatives.
23386         (target_recog): New structure.
23387         (default_target_recog, this_target_recog): Declare.
23388         (get_enabled_alternatives, recog_init): Likewise.
23389         * recog.c (default_target_recog, this_target_recog): New variables.
23390         (get_enabled_alternatives): New function.
23391         (extract_insn): Use it.
23392         (recog_init): New function.
23393         (preprocess_constraints, constrain_operands): Adjust for change to
23394         recog_data.
23395         * postreload.c (reload_cse_simplify_operands): Likewise.
23396         * reload.c (find_reloads): Likewise.
23397         * ira-costs.c (record_reg_classes): Likewise.
23398         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23399         all alternatives after a disabled one would be skipped.
23400         (ira_implicitly_set_insn_hard_regs): Likewise.
23401         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23402         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23403         with enabled_alternatives.
23404         * lra.c (free_insn_recog_data): Update accordingly.
23405         (lra_update_insn_recog_data): Likewise.
23406         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23407         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23408         only_alternative as part of the enabled mask.
23409         * target-globals.h (this_target_recog): Declare.
23410         (target_globals): Add a recog field.
23411         (restore_target_globals): Restore this_target_recog.
23412         * target-globals.c: Include recog.h.
23413         (default_target_globals): Initialize recog field.
23414         (save_target_globals): Likewise.
23415         * reginfo.c (reinit_regs): Call recog_init.
23416         * toplev.c (backend_init_target): Likewise.
23417
23418 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23419
23420         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23421         rather than any named insn's code.
23422
23423 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23424
23425         PR libgcc/61152
23426         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23427         * config/arm/arm-cores.def (License): Same.
23428
23429 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23430
23431         * tree.h (decl_comdat_group): Declare.
23432         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23433         * tree.c (decl_comdat_group): Here.
23434
23435 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23436
23437         PR rtl-optimization/61222
23438         * combine.c (simplify_shift_const_1): When moving a PLUS outside
23439         the shift, truncate the PLUS operand to the result mode.
23440
23441 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
23442
23443         PR target/61271
23444         * config/i386/i386.c (ix86_rtx_costs)
23445         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23446         Fix condition.
23447
23448 2014-05-26  Martin Jambor  <mjambor@suse.cz>
23449
23450         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23451         subreg uses.
23452
23453 2014-05-26  Richard Biener  <rguenther@suse.de>
23454
23455         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23456         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23457         Provide specializations.
23458         (wi::int_traits <HOST_WIDE_INT>,
23459         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23460
23461 2014-05-26  Alan Modra  <amodra@gmail.com>
23462
23463         PR target/61098
23464         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23465         params and return a bool.  Remove dead code.  Update comment.
23466         Assert we have a const_int source.  Remove bogus code from
23467         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
23468         handling of constants > 2G and reg_equal note, from..
23469         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
23470         return value.  Update comment.  If we can, use a new pseudo
23471         for intermediate calculations.
23472         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23473         prototype.
23474         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23475         call to rs6000_emit_set_const in splitter.
23476         (movdi_internal64+2, +3): Likewise.
23477
23478 2014-05-26  Richard Biener  <rguenther@suse.de>
23479
23480         * system.h: Define __STDC_FORMAT_MACROS before
23481         including inttypes.h.
23482         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23483         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23484         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23485         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23486         HOST_WIDEST_INT_C): Remove.
23487         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23488         if C99 inttypes.h is not available.
23489         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23490         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
23491         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
23492         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
23493         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
23494         (struct output_info): Likewise.
23495         (print_statistics): Adjust.
23496         (dump_bitmap_statistics): Likewise.
23497         * bt-load.c (migrate_btr_defs): Print with PRId64.
23498         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
23499         (MAX_SAFE_MULTIPLIER): Adjust.
23500         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
23501         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
23502         dump_cgraph_node): Likewise.
23503         * final.c (dump_basic_block_info): Likewise.
23504         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
23505         * gcov.c (format_gcov): Likewise.
23506         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
23507         for calculation.
23508         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
23509         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
23510         (inline_small_functions, dump_overall_stats, dump_inline_stats):
23511         Use PRId64 for dumping.
23512         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
23513         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
23514         (add_allocno_hard_regs): Adjust.
23515         * loop-doloop.c (doloop_modify): Print using PRId64.
23516         * loop-iv.c (inverse): Compute in uint64_t.
23517         (determine_max_iter, iv_number_of_iterations): Likewise.
23518         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
23519         Print using PRId64.
23520         * lto-streamer-out.c (write_symbol): Use uint64_t.
23521         * mcf.c (CAP_INFINITY): Use int64_t maximum.
23522         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
23523         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
23524         * modulo-sched.c (const_iteration_count): Use int64_t.
23525         (sms_schedule): Dump using PRId64.
23526         * predict.c (dump_prediction): Likewise.
23527         * pretty-print.h (pp_widest_integer): Remove.
23528         * profile.c (get_working_sets, is_edge_inconsistent,
23529         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
23530         * tree-pretty-print.c (pp_double_int): Remove case handling
23531         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
23532         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
23533         and adjust users.
23534         (pass_optimize_bswap::execute): Remove restriction on hosts.
23535         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
23536         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23537         * tree.c (widest_int_cst_value): Remove.
23538         * tree.h (widest_int_cst_value): Likewise.
23539         * value-prof.c (dump_histogram_value): Print using PRId64.
23540         * gengtype.c (main): Also inject int64_t.
23541         * ggc-page.c (struct max_alignment): Use int64_t.
23542         * alloc-pool.c (struct allocation_object_def): Likewise.
23543         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
23544         for computation.
23545         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
23546         * doc/tm.texi: Regenerated.
23547         * gengtype-lex.l (IWORD): Handle [u]int64_t.
23548         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
23549         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
23550         mmix_output_register_setting): Use [u]int64_t in prototypes.
23551         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
23552         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
23553         mmix_output_octa, mmix_output_shifted_value): Adjust.
23554         (mmix_intval): Adjust.  Remove unreachable case.
23555         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
23556
23557 2014-05-26  Richard Biener  <rguenther@suse.de>
23558
23559         * configure.ac: Drop __int64 type check.  Insist that we
23560         found uint64_t and int64_t.
23561         * hwint.h (HOST_BITS_PER___INT64): Remove.
23562         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
23563         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
23564         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
23565         (HOST_WIDEST_FAST_INT): Remove __int64 case.
23566         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
23567         for dst_q_src_df_rms_cdt.
23568         * configure: Regenerate.
23569         * config.in: Likewise.
23570
23571 2014-05-26  Michael Tautschnig  <mt@debian.org>
23572
23573         PR target/61249
23574         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
23575         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
23576
23577 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23578
23579         PR rtl-optimization/61278
23580         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
23581
23582 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23583
23584         PR rtl-optimization/61220
23585         Part of PR rtl-optimization/61225
23586         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
23587         insn; skip split_edge for a block with only one successor.
23588
23589 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23590
23591         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
23592         for variables.
23593
23594 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23595
23596         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
23597         (update_vtable_references): New function.
23598         (function_and_variable_visibility): Rewrite also vtable initializers.
23599         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
23600
23601 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23602
23603         * ggc.h (ggc_grow): New function.
23604         * ggc-none.c (ggc_grow): New function.
23605         * ggc-page.c (ggc_grow): Likewise.
23606
23607 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23608
23609         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
23610         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
23611         comdat_can_be_unshared_p, cgraph_externally_visible_p,
23612         varpool_externally_visible_p, can_replace_by_local_alias,
23613         update_visibility_by_resolution_info, function_and_variable_visibility,
23614         pass_data_ipa_function_and_variable_visibility,
23615         make_pass_ipa_function_and_variable_visibility,
23616         whole_program_function_and_variable_visibility,
23617         pass_data_ipa_whole_program_visibility,
23618         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
23619         * cgraph.h (cgraph_local_node_p): Declare.
23620         * ipa-visibility.c: New file.
23621         * Makefile.in (OBJS): Add ipa-visiblity.o
23622
23623 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23624
23625         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
23626         that var decl is available.
23627
23628 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23629
23630         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
23631         symtab_node pointer.
23632         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
23633         (find_decls_types_r): Do not walk COMDAT_GROUP.
23634         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
23635         * varasm.c (make_decl_one_only): Use set_comdat_group;
23636         create node if needed.
23637         * ipa-inline-transform.c (save_inline_function_body): Update
23638         way we decl->symtab mapping.
23639         * symtab.c (symtab_hash, hash_node, eq_node
23640         symtab_insert_node_to_hashtable): Remove.
23641         (symtab_register_node): Update.
23642         (symtab_unregister_node): Update.
23643         (symtab_get_node): Reimplement as inline function.
23644         (symtab_add_to_same_comdat_group): Update.
23645         (symtab_dissolve_same_comdat_group_list): Update.
23646         (dump_symtab_base): Update.
23647         (verify_symtab_base): Update.
23648         (symtab_make_decl_local): Update.
23649         (fixup_same_cpp_alias_visibility): Update.
23650         (symtab_nonoverwritable_alias): Update.
23651         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
23652         * ipa.c (update_visibility_by_resolution_info): UPdate.
23653         * bb-reorder.c: Include cgraph.h
23654         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
23655         with comdat groups.
23656         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
23657         * cgraph.c (cgraph_get_create_node): Update.
23658         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
23659         and comdat_group_.
23660         (symtab_get_node): Make inline.
23661         (symtab_insert_node_to_hashtable): Remove.
23662         (symtab_can_be_discarded): Update.
23663         (decl_comdat_group): New function.
23664         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
23665         Update.
23666         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
23667         comdat group name.
23668         (read_comdat_group): New function.
23669         (input_node, input_varpool_node): Use it.
23670         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
23671         comdat groups.
23672         * mips.c (mips_start_unique_function): Likewise.
23673         (ix86_code_end): Likewise.
23674         (rs6000_code_end): Likweise.
23675         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
23676
23677 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23678
23679         * gengtype-state.c (fatal_reading_state): Bring offline.
23680         * optabs.c (widening_optab_handler): Bring offline.
23681         * optabs.h (widening_optab_handler): Likewise.
23682         * final.c (get_attr_length_1): Likewise.
23683
23684 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23685
23686         * sched-int.h (sd_iterator_cond): Manually tail recurse.
23687
23688 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23689
23690         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
23691         (ppc440-compare): Include shift with dot.
23692         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
23693         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
23694         without dot.
23695         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
23696         without dot.
23697         (e6500_sfx2): Include it.
23698         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
23699         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
23700         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
23701         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
23702         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
23703         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
23704         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
23705         *lshiftrt_internal1le, *lshiftrt_internal1be,
23706         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
23707         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
23708         *rotldi3_internal10le, *rotldi3_internal10be,
23709         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
23710         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
23711         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
23712         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
23713         define_insns): Use type "shift" in the appropriate alternatives.
23714
23715 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23716
23717         * config/rs6000/rs6000.md (type): Add "logical".  Delete
23718         "fast_compare".
23719         (dot): Adjust comment.
23720         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
23721         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
23722         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
23723         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
23724         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
23725         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
23726         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
23727         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23728
23729         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23730         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23731         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23732         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23733         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23734         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23735         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23736         * config/rs6000/8540.md (ppc8540_su): Adjust.
23737         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23738         cell-cmp-microcoded): Adjust.
23739         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23740         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23741         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23742         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23743         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23744         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23745         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23746         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23747         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23748         Adjust.
23749         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23750         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
23751         Adjust.  Adjust comment.
23752         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23753         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23754
23755 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23756
23757         * config/rs6000/rs6000.md (type): Add "add".
23758         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
23759         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
23760         define_insns): Use it.
23761         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23762
23763         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23764         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23765         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23766         * config/rs6000/601.md (ppc601-integer): Adjust.
23767         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23768         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23769         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23770         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23771         * config/rs6000/8540.md (ppc8540_su): Adjust.
23772         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23773         cell-cmp-microcoded): Adjust.
23774         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23775         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23776         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23777         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23778         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23779         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23780         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23781         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23782         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23783         Adjust.
23784         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23785         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
23786         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23787         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23788
23789 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23790
23791         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
23792         "delayed_compare", "var_delayed_compare".
23793         (var_shift): New attribute.
23794         (cell_micro): Adjust.
23795         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
23796         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
23797         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
23798         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
23799         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
23800         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
23801         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
23802         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
23803         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
23804         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
23805         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
23806         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
23807         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
23808         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
23809         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
23810         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
23811         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
23812         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
23813         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
23814         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
23815         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
23816         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
23817         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
23818         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23819         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23820
23821         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23822         * config/rs6000/440.md (ppc440-integer): Adjust.
23823         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23824         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
23825         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23826         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23827         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23828         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23829         * config/rs6000/8540.md (ppc8540_su): Adjust.
23830         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23831         cell-cmp-microcoded): Adjust.
23832         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
23833         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23834         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
23835         e500mc64_delayed): Adjust.
23836         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
23837         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
23838         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23839         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
23840         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
23841         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
23842         power6-delayed-compare, power6-var-delayed-compare): Adjust.
23843         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
23844         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
23845         Adjust comment.
23846         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23847         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23848
23849 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23850
23851         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
23852         (bits): New mode_attr.
23853         (idiv_ldiv): Delete mode_attr.
23854         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
23855         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23856         rs6000_adjust_priority, is_nonpipeline_insn,
23857         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23858
23859         * config/rs6000/40x.md (ppc403-idiv): Adjust.
23860         * config/rs6000/440.md (ppc440-idiv): Adjust.
23861         * config/rs6000/476.md (ppc476-idiv): Adjust.
23862         * config/rs6000/601.md (ppc601-idiv): Adjust.
23863         * config/rs6000/603.md (ppc603-idiv): Adjust.
23864         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
23865         ppc620-ldiv): Adjust.
23866         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
23867         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
23868         * config/rs6000/8540.md (ppc8540_divide): Adjust.
23869         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
23870         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
23871         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
23872         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
23873         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
23874         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
23875         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
23876         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
23877         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
23878         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
23879         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
23880         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
23881         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
23882         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
23883         * config/rs6000/titan.md (titan_fxu_div): Adjust.
23884
23885 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23886
23887         * config/rs6000/rs6000.md (type): Delete "insert_word",
23888         "insert_dword".  Add "insert".
23889         (size): Update comment.
23890         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23891         insn_must_be_first_in_group): Adjust.
23892         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
23893         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
23894         *insvsi_internal6, insvdi_internal): Adjust.
23895
23896         * config/rs6000/40x.md (ppc403-integer): Adjust.
23897         * config/rs6000/440.md (ppc440-integer): Adjust.
23898         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
23899         * config/rs6000/601.md (ppc601-integer): Adjust.
23900         * config/rs6000/603.md (ppc603-integer): Adjust.
23901         * config/rs6000/6xx.md (ppc604-integer): Adjust.
23902         * config/rs6000/7450.md (ppc7450-integer): Adjust.
23903         * config/rs6000/7xx.md (ppc750-integer): Adjust.
23904         * config/rs6000/8540.md (ppc8540_su): Adjust.
23905         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
23906         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
23907         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23908         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
23909         * config/rs6000/e5500.md (e5500_sfx): Adjust.
23910         * config/rs6000/e6500.md (e6500_sfx): Adjust.
23911         * config/rs6000/mpc.md (mpccore-integer): Adjust.
23912         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
23913         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
23914         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
23915         * config/rs6000/power7.md (power7-integer): Adjust.
23916         * config/rs6000/power8.md (power8-1cyc): Adjust.
23917         * config/rs6000/rs64.md (rs64a-integer): Adjust.
23918         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23919
23920 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23921
23922         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
23923         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
23924         (size): New attribute.
23925         (dot): New attribute.
23926         (cell_micro): Adjust.
23927         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
23928         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
23929         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
23930         umuldi3_highpart): Adjust.
23931         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23932         rs6000_adjust_priority, is_nonpipeline_insn,
23933         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23934
23935         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
23936         ppc405-imul3): Adjust.
23937         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
23938         * config/rs6000/476.md (ppc476-imul): Adjust.
23939         * config/rs6000/601.md (ppc601-imul): Adjust.
23940         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
23941         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
23942         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
23943         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
23944         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
23945         Adjust.
23946         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
23947         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
23948         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
23949         cell-imul): Adjust.
23950         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
23951         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
23952         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
23953         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
23954         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
23955         * config/rs6000/mpc.md (mpccore-imul): Adjust.
23956         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
23957         power4-lmul, power4-imul, power4-imul3): Adjust.
23958         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
23959         power5-lmul, power5-imul, power5-imul3): Adjust.
23960         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
23961         power6-lmul, power6-imul, power6-imul3): Adjust.
23962         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
23963         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
23964
23965         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
23966         rs64a-lmul): Adjust.
23967         * config/rs6000/titan.md (titan_imul): Adjust.
23968
23969 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23970
23971         * config/rs6000/rs6000.md (type): Add new value "halfmul".
23972         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
23973         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
23974         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
23975         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
23976         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
23977         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
23978         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
23979         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
23980         * config/rs6000/titan.md: Delete nonsensical comment.
23981         (titan_imul): Add type imul3.
23982         (titan_mulhw): Remove type imul3; add type halfmul.
23983
23984 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23985
23986         * config/rs6000/rs6000.md (type): Reorder, reformat.
23987
23988 2014-05-23  Martin Jambor  <mjambor@suse.cz>
23989
23990         PR tree-optimization/53787
23991         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
23992         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
23993         analysis_done, update all uses.
23994         * ipa-prop.c: Include domwalk.h
23995         (param_analysis_info): Removed.
23996         (param_aa_status): New type.
23997         (ipa_bb_info): Likewise.
23998         (func_body_info): Likewise.
23999         (ipa_get_bb_info): New function.
24000         (aa_overwalked): Likewise.
24001         (find_dominating_aa_status): Likewise.
24002         (parm_bb_aa_status_for_bb): Likewise.
24003         (parm_preserved_before_stmt_p): Changed to use new param AA info.
24004         (load_from_unmodified_param): Accept func_body_info as a parameter
24005         instead of parms_ainfo.
24006         (parm_ref_data_preserved_p): Changed to use new param AA info.
24007         (parm_ref_data_pass_through_p): Likewise.
24008         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
24009         (compute_complex_assign_jump_func): Changed to use new param AA info.
24010         (compute_complex_ancestor_jump_func): Likewise.
24011         (ipa_compute_jump_functions_for_edge): Likewise.
24012         (ipa_compute_jump_functions): Removed.
24013         (ipa_compute_jump_functions_for_bb): New function.
24014         (ipa_analyze_indirect_call_uses): Likewise, moved variable
24015         declarations down.
24016         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24017         and info, moved variable declarations down.
24018         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24019         node and info.
24020         (ipa_analyze_stmt_uses): Likewise.
24021         (ipa_analyze_params_uses): Removed.
24022         (ipa_analyze_params_uses_in_bb): New function.
24023         (ipa_analyze_controlled_uses): Likewise.
24024         (free_ipa_bb_info): Likewise.
24025         (analysis_dom_walker): New class.
24026         (ipa_analyze_node): Handle node-specific forbidden analysis,
24027         initialize and free func_body_info, use dominator walker.
24028         (ipcp_modif_dom_walker): New class.
24029         (ipcp_transform_function): Create and free func_body_info, use
24030         ipcp_modif_dom_walker, moved a lot of functionality there.
24031
24032 2014-05-23  Marek Polacek  <polacek@redhat.com>
24033             Jakub Jelinek  <jakub@redhat.com>
24034
24035         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24036         * gcc.c (sanitize_spec_function): Likewise.
24037         * convert.c (convert_to_integer): Include "ubsan.h".  Add
24038         floating-point to integer instrumentation.
24039         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24040         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24041         SANITIZE_NONDEFAULT.
24042         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24043         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24044         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24045         * ubsan.c: Include "realmpfr.h" and "dfp.h".
24046         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24047         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24048         float/double/long double.
24049         (ubsan_instrument_float_cast): New function.
24050         * ubsan.h (ubsan_instrument_float_cast): Declare.
24051
24052 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
24053
24054         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24055         predicate.
24056         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
24057         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24058         Adjust for tailcalling through registers.
24059         * config/aarch64/aarch64.h (enum reg_class): New caller save
24060         register class.
24061         (REG_CLASS_NAMES): Likewise.
24062         (REG_CLASS_CONTENTS): Likewise.
24063         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24064         Allow tailcalling without decls.
24065
24066 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24067
24068         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24069         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24070
24071         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24072         gsi, and variables v_* to v*.
24073
24074 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
24075
24076         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24077
24078 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24079
24080         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24081         * omp-low.c: Update accordingly.
24082
24083         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24084         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24085         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24086         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24087         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24088         GF_OMP_TARGET_KIND_UPDATE.
24089
24090         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24091         Explicitly enumerate the expected region types.
24092
24093 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
24094
24095         PR other/56955
24096         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
24097         documentation; the old documentation didn't clearly state the
24098         constraints on the contents of the pointed-to storage.
24099
24100 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24101
24102         Fix bootstrap error on ia64
24103         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24104         Return default value.
24105
24106 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24107
24108         PR tree-optimization/54733
24109         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24110         (CMPNOP): Define.
24111         (find_bswap_or_nop_load): New.
24112         (find_bswap_1): Renamed to ...
24113         (find_bswap_or_nop_1): This. Also add support for memory source.
24114         (find_bswap): Renamed to ...
24115         (find_bswap_or_nop): This. Also add support for memory source and
24116         detection of bitwise operations equivalent to load in target
24117         endianness.
24118         (execute_optimize_bswap): Likewise. Also move its leading comment back
24119         in place and split statement transformation into ...
24120         (bswap_replace): This.
24121
24122 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24123
24124         PR rtl-optimization/61215
24125         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24126         simplify_gen_subreg until final substitution.
24127
24128 2014-05-23  Alan Modra  <amodra@gmail.com>
24129
24130         PR target/61231
24131         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24132         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24133         Use "Y" constraint rather than "m".
24134
24135 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24136
24137         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24138         define.
24139         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24140         New function declaration.
24141         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24142         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24143         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24144         (aarch64_init_builtins) : Initialize builtins
24145         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24146         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24147         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24148         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24149         and __builtins_aarch64_set_fpsr.
24150         (aarch64_atomic_assign_expand_fenv): New function.
24151         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24152         (get_fpcr) : Likewise.
24153         (set_fpsr) : Likewise.
24154         (get_fpsr) : Likewise.
24155         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24156         and UNSPECV_SET_FPSR.
24157         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24158         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24159         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24160
24161 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24162
24163         PR rtl-optimization/60969
24164         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24165         constraints.  Set up mem cost for NO_REGS case.
24166
24167 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24168
24169         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24170
24171 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24172
24173         * config/darwin.c: Include "lto-section-names.h".
24174         (LTO_SEGMENT_NAME): Don't define.
24175         * config/i386/winnt.c: Include "lto-section-names.h".
24176         * lto-streamer.c: Include "lto-section-names.h".
24177         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24178         * lto-wrapper.c: Include "lto-section-names.h".
24179         (LTO_SECTION_NAME_PREFIX): Don't define.
24180         * lto-section-names.h: New file.
24181         * cgraphunit.c: Include "lto-section-names.h".
24182
24183 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24184
24185         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24186
24187 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24188
24189         PR target/61208
24190         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24191
24192 2014-05-22  Nick Clifton  <nickc@redhat.com>
24193
24194         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24195
24196 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24197
24198         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24199         -> (T)A transformation to integer types.
24200
24201 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24202
24203         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24204         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24205         (gcov_rewrite): Use gcov_nonruntime_assert.
24206         (gcov_open): Ditto.
24207         (gcov_write_words): Ditto.
24208         (gcov_write_length): Ditto.
24209         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24210         gcc_assert from IN_LIBGCOV code.
24211         (gcov_read_summary): Use gcov_error to flag profile corruption.
24212         (gcov_sync): Use gcov_nonruntime_assert.
24213         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24214         (gcov_histo_index): Use gcov_nonruntime_assert.
24215         (static void gcov_histogram_merge): Ditto.
24216         (compute_working_sets): Ditto.
24217         * gcov-io.h (gcov_nonruntime_assert): Define.
24218         (gcov_error): Define for !IN_LIBGCOV
24219
24220 2014-05-22  Richard Biener  <rguenther@suse.de>
24221
24222         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24223         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24224         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24225         and deallocation site.
24226         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24227         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24228         passing through the incoming points-to set.
24229         (handle_lhs_call): Use flags argument instead of recomputing it.
24230         (find_func_aliases_for_call): Call handle_lhs_call with proper
24231         call return flags.
24232
24233 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24234
24235         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24236         all padding bits in REAL_VALUE_TYPE are cleared.
24237
24238 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24239
24240         Cleanup and improve multipass_dfa_lookahead_guard
24241         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24242         (core2i7_first_cycle_multipass_begin,)
24243         (core2i7_first_cycle_multipass_issue,)
24244         (core2i7_first_cycle_multipass_backtrack): Update signature.
24245         * config/ia64/ia64.c
24246         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24247         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24248         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24249         hook definition.
24250         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24251         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24252         values.
24253         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24254         return values.
24255         * doc/tm.texi: Regenerate.
24256         * doc/tm.texi.in
24257         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24258         * haifa-sched.c (ready_try): Make signed to allow negative values.
24259         (rebug_ready_list_1): Update.
24260         (choose_ready): Simplify.
24261         (sched_extend_ready_list): Update.
24262
24263 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24264
24265         Remove IA64 speculation tweaking flags
24266         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24267         speculation tuning flags.
24268         (msched-prefer-non-data-spec-insns,)
24269         (msched-prefer-non-control-spec-insns): Obsolete options.
24270         * haifa-sched.c (choose_ready): Remove handling of
24271         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24272         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24273         and PREFER_NON_DATA_SPEC.
24274         * sel-sched.c (process_spec_exprs): Remove handling of
24275         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24276
24277 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24278
24279         Improve scheduling debug output
24280         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24281         (advance_one_cycle): Update.
24282         (schedule_insn, queue_to_ready): Add debug printouts.
24283         (debug_ready_list_1): New static function.
24284         (debug_ready_list): Update.
24285         (max_issue): Add debug printouts.
24286         (dump_insn_stream): New static function.
24287         (schedule_block): Use it.  Also better indent printouts.
24288
24289 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24290
24291         Fix sched_insn debug counter
24292         * haifa-sched.c (schedule_insn): Update.
24293         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24294         (save_backtrack_point, restore_backtrack_point): Update.
24295         (first_nonscheduled_insn): New static function.
24296         (queue_to_ready, choose_ready): Use it.
24297         (schedule_block): Init nonscheduled_insns_begin.
24298         (sched_emit_insn): Update.
24299
24300
24301 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24302
24303         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24304         to GENERAL_REGS.
24305         (aarch64_secondary_reload) : LikeWise.
24306         (aarch64_class_max_nregs) : Remove CORE_REGS.
24307         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24308         (REG_CLASS_NAMES) : Likewise.
24309         (REG_CLASS_CONTENTS) : LikeWise.
24310         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24311
24312 2014-05-21  Guozhi Wei  <carrot@google.com>
24313
24314         PR target/61202
24315         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24316         constraint.
24317         (vqdmulhq_n_s16): Likewise.
24318
24319 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24320
24321         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24322
24323 2014-05-21  Marek Polacek  <polacek@redhat.com>
24324
24325         PR sanitizer/61272
24326         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24327
24328 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24329
24330         * doc/invoke.texi (Optimize Options): Document parameters
24331         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24332         ipa-cp-array-index-hint-bonus.
24333
24334 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24335
24336         PR debug/16063
24337         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24338         version >= 3 or not strict DWARF.
24339         * langhooks.h (struct lang_hooks_for_types): Add
24340         enum_underlying_base_type.
24341         * langhooks.c (lhd_enum_underlying_base_type): New function.
24342         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24343         enum_underlying_base_type.
24344         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24345         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24346         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24347
24348 2014-05-21  Richard Biener  <rguenther@suse.de>
24349
24350         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24351
24352 2014-05-21  John Marino  <gnugcc@marino.st>
24353
24354         * config.gcc (*-*-dragonfly*): New target.
24355         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24356         * configure: Regenerate.
24357         * config/dragonfly-stdint.h: New.
24358         * config/dragonfly.h: New.
24359         * config/dragonfly.opt: New.
24360         * config/i386/dragonfly.h: New.
24361         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24362
24363 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24364
24365         * tree.def (VOID_CST): New.
24366         * tree-core.h (TI_VOID): New.
24367         * tree.h (void_node): New.
24368         * tree.c (tree_node_structure_for_code, tree_code_size)
24369         (iterative_hash_expr): Handle VOID_CST.
24370         (build_common_tree_nodes): Initialize void_node.
24371
24372 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24373
24374         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24375         functions.
24376         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24377
24378         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24379         more places.
24380
24381         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24382         flag_reorder_blocks_and_partition.
24383         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24384
24385 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24386
24387         PR target/54236
24388         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24389         constraints.
24390         (*addc_r_t): Add new insn_and_split.
24391
24392 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24393
24394         PR middle-end/61252
24395         * omp-low.c (handle_simd_reference): New function.
24396         (lower_rec_input_clauses): Use it.  Defer adding reference
24397         initialization even for reduction without placeholder if in simd,
24398         handle it properly later on.
24399
24400 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24401
24402         PR tree-optimization/60899
24403         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24404         assume all static symbols will have definition wile parsing and
24405         check the do have definition later in compilation; check that
24406         variable referring symbol will be output before concluding that
24407         reference is safe; be conservative for referring local statics;
24408         be more precise about when comdat is output in other partition.
24409
24410 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24411
24412         PR bootstrap/60984
24413         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24414         parameter.
24415         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24416         (ipa_inline): Loop inline_to_all_callers until no more aliases
24417         are removed.
24418
24419 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24420
24421         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24422         set writeonly flag only for vars actually written to.
24423
24424 2014-05-20  Dehao Chen  <dehao@google.com>
24425
24426         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24427         and callee count to get clone count.
24428         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24429         count in copy_body.
24430
24431 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24432
24433         PR rtl-optimization/61243
24434         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24435
24436 2014-05-20  Xinliang David Li  <davidxl@google.com>
24437
24438         * cgraphunit.c (walk_polymorphic_call_targets): Add
24439         dbgcnt and fopt-info support.
24440         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24441         * ipa-devirt.c (ipa_devirt): Ditto.
24442         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24443         * ipa.c (walk_polymorphic_call_targets): Ditto.
24444         * gimple-fold.c (fold_gimple_assign): Ditto.
24445         (gimple_fold_call): Ditto.
24446         * dbgcnt.def: New counter.
24447
24448 2014-05-20  DJ Delorie  <dj@redhat.com>
24449
24450         * config/msp430/msp430.md (split): Don't allow subregs when
24451         splitting SImode adds.
24452         (andneghi): Fix subtraction logic.
24453         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24454
24455 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24456
24457         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24458         symbols.
24459         * except.c (switch_to_exception_section, resolve_unique_section,
24460         get_named_text_section, default_function_rodata_section,
24461         align_variable, get_block_for_decl, default_section_type_flags):
24462         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24463         * symtab.c (symtab_add_to_same_comdat_group,
24464         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24465         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24466         Likewise.
24467         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24468         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24469         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24470         (c6x_function_in_section_p): Likewise.
24471         * config/darwin.c (machopic_select_section): Likewise.
24472         * config/arm/arm.c (arm_function_in_section_p): Likewise.
24473         * config/mips/mips.c (mips_function_rodata_section): Likewise.
24474         * config/mep/mep.c (mep_select_section): LIkewise.
24475         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24476
24477 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
24478
24479         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24480         EH region of calls to pure functions that can throw an exception.
24481         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24482         (copy_reference_ops_from_call): Also copy the EH region of the call if
24483         it can throw an exception.
24484
24485 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24486
24487         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24488         nested VEC_SELECTs that are inverses of each other.
24489
24490 2014-05-20  Richard Biener  <rguenther@suse.de>
24491
24492         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
24493         (extract_and_process_scc_for_name): not here.
24494         (cond_dom_walker::before_dom_children): Only process
24495         stmts that end the BB in interesting ways.
24496         (run_scc_vn): Mark param uses as visited.
24497
24498 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24499
24500         * config/arm/arm.md (arith_shiftsi): Do not predicate for
24501         arm_restrict_it.
24502
24503 2014-05-20  Nick Clifton  <nickc@redhat.com>
24504
24505         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
24506         (msp430_gimplify_va_arg_expr): New function.
24507         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
24508
24509         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
24510         operand 0 in order to prevent confusion about the number of
24511         registers involved.
24512
24513 2014-05-20  Richard Biener  <rguenther@suse.de>
24514
24515         PR tree-optimization/61221
24516         * tree-ssa-pre.c (el_to_update): Remove.
24517         (eliminate_dom_walker::before_dom_children): Handle released
24518         VDEFs by value-numbering them to the associated VUSE.  Update
24519         stmt immediately for substituted call address.
24520         (eliminate): Remove delayed stmt updating code.
24521         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
24522         possibly late re-numbered vuses.
24523         (vn_reference_lookup_2): Adjust.
24524         (vn_reference_lookup_pieces): Likewise.
24525         (vn_reference_lookup): Likewise.
24526
24527 2014-05-20  Richard Biener  <rguenther@suse.de>
24528
24529         * config.gcc: Remove need_64bit_hwint.
24530         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
24531         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
24532         it to be true.
24533         * config.in: Regenerate.
24534         * configure: Likewise.
24535
24536 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
24537
24538         * doc/extend.texi: Create Label Attributes section,
24539         move all label attributes into it and reference it.
24540
24541 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
24542
24543         * arm.c (thumb1_reorg): When scanning backwards skip anything
24544         that's not a proper insn.
24545
24546 2014-05-19  Richard Biener  <rguenther@suse.de>
24547
24548         PR tree-optimization/61221
24549         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24550         Do nothing for unreachable blocks.
24551         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
24552         Improve unreachability detection.
24553
24554 2014-05-19  Richard Biener  <rguenther@suse.de>
24555
24556         PR tree-optimization/61209
24557         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
24558
24559 2014-05-19  Nick Clifton  <nickc@redhat.com>
24560
24561         * except.c (init_eh): Fix computation of builtin setjmp buffer
24562         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
24563
24564 2014-05-19  Richard Biener  <rguenther@suse.de>
24565
24566         PR tree-optimization/61184
24567         * tree-vrp.c (is_negative_overflow_infinity): Use
24568         TREE_OVERFLOW_P and do that check first.
24569         (is_positive_overflow_infinity): Likewise.
24570         (is_overflow_infinity): Likewise.
24571         (vrp_operand_equal_p): Properly treat operands with
24572         differing overflow as not equal.
24573
24574 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
24575
24576         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
24577         shift simplification where it was intended.
24578
24579 2014-05-19  Christian Bruel  <christian.bruel@st.com>
24580
24581         PR target/61195
24582         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
24583
24584 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
24585
24586         PR target/61084
24587         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
24588         than wide_int.
24589
24590 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24591
24592         * reg-notes.def (CROSSING_JUMP): Likewise.
24593         * rtl.h (rtx_def): Update comment for jump flag.
24594         (CROSSING_JUMP_P): Define.
24595         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
24596         of a REG_CROSSING_JUMP note.
24597         * cfghooks.c (tidy_fallthru_edges): Likewise.
24598         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
24599         * emit-rtl.c (try_split): Likewise.
24600         * haifa-sched.c (sched_create_recovery_edges): Likewise.
24601         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
24602         * jump.c (redirect_jump_2): Likewise.
24603         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
24604         (relax_delay_slots): Likewise.
24605         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
24606         (bbit_di): Likewise.
24607         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
24608         * config/sh/sh.md (jump_compact): Likewise.
24609         * bb-reorder.c (rotate_loop): Likewise.
24610         (pass_duplicate_computed_gotos::execute): Likewise.
24611         (add_reg_crossing_jump_notes): Rename to...
24612         (update_crossing_jump_flags): ...this.
24613         (pass_partition_blocks::execute): Update accordingly.
24614
24615 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24616
24617         * tree.h: Remove extraneous template <>.
24618
24619 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24620
24621         * ipa.c (symtab_remove_unreachable_nodes): Remove
24622         symbol from comdat group if its body was eliminated.
24623         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
24624         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
24625         (symtab_unregister_node): ... this one.
24626         (verify_symtab_base): More strict checking of comdats.
24627         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
24628
24629 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24630
24631         * tree-pass.h (make_pass_ipa_comdats): New pass.
24632         * timevar.def (TV_IPA_COMDATS): New timevar.
24633         * passes.def (pass_ipa_comdats): Add.
24634         * Makefile.in (OBJS): Add ipa-comdats.o
24635         * ipa-comdats.c: New file.
24636
24637 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24638
24639         * ipa.c (update_visibility_by_resolution_info): New function.
24640         (function_and_variable_visibility): Use it.
24641
24642 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24643
24644         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
24645         New functions.
24646         (FOR_EACH_DEFINED_SYMBOL): New macro.
24647         (varpool_first_static_initializer, varpool_next_static_initializer,
24648         varpool_first_defined_variable, varpool_next_defined_variable):
24649         Fix comments.
24650         (symtab_in_same_comdat_p): Correctly deal with inline functions.
24651
24652 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24653
24654         * ggc-page.c (ggc_handle_finalizers): Add comment.
24655
24656 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24657
24658         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
24659         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
24660         (ggc_internal_cleared_alloc): Likewise.
24661         * ggc-page.c (finalizer): New class.
24662         (vec_finalizer): Likewise.
24663         (globals::finalizers): New member.
24664         (globals::vec_finalizers): Likewise.
24665         (ggc_internal_alloc): Record the finalizer if any for the block being
24666         allocated.
24667         (ggc_handle_finalizers): New function.
24668         (ggc_collect): Call ggc_handle_finalizers.
24669         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
24670         finalizer.
24671         (ggc_internal_cleared_alloc): Likewise.
24672         (finalize): New function.
24673         (need_finalization_p): Likewise.
24674         (ggc_alloc): Install the type's destructor as the finalizer if it
24675         might do something.
24676         (ggc_cleared_alloc): Likewise.
24677         (ggc_vec_alloc): Likewise.
24678         (ggc_cleared_vec_alloc): Likewise.
24679
24680 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24681
24682         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
24683
24684 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24685
24686         * alias.c (record_alias_subset): Adjust.
24687         * bitmap.c (bitmap_element_allocate): Likewise.
24688         (bitmap_gc_alloc_stat): Likewise.
24689         * cfg.c (init_flow): Likewise.
24690         (alloc_block): Likewise.
24691         (unchecked_make_edge): Likewise.
24692         * cfgloop.c (alloc_loop): Likewise.
24693         (flow_loops_find): Likewise.
24694         (rescan_loop_exit): Likewise.
24695         * cfgrtl.c (init_rtl_bb_info): Likewise.
24696         * cgraph.c (insert_new_cgraph_node_version): Likewise.
24697         (cgraph_allocate_node): Likewise.
24698         (cgraph_create_edge_1): Likewise.
24699         (cgraph_allocate_init_indirect_info): Likewise.
24700         * cgraphclones.c (cgraph_clone_edge): Likewise.
24701         * cgraphunit.c (add_asm_node): Likewise.
24702         (init_lowered_empty_function): Likewise.
24703         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
24704         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24705         (alpha_use_linkage): Likewise.
24706         * config/arc/arc.c (arc_init_machine_status): Likewise.
24707         * config/arm/arm.c (arm_init_machine_status): Likewise.
24708         * config/avr/avr.c (avr_init_machine_status): Likewise.
24709         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24710         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
24711         * config/cris/cris.c (cris_init_machine_status): Likewise.
24712         * config/darwin.c (machopic_indirection_name): Likewise.
24713         (darwin_build_constant_cfstring): Likewise.
24714         (darwin_enter_string_into_cfstring_table): Likewise.
24715         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
24716         * config/frv/frv.c (frv_init_machine_status): Likewise.
24717         * config/i386/i386.c (get_dllimport_decl): Likewise.
24718         (ix86_init_machine_status): Likewise.
24719         (assign_386_stack_local): Likewise.
24720         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24721         (i386_pe_maybe_record_exported_symbol): Likewise.
24722         (i386_pe_record_stub): Likewise.
24723         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24724         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24725         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24726         (m32c_note_pragma_address): Likewise.
24727         * config/mep/mep.c (mep_init_machine_status): Likewise.
24728         (mep_note_pragma_flag): Likewise.
24729         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24730         (mips16_local_alias): Likewise.
24731         (mips_init_machine_status): Likewise.
24732         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24733         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24734         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
24735         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
24736         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
24737         * config/pa/pa.c (pa_init_machine_status): Likewise.
24738         (pa_get_deferred_plabel): Likewise.
24739         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
24740         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24741         (rs6000_init_machine_status): Likewise.
24742         (output_toc): Likewise.
24743         * config/s390/s390.c (s390_init_machine_status): Likewise.
24744         * config/score/score.c (score_output_external): Likewise.
24745         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24746         * config/spu/spu.c (spu_init_machine_status): Likewise.
24747         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
24748         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
24749         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24750         * coverage.c (coverage_end_function): Likewise.
24751         * dbxout.c (dbxout_init): Likewise.
24752         * doc/gty.texi: Don't mention variable_size attribute.
24753         * dwarf2cfi.c (new_cfi): Adjust.
24754         (new_cfi_row): Likewise.
24755         (copy_cfi_row): Likewise.
24756         (create_cie_data): Likewise.
24757         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
24758         (new_loc_descr): Likewise.
24759         (find_AT_string_in_table): Likewise.
24760         (add_addr_table_entry): Likewise.
24761         (new_die): Likewise.
24762         (add_var_loc_to_decl): Likewise.
24763         (clone_die): Likewise.
24764         (clone_as_declaration): Likewise.
24765         (break_out_comdat_types): Likewise.
24766         (new_loc_list): Likewise.
24767         (add_loc_descr_to_each): Likewise.
24768         (add_location_or_const_value_attribute): Likewise.
24769         (add_linkage_name): Likewise.
24770         (lookup_filename): Likewise.
24771         (dwarf2out_var_location): Likewise.
24772         (new_line_info_table): Likewise.
24773         (dwarf2out_init): Likewise.
24774         (mem_loc_descriptor): Likewise.
24775         (loc_descriptor): Likewise.
24776         (add_const_value_attribute): Likewise.
24777         (tree_add_const_value_attribute): Likewise.
24778         (comp_dir_string): Likewise.
24779         (dwarf2out_vms_debug_main_pointer): Likewise.
24780         (string_cst_pool_decl): Likewise.
24781         * emit-rtl.c (set_mem_attrs): Likewise.
24782         (get_reg_attrs): Likewise.
24783         (start_sequence): Likewise.
24784         (init_emit): Likewise.
24785         (init_emit_regs): Likewise.
24786         * except.c (init_eh_for_function): Likewise.
24787         (gen_eh_region): Likewise.
24788         (gen_eh_region_catch): Likewise.
24789         (gen_eh_landing_pad): Likewise.
24790         (add_call_site): Likewise.
24791         * function.c (add_frame_space): Likewise.
24792         (insert_temp_slot_address): Likewise.
24793         (assign_stack_temp_for_type): Likewise.
24794         (get_hard_reg_initial_val): Likewise.
24795         (allocate_struct_function): Likewise.
24796         (prepare_function_start): Likewise.
24797         (types_used_by_var_decl_insert): Likewise.
24798         * gengtype.c (variable_size_p): Remove function.
24799         (enum alloc_quantity): Remove enum.
24800         (write_typed_alloc_def): Remove function.
24801         (write_typed_struct_alloc_def): Likewise.
24802         (write_typed_typedef_alloc_def): Likewise.
24803         (write_typed_alloc_defns): Likewise.
24804         (main): Adjust.
24805         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
24806         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
24807         * ggc.h (ggc_alloc): new function.
24808         (ggc_cleared_alloc): Likewise.
24809         (ggc_vec_alloc): Template on type of vector element, and remove
24810         element size argument.
24811         (ggc_cleared_vec_alloc): Likewise.
24812         * gimple.c (gimple_build_omp_for): Adjust.
24813         (gimple_copy): Likewise.
24814         * ipa-cp.c (get_replacement_map): Likewise.
24815         (find_aggregate_values_for_callers_subset): Likewise.
24816         (known_aggs_to_agg_replacement_list): Likewise.
24817         * ipa-devirt.c (get_odr_type): Likewise.
24818         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
24819         (read_agg_replacement_chain): Likewise.
24820         * loop-iv.c (get_simple_loop_desc): Likewise.
24821         * lto-cgraph.c (input_node_opt_summary): Likewise.
24822         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24823         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24824         (input_eh_region): Likewise.
24825         (input_eh_lp): Likewise.
24826         (input_cfg): Likewise.
24827         * optabs.c (set_optab_libfunc): Likewise.
24828         (init_tree_optimization_optabs): Likewise.
24829         (set_conv_libfunc): Likewise.
24830         * passes.c (do_per_function_toporder): Likewise.
24831         * rtl.h: Don't use variable_size gty attribute.
24832         * sese.c (if_region_set_false_region): Adjust.
24833         * stringpool.c (gt_pch_save_stringpool): Likewise.
24834         * target-globals.c (save_target_globals): Likewise.
24835         * toplev.c (general_init): Likewise.
24836         * trans-mem.c (record_tm_replacement): Likewise.
24837         (split_bb_make_tm_edge): Likewise.
24838         * tree-cfg.c (move_sese_region_to_fn): Likewise.
24839         * tree-data-ref.h (lambda_vector_new): Likewise.
24840         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24841         * tree-iterator.c (tsi_link_before): Likewise.
24842         (tsi_link_after): Likewise.
24843         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24844         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24845         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24846         * tree-ssa-operands.h: Don't use variable_size gty attribute.
24847         * tree-ssa.c (init_tree_ssa): Adjust.
24848         * tree-ssanames.c (set_range_info): Likewise.
24849         (get_ptr_info): Likewise.
24850         (duplicate_ssa_name_ptr_info): Likewise.
24851         (duplicate_ssa_name_range_info): Likewise.
24852         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
24853         (unpack_ts_fixed_cst_value_fields): Likewise.
24854         * tree.c (build_fixed): Likewise.
24855         (build_real): Likewise.
24856         (build_string): Likewise.
24857         (decl_priority_info): Likewise.
24858         (decl_debug_expr_insert): Likewise.
24859         (decl_value_expr_insert): Likewise.
24860         (decl_debug_args_insert): Likewise.
24861         (type_hash_add): Likewise.
24862         (build_omp_clause): Likewise.
24863         * ubsan.c (decl_for_type_insert): Likewise.
24864         * varasm.c (get_unnamed_section): Likewise.
24865         (get_noswitch_section): Likewise.
24866         (get_section): Likewise.
24867         (get_block_for_section): Likewise.
24868         (create_block_symbol): Likewise.
24869         (build_constant_desc): Likewise.
24870         (create_constant_pool): Likewise.
24871         (force_const_mem): Likewise.
24872         (record_tm_clone_pair): Likewise.
24873         * varpool.c (varpool_create_empty_node): Likewise.
24874
24875 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24876
24877         * dwarf2out.c (tree_add_const_value_attribute): Call
24878         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
24879         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
24880         instead of ggc_internal_<x>alloc_stat.
24881         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
24882         (ggc_realloc): Likewise.
24883         * ggc-none.c (ggc_internal_alloc): Likewise.
24884         (ggc_internal_cleared_alloc): Likewise.
24885         * ggc-page.c: Likewise.
24886         * ggc.h (ggc_internal_alloc_stat): Likewise.
24887         (ggc_internal_alloc): Remove macro.
24888         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
24889         (ggc_internal_cleared_alloc): Remove macro.
24890         (GGC_RESIZEVEC): Adjust.
24891         (ggc_resizevar): Remove macro.
24892         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
24893         (ggc_internal_cleared_vec_alloc_stat): Likewise.
24894         (ggc_internal_vec_cleared_alloc): Remove macro.
24895         (ggc_alloc_atomic_stat): Drop _stat suffix.
24896         (ggc_alloc_atomic): Remove macro.
24897         (ggc_alloc_cleared_atomic): Remove macro.
24898         (ggc_alloc_string_stat): Drop _stat suffix.
24899         (ggc_alloc_string): Remove macro.
24900         (ggc_alloc_rtx_def_stat): Adjust.
24901         (ggc_alloc_tree_node_stat): Likewise.
24902         (ggc_alloc_cleared_tree_node_stat): Likewise.
24903         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
24904         (ggc_alloc_cleared_simd_clone_stat): Likewise.
24905         * gimple.c (gimple_build_omp_for): Likewise.
24906         (gimple_copy): Likewise.
24907         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
24908         * toplev.c (realloc_for_line_map): Adjust.
24909         * tree-data-ref.h (lambda_vector_new): Likewise.
24910         * tree-phinodes.c (allocate_phi_node): Likewise.
24911         * tree.c (grow_tree_vec_stat): Likewise.
24912         * vec.h (va_gc::reserve): Adjust.
24913
24914 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
24915
24916         * config/microblaze/microblaze.c (break_handler): New Declaration.
24917         (microblaze_break_function_p,microblaze_is_break_handler): New.
24918         (compute_frame_size): Use microblaze_break_function_p.
24919         Add the test of break_handler.
24920         (microblaze_function_prologue) : Add the test of variable
24921         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
24922         (microblaze_function_epilogue) : Add the test of break_handler.
24923         (microblaze_globalize_label) : Add the test of break_handler.
24924         Check the name by BREAK_HANDLER_NAME.
24925
24926         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
24927
24928         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
24929         microblaze_is_break_handler test.
24930         (call_internal1,call_value_intern): Use microblaze_break_function_p.
24931         Use SYMBOL_REF_DECL.
24932
24933         * config/microblaze/microblaze-protos.h
24934         (microblaze_break_function_p,microblaze_is_break_handler):
24935         New Declaration.
24936
24937         * doc/extend.texi (MicroBlaze break_handler Functions): Document
24938         new MicroBlaze break_handler functions.
24939
24940 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24941
24942         * doc/extend.texi (Size of an asm): Move node text according
24943         to its @menu entry position.
24944
24945 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
24946
24947         PR tree-optimization/61140
24948         PR tree-optimization/61150
24949         PR tree-optimization/61197
24950         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
24951
24952 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24953
24954         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
24955
24956 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
24957
24958         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
24959         __SIZEOF_INT128__ is defined.
24960
24961 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24962
24963         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
24964         (rs6000_delegitimize_address): Use it.
24965
24966 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24967
24968         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
24969         inplace argument.  Store the new address in the original MEM when true.
24970         * emit-rtl.c (change_address_1): Likewise.
24971         (adjust_address_1, adjust_automodify_address_1, offset_address):
24972         Update accordingly.
24973         * rtl.h (plus_constant): Add an inplace argument.
24974         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
24975         when true.  Avoid generating (plus X (const_int 0)).
24976         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
24977         in-place.  Pass true to plus_constant.
24978         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
24979
24980 2014-05-16  Dehao Chen  <dehao@google.com>
24981
24982         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
24983
24984 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24985
24986         PR target/54089
24987         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
24988         patterns.
24989         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
24990
24991 2014-05-16  Dehao Chen  <dehao@google.com>
24992
24993         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
24994         optimize_function_for_size_p.
24995         * regs.h (REG_FREQ_FROM_BB): Likewise.
24996
24997 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24998
24999         PR target/51244
25000         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25001         negt_reg_operand cases.
25002         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25003         predicate.
25004         * config/sh/predicates.md (cbranch_treg_value): Simplify.
25005
25006 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25007
25008         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25009         target variants.
25010
25011 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
25012
25013         Revert:
25014         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
25015
25016         * tree-cfg.c (dump_function_to_file): Dump the return type of
25017         functions, in a line to itself before the function body, mimicking
25018         the layout of a C function.
25019
25020 2014-05-16  Dehao Chen  <dehao@google.com>
25021
25022         * cfghooks.c (make_forwarder_block): Use direct computation to
25023         get fall-through edge's count and frequency.
25024
25025 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
25026
25027         * config/arc/arc.c (arc_init): Fix typo in error message.
25028         * config/i386/i386.c (ix86_expand_builtin): Likewise.
25029         (split_stack_prologue_scratch_regno): Likewise.
25030         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25031         word from error message.
25032
25033 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25034
25035         * ira-costs.c: Fix typo in comment.
25036
25037 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
25038
25039         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25040
25041 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
25042
25043         * varpool.c (dump_varpool_node): Dump write-only flag.
25044         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25045         write-only flag.
25046         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25047         write-only variables.
25048         * ipa.c (process_references): New function.
25049         (set_readonly_bit): New function.
25050         (set_writeonly_bit): New function.
25051         (clear_addressable_bit): New function.
25052         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25053         fix handling of aliases.
25054         * cgraph.h (struct varpool_node): Add writeonly flag.
25055
25056 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
25057
25058         PR rtl-optimization/60969
25059         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25060         Calculate costs for this case.
25061
25062 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25063
25064         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25065         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25066
25067 2014-05-16  Richard Biener  <rguenther@suse.de>
25068
25069         PR tree-optimization/61194
25070         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25071         bool patterns ending in a COND_EXPR.
25072
25073 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25074
25075         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25076
25077 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25078
25079         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25080         where we were unable to cost an RTX.
25081
25082 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25083
25084         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25085         HIGH, LO_SUM.
25086
25087 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25088             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25089
25090         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25091
25092 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25093             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25094
25095         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25096         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25097
25098 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25099             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25100
25101         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25102         operators.
25103
25104 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25105             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25106
25107         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25108         DIV/MOD.
25109
25110 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25111             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25112
25113         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25114         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25115
25116 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25117             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25118
25119         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25120         rotates and shifts.
25121
25122 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25123             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25124
25125         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25126         ZERO_EXTEND and SIGN_EXTEND better.
25127
25128 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25129             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25130
25131         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25132         logical operations.
25133
25134 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25135             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25136
25137         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25138         costs when costing loads and stores to memory.
25139
25140 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25141             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25142
25143         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25144         for SET RTX.
25145
25146 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25147
25148         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25149
25150 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25151             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25152
25153         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25154         to...
25155         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25156         well formed.
25157         (aarch64_rtx_mult_cost): New.
25158         (aarch64_rtx_costs): Use it, refactor as appropriate.
25159
25160 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25161             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25162
25163         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25164         emit instructions, return number of instructions which would
25165         be emitted.
25166         (aarch64_add_constant): Update call to aarch64_build_constant.
25167         (aarch64_output_mi_thunk): Likewise.
25168         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25169         a CONST_DOUBLE.
25170
25171 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25172
25173         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25174         (TARGET_RTX_COSTS): Call it.
25175
25176 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25177
25178         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25179         (cortexa57_vector_cost): Likewise.
25180         (cortexa57_tunings): Use them.
25181
25182 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25183
25184         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25185         (cpu_addrcost_table): Use it.
25186         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25187         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25188         move it.
25189
25190 2014-05-16  Richard Biener  <rguenther@suse.de>
25191
25192         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25193         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25194         (visit_phi): Ignore edges marked as not executable.
25195         (class cond_dom_walker): New.
25196         (cond_dom_walker::before_dom_children): Value-number
25197         control statements and mark successor edges as not
25198         executable if possible.
25199         (run_scc_vn): First walk all control statements in
25200         dominator order, marking edges as not executable.
25201         * tree-inline.c (copy_edges_for_bb): Be not confused
25202         about random edge flags.
25203
25204 2014-05-16  Richard Biener  <rguenther@suse.de>
25205
25206         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25207
25208 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25209
25210         PR target/61193
25211         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25212         (__TM_simple_begin): Use it.
25213         (__TM_begin): Likewise.
25214
25215 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25216
25217         PR ipa/61085
25218         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25219         type_preserved flag when the indirect edge is polymorphic.
25220
25221 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25222
25223         PR tree-optimization/61090
25224         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25225         build_ref_for_model.
25226
25227 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25228
25229         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25230         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25231
25232 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25233
25234         PR tree-optimization/61158
25235         * fold-const.c (fold_binary_loc): If X is zero-extended and
25236         shiftc >= prec, make sure zerobits is all ones instead of
25237         invoking undefined behavior.
25238
25239 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25240
25241         * regcprop.h: New file.
25242         * regcprop.c (skip_debug_insn_p): New decl.
25243         (replace_oldest_value_reg): Check skip_debug_insn_p.
25244         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25245         * shrink-wrap.c: Include regcprop.h.
25246         (prepare_shrink_wrap): Call
25247         copyprop_hardreg_forward_bb_without_debug_insn.
25248
25249 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25250
25251         * shrink-wrap.h: Update comment.
25252         * shrink-wrap.c: Update comment.
25253         (next_block_for_reg): Rename to live_edge_for_reg.
25254         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25255         (move_insn_for_shrink_wrap): Split live_edge.
25256         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25257
25258 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25259
25260         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25261         Delete.
25262         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25263         * config/sparc/sparc.md (fptype_ut699): New attribute.
25264         (in_branch_delay): Return false if -mfix-ut699 is specified and
25265         fptype_ut699 is set to single.
25266         (truncdfsf2): Add fptype_ut699 attribute.
25267         (fix_truncdfsi2): Likewise.
25268         (floatsisf2): Change fptype attribute.
25269         (fix_truncsfsi2): Likewise.
25270         (negtf2_notv9): Delete.
25271         (negtf2_v9): Likewise.
25272         (negtf2_hq): New instruction.
25273         (negtf2): New instruction and splitter.
25274         (negdf2_notv9): Rewrite.
25275         (abstf2_notv9): Delete.
25276         (abstf2_hq_v9): Likewise.
25277         (abstf2_v9): Likewise.
25278         (abstf2_hq): New instruction.
25279         (abstf2): New instruction and splitter.
25280         (absdf2_notv9): Rewrite.
25281
25282 2014-05-14  Cary Coutant  <ccoutant@google.com>
25283
25284         PR debug/61013
25285         * opts.c (common_handle_option): Don't special-case "-g".
25286         (set_debug_level): Default to at least level 2 with "-g".
25287
25288 2014-05-14  DJ Delorie  <dj@redhat.com>
25289
25290         * config/msp430/msp430.c (msp430_builtin): Add
25291         MSP430_BUILTIN_DELAY_CYCLES.
25292         (msp430_init_builtins): Register void __delay_cycles(long long).
25293         (msp430_builtin_decl): Add it.
25294         (cg_magic_constant): New.
25295         (msp430_expand_delay_cycles): New.
25296         (msp430_expand_builtin): Call it.
25297         (msp430_print_operand_raw): Change integer printing from "int" to
25298         HOST_WIDE_INT.
25299         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25300         (delay_cycles_start): New.
25301         (delay_cycles_end): New.
25302         (delay_cycles_32): New.
25303         (delay_cycles_32x): New.
25304         (delay_cycles_16): New.
25305         (delay_cycles_16x): New.
25306         (delay_cycles_2): New.
25307         (delay_cycles_1): New.
25308         * doc/extend.texi: Document __delay_cycles().
25309
25310 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25311
25312         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25313         length attribute computation.
25314
25315 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25316
25317         PR debug/61188
25318         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25319
25320 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25321
25322         PR target/61084
25323         * config/sparc/sparc.md: Fix types of low and high in DI constant
25324         splitter.  Use gen_int_mode in some other splitters.
25325
25326 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25327
25328         PR ipa/60897
25329         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25330
25331 2014-05-14  James Norris  <jnorris@codesourcery.com>
25332
25333         * omp-low.c (expand_parallel_call): Remove shadow variable.
25334         (expand_omp_taskreg): Likewise.
25335
25336 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25337
25338         * common/config/i386/i386-common.c
25339         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25340         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25341         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25342         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25343         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25344         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25345         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25346         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25347         xsavecintrin.h, xsavesintrin.h.
25348         (x86_64-*-*): Ditto.
25349         * config/i386/clflushoptintrin.h: New.
25350         * config/i386/xsavecintrin.h: Ditto.
25351         * config/i386/xsavesintrin.h: Ditto.
25352         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25353         (bit_XSAVES): Ditto.
25354         (bit_XSAVES): Ditto.
25355         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25356         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25357         -mno-clflushopt.
25358         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25359         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25360         OPTION_MASK_ISA_XSAVES.
25361         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25362         -mxsavec, -mxsaves.
25363         (PTA_CLFLUSHOPT) Define.
25364         (PTA_XSAVEC): Ditto.
25365         (PTA_XSAVES): Ditto.
25366         (ix86_option_override_internal): Handle new options.
25367         (ix86_valid_target_attribute_inner_p): Ditto.
25368         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25369         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25370         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25371         (bdesc_special_args): Add __builtin_ia32_xsaves,
25372         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25373         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25374         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25375         (ix86_expand_builtin): Handle new builtins.
25376         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25377         (TARGET_CLFLUSHOPT_P): Ditto.
25378         (TARGET_XSAVEC): Ditto.
25379         (TARGET_XSAVEC_P): Ditto.
25380         (TARGET_XSAVES): Ditto.
25381         (TARGET_XSAVES_P): Ditto.
25382         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25383         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25384         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25385         (ANY_XRSTOR): New.
25386         (ANY_XRSTOR64): Ditto.
25387         (xrstor): Ditto.
25388         (xrstor): Change into <xrstor>.
25389         (xrstor_rex64): Change into <xrstor>_rex64.
25390         (xrstor64): Change into <xrstor>64
25391         (clflushopt): New.
25392         * config/i386/i386.opt (mclflushopt): New.
25393         (mxsavec): Ditto.
25394         (mxsaves): Ditto.
25395         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25396         xsavecintrin.h.
25397         * doc/invoke.texi: Document new options.
25398
25399 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25400
25401         PR rtl-optimization/60866
25402         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25403         Default it to -1.  Pass it down to init_simplejump_data.
25404         (init_simplejump_data): New parameter old_seqno.  Pass it down
25405         to get_seqno_for_a_jump.
25406         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25407         initializing new jump seqno as a last resort.  Add comment.
25408         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25409         jump and pass it down to sel_init_new_insn.
25410         (sel_redirect_edge_and_branch_force): Likewise.
25411
25412 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25413
25414         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25415         shifted values to avoid build warning.
25416
25417 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25418
25419         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25420         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25421         (cfg_layout_merge_blocks): Likewise.
25422         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25423
25424 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25425
25426         PR rtl-optimization/60901
25427         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25428         bb predecessor belongs to the same scheduling region.  Adjust comment.
25429
25430 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25431
25432         * doc/sourcebuild.texi: (dfp_hw): Document.
25433         (p8vector_hw): Likewise.
25434         (powerpc_eabi_ok): Likewise.
25435         (powerpc_elfv2): Likewise.
25436         (powerpc_htm_ok): Likewise.
25437         (ppc_recip_hw): Likewise.
25438         (vsx_hw): Likewise.
25439
25440 2014-05-13  Cary Coutant  <ccoutant@google.com>
25441
25442         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25443
25444 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
25445
25446         * gengtype-parse.c (require3): Eliminate in favor of...
25447         (require4): New.
25448         (require_template_declaration): Update to support optional single *
25449         on a type.
25450
25451         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25452         (create_user_defined_type): Handle a single level of explicit
25453         pointerness within template arguments.
25454         (struct write_types_data): Add field "kind".
25455         (filter_type_name): Handle "*" character.
25456         (write_user_func_for_structure_ptr): Require a write_types_data
25457         rather than just a prefix string, so that we can look up the kind
25458         of the wtd and use it as an index into wrote_user_func_for_ptr,
25459         ensuring that such functions are written at most once.  Support
25460         subclasses by invoking the marking function of the ultimate base class.
25461         (write_user_func_for_structure_body): Require a write_types_data
25462         rather than just a prefix string, so that we can pass this to
25463         write_user_func_for_structure_ptr.
25464         (write_func_for_structure): Likewise.
25465         (ggc_wtd): Add initializer of new "kind" field.
25466         (pch_wtd): Likewise.
25467
25468         * gengtype.h (enum write_types_kinds): New.
25469         (struct type): Add field wrote_user_func_for_ptr to the "s"
25470         union member.
25471
25472 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25473
25474         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25475         instead of const_binop.
25476         (fold_binary_loc): Likewise.
25477
25478 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25479
25480         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25481         calculation to match get_ref_base_and_extent.
25482
25483 2014-05-13  Catherine Moore  <clm@codesourcery.com>
25484             Sandra Loosemore  <sandra@codesourcery.com>
25485
25486         * configure.ac: Fix assembly for explicit JALR relocation check.
25487         * configure: Regenerate.
25488
25489 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25490
25491         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
25492         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
25493         Remove associated type declarations and initialisations.
25494         (arm_expand_neon_builtin): Likewise.
25495         (neon_emit_pair_result_insn): Delete.
25496         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
25497         * config/arm/neon.md (neon_vtrn<mode>): Delete.
25498         (neon_vzip<mode>): Likewise.
25499         (neon_vuzp<mode>): Likewise.
25500
25501 2014-05-13  Richard Biener  <rguenther@suse.de>
25502
25503         PR ipa/60973
25504         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
25505         it needs revisiting whether the call still may be tail-called.
25506
25507 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25508
25509         * rtl.def (SYMBOL_REF): Remove middle "0" field.
25510         * rtl.h (block_symbol): Reduce number of fields to 2.
25511         (rtx_def): Add u2.symbol_ref_flags.
25512         (SYMBOL_REF_FLAGS): Use it.
25513         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
25514         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
25515         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
25516         Lower index of SYMBOL_REF_DATA.
25517         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
25518         Print SYMBOL_REF_FLAGS at the same time.
25519         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
25520
25521 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25522
25523         * rtl.def (VAR_LOCATION): Remove "i" field.
25524         * rtl.h (rtx_def): Add u2.var_location_status.
25525         (PAT_VAR_LOCATION_STATUS): Use it.
25526         (gen_rtx_VAR_LOCATION): Declare.
25527         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
25528         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
25529         * var-tracking.c (emit_note_insn_var_location): Remove casts.
25530
25531 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25532
25533         * rtl.def (scratch): Fix outdated comment and remove "0" field.
25534         * gengtype.c (adjust_field_rtx_def): Update accordingly.
25535
25536 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25537
25538         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
25539         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
25540         * rtl.h (rtx_def): Add insn_uid to u2 field.
25541         (RTX_FLAG_CHECK8): Delete in favor of...
25542         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
25543         (INSN_DELETED_P): Update accordingly.
25544         (INSN_UID): Use u2.insn_uid.
25545         (INSN_CHAIN_CODE_P): Define.
25546         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
25547         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
25548         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
25549         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
25550         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
25551         indices accordingly.
25552         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
25553         Update indices for insn-chain rtxes.
25554         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
25555         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
25556         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
25557         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
25558         * combine.c (try_combine): Likewise.
25559         * ira.c (setup_prohibited_mode_move_regs): Likewise.
25560
25561 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25562
25563         * rtl.def (REG): Remove middle field.
25564         * rtl.h (rtx_def): Add orignal_regno to u2.
25565         (ORIGINAL_REGNO): Use it instead of field 1.
25566         (REG_ATTRS): Lower field index accordingly.
25567         * gengtype.c (adjust_field_rtx_def): Remove handling of
25568         ORIGINAL_REGNO.  Move REG_ATTRS index down.
25569         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
25570         code that prints the REGNO.
25571
25572 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25573
25574         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
25575         GENERATOR_FILE.
25576
25577 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25578
25579         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
25580
25581 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
25582
25583         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
25584         (alloc_iv): Lower base expressions containing ADDR_EXPR.
25585
25586 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
25587
25588         * config/aarch64/aarch64-protos.h
25589         (aarch64_hard_regno_caller_save_mode): New prototype.
25590         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
25591         New function.
25592         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
25593
25594 2014-05-13  Christian Bruel  <christian.bruel@st.com>
25595
25596         * target.def (mode_switching): New hook vector.
25597         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
25598         (mode_exit, modepriority_to_mode): Likewise.
25599         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
25600         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25601         * target.h: Include tm.h and hard-reg-set.h.
25602         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
25603         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
25604         * doc/tm.texi Regenerate.
25605         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25606         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25607         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
25608         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
25609         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25610         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25611         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
25612         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
25613         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
25614         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
25615         (ix86_emit_mode_set): Hookify.
25616         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
25617         Delete.
25618         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25619         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
25620         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
25621         (epiphany_mode_priority_to_mode): Remove declaration.
25622         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
25623         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
25624         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
25625         Likewise.
25626         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
25627         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
25628         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
25629
25630 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
25631
25632         PR target/61060
25633         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
25634         is const0_rtx, return immediately.  Don't test count == 0 when
25635         it is always true.
25636
25637 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25638
25639         * Makefile.in: add shrink-wrap.o.
25640         * config/i386/i386.c: include "shrink-wrap.h"
25641         * function.c: Likewise.
25642         (requires_stack_frame_p, next_block_for_reg,
25643         move_insn_for_shrink_wrap, prepare_shrink_wrap,
25644         dup_block_and_redirect): Move to shrink-wrap.c
25645         (thread_prologue_and_epilogue_insns): Extract three code segments
25646         as functions in shrink-wrap.c
25647         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
25648         shrink-wrap.h
25649         * shrink-wrap.c: New file.
25650         * shrink-wrap.h: New file.
25651
25652 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25653
25654         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
25655         reference to Solaris.
25656
25657 2014-05-12  Mike Stump  <mikestump@comcast.net>
25658
25659         PR other/31778
25660         * genattrtab.c (filename): Add.
25661         (convert_set_attr_alternative): Improve error message.
25662         (check_defs): Restore read_md_filename for error messages.
25663         (gen_insn): Save filename.
25664
25665 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
25666
25667         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
25668         -fno-local-ivars and -fivar-visibility.
25669         * c-family/c.opt: Make -Wshadow also implicitly enable
25670         -Wshadow-ivar.
25671
25672 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25673
25674         * doc/tm.texi: Remove reference to deleted macro.
25675         * doc/tm.texi.in: Likewise.
25676
25677 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
25678
25679         PR target/60991
25680         * config/avr/avr.c (avr_out_store_psi): Use correct constant
25681         to restore Y.
25682
25683 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
25684
25685         PR libgcc/61152
25686         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
25687         * config/arm/aout.h (License): Same.
25688         * config/arm/bpabi.h (License): Same.
25689         * config/arm/elf.h (License): Same.
25690         * config/arm/linux-elf.h (License): Same.
25691         * config/arm/linux-gas.h (License): Same.
25692         * config/arm/netbsd-elf.h (License): Same.
25693         * config/arm/uclinux-eabi.h (License): Same.
25694         * config/arm/uclinux-elf.h (License): Same.
25695         * config/arm/vxworks.h (License): Same.
25696
25697 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
25698
25699         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
25700         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
25701         number of operands to 3.
25702         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
25703         * tree-nested.c (convert_nonlocal_omp_clauses,
25704         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
25705         * gimplify.c (gimplify_scan_omp_clauses): Handle
25706         OMP_CLAUSE_LINEAR_STMT.
25707         * omp-low.c (lower_rec_input_clauses): Fix typo.
25708         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
25709         cast between Fortran boolean_type_node and C _Bool if
25710         needed.
25711
25712 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
25713
25714         PR tree-optimization/61136
25715         * wide-int.h (multiple_of_p): Define a version that doesn't return
25716         the quotient.
25717         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
25718         integer_zerop/const_binop pair.
25719         (multiple_of_p): Likewise, converting both operands to widest_int
25720         precision.
25721
25722 2014-05-09  Teresa Johnson  <tejohnson@google.com>
25723
25724         * cgraphunit.c (analyze_functions): Use correct dump file.
25725
25726 2014-05-09  Florian Weimer  <fweimer@redhat.com>
25727
25728         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
25729         expand_used_vars.
25730         (stack_protect_return_slot_p): New function.
25731         (expand_used_vars): Call stack_protect_decl_p and
25732         stack_protect_return_slot_p for -fstack-protector-strong.
25733
25734 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
25735         Andrew Haley <aph@redhat.com>
25736         Richard Sandiford <rdsandiford@googlemail.com>
25737
25738         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
25739         pages.
25740
25741 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
25742
25743         PR middle-end/61111
25744         * fold-const.c (fold_binary_loc): Changed width of mask.
25745
25746 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25747
25748         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
25749         unsigned int initializers for regno_in, regno_out.
25750
25751 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25752
25753         PR target/61055
25754         * config/avr/avr.md (cc): Add new attribute set_vzn.
25755         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
25756         Set cc insn attribute to set_vzn instead of set_zn for alternatives
25757         with INC, DEC or NEG.
25758         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
25759         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
25760         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
25761
25762 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25763
25764         Revert:
25765         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25766
25767         * wide-int.cc (UTItype): Define.
25768         (UDWtype): Define for appropriate W_TYPE_SIZE.
25769
25770 2014-05-09  Richard Biener  <rguenther@suse.de>
25771
25772         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
25773         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
25774         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
25775         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
25776         ssa_propagate): Adjust.
25777
25778 2014-05-08  Jeff Law  <law@redhat.com>
25779
25780         PR tree-optimization/61009
25781         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
25782         tri-state rather than a boolean.  When a block is too big to
25783         thread through, inform caller via negative return value.
25784         (thread_across_edge): If a block was too big for normal threading,
25785         then it's too big for a joiner too, so remove temporary equivalences
25786         and return immediately.
25787
25788 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25789             Matthias Klose  <doko@ubuntu.com>
25790
25791         PR driver/61106
25792         * optc-gen.awk: Fix option handling for -Wunused-parameter.
25793
25794 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25795
25796         PR target/59952
25797         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
25798
25799 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25800
25801         PR target/61092
25802         * config/alpha/alpha.c: Include gimple-iterator.h.
25803         (alpha_gimple_fold_builtin): New function.  Move
25804         ALPHA_BUILTIN_UMULH folding from ...
25805         (alpha_fold_builtin): ... here.
25806         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
25807
25808 2014-05-08  Wei Mi  <wmi@google.com>
25809
25810         PR target/58066
25811         * config/i386/i386.c (ix86_compute_frame_layout): Update
25812         preferred_stack_boundary for call, expanded from tls descriptor.
25813         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
25814         to depend on SP register.
25815         (*tls_local_dynamic_base_32_gnu): Ditto.
25816         (*tls_local_dynamic_32_once): Ditto.
25817         (tls_global_dynamic_64_<mode>): Set
25818         ix86_tls_descriptor_calls_expanded_in_cfun.
25819         (tls_local_dynamic_base_64_<mode>): Ditto.
25820         (tls_global_dynamic_32): Set
25821         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
25822         to depend on SP register.
25823         (tls_local_dynamic_base_32): Ditto.
25824
25825 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25826
25827         * config/arm/arm_neon.h: Update comment.
25828         * config/arm/neon-docgen.ml: Delete.
25829         * config/arm/neon-gen.ml: Delete.
25830         * doc/arm-neon-intrinsics.texi: Update comment.
25831
25832 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25833
25834         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
25835         and v4sf versions.
25836         (vand, vorr, veor, vorn, vbic): Remove.
25837         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
25838         iterator.
25839         (neon_vsub_unspec): Likewise.
25840         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
25841
25842 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25843
25844         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
25845         (vadd_s16): Likewise.
25846         (vadd_s32): Likewise.
25847         (vadd_f32): Likewise.
25848         (vadd_u8): Likewise.
25849         (vadd_u16): Likewise.
25850         (vadd_u32): Likewise.
25851         (vadd_s64): Likewise.
25852         (vadd_u64): Likewise.
25853         (vaddq_s8): Likewise.
25854         (vaddq_s16): Likewise.
25855         (vaddq_s32): Likewise.
25856         (vaddq_s64): Likewise.
25857         (vaddq_f32): Likewise.
25858         (vaddq_u8): Likewise.
25859         (vaddq_u16): Likewise.
25860         (vaddq_u32): Likewise.
25861         (vaddq_u64): Likewise.
25862         (vmul_s8): Likewise.
25863         (vmul_s16): Likewise.
25864         (vmul_s32): Likewise.
25865         (vmul_f32): Likewise.
25866         (vmul_u8): Likewise.
25867         (vmul_u16): Likewise.
25868         (vmul_u32): Likewise.
25869         (vmul_p8): Likewise.
25870         (vmulq_s8): Likewise.
25871         (vmulq_s16): Likewise.
25872         (vmulq_s32): Likewise.
25873         (vmulq_f32): Likewise.
25874         (vmulq_u8): Likewise.
25875         (vmulq_u16): Likewise.
25876         (vmulq_u32): Likewise.
25877         (vsub_s8): Likewise.
25878         (vsub_s16): Likewise.
25879         (vsub_s32): Likewise.
25880         (vsub_f32): Likewise.
25881         (vsub_u8): Likewise.
25882         (vsub_u16): Likewise.
25883         (vsub_u32): Likewise.
25884         (vsub_s64): Likewise.
25885         (vsub_u64): Likewise.
25886         (vsubq_s8): Likewise.
25887         (vsubq_s16): Likewise.
25888         (vsubq_s32): Likewise.
25889         (vsubq_s64): Likewise.
25890         (vsubq_f32): Likewise.
25891         (vsubq_u8): Likewise.
25892         (vsubq_u16): Likewise.
25893         (vsubq_u32): Likewise.
25894         (vsubq_u64): Likewise.
25895         (vand_s8): Likewise.
25896         (vand_s16): Likewise.
25897         (vand_s32): Likewise.
25898         (vand_u8): Likewise.
25899         (vand_u16): Likewise.
25900         (vand_u32): Likewise.
25901         (vand_s64): Likewise.
25902         (vand_u64): Likewise.
25903         (vandq_s8): Likewise.
25904         (vandq_s16): Likewise.
25905         (vandq_s32): Likewise.
25906         (vandq_s64): Likewise.
25907         (vandq_u8): Likewise.
25908         (vandq_u16): Likewise.
25909         (vandq_u32): Likewise.
25910         (vandq_u64): Likewise.
25911         (vorr_s8): Likewise.
25912         (vorr_s16): Likewise.
25913         (vorr_s32): Likewise.
25914         (vorr_u8): Likewise.
25915         (vorr_u16): Likewise.
25916         (vorr_u32): Likewise.
25917         (vorr_s64): Likewise.
25918         (vorr_u64): Likewise.
25919         (vorrq_s8): Likewise.
25920         (vorrq_s16): Likewise.
25921         (vorrq_s32): Likewise.
25922         (vorrq_s64): Likewise.
25923         (vorrq_u8): Likewise.
25924         (vorrq_u16): Likewise.
25925         (vorrq_u32): Likewise.
25926         (vorrq_u64): Likewise.
25927         (veor_s8): Likewise.
25928         (veor_s16): Likewise.
25929         (veor_s32): Likewise.
25930         (veor_u8): Likewise.
25931         (veor_u16): Likewise.
25932         (veor_u32): Likewise.
25933         (veor_s64): Likewise.
25934         (veor_u64): Likewise.
25935         (veorq_s8): Likewise.
25936         (veorq_s16): Likewise.
25937         (veorq_s32): Likewise.
25938         (veorq_s64): Likewise.
25939         (veorq_u8): Likewise.
25940         (veorq_u16): Likewise.
25941         (veorq_u32): Likewise.
25942         (veorq_u64): Likewise.
25943         (vbic_s8): Likewise.
25944         (vbic_s16): Likewise.
25945         (vbic_s32): Likewise.
25946         (vbic_u8): Likewise.
25947         (vbic_u16): Likewise.
25948         (vbic_u32): Likewise.
25949         (vbic_s64): Likewise.
25950         (vbic_u64): Likewise.
25951         (vbicq_s8): Likewise.
25952         (vbicq_s16): Likewise.
25953         (vbicq_s32): Likewise.
25954         (vbicq_s64): Likewise.
25955         (vbicq_u8): Likewise.
25956         (vbicq_u16): Likewise.
25957         (vbicq_u32): Likewise.
25958         (vbicq_u64): Likewise.
25959         (vorn_s8): Likewise.
25960         (vorn_s16): Likewise.
25961         (vorn_s32): Likewise.
25962         (vorn_u8): Likewise.
25963         (vorn_u16): Likewise.
25964         (vorn_u32): Likewise.
25965         (vorn_s64): Likewise.
25966         (vorn_u64): Likewise.
25967         (vornq_s8): Likewise.
25968         (vornq_s16): Likewise.
25969         (vornq_s32): Likewise.
25970         (vornq_s64): Likewise.
25971         (vornq_u8): Likewise.
25972         (vornq_u16): Likewise.
25973         (vornq_u32): Likewise.
25974         (vornq_u64): Likewise.
25975
25976 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25977
25978         * wide-int.cc (UTItype): Define.
25979         (UDWtype): Define for appropriate W_TYPE_SIZE.
25980
25981 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
25982
25983         PR tree-optimization/59100
25984         * tree-ssa-phiopt.c: Include tree-inline.h.
25985         (neutral_element_p, absorbing_element_p): New functions.
25986         (value_replacement): Handle conditional binary operations with a
25987         neutral or absorbing element.
25988
25989 2014-05-08  Richard Biener  <rguenther@suse.de>
25990
25991         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
25992         folding the expression.
25993         (valueize_expr): Remove.
25994         (visit_reference_op_load): Do not valueize the result of
25995         vn_get_expr_for.
25996         (simplify_binary_expression): Likewise.
25997         (simplify_unary_expression): Likewise.
25998
25999 2014-05-08  Richard Biener  <rguenther@suse.de>
26000
26001         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26002         looking at TYPE_ARG_TYPES.
26003
26004 2014-05-08  Richard Biener  <rguenther@suse.de>
26005
26006         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26007         pointer propagation special-case.
26008
26009 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
26010
26011         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26012         core part of address expressions.
26013
26014 2014-05-08  Alan Modra  <amodra@gmail.com>
26015
26016         PR target/60737
26017         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26018         loads and stores when -mno-strict-align at any alignment.
26019         (expand_block_clear): Similarly.  Also correct calculation of
26020         instruction count.
26021
26022 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26023
26024         PR middle-end/39246
26025         * tree-complex.c (expand_complex_move): Keep line info when expanding
26026         complex move.
26027         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26028         of complex expression. Use new argument to display correct location
26029         for values coming from phi statement.
26030         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26031         (warn_uninitialized_phi): Pass location of phi argument to
26032         warn_uninit.
26033         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26034         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26035
26036 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
26037
26038         * config/rs6000/predicates.md (indexed_address_mem): New.
26039         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26040         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26041         fpstore_ux, fpstore_u.
26042         (sign_extend, indexed, update): New.
26043         (cell_micro): Adjust.
26044         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26045         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26046         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26047         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26048         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26049         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26050         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26051         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26052         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26053         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26054         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26055         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26056         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26057         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26058         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26059
26060         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26061         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26062         *vsx_extract_<mode>_store): Adjust.
26063         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26064         is_cracked_insn, insn_must_be_first_in_group,
26065         insn_must_be_last_in_group): Adjust.
26066
26067         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26068         Adjust.
26069         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26070         ppc440-fpstore): Adjust.
26071         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26072         ppc476-fpstore): Adjust.
26073         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26074         ppc601-fpstore): Adjust.
26075         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26076         Adjust.
26077         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26078         Adjust.
26079         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26080         ppc7450-fpstore): Adjust.
26081         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26082         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26083         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26084         Adjust.
26085         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26086         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26087         cell-fpstore, cell-fpstore-update): Adjust.
26088         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26089         ppce300c3_store, ppce300c3_fpstore): Adjust.
26090         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26091         e500mc_fpstore): Adjust.
26092         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26093         e500mc64_store, e500mc64_fpstore): Adjust.
26094         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26095         e5500_fpstore): Adjust.
26096         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26097         e6500_fpstore): Adjust.
26098         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26099         Adjust.
26100         * config/rs6000/power4.md (power4-load, power4-load-ext,
26101         power4-load-ext-update, power4-load-ext-update-indexed,
26102         power4-load-update-indexed, power4-load-update, power4-fpload,
26103         power4-fpload-update, power4-store, power4-store-update,
26104         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26105         Adjust.
26106         * config/rs6000/power5.md (power5-load, power5-load-ext,
26107         power5-load-ext-update, power5-load-ext-update-indexed,
26108         power5-load-update-indexed, power5-load-update, power5-fpload,
26109         power5-fpload-update, power5-store, power5-store-update,
26110         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26111         Adjust.
26112         * config/rs6000/power6.md (power6-load, power6-load-ext,
26113         power6-load-update, power6-load-update-indexed,
26114         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26115         power6-fpload-update, power6-store, power6-store-update,
26116         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26117         Adjust.
26118         * config/rs6000/power7.md (power7-load, power7-load-ext,
26119         power7-load-update, power7-load-update-indexed,
26120         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26121         power7-fpload-update, power7-store, power7-store-update,
26122         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26123         Adjust.
26124         * config/rs6000/power8.md (power8-load, power8-load-update,
26125         power8-load-ext, power8-load-ext-update, power8-fpload,
26126         power8-fpload-update, power8-store, power8-store-update-indexed,
26127         power8-fpstore, power8-fpstore-update): Adjust.
26128         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26129         Adjust.
26130         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26131         titan_lsu_store, titan_lsu_fpstore): Adjust.
26132         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26133
26134 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26135
26136         PR target/60884
26137         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26138         unrolled byte insns.  Emit address increments after move insns.
26139
26140 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26141
26142         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26143         const_gimple, rather than a gimple.
26144         (gimple_call_builtin_p): Likewise, for the three variants.
26145
26146         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26147         (gimple_call_builtin_p): Likewise, for the three variants.
26148
26149 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26150
26151         PR tree-optimization/61095
26152         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26153
26154 2014-05-07  Richard Biener  <rguenther@suse.de>
26155
26156         PR tree-optimization/61034
26157         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26158         (maybe_skip_until): Use translate to take into account
26159         lattices when trying to do disambiguations.
26160         (get_continuation_for_phi_1): Likewise.
26161         (get_continuation_for_phi): Adjust for added translate arguments.
26162         (walk_non_aliased_vuses): Likewise.
26163         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26164         (walk_non_aliased_vuses): Likewise.
26165         (call_may_clobber_ref_p_1): Declare.
26166         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26167         calls.  Stop early if we are only supposed to disambiguate.
26168         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26169
26170 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26171
26172         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26173         Emit an error when the function has arguments.
26174
26175 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26176
26177         * cfgloop.h (unswitch_loops): Remove.
26178         * doc/passes.texi: Remove references to loop-unswitch.c
26179         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26180
26181 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26182
26183         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26184         check for loads group of length 3.
26185         (vect_permute_load_chain): New permutations for loads group of
26186         length 3.
26187         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26188         of vec_perm_shuffle for the new permutations.
26189
26190 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26191
26192         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26193         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26194         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26195         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26196         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26197         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26198         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26199         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26200
26201 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26202
26203         * loop-unswitch.c: Delete.
26204
26205 2014-05-07  Richard Biener  <rguenther@suse.de>
26206
26207         * config.gcc: Always set need_64bit_hwint to yes.
26208
26209 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26210
26211         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26212         of using optimize_size.
26213
26214 2014-05-06  Mike Stump  <mikestump@comcast.net>
26215
26216         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26217
26218 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26219
26220         * config/i386/sse.md (*mov<mode>_internal)
26221         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26222         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26223         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26224         (*<code><mode>3, *andnot<mode>3<mask_name>)
26225         (<mask_codefor><code><mode>3<mask_name>): Only consider
26226         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26227
26228 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26229
26230         Revert:
26231         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26232
26233         * lra-constraints.c (valid_address_p): Move earlier in file.
26234         Add a constraint argument to the address_info version.
26235         (satisfies_memory_constraint_p): New function.
26236         (satisfies_address_constraint_p): Likewise.
26237         (process_alt_operands, curr_insn_transform): Use them.
26238         (process_address): Pass the constraint to valid_address_p when
26239         checking address operands.
26240
26241 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26242
26243         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26244         to their respective blocks.  Fix inadvertent use of "node".
26245
26246 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26247
26248         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26249         out from...
26250         (init_emit_once): ...here.
26251         * rtl.h (init_derived_machine_modes): Declare.
26252         * toplev.c (do_compile): Call it even if no_backend.
26253
26254 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26255             Mike Stump  <mikestump@comcast.net>
26256             Richard Sandiford  <rdsandiford@googlemail.com>
26257             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26258
26259         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26260         (rtx_equal_for_memref_p): Update comment.
26261         (adjust_offset_for_component_ref): Use wide-int interfaces.
26262         * builtins.c (get_object_alignment_2): Likewise.
26263         (c_readstr): Likewise.
26264         (target_char_cast): Add comment.
26265         (determine_block_size): Use wide-int interfaces.
26266         (expand_builtin_signbit): Likewise.
26267         (fold_builtin_int_roundingfn): Likewise.
26268         (fold_builtin_bitop): Likewise.
26269         (fold_builtin_bswap): Likewise.
26270         (fold_builtin_logarithm): Use signop.
26271         (fold_builtin_pow): Likewise.
26272         (fold_builtin_memory_op): Use wide-int interfaces.
26273         (fold_builtin_object_size): Likewise.
26274         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26275         nb_iterations_estimate.
26276         (record_niter_bound): Use wide-int interfaces.
26277         (get_estimated_loop_iterations_int): Likewise.
26278         (get_estimated_loop_iterations): Likewise.
26279         (get_max_loop_iterations): Likewise.
26280         * cfgloop.h: Include wide-int.h.
26281         (struct nb_iter_bound): Change bound to widest_int.
26282         (struct loop): Change nb_iterations_upper_bound and
26283         nb_iterations_estimate to widest_int.
26284         (record_niter_bound): Switch to use widest_int.
26285         (get_estimated_loop_iterations): Likewise.
26286         (get_max_loop_iterations): Likewise.
26287         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26288         update for wide-int.
26289         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26290         * combine.c (try_combine): Likewise.
26291         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26292         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26293         interfaces.
26294         (aarch64_float_const_representable_p): Likewise.
26295         * config/arc/arc.c: Include wide-int.h.
26296         (arc_can_use_doloop_p): Use wide-int interfaces.
26297         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26298         (vfp3_const_double_index): Likewise.
26299         * config/avr/avr.c (avr_out_round): Likewise.
26300         (avr_fold_builtin): Likewise.
26301         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26302         (bfin_can_use_doloop_p): Likewise.
26303         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26304         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26305         * config/i386/i386.c: Include wide-int.h.
26306         (ix86_data_alignment): Use wide-int interfaces.
26307         (ix86_local_alignment): Likewise.
26308         (ix86_emit_swsqrtsf): Update real_from_integer.
26309         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26310         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26311         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26312         (zero_constant): Likewise.
26313         (input_operand): Likewise.
26314         (splat_input_operand): Likewise.
26315         (non_logical_cint_operand): Change const_double to const_wide_int.
26316         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26317         (easy_altivec_constant): Remove comment.
26318         (paired_expand_vector_init): Use CONSTANT_P.
26319         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26320         (rs6000_emit_move): Update checks.
26321         (rs6000_aggregate_candidate): Use wide-int interfaces.
26322         (rs6000_expand_ternop_builtin): Likewise.
26323         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26324         (rs6000_assemble_integer): Likewise.
26325         (rs6000_hash_constant): Likewise.
26326         (output_toc): Likewise.
26327         (rs6000_rtx_costs): Likewise.
26328         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26329         * config/rs6000/rs6000-c.c: Include wide-int.h.
26330         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26331         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26332         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26333         Handle CONST_WIDE_INT.
26334         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26335         Use tree_fits_uhwi_p.
26336         * config/sparc/sparc.c: Include wide-int.h.
26337         (sparc_fold_builtin): Use wide-int interfaces.
26338         * config/vax/vax.c: Include wide-int.h.
26339         (vax_float_literal): Use real_from_integer.
26340         * coretypes.h (struct hwivec_def): New.
26341         (hwivec): New.
26342         (const_hwivec): New.
26343         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26344         (equiv_constant): Handle CONST_WIDE_INT.
26345         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26346         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26347         * dbxout.c (stabstr_U): Use wide-int interfaces.
26348         (dbxout_type): Update to use cst_fits_shwi_p.
26349         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26350         (TARGET_SUPPORTS_WIDE_INT): Add default.
26351         * dfp.c: Include wide-int.h.
26352         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26353         decimal_real_to_integer.
26354         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26355         decimal_real_to_integer.
26356         * doc/generic.texi (Constant expressions): Update for wide_int.
26357         * doc/rtl.texi (const_double): Likewise.
26358         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26359         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26360         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26361         (REAL_VALUE_FROM_INT): Remove.
26362         (TARGET_SUPPORTS_WIDE_INT): New.
26363         * doc/tm.texi: Regenerate.
26364         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26365         * double-int.h: Include wide-int.h.
26366         (struct wi::int_traits): New.
26367         * dwarf2out.c (get_full_len): New.
26368         (dw_val_equal_p): Add case dw_val_class_wide_int.
26369         (size_of_loc_descr): Likewise.
26370         (output_loc_operands): Likewise.
26371         (insert_double): Remove.
26372         (insert_wide_int): New.
26373         (add_AT_wide): New.
26374         (print_die): Add case dw_val_class_wide_int.
26375         (attr_checksum): Likewise.
26376         (attr_checksum_ordered): Likewise.
26377         (same_dw_val_p): Likewise.
26378         (size_of_die): Likewise.
26379         (value_format): Likewise.
26380         (output_die): Likewise.
26381         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26382         Use wide-int.
26383         (clz_loc_descriptor): Use wide-int interfaces.
26384         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26385         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26386         (round_up_to_align): Use wide-int interfaces.
26387         (field_byte_offset): Likewise.
26388         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26389         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26390         CONST_DOUBLE handling.  Use wide-int interfaces.
26391         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26392         (gen_enumeration_type_die): Use add_AT_wide.
26393         (hash_loc_operands): Add case dw_val_class_wide_int.
26394         (compare_loc_operands): Likewise.
26395         * dwarf2out.h: Include wide-int.h.
26396         (wide_int_ptr): New.
26397         (enum dw_val_class): Add dw_val_class_wide_int.
26398         (struct dw_val_struct): Add val_wide.
26399         * emit-rtl.c (const_wide_int_htab): New.
26400         (const_wide_int_htab_hash): New.
26401         (const_wide_int_htab_eq): New.
26402         (lookup_const_wide_int): New.
26403         (const_double_htab_hash): Use wide-int interfaces.
26404         (const_double_htab_eq): Likewise.
26405         (rtx_to_double_int): Conditionally compile for wide-int.
26406         (immed_double_int_const): Rename to immed_wide_int_const and
26407         update for wide-int.
26408         (immed_double_const): Conditionally compile for wide-int.
26409         (init_emit_once): Use wide-int interfaces.
26410         * explow.c (plus_constant): Likewise.
26411         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26412         (lshift_value): Use wide-int interfaces.
26413         (expand_mult): Likewise.
26414         (choose_multiplier): Likewise.
26415         (expand_smod_pow2): Likewise.
26416         (make_tree): Likewise.
26417         * expr.c (convert_modes): Consolidate handling of constants.
26418         Use wide-int interfaces.
26419         (emit_group_load_1): Add note.
26420         (store_expr): Update comment.
26421         (get_inner_reference): Use wide-int interfaces.
26422         (expand_constructor): Update comment.
26423         (expand_expr_real_2): Use wide-int interfaces.
26424         (expand_expr_real_1): Likewise.
26425         (reduce_to_bit_field_precision): Likewise.
26426         (const_vector_from_tree): Likewise.
26427         * final.c: Include wide-int-print.h.
26428         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26429         * fixed-value.c: Include wide-int.h.
26430         (fixed_from_string): Use wide-int interfaces.
26431         (fixed_to_decimal): Likewise.
26432         (fixed_convert_from_real): Likewise.
26433         (real_convert_from_fixed): Likewise.
26434         * fold-const.h (mem_ref_offset): Return an offset_int.
26435         (div_if_zero_remainder): Remove code parameter.
26436         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26437         Use wide-int interfaces.
26438         (may_negate_without_overflow_p): Use wide-int interfaces.
26439         (negate_expr_p): Likewise.
26440         (fold_negate_expr): Likewise.
26441         (int_const_binop_1): Likewise.
26442         (const_binop): Likewise.
26443         (fold_convert_const_int_from_int): Likewise.
26444         (fold_convert_const_int_from_real): Likewise.
26445         (fold_convert_const_int_from_fixed): Likewise.
26446         (fold_convert_const_fixed_from_int): Likewise.
26447         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
26448         (sign_bit_p): Use wide-int interfaces.
26449         (make_range_step): Likewise.
26450         (build_range_check): Likewise.  Pass an integer of the correct type
26451         instead of using integer_one_node.
26452         (range_predecessor): Pass an integer of the correct type instead
26453         of using integer_one_node.
26454         (range_successor): Likewise.
26455         (merge_ranges): Likewise.
26456         (unextend): Use wide-int interfaces.
26457         (extract_muldiv_1): Likewise.
26458         (fold_div_compare): Likewise.
26459         (fold_single_bit_test): Likewise.
26460         (fold_sign_changed_comparison): Likewise.
26461         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26462         (fold_plusminus_mult_expr): Use wide-int interfaces.
26463         (native_encode_int): Likewise.
26464         (native_interpret_int): Likewise.
26465         (fold_unary_loc): Likewise.
26466         (pointer_may_wrap_p): Likewise.
26467         (size_low_cst): Likewise.
26468         (mask_with_tz): Likewise.
26469         (fold_binary_loc): Likewise.
26470         (fold_ternary_loc): Likewise.
26471         (multiple_of_p): Likewise.
26472         (tree_call_nonnegative_warnv_p): Update calls to
26473         tree_int_cst_min_precision and real_from_integer.
26474         (fold_negate_const): Use wide-int interfaces.
26475         (fold_abs_const): Likewise.
26476         (fold_relational_const): Use tree_int_cst_lt.
26477         (round_up_loc): Use wide-int interfaces.
26478         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26479         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26480         * gengtype.c: Remove include of double-int.h.
26481         (do_typedef): Use wide-int interfaces.
26482         (open_base_files): Add wide-int.h.
26483         (main): Add offset_int and widest_int typedefs.
26484         * gengtype-lex.l: Handle "^".
26485         (CXX_KEYWORD): Add "static".
26486         * gengtype-parse.c (require3): New.
26487         (require_template_declaration): Handle constant template arguments
26488         and nested templates.
26489         * gengtype-state.c: Don't include "double-int.h".
26490         * genpreds.c (write_one_predicate_function): Update comment.
26491         (write_tm_constrs_h): Add check for hval and lval use in
26492         CONST_WIDE_INT.
26493         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
26494         (add_to_sequence): Likewise.
26495         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
26496         and const_double_operand.
26497         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
26498         interfaces.
26499         * gimple-fold.c (get_base_constructor): Likewise.
26500         (fold_array_ctor_reference): Likewise.
26501         (fold_nonarray_ctor_reference): Likewise.
26502         (fold_const_aggregate_ref_1): Likewise.
26503         (gimple_val_nonnegative_real_p): Likewise.
26504         (gimple_fold_indirect_ref): Likewise.
26505         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
26506         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
26507         (struct slsr_cand_d): Change index to be widest_int.
26508         (struct incr_info_d): Change incr to be widest_int.
26509         (alloc_cand_and_find_basis): Use wide-int interfaces.
26510         (slsr_process_phi): Likewise.
26511         (backtrace_base_for_ref): Likewise.  Return a widest_int.
26512         (restructure_reference): Take a widest_int instead of a double_int.
26513         (slsr_process_ref): Use wide-int interfaces.
26514         (create_mul_ssa_cand): Likewise.
26515         (create_mul_imm_cand): Likewise.
26516         (create_add_ssa_cand): Likewise.
26517         (create_add_imm_cand): Take a widest_int instead of a double_int.
26518         (slsr_process_add): Use wide-int interfaces.
26519         (slsr_process_cast): Likewise.
26520         (slsr_process_copy): Likewise.
26521         (dump_candidate): Likewise.
26522         (dump_incr_vec): Likewise.
26523         (replace_ref): Likewise.
26524         (cand_increment): Likewise.  Return a widest_int.
26525         (cand_abs_increment): Likewise.
26526         (replace_mult_candidate): Take a widest_int instead of a double_int.
26527         (replace_unconditional_candidate): Use wide-int interfaces.
26528         (incr_vec_index): Take a widest_int instead of a double_int.
26529         (create_add_on_incoming_edge): Likewise.
26530         (create_phi_basis): Use wide-int interfaces.
26531         (replace_conditional_candidate): Likewise.
26532         (record_increment): Take a widest_int instead of a double_int.
26533         (record_phi_increments): Use wide-int interfaces.
26534         (phi_incr_cost): Take a widest_int instead of a double_int.
26535         (lowest_cost_path): Likewise.
26536         (total_savings): Likewise.
26537         (analyze_increments): Use wide-int interfaces.
26538         (ncd_with_phi): Take a widest_int instead of a double_int.
26539         (ncd_of_cand_and_phis): Likewise.
26540         (nearest_common_dominator_for_cands): Likewise.
26541         (insert_initializers): Use wide-int interfaces.
26542         (all_phi_incrs_profitable): Likewise.
26543         (replace_one_candidate): Likewise.
26544         (replace_profitable_candidates): Likewise.
26545         * godump.c: Include wide-int-print.h.
26546         (go_output_typedef): Use wide-int interfaces.
26547         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
26548         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
26549         (build_loop_iteration_domains): Likewise.
26550         * hooks.h: Include wide-int.h rather than double-int.h.
26551         (hook_bool_dint_dint_uint_bool_true): Delete.
26552         (hook_bool_wint_wint_uint_bool_true): Declare.
26553         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
26554         (hook_bool_wint_wint_uint_bool_true): New.
26555         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
26556         interfaces.
26557         (ubsan_expand_si_overflow_mul_check): Likewise.
26558         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
26559         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
26560         (get_ancestor_addr_info): Likewise.
26561         (ipa_modify_call_arguments): Likewise.
26562         * loop-doloop.c (doloop_modify): Likewise.
26563         (doloop_optimize): Likewise.
26564         * loop-iv.c (iv_number_of_iterations): Likewise.
26565         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
26566         (unroll_loop_constant_iterations): Likewise.
26567         (decide_unroll_runtime_iterations): Likewise.
26568         (unroll_loop_runtime_iterations): Likewise.
26569         (decide_peel_simple): Likewise.
26570         (decide_unroll_stupid): Likewise.
26571         * lto-streamer-in.c (streamer_read_wi): Add.
26572         (input_cfg): Use wide-int interfaces.
26573         (lto_input_tree_1): Likewise.
26574         * lto-streamer-out.c (streamer_write_wi): Add.
26575         (hash_tree): Use wide-int interfaces.
26576         (output_cfg): Likewise.
26577         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
26578         (GTFILES): Add wide-int.h and signop.h.
26579         (TAGS): Look for .cc files too.
26580         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
26581         * optabs.c (expand_subword_shift): Likewise.
26582         (expand_doubleword_shift): Likewise.
26583         (expand_absneg_bit): Likewise.
26584         (expand_copysign_absneg): Likewise.
26585         (expand_copysign_bit): Likewise.
26586         * postreload.c (reload_cse_simplify_set): Likewise.
26587         * predict.c (predict_iv_comparison): Likewise.
26588         * pretty-print.h: Include wide-int-print.h.
26589         (pp_wide_int) New.
26590         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
26591         * print-tree.c: Include wide-int-print.h.
26592         (print_node_brief): Use wide-int interfaces.
26593         (print_node): Likewise.
26594         * read-rtl.c (validate_const_wide_int): New.
26595         (read_rtx_code): Add CONST_WIDE_INT case.
26596         * real.c: Include wide-int.h.
26597         (real_to_integer2): Delete.
26598         (real_to_integer): New function, returning a wide_int.
26599         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26600         (ten_to_ptwo): Update call to real_from_integer.
26601         (real_digit): Likewise.
26602         * real.h: Include signop.h, wide-int.h and insn-modes.h.
26603         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
26604         (REAL_VALUE_TO_INT): Delete.
26605         (real_to_integer): Declare a wide-int form.
26606         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26607         * recog.c (const_int_operand): Improve comment.
26608         (const_scalar_int_operand): New.
26609         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
26610         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
26611         (split_double): Likewise.
26612         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
26613         (rtx_size): Likewise.
26614         (rtx_alloc_stat_v): New.
26615         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
26616         (cwi_output_hex): New.
26617         (iterative_hash_rtx): Handle CONST_WIDE_INT.
26618         (cwi_check_failed_bounds): New.
26619         * rtl.def (CONST_WIDE_INT): New.
26620         * rtl.h: Include <utility> and wide-int.h.
26621         (struct hwivec_def): New.
26622         (CWI_GET_NUM_ELEM): New.
26623         (CWI_PUT_NUM_ELEM): New.
26624         (struct rtx_def): Add num_elem and hwiv.
26625         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
26626         (CASE_CONST_UNIQUE): Likewise.
26627         (CASE_CONST_ANY): Likewise.
26628         (CONST_SCALAR_INT_P): Likewise.
26629         (CONST_WIDE_INT_P): New.
26630         (CWI_ELT): New.
26631         (HWIVEC_CHECK): New.
26632         (cwi_check_failed_bounds): New.
26633         (CWI_ELT): New.
26634         (HWIVEC_CHECK): New.
26635         (CONST_WIDE_INT_VEC) New.
26636         (CONST_WIDE_INT_NUNITS) New.
26637         (CONST_WIDE_INT_ELT) New.
26638         (rtx_mode_t): New type.
26639         (wi::int_traits <rtx_mode_t>): New.
26640         (wi::shwi): New.
26641         (wi::min_value): New.
26642         (wi::max_value): New.
26643         (rtx_alloc_v) New.
26644         (const_wide_int_alloc): New.
26645         (immed_wide_int_const): New.
26646         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
26647         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
26648         * signop.h: New file.
26649         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
26650         (simplify_const_unary_operation): Use wide-int interfaces.
26651         (simplify_binary_operation_1): Likewise.
26652         (simplify_const_binary_operation): Likewise.
26653         (simplify_const_relational_operation): Likewise.
26654         (simplify_immed_subreg): Likewise.
26655         * stmt.c (expand_case): Likewise.
26656         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
26657         signop rather than a bool.
26658         * stor-layout.c (layout_type): Use wide-int interfaces.
26659         (initialize_sizetypes): Update calls to
26660         set_min_and_max_values_for_integral_type.
26661         (set_min_and_max_values_for_integral_type): Take a signop rather
26662         than a bool.  Use wide-int interfaces.
26663         (fixup_signed_type): Update accordingly.  Remove
26664         HOST_BITS_PER_DOUBLE_INT limit.
26665         (fixup_unsigned_type): Likewise.
26666         * system.h (STATIC_CONSTANT_P): New.
26667         (STATIC_ASSERT): New.
26668         * target.def (can_use_doloop_p): Take widest_ints rather than
26669         double_ints.
26670         * target.h: Include wide-int.h rather than double-int.h.
26671         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
26672         than double_ints.
26673         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
26674         rather than INT_CST_LT_UNSIGNED.
26675         (can_use_doloop_if_innermost): Take widest_ints rather than
26676         double_ints.
26677         * tree-affine.c: Include wide-int-print.h.
26678         (double_int_ext_for_comb): Delete.
26679         (wide_int_ext_for_comb): New.
26680         (aff_combination_zero): Use wide-int interfaces.
26681         (aff_combination_const): Take a widest_int instead of a double_int.
26682         (aff_combination_elt): Use wide-int interfaces.
26683         (aff_combination_scale): Take a widest_int instead of a double_int.
26684         (aff_combination_add_elt): Likewise.
26685         (aff_combination_add_cst): Likewise.
26686         (aff_combination_add): Use wide-int interfaces.
26687         (aff_combination_convert): Likewise.
26688         (tree_to_aff_combination): Likewise.
26689         (add_elt_to_tree): Take a widest_int instead of a double_int.
26690         (aff_combination_to_tree): Use wide-int interfaces.
26691         (aff_combination_remove_elt): Likewise.
26692         (aff_combination_add_product): Take a widest_int instead of
26693         a double_int.
26694         (aff_combination_mult): Use wide-int interfaces.
26695         (aff_combination_expand): Likewise.
26696         (double_int_constant_multiple_p): Delete.
26697         (wide_int_constant_multiple_p): New.
26698         (aff_combination_constant_multiple_p): Take a widest_int pointer
26699         instead of a double_int pointer.
26700         (print_aff): Use wide-int interfaces.
26701         (get_inner_reference_aff): Take a widest_int pointer
26702         instead of a double_int pointer.
26703         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
26704         * tree-affine.h: Include wide-int.h.
26705         (struct aff_comb_elt): Change type of coef to widest_int.
26706         (struct affine_tree_combination): Change type of offset to widest_int.
26707         (double_int_ext_for_comb): Delete.
26708         (wide_int_ext_for_comb): New.
26709         (aff_combination_const): Use widest_int instead of double_int.
26710         (aff_combination_scale): Likewise.
26711         (aff_combination_add_elt): Likewise.
26712         (aff_combination_constant_multiple_p): Likewise.
26713         (get_inner_reference_aff): Likewise.
26714         (aff_comb_cannot_overlap_p): Likewise.
26715         (aff_combination_zero_p): Use wide-int interfaces.
26716         * tree.c: Include tree.h.
26717         (init_ttree): Use make_int_cst.
26718         (tree_code_size): Removed code for INTEGER_CST case.
26719         (tree_size): Add INTEGER_CST case.
26720         (make_node_stat): Update comment.
26721         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
26722         (build_int_cst_type): Use wide-int interfaces.
26723         (double_int_to_tree): Likewise.
26724         (double_int_fits_to_tree_p): Delete.
26725         (force_fit_type_double): Delete.
26726         (force_fit_type): New.
26727         (int_cst_hash_hash): Use wide-int interfaces.
26728         (int_cst_hash_eq): Likewise.
26729         (build_int_cst_wide): Delete.
26730         (wide_int_to_tree): New.
26731         (cache_integer_cst): Use wide-int interfaces.
26732         (build_low_bits_mask): Likewise.
26733         (cst_and_fits_in_hwi): Likewise.
26734         (real_value_from_int_cst): Likewise.
26735         (make_int_cst_stat): New.
26736         (integer_zerop): Use wide_int interfaces.
26737         (integer_onep): Likewise.
26738         (integer_all_onesp): Likewise.
26739         (integer_pow2p): Likewise.
26740         (integer_nonzerop): Likewise.
26741         (tree_log2): Likewise.
26742         (tree_floor_log2): Likewise.
26743         (tree_ctz): Likewise.
26744         (int_size_in_bytes): Likewise.
26745         (mem_ref_offset): Return an offset_int rather than a double_int.
26746         (build_type_attribute_qual_variant): Use wide_int interfaces.
26747         (type_hash_eq): Likewise
26748         (tree_int_cst_equal): Likewise.
26749         (tree_int_cst_lt): Delete.
26750         (tree_int_cst_compare): Likewise.
26751         (tree_fits_shwi_p): Use wide_int interfaces.
26752         (tree_fits_uhwi_p): Likewise.
26753         (tree_int_cst_sign_bit): Likewise.
26754         (tree_int_cst_sgn): Likewise.
26755         (tree_int_cst_min_precision): Take a signop rather than a bool.
26756         (simple_cst_equal): Use wide_int interfaces.
26757         (compare_tree_int): Likewise.
26758         (iterative_hash_expr): Likewise.
26759         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
26760         INT_CST_LT.
26761         (get_type_static_bounds): Use wide_int interfaces.
26762         (tree_int_cst_elt_check_failed): New.
26763         (build_common_tree_nodes): Reordered to set prec before filling in
26764         value.
26765         (int_cst_value): Check cst_and_fits_in_hwi.
26766         (widest_int_cst_value): Use wide_int interfaces.
26767         (upper_bound_in_type): Likewise.
26768         (lower_bound_in_type): Likewise.
26769         (num_ending_zeros): Likewise.
26770         (drop_tree_overflow): Likewise.
26771         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
26772         (gen_conditions_for_pow_cst_base): Likewise.
26773         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
26774         (group_case_labels_stmt): Use wide-int interfaces.
26775         (verify_gimple_assign_binary): Likewise.
26776         (print_loop): Likewise.
26777         * tree-chrec.c (tree_fold_binomial): Likewise.
26778         * tree-core.h (struct tree_base): Add int_length.
26779         (struct tree_int_cst): Change rep of value.
26780         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
26781         (dr_may_alias_p): Likewise.
26782         (max_stmt_executions_tree): Likewise.
26783         * tree.def (INTEGER_CST): Update comment.
26784         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
26785         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
26786         * tree-dump.c: Include wide-int.h and wide-int-print.h.
26787         (dequeue_and_dump): Use wide-int interfaces.
26788         * tree.h: Include wide-int.h.
26789         (NULL_TREE): Moved to earlier loc in file.
26790         (TREE_INT_CST_ELT_CHECK): New.
26791         (tree_int_cst_elt_check_failed): New.
26792         (TYPE_SIGN): New.
26793         (TREE_INT_CST): Delete.
26794         (TREE_INT_CST_LOW): Use wide-int interfaces.
26795         (TREE_INT_CST_HIGH): Delete.
26796         (TREE_INT_CST_NUNITS): New.
26797         (TREE_INT_CST_EXT_NUNITS): Likewise.
26798         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
26799         (TREE_INT_CST_ELT): Likewise.
26800         (INT_CST_LT): Delete.
26801         (tree_int_cst_elt_check): New (two forms).
26802         (type_code_size): Update comment.
26803         (make_int_cst_stat, make_int_cst): New.
26804         (tree_to_double_int): Delete.
26805         (double_int_fits_to_tree_p): Delete.
26806         (force_fit_type_double): Delete.
26807         (build_int_cstu): Replace with out-of-line function.
26808         (build_int_cst_wide): Delete.
26809         (tree_int_cst_lt): Define inline.
26810         (tree_int_cst_le): New.
26811         (tree_int_cst_compare): Define inline.
26812         (tree_int_cst_min_precision): Take a signop rather than a bool.
26813         (wi::int_traits <const_tree>): New.
26814         (wi::int_traits <tree>): New.
26815         (wi::extended_tree): New.
26816         (wi::int_traits <wi::extended_tree>): New.
26817         (wi::to_widest): New.
26818         (wi::to_offset): New.
26819         (wi::fits_to_tree_p): New.
26820         (wi::min_value): New.
26821         (wi::max_value): New.
26822         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
26823         (copy_tree_body_r): Likewise.
26824         * tree-object-size.c (compute_object_offset): Likewise.
26825         (addr_object_size): Likewise.
26826         * tree-predcom.c: Include wide-int-print.h.
26827         (struct dref_d): Change type of offset to widest_int.
26828         (dump_dref): Call wide-int printer.
26829         (aff_combination_dr_offset): Use wide-int interfaces.
26830         (determine_offset): Take a widest_int pointer rather than a
26831         double_int pointer.
26832         (split_data_refs_to_components): Use wide-int interfaces.
26833         (suitable_component_p): Likewise.
26834         (order_drefs): Likewise.
26835         (add_ref_to_chain): Likewise.
26836         (valid_initializer_p): Likewise.
26837         (determine_roots_comp): Likewise.
26838         * tree-pretty-print.c: Include wide-int-print.h.
26839         (dump_generic_node): Use wide-int interfaces.
26840         * tree-sra.c (sra_ipa_modify_expr): Likewise.
26841         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
26842         (move_fixed_address_to_symbol): Likewise.
26843         (move_hint_to_base): Likewise.
26844         (move_pointer_to_base): Likewise.
26845         (move_variant_to_index): Likewise.
26846         (most_expensive_mult_to_index): Likewise.
26847         (addr_to_parts): Likewise.
26848         (copy_ref_info): Likewise.
26849         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26850         (indirect_refs_may_alias_p): Likewise.
26851         (stmt_kills_ref_p_1): Likewise.
26852         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
26853         * tree-ssa-ccp.c: Update comment at top of file.  Include
26854         wide-int-print.h.
26855         (struct prop_value_d): Change type of mask to widest_int.
26856         (extend_mask): New function.
26857         (dump_lattice_value): Use wide-int interfaces.
26858         (get_default_value): Likewise.
26859         (set_constant_value): Likewise.
26860         (set_value_varying): Likewise.
26861         (valid_lattice_transition): Likewise.
26862         (set_lattice_value): Likewise.
26863         (value_to_double_int): Delete.
26864         (value_to_wide_int): New.
26865         (get_value_from_alignment): Use wide-int interfaces.
26866         (get_value_for_expr): Likewise.
26867         (do_dbg_cnt): Likewise.
26868         (ccp_finalize): Likewise.
26869         (ccp_lattice_meet): Likewise.
26870         (bit_value_unop_1): Use widest_ints rather than double_ints.
26871         (bit_value_binop_1): Likewise.
26872         (bit_value_unop): Use wide-int interfaces.
26873         (bit_value_binop): Likewise.
26874         (bit_value_assume_aligned): Likewise.
26875         (evaluate_stmt): Likewise.
26876         (ccp_fold_stmt): Likewise.
26877         (visit_cond_stmt): Likewise.
26878         (ccp_visit_stmt): Likewise.
26879         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26880         (constant_pointer_difference): Likewise.
26881         (associate_pointerplus): Likewise.
26882         (combine_conversions): Likewise.
26883         * tree-ssa-loop.h: Include wide-int.h.
26884         (struct tree_niter_desc): Change type of max to widest_int.
26885         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
26886         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
26887         (remove_redundant_iv_tests): Likewise.
26888         (canonicalize_loop_induction_variables): Likewise.
26889         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
26890         (constant_multiple_of): Take a widest_int pointer instead of
26891         a double_int pointer.
26892         (get_computation_aff): Use wide-int interfaces.
26893         (ptr_difference_cost): Likewise.
26894         (difference_cost): Likewise.
26895         (get_loop_invariant_expr_id): Likewise.
26896         (get_computation_cost_at): Likewise.
26897         (iv_elimination_compare_lt): Likewise.
26898         (may_eliminate_iv): Likewise.
26899         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
26900         instead of double_int.
26901         (max_loop_iterations): Likewise.
26902         (max_stmt_executions): Likewise.
26903         (estimated_stmt_executions): Likewise.
26904         * tree-ssa-loop-niter.c: Include wide-int-print.h.
26905         (split_to_var_and_offset): Use wide-int interfaces.
26906         (determine_value_range): Likewise.
26907         (bound_difference_of_offsetted_base): Likewise.
26908         (bounds_add): Take a widest_int instead of a double_int.
26909         (number_of_iterations_ne_max): Use wide-int interfaces.
26910         (number_of_iterations_ne): Likewise.
26911         (number_of_iterations_lt_to_ne): Likewise.
26912         (assert_loop_rolls_lt): Likewise.
26913         (number_of_iterations_lt): Likewise.
26914         (number_of_iterations_le): Likewise.
26915         (number_of_iterations_cond): Likewise.
26916         (number_of_iterations_exit): Likewise.
26917         (finite_loop_p): Likewise.
26918         (derive_constant_upper_bound_assign): Likewise.
26919         (derive_constant_upper_bound): Return a widest_int.
26920         (derive_constant_upper_bound_ops): Likewise.
26921         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
26922         (record_estimate): Take a widest_int rather than a double_int.
26923         (record_nonwrapping_iv): Use wide-int interfaces.
26924         (double_int_cmp): Delete.
26925         (wide_int_cmp): New.
26926         (bound_index): Take a widest_int rather than a double_int.
26927         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
26928         (maybe_lower_iteration_bound): Likewise.
26929         (estimate_numbers_of_iterations_loop): Likewise.
26930         (estimated_loop_iterations): Take a widest_int pointer than than
26931         a double_int pointer.
26932         (estimated_loop_iterations_int): Use wide-int interfaces.
26933         (max_loop_iterations): Take a widest_int pointer than than
26934         a double_int pointer.
26935         (max_loop_iterations_int): Use wide-int interfaces.
26936         (max_stmt_executions): Take a widest_int pointer than than
26937         a double_int pointer.
26938         (estimated_stmt_executions): Likewise.
26939         (n_of_executions_at_most): Use wide-int interfaces.
26940         (scev_probably_wraps_p): Likewise.
26941         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
26942         to real_to_integer.
26943         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
26944         interfaces.
26945         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
26946         double_ints.  Adjust for trailing_wide_ints <3> representation.
26947         (set_nonzero_bits): Likewise.
26948         (get_range_info): Return wide_ints rather than double_ints.
26949         Adjust for trailing_wide_ints <3> representation.
26950         (get_nonzero_bits): Likewise.
26951         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
26952         representation.
26953         * tree-ssanames.h (struct range_info_def): Replace min, max and
26954         nonzero_bits with a trailing_wide_ints <3>.
26955         (set_range_info): Use wide_int_refs rather than double_ints.
26956         (set_nonzero_bits): Likewise.
26957         (get_range_info): Return wide_ints rather than double_ints.
26958         (get_nonzero_bits): Likewise.
26959         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
26960         * tree-ssa-pre.c (phi_translate_1): Likewise.
26961         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
26962         (acceptable_pow_call): Likewise.
26963         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
26964         interfaces.
26965         (vn_reference_fold_indirect): Likewise.
26966         (vn_reference_maybe_forwprop_address): Likewise.
26967         (valueize_refs_1): Likewise.
26968         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
26969         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
26970         tree_int_cst_lt and tree_int_cst_le.
26971         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
26972         interfaces.
26973         (streamer_alloc_tree): Likewise.
26974         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
26975         (streamer_write_tree_header): Likewise.
26976         (streamer_write_integer_cst): Likewise.
26977         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
26978         (build_constructors): Likewise.
26979         (array_value_type): Likewise.
26980         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
26981         (vect_check_gather): Likewise.
26982         * tree-vect-generic.c (build_replicated_const): Likewise.
26983         (expand_vector_divmod): Likewise.
26984         * tree-vect-loop.c (vect_transform_loop): Likewise.
26985         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
26986         (vect_do_peeling_for_alignment): Likewise.
26987         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
26988         * tree-vrp.c: Include wide-int.h.
26989         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
26990         (extract_range_from_assert): Use wide-int interfaces.
26991         (vrp_int_const_binop): Likewise.
26992         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
26993         double_int pointers.
26994         (ranges_from_anti_range): Use wide-int interfaces.
26995         (quad_int_cmp): Delete.
26996         (quad_int_pair_sort): Likewise.
26997         (extract_range_from_binary_expr_1): Use wide-int interfaces.
26998         (extract_range_from_unary_expr_1): Likewise.
26999         (adjust_range_with_scev): Likewise.
27000         (masked_increment): Take and return wide_ints rather than double_ints.
27001         (register_edge_assert_for_2): Use wide-int interfaces.
27002         (check_array_ref): Likewise.
27003         (search_for_addr_array): Likewise.
27004         (maybe_set_nonzero_bits): Likewise.
27005         (union_ranges): Pass an integer of the correct type instead of
27006         using integer_one_node.
27007         (intersect_ranges): Likewise.
27008         (simplify_truth_ops_using_ranges): Likewise.
27009         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27010         (range_fits_type_p): Likewise.
27011         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
27012         a bool.
27013         (simplify_conversion_using_ranges): Use wide-int interfaces.
27014         (simplify_float_conversion_using_ranges): Likewise.
27015         (vrp_finalize): Likewise.
27016         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27017         (gimple_stringops_transform): Likewise.
27018         * varasm.c (decode_addr_const): Likewise.
27019         (const_hash_1): Likewise.
27020         (const_rtx_hash_1): Likewise
27021         (output_constant): Likewise.
27022         (array_size_for_constructor): Likewise.
27023         (output_constructor_regular_field): Likewise.
27024         (output_constructor_bitfield): Likewise.
27025         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27026         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27027         GENERATOR_FILEs.
27028         * gencheck.c: Define BITS_PER_UNIT.
27029         * wide-int.cc: New.
27030         * wide-int.h: New.
27031         * wide-int-print.cc: New.
27032         * wide-int-print.h: New.
27033
27034 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27035
27036         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27037
27038 2014-05-06  Richard Biener  <rguenther@suse.de>
27039
27040         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27041         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27042         (TODO_verify_all): Adjust.
27043         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27044         TODO_verify_stmts and TODO_verify_rtl_sharing.
27045         * bb-reorder.c: Likewise.
27046         * cfgexpand.c: Likewise.
27047         * cprop.c: Likewise.
27048         * cse.c: Likewise.
27049         * function.c: Likewise.
27050         * fwprop.c: Likewise.
27051         * gcse.c: Likewise.
27052         * gimple-ssa-isolate-paths.c: Likewise.
27053         * gimple-ssa-strength-reduction.c: Likewise.
27054         * ipa-split.c: Likewise.
27055         * loop-init.c: Likewise.
27056         * loop-unroll.c: Likewise.
27057         * lower-subreg.c: Likewise.
27058         * modulo-sched.c: Likewise.
27059         * postreload-gcse.c: Likewise.
27060         * predict.c: Likewise.
27061         * recog.c: Likewise.
27062         * sched-rgn.c: Likewise.
27063         * store-motion.c: Likewise.
27064         * tracer.c: Likewise.
27065         * trans-mem.c: Likewise.
27066         * tree-call-cdce.c: Likewise.
27067         * tree-cfg.c: Likewise.
27068         * tree-cfgcleanup.c: Likewise.
27069         * tree-complex.c: Likewise.
27070         * tree-eh.c: Likewise.
27071         * tree-emutls.c: Likewise.
27072         * tree-if-conv.c: Likewise.
27073         * tree-into-ssa.c: Likewise.
27074         * tree-loop-distribution.c: Likewise.
27075         * tree-object-size.c: Likewise.
27076         * tree-parloops.c: Likewise.
27077         * tree-pass.h: Likewise.
27078         * tree-sra.c: Likewise.
27079         * tree-ssa-ccp.c: Likewise.
27080         * tree-ssa-copy.c: Likewise.
27081         * tree-ssa-copyrename.c: Likewise.
27082         * tree-ssa-dce.c: Likewise.
27083         * tree-ssa-dom.c: Likewise.
27084         * tree-ssa-dse.c: Likewise.
27085         * tree-ssa-forwprop.c: Likewise.
27086         * tree-ssa-ifcombine.c: Likewise.
27087         * tree-ssa-loop-ch.c: Likewise.
27088         * tree-ssa-loop-ivcanon.c: Likewise.
27089         * tree-ssa-loop.c: Likewise.
27090         * tree-ssa-math-opts.c: Likewise.
27091         * tree-ssa-phiopt.c: Likewise.
27092         * tree-ssa-phiprop.c: Likewise.
27093         * tree-ssa-pre.c: Likewise.
27094         * tree-ssa-reassoc.c: Likewise.
27095         * tree-ssa-sink.c: Likewise.
27096         * tree-ssa-strlen.c: Likewise.
27097         * tree-ssa-tail-merge.c: Likewise.
27098         * tree-ssa-uncprop.c: Likewise.
27099         * tree-switch-conversion.c: Likewise.
27100         * tree-tailcall.c: Likewise.
27101         * tree-vect-generic.c: Likewise.
27102         * tree-vectorizer.c: Likewise.
27103         * tree-vrp.c: Likewise.
27104         * tsan.c: Likewise.
27105         * var-tracking.c: Likewise.
27106         * bt-load.c: Likewise.
27107         * cfgcleanup.c: Likewise.
27108         * combine-stack-adj.c: Likewise.
27109         * combine.c: Likewise.
27110         * compare-elim.c: Likewise.
27111         * config/epiphany/resolve-sw-modes.c: Likewise.
27112         * config/i386/i386.c: Likewise.
27113         * config/mips/mips.c: Likewise.
27114         * config/s390/s390.c: Likewise.
27115         * config/sh/sh_treg_combine.cc: Likewise.
27116         * config/sparc/sparc.c: Likewise.
27117         * dce.c: Likewise.
27118         * dse.c: Likewise.
27119         * final.c: Likewise.
27120         * ifcvt.c: Likewise.
27121         * mode-switching.c: Likewise.
27122         * passes.c: Likewise.
27123         * postreload.c: Likewise.
27124         * ree.c: Likewise.
27125         * reg-stack.c: Likewise.
27126         * regcprop.c: Likewise.
27127         * regrename.c: Likewise.
27128         * web.c: Likewise.
27129
27130 2014-05-06  Richard Biener  <rguenther@suse.de>
27131
27132         PR middle-end/61070
27133         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27134         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27135
27136 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27137
27138         PR ipa/60965
27139         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27140
27141 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27142             Tom de Vries  <tom@codesourcery.com>
27143
27144         * target.def (call_fusage_contains_non_callee_clobbers): New
27145         DEFHOOKPOD.
27146         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27147         Hooks to @menu.
27148         (@node Miscellaneous Register Hooks): New node.
27149         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27150         * doc/tm.texi: Regenerate.
27151
27152 2014-05-05  Marek Polacek  <polacek@redhat.com>
27153
27154         PR driver/61065
27155         * opts.c (common_handle_option): Call error_at instead of warning_at.
27156
27157 2014-05-05  Richard Biener  <rguenther@suse.de>
27158
27159         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27160         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27161         under the TODO_verify_il umbrella.
27162
27163 2014-05-05  Richard Biener  <rguenther@suse.de>
27164
27165         * passes.c (execute_function_todo): Move TODO_verify_flow under
27166         the TODO_verify_ul umbrella.
27167
27168 2014-05-05  Richard Biener  <rguenther@suse.de>
27169
27170         PR middle-end/61010
27171         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27172         X & CST away from a CST that is the mask of a mode.
27173
27174 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27175
27176         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27177         int argument to enum machine_mode.
27178         (picochip_class_max_nregs): Ditto.
27179         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27180         (picochip_class_max_nregs): Ditto.
27181
27182 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27183
27184         * target.def: Add new target hook.
27185         * doc/tm.texi: Regenerate.
27186         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27187         * targhooks.c (default_keep_leaf_when_profiled): New function.
27188
27189         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27190         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27191
27192 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27193
27194         PR tree-optimization/60363
27195         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27196         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27197         (update_destination_phis): New parameter.
27198         (create_edge_and_update_destination_phis): Ditto.
27199         (ssa_fix_duplicate_block_edges): Pass new arguments.
27200         (thread_single_edge): Ditto.
27201
27202 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27203
27204         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27205         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27206         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27207         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27208         Use RS6000_BTM_HARD_FLOAT.
27209         (BU_MISC_2): Likewise.
27210         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27211         RS6000_BTM_HARD_FLOAT.
27212         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27213         is explicitly used.
27214         (rs6000_invalid_builtin): Add hard floating builtin support.
27215         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27216         hard float builtins.
27217         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27218
27219 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27220
27221         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27222         Add missing function* argument.
27223
27224 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27225
27226         * lra-constraints.c (valid_address_p): Move earlier in file.
27227         Add a constraint argument to the address_info version.
27228         (satisfies_memory_constraint_p): New function.
27229         (satisfies_address_constraint_p): Likewise.
27230         (process_alt_operands, curr_insn_transform): Use them.
27231         (process_address): Pass the constraint to valid_address_p when
27232         checking address operands.
27233
27234 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27235
27236         * config/mips/mips.c (mips_isa_rev): New variable.
27237         (mips_set_architecture): Set it.
27238         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27239         from mips_isa_rev.
27240         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27241         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27242         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27243         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27244         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27245         conditions in terms of mips_isa_rev.
27246         (mips_isa_rev): Declare.
27247
27248 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27249
27250         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27251         (prob_unlikely, prob_likely): Make variables const.
27252
27253 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27254
27255         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27256
27257 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27258
27259         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27260
27261 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27262
27263         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27264         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27265         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27266         functions.
27267         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27268         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27269         sh_pass_in_reg_p.
27270         Replace usage of ROUND_REG with sh_round_reg.
27271         Use CEIL instead of ROUND_ADVANCE.
27272
27273 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27274
27275         PR target/61026
27276         * config/sh/sh.c: Include stdlib headers before everything else.
27277
27278 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27279
27280         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27281         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27282         (gimplify_adjust_omp_clauses): Simd region is never
27283         directly nested in combined parallel.  Instead, for linear
27284         with copyin/copyout, if in combined for simd loop, make decl
27285         firstprivate/lastprivate on OMP_FOR.
27286         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27287         expand_omp_for_static_chunk): When setting endvar, also set
27288         fd->loop.v to the same value.
27289
27290 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27291
27292         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27293
27294 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27295
27296         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27297         expression.
27298
27299 2014-05-02  Marek Polacek  <polacek@redhat.com>
27300
27301         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27302
27303 2014-05-02  Kito Cheng  <kito@0xlab.org>
27304
27305         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27306         to a C expression marco.
27307         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27308         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27309         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27310         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27311         HONOR_REG_ALLOC_ORDER.
27312         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27313
27314 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27315
27316         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27317
27318 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27319
27320         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27321
27322 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27323
27324         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27325         (convert_scalar_cond_reduction): Likewise.
27326         (predicate_scalar_phi): Add recognition and transformation
27327         of simple conditioanl reduction to be vectorizable.
27328
27329 2014-05-01  Marek Polacek  <polacek@redhat.com>
27330
27331         PR c/43245
27332         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27333
27334 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27335
27336         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27337         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27338         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27339         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27340         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27341         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27342         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27343         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27344
27345 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27346
27347         * config/arc/arc.opt (mlra): Move comment above option name
27348         to avoid mis-parsing as language options.
27349
27350 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27351
27352         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27353         * config/sol2.h: ... here.
27354         * config/sol2-10.h: Remove.
27355
27356         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27357         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27358         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27359         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27360         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27361         * config/sol2.h: ... here.
27362         (SECTION_NAME_FORMAT): Don't redefine.
27363         (STARTFILE_ARCH32_SPEC): Rename to ...
27364         (STARTFILE_ARCH_SPEC): ... this.
27365         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27366         * config/sparc/sol2.h: ... here.
27367         (SECTION_NAME_FORMAT): Don't undef.
27368         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27369         (SUBTARGET_EXTRA_SPECS): Remove.
27370         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27371
27372         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27373         (MD_STARTFILE_PREFIX): Remove.
27374         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27375         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27376         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27377         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27378         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27379         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27380         * config/i386/sol2.h: ... here.
27381         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27382         * config/i386/sol2-bi.h: Remove.
27383         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27384         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27385
27386         * config/i386/t-sol2-64: Rename to ...
27387         * config/i386/t-sol2: ... this.
27388         * config/sparc/t-sol2-64: Rename to ...
27389         * config/sparc/t-sol2: ... this.
27390
27391         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27392         sol2_tm_file_head, sol2_tm_file_tail.
27393         Include ${cpu_type}/sol2.h before sol2.h.
27394         Remove sol2-10.h.
27395         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27396         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27397         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27398         Reflect i386/t-sol2-64 renaming.
27399         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27400         Reflect sparc/t-sol2-64 renaming.
27401
27402 2014-04-30  Richard Biener  <rguenther@suse.de>
27403
27404         * passes.c (execute_function_todo): Move TODO_verify_stmts
27405         and TODO_verify_ssa under the TODO_verify_il umbrella.
27406         * tree-ssa.h (verify_ssa): Adjust prototype.
27407         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27408         we should verify SSA operands.
27409         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27410         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27411         whether we should verify whether not throwing stmts have EH info.
27412         * graphite-scop-detection.c (create_sese_edges): Adjust.
27413         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27414         * tree-eh.c (lower_try_finally_switch): Do not add the
27415         default case label twice.
27416
27417 2014-04-30  Marek Polacek  <polacek@redhat.com>
27418
27419         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27420         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27421         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27422         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27423
27424 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27425
27426         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27427         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27428         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27429         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27430         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27431         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27432         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27433         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27434
27435 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27436
27437         * tree-cfg.c (dump_function_to_file): Dump the return type of
27438         functions, in a line to itself before the function body, mimicking
27439         the layout of a C function.
27440
27441 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
27442
27443         PR tree-optimization/60971
27444         * tree-tailcall.c (process_assignment): Reject conversions which
27445         reduce precision.
27446
27447 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27448
27449         * calls.c (initialize_argument_information): Always treat
27450         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27451         (expand_call): Likewise.
27452         (emit_library_call_calue_1): Likewise.
27453         * expr.c (PUSH_ARGS_REVERSED): Do not define.
27454         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27455         code accordingly.
27456
27457 2014-04-29  Nick Clifton  <nickc@redhat.com>
27458
27459         * config/msp430/msp430.md (umulsidi): Fix typo.
27460         (mulhisi3): Enable even inside interrupt handlers.
27461         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27462         bigger return address pushed in large mode.
27463
27464 2014-04-29  Nick Clifton  <nickc@redhat.com>
27465
27466         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27467         (arc_init_reg_tables): Use a machine_mode enum to iterate over
27468         available modes.
27469         * config/m32r/m32r.c (init_reg_tables): Likewise.
27470         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27471         enum to hold the modes.
27472
27473 2014-04-29  Richard Biener  <rguenther@suse.de>
27474
27475         * dominance.c (free_dominance_info): Add overload with
27476         function parameter.
27477         (dom_info_state): Likewise.
27478         (dom_info_available_p): Likewise.
27479         * basic-block.h (free_dominance_info, dom_info_state,
27480         dom_info_available_p): Declare overloads.
27481         * passes.c (execute_function_todo): Verify that verifiers
27482         don't change dominator info state.  Drop dominator info
27483         for IPA pass invocations.
27484         * cgraph.c (release_function_body): Restore asserts that
27485         dominator information is released.
27486
27487 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
27488
27489         * doc/invoke.texi: Fix typo.
27490         * tree-vrp.c: Fix typos.
27491         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
27492
27493 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27494
27495         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
27496
27497 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27498
27499         * config/aarch64/aarch64-builtins.c
27500         (aarch64_types_storestruct_lane_qualifiers): New.
27501         (TYPES_STORESTRUCT_LANE): Likewise.
27502         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
27503         (st3_lane): Likewise.
27504         (st4_lane): Likewise.
27505         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
27506         (vec_store_lanesci_lane<mode>): Likewise.
27507         (vec_store_lanesxi_lane<mode>): Likewise.
27508         (aarch64_st2_lane<VQ:mode>): Likewise.
27509         (aarch64_st3_lane<VQ:mode>): Likewise.
27510         (aarch64_st4_lane<VQ:mode>): Likewise.
27511         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
27512         * config/aarch64/arm_neon.h
27513         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
27514         use new macro arguments.
27515         (__ST3_LANE_FUNC): Likewise.
27516         (__ST4_LANE_FUNC): Likewise.
27517         * config/aarch64/iterators.md (V_TWO_ELEM): New.
27518         (V_THREE_ELEM): Likewise.
27519         (V_FOUR_ELEM): Likewise.
27520
27521 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
27522
27523         * doc/gimple.texi: Replace the description of the now-defunct
27524         union gimple_statement_d with a diagram showing the
27525         gimple_statement_base class hierarchy and its relationships to
27526         the GSS_ and GIMPLE_ enums.
27527
27528 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27529
27530         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
27531         * config/aarch64/aarch64.c
27532         (aarch64_cannot_change_mode_class): Weaken conditions.
27533         (aarch64_modes_tieable_p): New.
27534         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
27535
27536 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
27537
27538         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
27539         (loadsync_<mode>): Change mode.
27540         (load_quadpti, store_quadpti): New.
27541         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
27542         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
27543
27544 2014-04-28  Martin Jambor  <mjambor@suse.cz>
27545
27546         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
27547         same alias type as the original statement.
27548         (subreplacement_assignment_data): New type.
27549         (handle_unscalarized_data_in_subtree): New type of parameter,
27550         generate new memory accesses with same alias type as the original
27551         statement.
27552         (load_assign_lhs_subreplacements): Likewise.
27553         (sra_modify_constructor_assign): Generate new memory accesses with
27554         same alias type as the original statement.
27555
27556 2014-04-28  Richard Biener  <rguenther@suse.de>
27557
27558         * tree-pass.h (TODO_verify_il): Define.
27559         (TODO_verify_all): Complete properly.
27560         * passes.c (execute_function_todo): Move existing loop-closed
27561         SSA verification under TODO_verify_il.
27562         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
27563         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
27564         Fix tree sharing issue.
27565
27566 2014-04-28  Richard Biener  <rguenther@suse.de>
27567
27568         PR middle-end/60092
27569         * builtins.def (DEF_C11_BUILTIN): Add.
27570         (BUILT_IN_ALIGNED_ALLOC): Likewise.
27571         * coretypes.h (enum function_class): Add function_c11_misc.
27572         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
27573         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
27574         (call_may_clobber_ref_p_1): Likewise.
27575         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27576         (mark_all_reaching_defs_necessary_1): Likewise.
27577         (propagate_necessity): Likewise.
27578         (eliminate_unnecessary_stmts): Likewise.
27579         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
27580
27581 2014-04-28  Richard Biener  <rguenther@suse.de>
27582
27583         * tree-vrp.c (vrp_var_may_overflow): Remove.
27584         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
27585         with overflow immediately bump to one before that value and
27586         let iteration figure out overflow status.
27587
27588 2014-04-28  Richard Biener  <rguenther@suse.de>
27589
27590         * configure.ac: Do valgrind header checks unconditionally.
27591         Add --enable-valgrind-annotations.
27592         * system.h: Guard valgrind header inclusion with
27593         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
27594         * alloc-pool.c (pool_alloc, pool_free): Use
27595         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
27596         to guard possibly dead code.
27597         * config.in: Regenerated.
27598         * configure: Likewise.
27599
27600 2014-04-28  Jeff Law  <law@redhat.com>
27601
27602         PR tree-optimization/60902
27603         * tree-ssa-threadedge.c
27604         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
27605         over real defs when invalidating outputs from statements that do not
27606         produce useful outputs for threading.
27607
27608 2014-04-28  Richard Biener  <rguenther@suse.de>
27609
27610         PR tree-optimization/60979
27611         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
27612         SCOPs that end in a block with a successor with abnormal
27613         predecessors.
27614
27615 2014-04-28  Richard Biener  <rguenther@suse.de>
27616
27617         * tree-pass.h (execute_pass_list): Adjust prototype.
27618         * passes.c (pass_manager::execute_early_local_passes): Adjust.
27619         (do_per_function): Change callback signature, push all actual
27620         work to the callbals.
27621         (do_per_function_toporder): Likewise.
27622         (execute_function_dump): Adjust.
27623         (execute_function_todo): Likewise.
27624         (clear_last_verified): Likewise.
27625         (verify_curr_properties): Likewise.
27626         (update_properties_after_pass): Likewise.
27627         (execute_pass_list_1): Split out from ...
27628         (execute_pass_list): ... here.  Adjust.
27629         (execute_ipa_pass_list): Likewise.
27630         * cgraphunit.c (cgraph_add_new_function): Adjust.
27631         (analyze_function): Likewise.
27632         (expand_function): Likewise.
27633         * cgraph.c (release_function_body): Free dominance info
27634         here instead of asserting it was magically freed elsewhere.
27635
27636 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27637
27638         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
27639         * configure: Regenerate.
27640         * config/sparc/sparc.opt (muser-mode): New option.
27641         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
27642         for LEON3.
27643         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
27644         * doc/invoke.texi (SPARC options): Document -muser-mode.
27645
27646 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
27647
27648         * cselib.c (find_slot_memmode): Delete.
27649         (cselib_hasher): Change compare_type to a struct.
27650         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
27651         constants.
27652         (preserve_constants_and_equivs): Adjust for new compare_type.
27653         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
27654         (wrap_constant): Delete.
27655         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
27656
27657 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
27658
27659         * doc/install.texi (Building with profile feedback): Remove
27660         outdated sentence.
27661
27662 2014-04-26  Tom de Vries  <tom@codesourcery.com>
27663
27664         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
27665         array accesses.
27666
27667 2014-04-25  Cary Coutant  <ccoutant@google.com>
27668
27669         PR debug/60929
27670         * dwarf2out.c (should_move_die_to_comdat): A type definition
27671         can contain a subprogram definition, but don't move it to a
27672         comdat unit.
27673         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
27674         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
27675         from original DIE.
27676         (clone_tree_hash): Rename to...
27677         (clone_tree_partial): ...this; change callers.  Copy
27678         DW_TAG_subprogram DIEs as declarations.
27679         (copy_decls_walk): Don't copy children of a declaration into a
27680         type unit.
27681
27682 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
27683
27684         PR target/60969
27685         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
27686         alternative 12.
27687
27688 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
27689
27690         * config/arm/predicates.md (call_insn_operand): Add long_call check.
27691         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
27692         reg for long_call.
27693         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
27694         restriction.
27695
27696 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27697
27698         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
27699
27700 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27701
27702         PR tree-optimization/60930
27703         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
27704         creating a multiply candidate by folding two constant
27705         multiplicands when the result overflows.
27706
27707 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
27708
27709         PR tree-optimization/60960
27710         * tree-vect-generic.c (expand_vector_operation): Only call
27711         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
27712
27713 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27714
27715         * expr.c (clobber_reg_mode): New function.
27716         * expr.h (clobber_reg): New function.
27717
27718 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27719
27720         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
27721         clobbers.
27722
27723 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
27724             Tom de Vries  <tom@codesourcery.com>
27725
27726         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
27727         handle.
27728         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
27729         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
27730         new argument to find_all_hard_reg_sets call.
27731
27732 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27733
27734         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
27735         Use HOST_WIDE_INT_C for mask literal.
27736         (aarch_rev16_shleft_mask_imm_p): Likewise.
27737
27738 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
27739
27740         PR target/60941
27741         * config/sparc/sparc.md (ashlsi3_extend): Delete.
27742
27743 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
27744
27745         PR preprocessor/56540
27746         * config/i386/i386-c.c (ix86_target_macros): Define
27747         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
27748
27749 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27750
27751         * configure.ac (tga_func): Remove.
27752         (LIB_TLS_SPEC): Remove.
27753         * configure: Regenerate.
27754         * config.in: Regenerate.
27755         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
27756
27757 2014-04-25  Richard Biener  <rguenther@suse.de>
27758
27759         PR ipa/60912
27760         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
27761         call stmt use/clobber sets during stmt walk instead of
27762         walking the possibly incomplete set of caller edges.
27763
27764 2014-04-25  Richard Biener  <rguenther@suse.de>
27765
27766         PR ipa/60911
27767         * passes.c (apply_ipa_transforms): Inline into only caller ...
27768         (execute_one_pass): ... here.  Properly bring in function
27769         bodies for nodes we want to apply IPA transforms to.
27770
27771 2014-04-24  Cong Hou  <congh@google.com>
27772
27773         PR tree-optimization/60896
27774         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
27775         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
27776         (vect_mark_pattern_stmts): Set the def type of all statements in
27777         PATTERN_DEF_SEQ as vect_internal_def.
27778
27779 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
27780
27781         * doc/extend.texi (PowerPC Built-in Functions): Document new
27782         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
27783         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
27784
27785         * config/rs6000/predicates.md (const_0_to_3_operand): New
27786         predicate to match 0..3 integer constants.
27787
27788         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
27789         to support adding miscellaneous builtin functions.
27790         (BU_DFP_MISC_2): Likewise.
27791         (BU_P7_MISC_1): Likewise.
27792         (BU_P7_MISC_2): Likewise.
27793         (BU_P8V_MISC_3): Likewise.
27794         (BU_MISC_1): Likewise.
27795         (BU_MISC_2): Likewise.
27796         (DIVWE): Add extended divide builtin functions.
27797         (DIVWEO): Likewise.
27798         (DIVWEU): Likewise.
27799         (DIVWEUO): Likewise.
27800         (DIVDE): Likewise.
27801         (DIVDEO): Likewise.
27802         (DIVDEU): Likewise.
27803         (DIVDEUO): Likewise.
27804         (DXEX): Add decimal floating-point builtin functions.
27805         (DXEXQ): Likewise.
27806         (DDEDPD): Likewise.
27807         (DDEDPDQ): Likewise.
27808         (DENBCD): Likewise.
27809         (DENBCDQ): Likewise.
27810         (DIEX): Likewise.
27811         (DIEXQ): Likewise.
27812         (DSCLI): Likewise.
27813         (DSCLIQ): Likewise.
27814         (DSCRI): Likewise.
27815         (DSCRIQ): Likewise.
27816         (CDTBCD): Add new BCD builtin functions.
27817         (CBCDTD): Likewise.
27818         (ADDG6S): Likewise.
27819         (BCDADD): Likewise.
27820         (BCDADD_LT): Likewise.
27821         (BCDADD_EQ): Likewise.
27822         (BCDADD_GT): Likewise.
27823         (BCDADD_OV): Likewise.
27824         (BCDSUB): Likewise.
27825         (BCDSUB_LT): Likewise.
27826         (BCDSUB_EQ): Likewise.
27827         (BCDSUB_GT): Likewise.
27828         (BCDSUB_OV): Likewise.
27829         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
27830         (UNPACK_TD): Likewise.
27831         (PACK_TF): Likewise.
27832         (UNPACK_TF): Likewise.
27833         (UNPACK_TF_0): Likewise.
27834         (UNPACK_TF_1): Likewise.
27835         (PACK_V1TI): Likewise.
27836         (UNPACK_V1TI): Likewise.
27837
27838         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
27839         support for decimal floating point builtin functions.
27840         (rs6000_expand_ternop_builtin): Add checks for the new builtin
27841         functions that take constant arguments.
27842         (rs6000_invalid_builtin): Add decimal floating point builtin support.
27843         (rs6000_init_builtins): Setup long double, _Decimal64, and
27844         _Decimal128 types for new builtin functions.
27845         (builtin_function_type): Set the unsigned flags appropriately for
27846         the new builtin functions.
27847         (rs6000_opt_masks): Add support for decimal floating point builtin
27848         functions.
27849
27850         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
27851         floating point builtin functions.
27852         (RS6000_BTM_COMMON): Likewise.
27853         (RS6000_BTI_long_double): Likewise.
27854         (RS6000_BTI_dfloat64): Likewise.
27855         (RS6000_BTI_dfloat128): Likewise.
27856         (long_double_type_internal_node): Likewise.
27857         (dfloat64_type_internal_node): Likewise.
27858         (dfloat128_type_internal_node): Likewise.
27859
27860         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
27861         2.07 bcd arithmetic instructions.
27862         (UNSPEC_BCDSUB): Likewise.
27863         (UNSPEC_BCD_OVERFLOW): Likewise.
27864         (UNSPEC_BCD_ADD_SUB): Likewise.
27865         (bcd_add_sub): Likewise.
27866         (BCD_TEST): Likewise.
27867         (bcd<bcd_add_sub>): Likewise.
27868         (bcd<bcd_add_sub>_test): Likewise.
27869         (bcd<bcd_add_sub>_test2): Likewise.
27870         (bcd<bcd_add_sub>_<code>): Likewise.
27871         (peephole2 for combined bcd ops): Likewise.
27872
27873         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
27874         decimal floating point builtin functions.
27875         (UNSPEC_DENBCD): Likewise.
27876         (UNSPEC_DXEX): Likewise.
27877         (UNSPEC_DIEX): Likewise.
27878         (UNSPEC_DSCLI): Likewise.
27879         (UNSPEC_DSCRI): Likewise.
27880         (D64_D128): Likewise.
27881         (dfp_suffix): Likewise.
27882         (dfp_ddedpd_<mode>): Likewise.
27883         (dfp_denbcd_<mode>): Likewise.
27884         (dfp_dxex_<mode>): Likewise.
27885         (dfp_diex_<mode>): Likewise.
27886         (dfp_dscli_<mode>): Likewise.
27887         (dfp_dscri_<mode>): Likewise.
27888
27889         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
27890         builtin functions.
27891         (UNSPEC_CDTBCD): Likewise.
27892         (UNSPEC_CBCDTD): Likewise.
27893         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
27894         (UNSPEC_DIVEO): Likewise.
27895         (UNSPEC_DIVEU): Likewise.
27896         (UNSPEC_DIVEUO): Likewise.
27897         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
27898         pack/unpack 128-bit types.
27899         (UNSPEC_PACK_128BIT): Likewise.
27900         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
27901         (udiv<mode>3): Use idiv_ldiv mode attribute.
27902         (div<mode>3): Likewise.
27903         (addg6s): Add new BCD builtin functions.
27904         (cdtbcd): Likewise.
27905         (cbcdtd): Likewise.
27906         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
27907         (div_extend): Likewise.
27908         (div<div_extend>_<mode>"): Likewise.
27909         (FP128_64): Add support for new builtin functions to pack/unpack
27910         128-bit types.
27911         (unpack<mode>): Likewise.
27912         (unpacktf_0): Likewise.
27913         (unpacktf_1): Likewise.
27914         (unpack<mode>_dm): Likewise.
27915         (unpack<mode>_nodm): Likewise.
27916         (pack<mode>): Likewise.
27917         (unpackv1ti): Likewise.
27918         (packv1ti): Likewise.
27919
27920 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
27921
27922         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
27923         is disabled.
27924
27925 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
27926
27927         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
27928         * gimplify.c (omp_is_private): Change last argument's type to int.
27929         Only diagnose lastprivate if the simd argument is 1, only diagnose
27930         linear if the simd argument is 2.
27931         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
27932         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
27933         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
27934         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
27935         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
27936         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27937         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
27938         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27939         * tree-nested.c (convert_nonlocal_omp_clauses,
27940         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
27941
27942 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
27943
27944         PR target/60822
27945         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
27946         operand 1.
27947
27948 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
27949
27950         * flag-types.h (enum ivar_visibility): Add.
27951
27952 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
27953
27954         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
27955         function * argument.
27956
27957 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
27958
27959         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
27960
27961 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27962             Tom de Vries  <tom@codesourcery.com>
27963
27964         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
27965         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
27966         reg-note.
27967         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
27968         * emit-rtl.c (try_split): Same.
27969
27970 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27971             Tom de Vries  <tom@codesourcery.com>
27972
27973         * common.opt (fuse-caller-save): New option.
27974
27975 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
27976
27977         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
27978         elements for big-endian.
27979
27980 2014-04-24  Richard Biener  <rguenther@suse.de>
27981
27982         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
27983         during TER and instead use the sepops interface for expanding
27984         non-GIMPLE_SINGLE_RHS.
27985
27986 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27987
27988         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
27989         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
27990
27991 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27992
27993         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
27994         assembler 64-bit option.
27995         * configure: Regenerate.
27996
27997 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27998
27999         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28000         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28001         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28002         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28003         (TARGET_CRYPTO): Take TARGET_SIMD into account.
28004
28005 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28006
28007         * config/aarch64/aarch64-builtins.c
28008         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28009         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28010         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28011         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28012         builtins.
28013         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28014         (Vrevsuff): New mode attribute.
28015
28016 2014-04-24  Terry Guo  <terry.guo@arm.com>
28017
28018         * config/arm/arm.h (machine_function): Define variable
28019         after_arm_reorg here.
28020         * config/arm/arm.c (after_arm_reorg): Remove the definition.
28021         (arm_split_constant): Update the way to access variable
28022         after_arm_reorg.
28023         (arm_reorg): Ditto.
28024         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28025
28026 2014-04-23  Tom de Vries  <tom@codesourcery.com>
28027
28028         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28029
28030 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
28031
28032         * is-a.h: Update comments to reflect the following changes to the
28033         "pointerness" of the API, making the template parameter match the
28034         return type, allowing use of is-a.h with typedefs of pointers.
28035         (is_a_helper::cast): Return a T rather then a pointer to a T, so
28036         that the return type matches the parameter to the is_a_helper.
28037         (as_a): Likewise.
28038         (dyn_cast): Likewise.
28039
28040         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28041         pointer from the is-a.h API.
28042
28043         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28044         (is_a_helper <cgraph_node *>::test): ...this, matching change to
28045         is-a.h API.
28046         (is_a_helper <varpool_node>::test): Likewise, convert to...
28047         (is_a_helper <varpool_node *>::test): ...this.
28048
28049         (varpool_first_variable): Update for removal of implicit pointer
28050         from the is-a.h API.
28051         (varpool_next_variable): Likewise.
28052         (varpool_first_static_initializer): Likewise.
28053         (varpool_next_static_initializer): Likewise.
28054         (varpool_first_defined_variable): Likewise.
28055         (varpool_next_defined_variable): Likewise.
28056         (cgraph_first_defined_function): Likewise.
28057         (cgraph_next_defined_function): Likewise.
28058         (cgraph_first_function): Likewise.
28059         (cgraph_next_function): Likewise.
28060         (cgraph_first_function_with_gimple_body): Likewise.
28061         (cgraph_next_function_with_gimple_body): Likewise.
28062         (cgraph_alias_target): Likewise.
28063         (varpool_alias_target): Likewise.
28064         (cgraph_function_or_thunk_node): Likewise.
28065         (varpool_variable_node): Likewise.
28066         (symtab_real_symbol_p): Likewise.
28067         * cgraphunit.c (referred_to_p): Likewise.
28068         (analyze_functions): Likewise.
28069         (handle_alias_pairs): Likewise.
28070         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28071         * gimple-ssa.h (gimple_vuse_op): Likewise.
28072         (gimple_vdef_op): Likewise.
28073         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28074         * gimple.c (gimple_build_asm_1): Likewise.
28075         (gimple_build_try): Likewise.
28076         (gimple_build_resx): Likewise.
28077         (gimple_build_eh_dispatch): Likewise.
28078         (gimple_build_omp_for): Likewise.
28079         (gimple_omp_for_set_clauses): Likewise.
28080
28081         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28082         (is_a_helper <gimple_statement_asm *>::test): ...this.
28083         (is_a_helper <gimple_statement_bind>::test): Convert to...
28084         (is_a_helper <gimple_statement_bind *>::test): ...this.
28085         (is_a_helper <gimple_statement_call>::test): Convert to...
28086         (is_a_helper <gimple_statement_call *>::test): ...this.
28087         (is_a_helper <gimple_statement_catch>::test): Convert to...
28088         (is_a_helper <gimple_statement_catch *>::test): ...this.
28089         (is_a_helper <gimple_statement_resx>::test): Convert to...
28090         (is_a_helper <gimple_statement_resx *>::test): ...this.
28091         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28092         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28093         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28094         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28095         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28096         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28097         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28098         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28099         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28100         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28101         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28102         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28103         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28104         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28105         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28106         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28107         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28108         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28109         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28110         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28111         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28112         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28113         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28114         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28115         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28116         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28117         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28118         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28119         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28120         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28121         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28122         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28123         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28124         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28125         (is_a_helper <gimple_statement_phi>::test): Convert to...
28126         (is_a_helper <gimple_statement_phi *>::test): ...this.
28127         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28128         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28129         (is_a_helper <gimple_statement_try>::test): Convert to...
28130         (is_a_helper <gimple_statement_try *>::test): ...this.
28131         (is_a_helper <gimple_statement_wce>::test): Convert to...
28132         (is_a_helper <gimple_statement_wce *>::test): ...this.
28133         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28134         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28135         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28136         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28137         (is_a_helper <const gimple_statement_call>::test): Convert to...
28138         (is_a_helper <const gimple_statement_call *>::test): ...this.
28139         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28140         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28141         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28142         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28143         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28144         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28145         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28146         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28147         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28148         Convert to...
28149         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28150         ...this.
28151         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28152         Convert to...
28153         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28154         ...this.
28155         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28156         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28157         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28158         to...
28159         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28160         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28161         to...
28162         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28163         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28164         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28165         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28166         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28167         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28168         to...
28169         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28170         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28171         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28172         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28173         to...
28174         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28175         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28176         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28177         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28178         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28179         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28180         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28181         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28182         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28183         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28184         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28185         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28186         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28187         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28188         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28189         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28190         to...
28191         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28192         ...this.
28193         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28194         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28195
28196         (gimple_use_ops): Update for removal of implicit pointer from the
28197         is-a.h API.
28198         (gimple_set_use_ops): Likewise.
28199         (gimple_vuse): Likewise.
28200         (gimple_vdef): Likewise.
28201         (gimple_vuse_ptr): Likewise.
28202         (gimple_vdef_ptr): Likewise.
28203         (gimple_set_vuse): Likewise.
28204         (gimple_set_vdef): Likewise.
28205         (gimple_omp_return_set_lhs): Likewise.
28206         (gimple_omp_return_lhs): Likewise.
28207         (gimple_omp_return_lhs_ptr): Likewise.
28208         (gimple_call_fntype): Likewise.
28209         (gimple_call_set_fntype): Likewise.
28210         (gimple_call_set_internal_fn): Likewise.
28211         (gimple_call_use_set): Likewise.
28212         (gimple_call_clobber_set): Likewise.
28213         (gimple_bind_vars): Likewise.
28214         (gimple_bind_set_vars): Likewise.
28215         (gimple_bind_body_ptr): Likewise.
28216         (gimple_bind_set_body): Likewise.
28217         (gimple_bind_add_stmt): Likewise.
28218         (gimple_bind_block): Likewise.
28219         (gimple_bind_set_block): Likewise.
28220         (gimple_asm_ninputs): Likewise.
28221         (gimple_asm_noutputs): Likewise.
28222         (gimple_asm_nclobbers): Likewise.
28223         (gimple_asm_nlabels): Likewise.
28224         (gimple_asm_input_op): Likewise.
28225         (gimple_asm_input_op_ptr): Likewise.
28226         (gimple_asm_output_op): Likewise.
28227         (gimple_asm_output_op_ptr): Likewise.
28228         (gimple_asm_set_output_op): Likewise.
28229         (gimple_asm_clobber_op): Likewise.
28230         (gimple_asm_set_clobber_op): Likewise.
28231         (gimple_asm_label_op): Likewise.
28232         (gimple_asm_set_label_op): Likewise.
28233         (gimple_asm_string): Likewise.
28234         (gimple_catch_types): Likewise.
28235         (gimple_catch_types_ptr): Likewise.
28236         (gimple_catch_handler_ptr): Likewise.
28237         (gimple_catch_set_types): Likewise.
28238         (gimple_catch_set_handler): Likewise.
28239         (gimple_eh_filter_types): Likewise.
28240         (gimple_eh_filter_types_ptr): Likewise.
28241         (gimple_eh_filter_failure_ptr): Likewise.
28242         (gimple_eh_filter_set_types): Likewise.
28243         (gimple_eh_filter_set_failure): Likewise.
28244         (gimple_eh_must_not_throw_fndecl): Likewise.
28245         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28246         (gimple_eh_else_n_body_ptr): Likewise.
28247         (gimple_eh_else_e_body_ptr): Likewise.
28248         (gimple_eh_else_set_n_body): Likewise.
28249         (gimple_eh_else_set_e_body): Likewise.
28250         (gimple_try_eval_ptr): Likewise.
28251         (gimple_try_cleanup_ptr): Likewise.
28252         (gimple_try_set_eval): Likewise.
28253         (gimple_try_set_cleanup): Likewise.
28254         (gimple_wce_cleanup_ptr): Likewise.
28255         (gimple_wce_set_cleanup): Likewise.
28256         (gimple_phi_capacity): Likewise.
28257         (gimple_phi_num_args): Likewise.
28258         (gimple_phi_result): Likewise.
28259         (gimple_phi_result_ptr): Likewise.
28260         (gimple_phi_set_result): Likewise.
28261         (gimple_phi_arg): Likewise.
28262         (gimple_phi_set_arg): Likewise.
28263         (gimple_resx_region): Likewise.
28264         (gimple_resx_set_region): Likewise.
28265         (gimple_eh_dispatch_region): Likewise.
28266         (gimple_eh_dispatch_set_region): Likewise.
28267         (gimple_omp_critical_name): Likewise.
28268         (gimple_omp_critical_name_ptr): Likewise.
28269         (gimple_omp_critical_set_name): Likewise.
28270         (gimple_omp_for_clauses): Likewise.
28271         (gimple_omp_for_clauses_ptr): Likewise.
28272         (gimple_omp_for_set_clauses): Likewise.
28273         (gimple_omp_for_collapse): Likewise.
28274         (gimple_omp_for_index): Likewise.
28275         (gimple_omp_for_index_ptr): Likewise.
28276         (gimple_omp_for_set_index): Likewise.
28277         (gimple_omp_for_initial): Likewise.
28278         (gimple_omp_for_initial_ptr): Likewise.
28279         (gimple_omp_for_set_initial): Likewise.
28280         (gimple_omp_for_final): Likewise.
28281         (gimple_omp_for_final_ptr): Likewise.
28282         (gimple_omp_for_set_final): Likewise.
28283         (gimple_omp_for_incr): Likewise.
28284         (gimple_omp_for_incr_ptr): Likewise.
28285         (gimple_omp_for_set_incr): Likewise.
28286         (gimple_omp_for_pre_body_ptr): Likewise.
28287         (gimple_omp_for_set_pre_body): Likewise.
28288         (gimple_omp_parallel_clauses): Likewise.
28289         (gimple_omp_parallel_clauses_ptr): Likewise.
28290         (gimple_omp_parallel_set_clauses): Likewise.
28291         (gimple_omp_parallel_child_fn): Likewise.
28292         (gimple_omp_parallel_child_fn_ptr): Likewise.
28293         (gimple_omp_parallel_set_child_fn): Likewise.
28294         (gimple_omp_parallel_data_arg): Likewise.
28295         (gimple_omp_parallel_data_arg_ptr): Likewise.
28296         (gimple_omp_parallel_set_data_arg): Likewise.
28297         (gimple_omp_task_clauses): Likewise.
28298         (gimple_omp_task_clauses_ptr): Likewise.
28299         (gimple_omp_task_set_clauses): Likewise.
28300         (gimple_omp_task_child_fn): Likewise.
28301         (gimple_omp_task_child_fn_ptr): Likewise.
28302         (gimple_omp_task_set_child_fn): Likewise.
28303         (gimple_omp_task_data_arg): Likewise.
28304         (gimple_omp_task_data_arg_ptr): Likewise.
28305         (gimple_omp_task_set_data_arg): Likewise.
28306         (gimple_omp_taskreg_clauses): Likewise.
28307         (gimple_omp_taskreg_clauses_ptr): Likewise.
28308         (gimple_omp_taskreg_set_clauses): Likewise.
28309         (gimple_omp_taskreg_child_fn): Likewise.
28310         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28311         (gimple_omp_taskreg_set_child_fn): Likewise.
28312         (gimple_omp_taskreg_data_arg): Likewise.
28313         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28314         (gimple_omp_taskreg_set_data_arg): Likewise.
28315         (gimple_omp_task_copy_fn): Likewise.
28316         (gimple_omp_task_copy_fn_ptr): Likewise.
28317         (gimple_omp_task_set_copy_fn): Likewise.
28318         (gimple_omp_task_arg_size): Likewise.
28319         (gimple_omp_task_arg_size_ptr): Likewise.
28320         (gimple_omp_task_set_arg_size): Likewise.
28321         (gimple_omp_task_arg_align): Likewise.
28322         (gimple_omp_task_arg_align_ptr): Likewise.
28323         (gimple_omp_task_set_arg_align): Likewise.
28324         (gimple_omp_single_clauses): Likewise.
28325         (gimple_omp_single_clauses_ptr): Likewise.
28326         (gimple_omp_single_set_clauses): Likewise.
28327         (gimple_omp_target_clauses): Likewise.
28328         (gimple_omp_target_clauses_ptr): Likewise.
28329         (gimple_omp_target_set_clauses): Likewise.
28330         (gimple_omp_target_child_fn): Likewise.
28331         (gimple_omp_target_child_fn_ptr): Likewise.
28332         (gimple_omp_target_set_child_fn): Likewise.
28333         (gimple_omp_target_data_arg): Likewise.
28334         (gimple_omp_target_data_arg_ptr): Likewise.
28335         (gimple_omp_target_set_data_arg): Likewise.
28336         (gimple_omp_teams_clauses): Likewise.
28337         (gimple_omp_teams_clauses_ptr): Likewise.
28338         (gimple_omp_teams_set_clauses): Likewise.
28339         (gimple_omp_sections_clauses): Likewise.
28340         (gimple_omp_sections_clauses_ptr): Likewise.
28341         (gimple_omp_sections_set_clauses): Likewise.
28342         (gimple_omp_sections_control): Likewise.
28343         (gimple_omp_sections_control_ptr): Likewise.
28344         (gimple_omp_sections_set_control): Likewise.
28345         (gimple_omp_for_set_cond): Likewise.
28346         (gimple_omp_for_cond): Likewise.
28347         (gimple_omp_atomic_store_set_val): Likewise.
28348         (gimple_omp_atomic_store_val): Likewise.
28349         (gimple_omp_atomic_store_val_ptr): Likewise.
28350         (gimple_omp_atomic_load_set_lhs): Likewise.
28351         (gimple_omp_atomic_load_lhs): Likewise.
28352         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28353         (gimple_omp_atomic_load_set_rhs): Likewise.
28354         (gimple_omp_atomic_load_rhs): Likewise.
28355         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28356         (gimple_omp_continue_control_def): Likewise.
28357         (gimple_omp_continue_control_def_ptr): Likewise.
28358         (gimple_omp_continue_set_control_def): Likewise.
28359         (gimple_omp_continue_control_use): Likewise.
28360         (gimple_omp_continue_control_use_ptr): Likewise.
28361         (gimple_omp_continue_set_control_use): Likewise.
28362         (gimple_transaction_body_ptr): Likewise.
28363         (gimple_transaction_label): Likewise.
28364         (gimple_transaction_label_ptr): Likewise.
28365         (gimple_transaction_set_body): Likewise.
28366         (gimple_transaction_set_label): Likewise.
28367
28368         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28369         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28370         * ipa-ref.c (ipa_record_reference): Likewise.
28371         * ipa-reference.c (analyze_function): Likewise.
28372         (ipa_reference_write_optimization_summary): Likewise.
28373         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28374         (address_taken_from_non_vtable_p): Likewise.
28375         (comdat_can_be_unshared_p_1): Likewise.
28376         * lto-cgraph.c (lto_output_ref): Likewise.
28377         (add_references): Likewise.
28378         (compute_ltrans_boundary): Likewise.
28379         (output_symtab): Likewise.
28380         (input_ref): Likewise.
28381         (input_cgraph_1): Likewise.
28382         (output_cgraph_opt_summary): Likewise.
28383         * lto-streamer-out.c (lto_output): Likewise.
28384         (output_symbol_p): Likewise.
28385         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28386         (lsei_start_function_in_partition): Likewise.
28387         (lsei_next_variable_in_partition): Likewise.
28388         (lsei_start_variable_in_partition): Likewise.
28389         * symtab.c (insert_to_assembler_name_hash): Likewise.
28390         (unlink_from_assembler_name_hash): Likewise.
28391         (symtab_unregister_node): Likewise.
28392         (symtab_remove_node): Likewise.
28393         (dump_symtab_node): Likewise.
28394         (verify_symtab_base): Likewise.
28395         (verify_symtab_node): Likewise.
28396         (symtab_make_decl_local): Likewise.
28397         (symtab_alias_ultimate_target): Likewise.
28398         (symtab_resolve_alias): Likewise.
28399         (symtab_get_symbol_partitioning_class): Likewise.
28400         * tree-phinodes.c (allocate_phi_node): Likewise.
28401         (reserve_phi_args_for_new_edge): Likewise.
28402         (remove_phi_args): Likewise.
28403         * varpool.c (varpool_node_for_asm): Likewise.
28404         (varpool_remove_unreferenced_decls): Likewise.
28405
28406 2014-04-23  Jeff Law  <law@redhat.com>
28407
28408         PR tree-optimization/60902
28409         * tree-ssa-threadedge.c
28410         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28411         invalidate outputs from statements that do not produce useful
28412         outputs for threading.
28413
28414 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28415
28416         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28417         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28418         machine descriptions for Stack Smashing Protector.
28419
28420 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28421
28422         * aarch64.md (<optab>_rol<mode>3): New pattern.
28423         (<optab>_rolsi3_uxtw): Likewise.
28424         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28425
28426 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28427
28428         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28429         (arm_cortex_a12_tune): Likewise.
28430
28431 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28432
28433         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28434
28435 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28436
28437         * config/arm/arm.md (arm_rev16si2): New pattern.
28438         (arm_rev16si2_alt): Likewise.
28439         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28440
28441 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28442
28443         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28444         (rev16<mode>2_alt): Likewise.
28445         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28446         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28447         (aarch_rev16_shleft_mask_imm_p): Likewise.
28448         (aarch_rev16_p_1): Likewise.
28449         (aarch_rev16_p): Likewise.
28450         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28451         (aarch_rev16_shright_mask_imm_p): Likewise.
28452         (aarch_rev16_shleft_mask_imm_p): Likewise.
28453
28454 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28455
28456         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28457         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28458         rev cost.
28459         (cortex_a53_extra_costs): Likewise.
28460         (cortex_a57_extra_costs): Likewise.
28461         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28462         (cortexa7_extra_costs): Likewise.
28463         (cortexa8_extra_costs): Likewise.
28464         (cortexa12_extra_costs): Likewise.
28465         (cortexa15_extra_costs): Likewise.
28466         (v7m_extra_costs): Likewise.
28467         (arm_new_rtx_costs): Handle BSWAP.
28468
28469 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28470
28471         * config/arm/arm.c (cortexa8_extra_costs): New table.
28472         (arm_cortex_a8_tune): New tuning struct.
28473         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28474
28475 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28476
28477         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28478
28479 2014-04-23  Richard Biener  <rguenther@suse.de>
28480
28481         * Makefile.in (OBJS): Remove loop-unswitch.o.
28482         * tree-pass.h (make_pass_rtl_unswitch): Remove.
28483         * passes.def (pass_rtl_unswitch): Likewise.
28484         * loop-init.c (gate_rtl_unswitch): Likewise.
28485         (rtl_unswitch): Likewise.
28486         (pass_data_rtl_unswitch): Likewise.
28487         (pass_rtl_unswitch): Likewise.
28488         (make_pass_rtl_unswitch): Likewise.
28489         * rtl.h (reversed_condition): Likewise.
28490         (compare_and_jump_seq): Likewise.
28491         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
28492         and make static.
28493         * loop-unroll.c (compare_and_jump_seq): Likewise.
28494
28495 2014-04-23  Richard Biener  <rguenther@suse.de>
28496
28497         PR tree-optimization/60903
28498         * tree-ssa-loop-im.c (analyze_memory_references): Remove
28499         commented code block.
28500         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
28501         loop flags to newly created BBs and edges.
28502
28503 2014-04-23  Nick Clifton  <nickc@redhat.com>
28504
28505         * config/msp430/msp430.c (msp430_handle_option): Move function
28506         to msp430-common.c
28507         (msp430_option_override): Simplify mcu and mcpu option handling.
28508         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
28509         support for -mhwmult command line option.
28510         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
28511         -mhwmult command line option.
28512         (msp430_hwmult_enabled): Delete.
28513         (msp43o_output_labelref): Add support for -mhwmult command line option.
28514         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
28515         (umulsidi3): Likewise.
28516         * config/msp430/msp430.opt (mmcu): Add Report attribute.
28517         (mcpu, mlarge, msmall): Likewise.
28518         (mhwmult): New option.
28519         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
28520         prototype.
28521         (msp430_is_f5_mcu): Remove prototype.
28522         (msp430_use_f5_series_hwmult): Add prototype.
28523         * config/msp430/msp430-opts.h: New file.
28524         * common/config/msp430: New directory.
28525         * common/config/msp430/msp430-common.c: New file.
28526         * config.gcc (msp430): Remove target_has_targetm_common.
28527         * doc/invoke.texi: Document -mhwmult command line option.
28528
28529 2014-04-23  Nick Clifton  <nickc@redhat.com>
28530
28531         * config/i386/cygwin.h (ENDFILE_SPEC): Include
28532         default-manifest.o if it can be found in the search path.
28533         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
28534
28535 2014-04-23  Terry Guo  <terry.guo@arm.com>
28536
28537         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
28538
28539 2014-04-23  Richard Biener  <rguenther@suse.de>
28540
28541         PR middle-end/60895
28542         * tree-inline.c (declare_return_variable): Use mark_addressable.
28543
28544 2014-04-23  Richard Biener  <rguenther@suse.de>
28545
28546         PR middle-end/60891
28547         * loop-init.c (loop_optimizer_init): Make sure to apply
28548         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
28549
28550 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28551
28552         PR sanitizer/60275
28553         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
28554         New options.
28555         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
28556         if flag_sanitize_undefined_trap_on_error.
28557         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
28558         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
28559         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
28560         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
28561         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
28562         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
28563         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
28564         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
28565         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
28566         * ubsan.c (ubsan_instrument_unreachable): Return
28567         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
28568         (ubsan_expand_null_ifn): Emit __builtin_trap ()
28569         if flag_sanitize_undefined_trap_on_error and
28570         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
28571         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
28572         instrument_bool_enum_load): Emit __builtin_trap () if
28573         flag_sanitize_undefined_trap_on_error and
28574         __builtin_handle_*_abort () if !flag_sanitize_recover.
28575         * doc/invoke.texi (-fsanitize-recover,
28576         -fsanitize-undefined-trap-on-error): Document.
28577
28578 2014-04-22  Christian Bruel  <christian.bruel@st.com>
28579
28580         * config/sh/sh.md (mov<mode>): Replace movQIHI.
28581         Force immediates to SImode.
28582
28583 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
28584
28585         * config/nios2/nios2.md (UNSPEC_ROUND): New.
28586         (lroundsfsi2): New.
28587         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
28588         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
28589         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
28590         (nios2_fpu_insn): Add entry for round.
28591         (N2FPU_NO_ERRNO_P): Define.
28592         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
28593         flag_errno_math.
28594         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
28595
28596 2014-04-22  Richard Henderson  <rth@redhat.com>
28597
28598         * config/aarch64/aarch64 (addti3, subti3): New expanders.
28599         (add<GPI>3_compare0): Remove leading * from name.
28600         (add<GPI>3_carryin): Likewise.
28601         (sub<GPI>3_compare0): Likewise.
28602         (sub<GPI>3_carryin): Likewise.
28603         (<su_optab>mulditi3): New expander.
28604         (multi3): New expander.
28605         (madd<GPI>): Remove leading * from name.
28606
28607 2014-04-22  Martin Jambor  <mjambor@suse.cz>
28608
28609         * cgraphclones.c (cgraph_function_versioning): Copy
28610         ipa_transforms_to_apply instead of asserting it is empty.
28611
28612 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
28613
28614         PR target/60868
28615         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
28616         on count_exp to get mode.
28617
28618 2014-04-22  Andrew Pinski  <apinski@cavium.com>
28619
28620         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
28621         Handle TLS for ILP32.
28622         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
28623         (tlsie_small_<mode>): this and handle PTR.
28624         (tlsie_small_sidi): New pattern.
28625         (tlsle_small): Change to an expand to handle ILP32.
28626         (tlsle_small_<mode>): New pattern.
28627         (tlsdesc_small): Rename to ...
28628         (tlsdesc_small_<mode>): this and handle PTR.
28629
28630 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28631
28632         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
28633
28634 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28635
28636         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28637         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
28638         (aarch64_types_signed_poly_qualifiers): Likewise.
28639         (aarch64_types_unsigned_signed_qualifiers): Likewise.
28640         (aarch64_types_poly_signed_qualifiers): Likewise.
28641         (TYPES_REINTERP_SS): Type macro added.
28642         (TYPES_REINTERP_SU): Likewise.
28643         (TYPES_REINTERP_SP): Likewise.
28644         (TYPES_REINTERP_US): Likewise.
28645         (TYPES_REINTERP_PS): Likewise.
28646         (aarch64_fold_builtin): New expression folding added.
28647         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
28648         Declarations removed.
28649         (REINTERP_SS): Declarations added.
28650         (REINTERP_US): Likewise.
28651         (REINTERP_PS): Likewise.
28652         (REINTERP_SU): Likewise.
28653         (REINTERP_SP): Likewise.
28654         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
28655         (vreinterpretq_p8_f64): Likewise.
28656         (vreinterpret_p16_f64): Likewise.
28657         (vreinterpretq_p16_f64): Likewise.
28658         (vreinterpret_f32_f64): Likewise.
28659         (vreinterpretq_f32_f64): Likewise.
28660         (vreinterpret_f64_f32): Likewise.
28661         (vreinterpret_f64_p8): Likewise.
28662         (vreinterpret_f64_p16): Likewise.
28663         (vreinterpret_f64_s8): Likewise.
28664         (vreinterpret_f64_s16): Likewise.
28665         (vreinterpret_f64_s32): Likewise.
28666         (vreinterpret_f64_s64): Likewise.
28667         (vreinterpret_f64_u8): Likewise.
28668         (vreinterpret_f64_u16): Likewise.
28669         (vreinterpret_f64_u32): Likewise.
28670         (vreinterpret_f64_u64): Likewise.
28671         (vreinterpretq_f64_f32): Likewise.
28672         (vreinterpretq_f64_p8): Likewise.
28673         (vreinterpretq_f64_p16): Likewise.
28674         (vreinterpretq_f64_s8): Likewise.
28675         (vreinterpretq_f64_s16): Likewise.
28676         (vreinterpretq_f64_s32): Likewise.
28677         (vreinterpretq_f64_s64): Likewise.
28678         (vreinterpretq_f64_u8): Likewise.
28679         (vreinterpretq_f64_u16): Likewise.
28680         (vreinterpretq_f64_u32): Likewise.
28681         (vreinterpretq_f64_u64): Likewise.
28682         (vreinterpret_s64_f64): Likewise.
28683         (vreinterpretq_s64_f64): Likewise.
28684         (vreinterpret_u64_f64): Likewise.
28685         (vreinterpretq_u64_f64): Likewise.
28686         (vreinterpret_s8_f64): Likewise.
28687         (vreinterpretq_s8_f64): Likewise.
28688         (vreinterpret_s16_f64): Likewise.
28689         (vreinterpretq_s16_f64): Likewise.
28690         (vreinterpret_s32_f64): Likewise.
28691         (vreinterpretq_s32_f64): Likewise.
28692         (vreinterpret_u8_f64): Likewise.
28693         (vreinterpretq_u8_f64): Likewise.
28694         (vreinterpret_u16_f64): Likewise.
28695         (vreinterpretq_u16_f64): Likewise.
28696         (vreinterpret_u32_f64): Likewise.
28697         (vreinterpretq_u32_f64): Likewise.
28698
28699 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28700
28701         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28702         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
28703         (vreinterpret_p8_s8): Likewise.
28704         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
28705         (vreinterpret_p8_s16): Likewise.
28706         (vreinterpret_p8_s32): Likewise.
28707         (vreinterpret_p8_s64): Likewise.
28708         (vreinterpret_p8_f32): Likewise.
28709         (vreinterpret_p8_u8): Likewise.
28710         (vreinterpret_p8_u16): Likewise.
28711         (vreinterpret_p8_u32): Likewise.
28712         (vreinterpret_p8_u64): Likewise.
28713         (vreinterpret_p8_p16): Likewise.
28714         (vreinterpretq_p8_s8): Likewise.
28715         (vreinterpretq_p8_s16): Likewise.
28716         (vreinterpretq_p8_s32): Likewise.
28717         (vreinterpretq_p8_s64): Likewise.
28718         (vreinterpretq_p8_f32): Likewise.
28719         (vreinterpretq_p8_u8): Likewise.
28720         (vreinterpretq_p8_u16): Likewise.
28721         (vreinterpretq_p8_u32): Likewise.
28722         (vreinterpretq_p8_u64): Likewise.
28723         (vreinterpretq_p8_p16): Likewise.
28724         (vreinterpret_p16_s8): Likewise.
28725         (vreinterpret_p16_s16): Likewise.
28726         (vreinterpret_p16_s32): Likewise.
28727         (vreinterpret_p16_s64): Likewise.
28728         (vreinterpret_p16_f32): Likewise.
28729         (vreinterpret_p16_u8): Likewise.
28730         (vreinterpret_p16_u16): Likewise.
28731         (vreinterpret_p16_u32): Likewise.
28732         (vreinterpret_p16_u64): Likewise.
28733         (vreinterpret_p16_p8): Likewise.
28734         (vreinterpretq_p16_s8): Likewise.
28735         (vreinterpretq_p16_s16): Likewise.
28736         (vreinterpretq_p16_s32): Likewise.
28737         (vreinterpretq_p16_s64): Likewise.
28738         (vreinterpretq_p16_f32): Likewise.
28739         (vreinterpretq_p16_u8): Likewise.
28740         (vreinterpretq_p16_u16): Likewise.
28741         (vreinterpretq_p16_u32): Likewise.
28742         (vreinterpretq_p16_u64): Likewise.
28743         (vreinterpretq_p16_p8): Likewise.
28744         (vreinterpret_f32_s8): Likewise.
28745         (vreinterpret_f32_s16): Likewise.
28746         (vreinterpret_f32_s32): Likewise.
28747         (vreinterpret_f32_s64): Likewise.
28748         (vreinterpret_f32_u8): Likewise.
28749         (vreinterpret_f32_u16): Likewise.
28750         (vreinterpret_f32_u32): Likewise.
28751         (vreinterpret_f32_u64): Likewise.
28752         (vreinterpret_f32_p8): Likewise.
28753         (vreinterpret_f32_p16): Likewise.
28754         (vreinterpretq_f32_s8): Likewise.
28755         (vreinterpretq_f32_s16): Likewise.
28756         (vreinterpretq_f32_s32): Likewise.
28757         (vreinterpretq_f32_s64): Likewise.
28758         (vreinterpretq_f32_u8): Likewise.
28759         (vreinterpretq_f32_u16): Likewise.
28760         (vreinterpretq_f32_u32): Likewise.
28761         (vreinterpretq_f32_u64): Likewise.
28762         (vreinterpretq_f32_p8): Likewise.
28763         (vreinterpretq_f32_p16): Likewise.
28764         (vreinterpret_s64_s8): Likewise.
28765         (vreinterpret_s64_s16): Likewise.
28766         (vreinterpret_s64_s32): Likewise.
28767         (vreinterpret_s64_f32): Likewise.
28768         (vreinterpret_s64_u8): Likewise.
28769         (vreinterpret_s64_u16): Likewise.
28770         (vreinterpret_s64_u32): Likewise.
28771         (vreinterpret_s64_u64): Likewise.
28772         (vreinterpret_s64_p8): Likewise.
28773         (vreinterpret_s64_p16): Likewise.
28774         (vreinterpretq_s64_s8): Likewise.
28775         (vreinterpretq_s64_s16): Likewise.
28776         (vreinterpretq_s64_s32): Likewise.
28777         (vreinterpretq_s64_f32): Likewise.
28778         (vreinterpretq_s64_u8): Likewise.
28779         (vreinterpretq_s64_u16): Likewise.
28780         (vreinterpretq_s64_u32): Likewise.
28781         (vreinterpretq_s64_u64): Likewise.
28782         (vreinterpretq_s64_p8): Likewise.
28783         (vreinterpretq_s64_p16): Likewise.
28784         (vreinterpret_u64_s8): Likewise.
28785         (vreinterpret_u64_s16): Likewise.
28786         (vreinterpret_u64_s32): Likewise.
28787         (vreinterpret_u64_s64): Likewise.
28788         (vreinterpret_u64_f32): Likewise.
28789         (vreinterpret_u64_u8): Likewise.
28790         (vreinterpret_u64_u16): Likewise.
28791         (vreinterpret_u64_u32): Likewise.
28792         (vreinterpret_u64_p8): Likewise.
28793         (vreinterpret_u64_p16): Likewise.
28794         (vreinterpretq_u64_s8): Likewise.
28795         (vreinterpretq_u64_s16): Likewise.
28796         (vreinterpretq_u64_s32): Likewise.
28797         (vreinterpretq_u64_s64): Likewise.
28798         (vreinterpretq_u64_f32): Likewise.
28799         (vreinterpretq_u64_u8): Likewise.
28800         (vreinterpretq_u64_u16): Likewise.
28801         (vreinterpretq_u64_u32): Likewise.
28802         (vreinterpretq_u64_p8): Likewise.
28803         (vreinterpretq_u64_p16): Likewise.
28804         (vreinterpret_s8_s16): Likewise.
28805         (vreinterpret_s8_s32): Likewise.
28806         (vreinterpret_s8_s64): Likewise.
28807         (vreinterpret_s8_f32): Likewise.
28808         (vreinterpret_s8_u8): Likewise.
28809         (vreinterpret_s8_u16): Likewise.
28810         (vreinterpret_s8_u32): Likewise.
28811         (vreinterpret_s8_u64): Likewise.
28812         (vreinterpret_s8_p8): Likewise.
28813         (vreinterpret_s8_p16): Likewise.
28814         (vreinterpretq_s8_s16): Likewise.
28815         (vreinterpretq_s8_s32): Likewise.
28816         (vreinterpretq_s8_s64): Likewise.
28817         (vreinterpretq_s8_f32): Likewise.
28818         (vreinterpretq_s8_u8): Likewise.
28819         (vreinterpretq_s8_u16): Likewise.
28820         (vreinterpretq_s8_u32): Likewise.
28821         (vreinterpretq_s8_u64): Likewise.
28822         (vreinterpretq_s8_p8): Likewise.
28823         (vreinterpretq_s8_p16): Likewise.
28824         (vreinterpret_s16_s8): Likewise.
28825         (vreinterpret_s16_s32): Likewise.
28826         (vreinterpret_s16_s64): Likewise.
28827         (vreinterpret_s16_f32): Likewise.
28828         (vreinterpret_s16_u8): Likewise.
28829         (vreinterpret_s16_u16): Likewise.
28830         (vreinterpret_s16_u32): Likewise.
28831         (vreinterpret_s16_u64): Likewise.
28832         (vreinterpret_s16_p8): Likewise.
28833         (vreinterpret_s16_p16): Likewise.
28834         (vreinterpretq_s16_s8): Likewise.
28835         (vreinterpretq_s16_s32): Likewise.
28836         (vreinterpretq_s16_s64): Likewise.
28837         (vreinterpretq_s16_f32): Likewise.
28838         (vreinterpretq_s16_u8): Likewise.
28839         (vreinterpretq_s16_u16): Likewise.
28840         (vreinterpretq_s16_u32): Likewise.
28841         (vreinterpretq_s16_u64): Likewise.
28842         (vreinterpretq_s16_p8): Likewise.
28843         (vreinterpretq_s16_p16): Likewise.
28844         (vreinterpret_s32_s8): Likewise.
28845         (vreinterpret_s32_s16): Likewise.
28846         (vreinterpret_s32_s64): Likewise.
28847         (vreinterpret_s32_f32): Likewise.
28848         (vreinterpret_s32_u8): Likewise.
28849         (vreinterpret_s32_u16): Likewise.
28850         (vreinterpret_s32_u32): Likewise.
28851         (vreinterpret_s32_u64): Likewise.
28852         (vreinterpret_s32_p8): Likewise.
28853         (vreinterpret_s32_p16): Likewise.
28854         (vreinterpretq_s32_s8): Likewise.
28855         (vreinterpretq_s32_s16): Likewise.
28856         (vreinterpretq_s32_s64): Likewise.
28857         (vreinterpretq_s32_f32): Likewise.
28858         (vreinterpretq_s32_u8): Likewise.
28859         (vreinterpretq_s32_u16): Likewise.
28860         (vreinterpretq_s32_u32): Likewise.
28861         (vreinterpretq_s32_u64): Likewise.
28862         (vreinterpretq_s32_p8): Likewise.
28863         (vreinterpretq_s32_p16): Likewise.
28864         (vreinterpret_u8_s8): Likewise.
28865         (vreinterpret_u8_s16): Likewise.
28866         (vreinterpret_u8_s32): Likewise.
28867         (vreinterpret_u8_s64): Likewise.
28868         (vreinterpret_u8_f32): Likewise.
28869         (vreinterpret_u8_u16): Likewise.
28870         (vreinterpret_u8_u32): Likewise.
28871         (vreinterpret_u8_u64): Likewise.
28872         (vreinterpret_u8_p8): Likewise.
28873         (vreinterpret_u8_p16): Likewise.
28874         (vreinterpretq_u8_s8): Likewise.
28875         (vreinterpretq_u8_s16): Likewise.
28876         (vreinterpretq_u8_s32): Likewise.
28877         (vreinterpretq_u8_s64): Likewise.
28878         (vreinterpretq_u8_f32): Likewise.
28879         (vreinterpretq_u8_u16): Likewise.
28880         (vreinterpretq_u8_u32): Likewise.
28881         (vreinterpretq_u8_u64): Likewise.
28882         (vreinterpretq_u8_p8): Likewise.
28883         (vreinterpretq_u8_p16): Likewise.
28884         (vreinterpret_u16_s8): Likewise.
28885         (vreinterpret_u16_s16): Likewise.
28886         (vreinterpret_u16_s32): Likewise.
28887         (vreinterpret_u16_s64): Likewise.
28888         (vreinterpret_u16_f32): Likewise.
28889         (vreinterpret_u16_u8): Likewise.
28890         (vreinterpret_u16_u32): Likewise.
28891         (vreinterpret_u16_u64): Likewise.
28892         (vreinterpret_u16_p8): Likewise.
28893         (vreinterpret_u16_p16): Likewise.
28894         (vreinterpretq_u16_s8): Likewise.
28895         (vreinterpretq_u16_s16): Likewise.
28896         (vreinterpretq_u16_s32): Likewise.
28897         (vreinterpretq_u16_s64): Likewise.
28898         (vreinterpretq_u16_f32): Likewise.
28899         (vreinterpretq_u16_u8): Likewise.
28900         (vreinterpretq_u16_u32): Likewise.
28901         (vreinterpretq_u16_u64): Likewise.
28902         (vreinterpretq_u16_p8): Likewise.
28903         (vreinterpretq_u16_p16): Likewise.
28904         (vreinterpret_u32_s8): Likewise.
28905         (vreinterpret_u32_s16): Likewise.
28906         (vreinterpret_u32_s32): Likewise.
28907         (vreinterpret_u32_s64): Likewise.
28908         (vreinterpret_u32_f32): Likewise.
28909         (vreinterpret_u32_u8): Likewise.
28910         (vreinterpret_u32_u16): Likewise.
28911         (vreinterpret_u32_u64): Likewise.
28912         (vreinterpret_u32_p8): Likewise.
28913         (vreinterpret_u32_p16): Likewise.
28914         (vreinterpretq_u32_s8): Likewise.
28915         (vreinterpretq_u32_s16): Likewise.
28916         (vreinterpretq_u32_s32): Likewise.
28917         (vreinterpretq_u32_s64): Likewise.
28918         (vreinterpretq_u32_f32): Likewise.
28919         (vreinterpretq_u32_u8): Likewise.
28920         (vreinterpretq_u32_u16): Likewise.
28921         (vreinterpretq_u32_u64): Likewise.
28922         (vreinterpretq_u32_p8): Likewise.
28923         (vreinterpretq_u32_p16): Likewise.
28924
28925 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28926
28927         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
28928         Pattern extended.
28929         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
28930         (sqabs): Likewise.
28931         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
28932         (vqnegd_s64): Likewise.
28933         (vqabs_s64): Likewise.
28934         (vqabsd_s64): Likewise.
28935
28936 2014-04-22  Richard Henderson  <rth@redhat.com>
28937
28938         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
28939         computation to the top of the loop.
28940
28941 2014-04-22  Renlin  <renlin.li@arm.com>
28942             Jiong Wang  <jiong.wang@arm.com>
28943
28944         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
28945         * config/aarch64/aarch64.c (aarch64_layout_frame)
28946         (aarch64_initial_elimination_offset): Likewise.
28947
28948 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28949
28950         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
28951         Fix indentation.
28952
28953 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
28954
28955         * machmode.h (bitwise_mode_for_mode): Declare.
28956         * stor-layout.h (bitwise_type_for_mode): Likewise.
28957         * stor-layout.c (bitwise_mode_for_mode): New function.
28958         (bitwise_type_for_mode): Likewise.
28959         * builtins.c (fold_builtin_memory_op): Use it instead of
28960         int_mode_for_mode and build_nonstandard_integer_type.
28961
28962 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28963
28964         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
28965         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
28966         (*-*-solaris2*): Simplify.
28967         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
28968         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
28969         *-*-solaris2.9* handling.
28970
28971         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
28972         as bug.
28973         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
28974         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
28975         handling, simplify.
28976         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
28977         * configure: Regenerate.
28978
28979         * config/i386/sol2-9.h: Remove.
28980
28981         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
28982         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
28983         Remove Solaris 9 references.
28984
28985 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
28986
28987         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
28988         (floatuns<GPI:mode><GPF:mode>2): Remove.
28989         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
28990         and floatuns conversions.
28991         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
28992         and floatuns conversions.
28993         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
28994         (w1,w2): New mode attributes for inequal width conversions.
28995
28996 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
28997
28998         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
28999         the output asm format.
29000
29001 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
29002
29003         * config/aarch64/aarch64-simd.md
29004         (aarch64_cm<optab>di): Always split.
29005         (*aarch64_cm<optab>di): New.
29006         (aarch64_cmtstdi): Always split.
29007         (*aarch64_cmtstdi): New.
29008
29009 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29010
29011         PR tree-optimization/60823
29012         * omp-low.c (ipa_simd_modify_function_body): Go through
29013         all SSA_NAMEs and for those refering to vector arguments
29014         which are going to be replaced adjust SSA_NAME_VAR and,
29015         if it is a default definition, change it into a non-default
29016         definition assigned at the beginning of function from new_decl.
29017         (ipa_simd_modify_stmt_ops): Rewritten.
29018         * tree-dfa.c (set_ssa_default_def): When removing default def,
29019         check for NULL loc instead of NULL *loc.
29020
29021 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29022
29023         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29024         restrictions on core registers for DImode values in Thumb2.
29025
29026 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29027
29028         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29029         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29030
29031 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29032
29033         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29034         (*iordi_notzesidi_di): Likewise.
29035         (*iordi_notsesidi_di): Likewise.
29036
29037 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29038
29039         * config/arm/arm-protos.h (tune_params): New struct members.
29040         * config/arm/arm.c: Initialise tune_params per processor.
29041         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29042         for speed, based on new tune_params.
29043
29044 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29045
29046         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29047         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29048         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29049         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29050         * config/aarch64/arm_neon.h (vrnd_f64): Added.
29051         (vrnda_f64): Likewise.
29052         (vrndi_f64): Likewise.
29053         (vrndm_f64): Likewise.
29054         (vrndn_f64): Likewise.
29055         (vrndp_f64): Likewise.
29056         (vrndx_f64): Likewise.
29057
29058 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29059
29060         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29061         GET_MODE_SIZE argument is enum machine_mode.
29062
29063 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29064
29065         PR target/60910
29066         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29067         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29068
29069 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
29070
29071         PR middle-end/60281
29072         * asan.c (asan_emit_stack_protection): Force the base to align to
29073         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
29074         appropriate bits if STRICT_ALIGNMENT.
29075         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29076         when asan is on.
29077         (expand_used_vars): Leave a space in the stack frame for alignment
29078         if STRICT_ALIGNMENT.
29079
29080 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
29081
29082         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29083         than a gimple.
29084         (gimple_store_p): Likewise.
29085         (gimple_assign_load_p): Likewise.
29086         (gimple_assign_cast_p): Likewise.
29087         (gimple_clobber_p): Likewise.
29088
29089         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29090         rather than a gimple.
29091         (gimple_assign_cast_p): Likewise.
29092
29093 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
29094
29095         PR target/60735
29096         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29097         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29098
29099         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29100         more debug information for E500 if -mdebug=reg.
29101
29102 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29103
29104         PR target/60909
29105         * config/i386/i386.c (ix86_expand_builtin)
29106         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29107         register for target RTX.
29108         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29109
29110 2014-04-18  Cong Hou  <congh@google.com>
29111
29112         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29113         the widen-mult pattern by handling two operands with different sizes,
29114         and operands whose size is smaller than half of the result type.
29115
29116 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29117
29118         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29119         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29120         (do_estimate_edge_time): Compute it.
29121         * ipa-inline.c (want_inline_small_function_p): Bypass
29122         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29123
29124 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29125
29126         * ipa-inline.c (spec_rem): New static variable.
29127         (dump_overall_stats): New function.
29128         (dump_inline_stats): New function.
29129
29130 2014-04-18  Richard Henderson  <rth@redhat.com>
29131
29132         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29133         to GET_MODE_SIZE, not a reg_class_t.
29134
29135 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29136
29137         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29138         (vsx_xxmrglw_<mode>): Likewise.
29139
29140 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29141
29142         PR target/60876
29143         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29144         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29145         (rs6000_init_hard_regno_mode_ok): Likewise.
29146
29147 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29148
29149         * ipa-inline.c (inline_small_functions): Account only non-cold
29150         functions.
29151         * doc/invoke.texi (inline-unit-growth): Update documentation.
29152
29153 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29154
29155         * config/rs6000/rs6000.md (addti3, subti3): New.
29156
29157 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29158
29159         PR target/60863
29160         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29161         comment.  Check optimize_insn_for_size_p instead of
29162         optimize_insn_for_speed_p.
29163
29164 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29165
29166         * gimple-iterator.c (gsi_start_edge): New function.
29167         * gimple-iterator.h (gsi_start_edge): Declare.
29168         * tree-sra.c (single_non_eh_succ): New function.
29169         (disqualify_ops_if_throwing_stmt): Renamed to
29170         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29171         having one non-EH successor BB.
29172         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29173         generate loads into replacements.
29174         (sra_modify_assign): Likewise and and also use the simple path for
29175         such statements.
29176         (sra_modify_function_body): Commit statements on edges.
29177
29178 2014-04-17  Richard Biener  <rguenther@suse.de>
29179
29180         PR middle-end/60849
29181         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29182         comparison results and add clarifying comment.
29183
29184 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29185
29186         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29187         (blank_mode): Initialize it.
29188         (emit_mode_size_inline, emit_mode_nunits_inline,
29189         emit_mode_inner_inline): New functions.
29190         (emit_insn_modes_h): Call them and surround their output with
29191         #if GCC_VERSION >= 4001 ... #endif.
29192         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29193         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29194         mode_* arrays if the argument is __builtin_constant_p.
29195         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29196         is enum machine_mode.
29197
29198 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29199
29200         * passes.c (opt_pass::execute): Adjust.
29201         (pass_manager::execute_pass_mode_switching): Likewise.
29202         (early_local_passes::execute): Likewise.
29203         (execute_one_pass): Pass cfun to the pass's execute method.
29204         * tree-pass.h (opt_pass::execute): Add function * argument.
29205         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29206         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29207         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29208         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29209         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29210         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29211         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29212         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29213         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29214         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29215         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29216         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29217         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29218         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29219         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29220         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29221         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29222         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29223         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29224         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29225         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29226         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29227         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29228         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29229         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29230         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29231         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29232         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29233         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29234         Adjust.
29235
29236 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29237
29238         * passes.c (opt_pass::gate): Take function * argument.
29239         (gate_all_early_local_passes): Merge into
29240         (early_local_passes::gate): this.
29241         (gate_all_early_optimizations): Merge into
29242         (all_early_optimizations::gate): this.
29243         (gate_all_optimizations): Mege into
29244         (all_optimizations::gate): this.
29245         (gate_all_optimizations_g): Merge into
29246         (all_optimizations_g::gate): this.
29247         (gate_rest_of_compilation): Mege into
29248         (rest_of_compilation::gate): this.
29249         (gate_postreload): Merge into
29250         (postreload::gate): this.
29251         (dump_one_pass): Pass cfun to the pass's gate method.
29252         (execute_ipa_summary_passes): Likewise.
29253         (execute_one_pass): Likewise.
29254         (ipa_write_summaries_2): Likewise.
29255         (ipa_write_optimization_summaries_1): Likewise.
29256         (ipa_read_summaries_1): Likewise.
29257         (ipa_read_optimization_summaries_1): Likewise.
29258         (execute_ipa_stmt_fixups): Likewise.
29259         * tree-pass.h (opt_pass::gate): Add function * argument.
29260         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29261         combine-stack-adj.c, combine.c, compare-elim.c,
29262         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29263         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29264         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29265         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29266         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29267         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29268         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29269         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29270         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29271         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29272         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29273         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29274         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29275         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29276         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29277         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29278         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29279         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29280         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29281         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29282         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29283         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29284         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29285         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29286         var-tracking.c, vtable-verify.c, web.c: Adjust.
29287
29288 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29289
29290         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29291         * configure: Regenerate.
29292
29293 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29294
29295         * passes.c (dump_one_pass): don't check pass->has_gate.
29296         (execute_ipa_summary_passes): Likewise.
29297         (execute_one_pass): Likewise.
29298         (ipa_write_summaries_2): Likewise.
29299         (ipa_write_optimization_summaries_1): Likewise.
29300         (ipa_read_optimization_summaries_1): Likewise.
29301         (execute_ipa_stmt_fixups): Likewise.
29302         * tree-pass.h (pass_data::has_gate): Remove.
29303         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29304         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29305         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29306         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29307         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29308         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29309         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29310         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29311         gimple-low.c, gimple-ssa-isolate-paths.c,
29312         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29313         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29314         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29315         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29316         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29317         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29318         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29319         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29320         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29321         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29322         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29323         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29324         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29325         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29326         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29327         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29328         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29329         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29330         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29331         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29332         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29333         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29334         Adjust.
29335
29336 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29337
29338         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29339         declaration.
29340         * passes.c (pass_manager::register_dump_files_1): Merge into
29341         (pass_manager::register_dump_files): this, and remove its handling of
29342         properties since the pass always has the properties anyway.
29343         (pass_manager::pass_manager): Adjust.
29344
29345 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29346
29347         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29348         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29349         dealing with properties.
29350         (pass_manager::register_dump_files): Adjust.
29351
29352 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29353
29354         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29355         then represent the bound as normal constant value.
29356
29357 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29358
29359         PR target/60847
29360         Forward port from 4.8 branch
29361         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29362
29363         * config/i386/bmiintrin.h (_blsi_u32): New.
29364         (_blsi_u64): Ditto.
29365         (_blsr_u32): Ditto.
29366         (_blsr_u64): Ditto.
29367         (_blsmsk_u32): Ditto.
29368         (_blsmsk_u64): Ditto.
29369         (_tzcnt_u32): Ditto.
29370         (_tzcnt_u64): Ditto.
29371
29372 2014-04-17  Kito Cheng  <kito@0xlab.org>
29373
29374         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29375
29376 2014-04-17  Richard Biener  <rguenther@suse.de>
29377
29378         PR middle-end/60849
29379         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29380         boolean results for comparisons.
29381
29382 2014-04-17  Richard Biener  <rguenther@suse.de>
29383
29384         PR tree-optimization/60836
29385         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29386         initial PHI args to be gimple values.
29387
29388 2014-04-17  Richard Biener  <rguenther@suse.de>
29389
29390         PR tree-optimization/60841
29391         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29392         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29393         of stmts to SLP build.
29394         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29395         (vect_analyze_slp): Likewise.
29396         (vect_analyze_slp_instance): Likewise.
29397         (vect_build_slp_tree): Limit overall SLP tree growth.
29398         * tree-vectorizer.h (vect_analyze_data_refs,
29399         vect_analyze_slp): Adjust prototypes.
29400
29401 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29402
29403         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29404         Silvermont.
29405
29406 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29407
29408         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29409         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29410         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29411         for TARGET_SLOW_PSHUFB
29412
29413 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29414
29415         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29416         * config/i386/i386.c (intel_cost): Ditto.
29417
29418 2014-04-17  Joey Ye  <joey.ye@arm.com>
29419
29420         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29421
29422 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29423
29424         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29425         with -fuse-profile.
29426
29427 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29428
29429         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29430         (type_all_derivations_known_p): New predicate.
29431         (type_all_ctors_visible_p): New predicate.
29432         (type_possibly_instantiated_p): New predicate.
29433         (get_odr_type): Compute all_derivations_known.
29434         (dump_odr_type): Dump the flag.
29435         (maybe_record_type): Cleanup.
29436         (record_target_from_binfo): Add bases_to_consider array;
29437         record bases for types w/o instances and skip CXX destructor.
29438         (possible_polymorphic_call_targets_1): Add bases_to_consider
29439         and consider_construction parameters; check if type may have instance.
29440         (get_polymorphic_call_info): Set maybe_in_construction to true
29441         when we know nothing.
29442         (record_targets_from_bases): Skip CXX destructors; they are
29443         never called for types in construction.
29444         (possible_polymorphic_call_targets): Do not record target when
29445         type may not have instance.
29446
29447 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29448
29449         PR ipa/60854
29450         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29451         external aliases alive, too.
29452
29453 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
29454
29455         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29456         definition.
29457
29458 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29459
29460         * final.c (compute_alignments): Do not apply loop alignment to a block
29461         falling through to the exit.
29462
29463 2014-04-16  Catherine Moore  <clm@codesourcery.com>
29464
29465         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29466         Adjust constraints for microMIPS store patterns.
29467
29468 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29469
29470         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29471
29472 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29473
29474         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29475         (append_use): Run at -O0.
29476         (append_vdef): Likewise.
29477         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29478         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29479
29480 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
29481
29482         PR tree-optimization/60844
29483         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29484         (propagate_op_to_single_use, remove_visited_stmt_chain,
29485         linearize_expr, repropagate_negates, reassociate_bb): Use it
29486         instead of gsi_remove.
29487
29488 2014-04-16  Martin Jambor  <mjambor@suse.cz>
29489
29490         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
29491         ipa_transforms_to_apply.
29492         (cgraph_function_versioning): Assert that old_node has empty
29493         ipa_transforms_to_apply.
29494         * trans-mem.c (ipa_tm_create_version): Likewise.
29495         * tree-inline.c (tree_function_versioning): Do not duplicate
29496         ipa_transforms_to_apply.
29497
29498 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29499
29500         PR target/60817
29501         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
29502         x86_64-*-* cases.
29503         Pass necessary as flags on 64-bit Solaris/x86.
29504         Use lowercase relocs for x86_64-*-*.
29505         * configure: Regenerate.
29506
29507 2014-04-15  Jan Hubicka  <jh@suse.cz>
29508
29509         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
29510         (maybe_record_node, likely_target_p): Use it.
29511
29512 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29513
29514         PR target/60839
29515         Revert following patch
29516
29517         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29518
29519         PR target/60735
29520         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
29521         software floating point or no floating point registers, do not
29522         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
29523         in GPRs that occurs after we tested for GPRs that would never be
29524         true.
29525
29526         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
29527         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
29528         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
29529         specifically allow DDmode, since that does not use the SPE SIMD
29530         instructions.
29531
29532 2014-03-21  Mark Wielaard  <mjw@redhat.com>
29533
29534         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
29535         as unsigned or int depending on type and value used.
29536
29537 2014-04-15  Richard Biener  <rguenther@suse.de>
29538
29539         PR rtl-optimization/56965
29540         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
29541         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
29542         ... here.
29543         * alias.c (true_dependence_1): Do not call
29544         nonoverlapping_component_refs_p.
29545         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
29546         nonoverlapping_component_refs_p.
29547         (indirect_refs_may_alias_p): Likewise.
29548
29549 2014-04-15  Teresa Johnson  <tejohnson@google.com>
29550
29551         * cfg.c (dump_bb_info): Fix flags check.
29552         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
29553
29554 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29555
29556         PR rtl-optimization/60663
29557         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
29558         avoid 0 cost.
29559
29560 2014-04-15  Richard Biener  <rguenther@suse.de>
29561
29562         * lto-streamer.h (LTO_major_version): Bump to 4.
29563
29564 2014-04-15  Richard Biener  <rguenther@suse.de>
29565
29566         * common.opt (lto_partition_model): New enum.
29567         (flto-partition=): Merge separate options with a single with argument,
29568         add -flto-partition=one support.
29569         * flag-types.h (enum lto_partition_model): Declare.
29570         * opts.c (finish_options): Remove duplicate -flto-partition=
29571         option check.
29572         * lto-wrapper.c (run_gcc): Adjust.
29573
29574 2014-04-15  Richard Biener  <rguenther@suse.de>
29575
29576         * alias.c (ncr_compar): New function.
29577         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
29578
29579 2014-04-15  Richard Biener  <rguenther@suse.de>
29580
29581         * alias.c (record_component_aliases): Do not walk BINFOs.
29582
29583 2014-04-15  Richard Biener  <rguenther@suse.de>
29584
29585         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29586         Add struct function argument and adjust.
29587         (find_func_aliases_for_call): Likewise.
29588         (find_func_aliases): Likewise.
29589         (find_func_clobbers): Likewise.
29590         (intra_create_variable_infos): Likewise.
29591         (compute_points_to_sets): Likewise.
29592         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
29593
29594 2014-04-15  Richard Biener  <rguenther@suse.de>
29595
29596         * tree.c (iterative_hash_expr): Use enum tree_code_class
29597         to store TREE_CODE_CLASS.
29598         (tree_block): Likewise.
29599         (tree_set_block): Likewise.
29600         * tree.h (fold_build_pointer_plus_loc): Use
29601         convert_to_ptrofftype_loc.
29602
29603 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
29604
29605         PR plugins/59335
29606         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
29607         added in 4.9.
29608
29609 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
29610
29611         * cfgloop.h (struct loop): Move force_vectorize down.
29612         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
29613         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
29614         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
29615         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
29616         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
29617         * tree-core.h (enum annot_expr_kind): Add new kind values.
29618         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
29619         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
29620         kinds.
29621         * tree.def (ANNOTATE_EXPR): Tweak comment.
29622
29623 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29624
29625         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
29626         cxa_pure_virtual).
29627
29628 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
29629
29630         * tree.h (TYPE_IDENTIFIER): Declare.
29631         * tree.c (subrange_type_for_debug_p): Use it.
29632         * godump.c (go_format_type): Likewise.
29633         * dwarf2out.c (is_cxx_auto, modified_type_die,
29634         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
29635         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
29636
29637 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29638
29639         PR lto/60820
29640         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
29641
29642 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
29643
29644         * config/i386/i386.c (examine_argument): Return bool.  Return true if
29645         parameter should be passed in memory.
29646         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
29647         (construct_container): Update calls to examine_argument.
29648         (function_arg_advance_64): Ditto.
29649         (return_in_memory_32): Merge with ix86_return_in_memory.
29650         (return_in_memory_64): Ditto.
29651         (return_in_memory_ms_64): Ditto.
29652
29653 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29654
29655         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
29656         * coverage.c (coverage_compute_profile_id): Handle externally visible
29657         symbols.
29658
29659 2014-04-14  Martin Jambor  <mjambor@suse.cz>
29660
29661         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
29662         DECL_DISREGARD_INLINE_LIMITS functions.
29663
29664 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29665
29666         PR target/60827
29667         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
29668
29669 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29670
29671         PR target/60827
29672         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
29673         optimize_insn_for_speed_p instead of
29674         optimize_function_for_speed_p.
29675
29676 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
29677
29678         * doc/invoke.texi (free): Document AArch64.
29679
29680 2014-04-14  Richard Biener  <rguenther@suse.de>
29681
29682         PR tree-optimization/60042
29683         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
29684         (insert_into_preds_of_block): Do not prevent PHI insertion
29685         for REFERENCE exprs here ...
29686         (eliminate_dom_walker::before_dom_children): ... but prevent
29687         their use here under similar conditions when applied to the
29688         IL after PRE optimizations.
29689
29690 2014-04-14  Richard Biener  <rguenther@suse.de>
29691
29692         * passes.def: Move early points-to after early SRA.
29693
29694 2014-04-14  Richard Biener  <rguenther@suse.de>
29695
29696         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
29697         check for which sign-changes we allow when forwarding
29698         a converted value into a switch.
29699
29700 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29701
29702         * stor-layout.c (place_field): Finalize non-constant offset for the
29703         field, if any.
29704
29705 2014-04-14  Richard Biener  <rguenther@suse.de>
29706
29707         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
29708         as argument.
29709         (expand_switch_using_bit_tests_p): Likewise.
29710         (process_switch): Compute and pass on speed_p based on the
29711         switch stmt.
29712         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
29713         optimize_bb_for_speed_p.
29714
29715 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29716
29717         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
29718         * function.h (struct function): Rename has_force_vect_loops into
29719         has_force_vectorize_loops.
29720         * lto-streamer-in.c (input_cfg): Adjust for renaming.
29721         (input_struct_function_base): Likewise.
29722         * lto-streamer-out.c (output_cfg): Likewise.
29723         (output_struct_function_base): Likewise.
29724         * omp-low.c (expand_omp_simd): Likewise.
29725         * tree-cfg.c (move_sese_region_to_fn): Likewise.
29726         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
29727         (version_loop_for_if_conversion): Likewise.
29728         (tree_if_conversion): Likewise.
29729         (main_tree_if_conversion): Likewise.
29730         (gate_tree_if_conversion): Likewise.
29731         * tree-inline.c (copy_loops): Likewise.
29732         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
29733         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
29734         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
29735         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
29736         * tree-vectorizer.c (vectorize_loops): Likewise.
29737         * tree-vectorizer.h (unlimited_cost_model): Likewise.
29738
29739 2014-04-14  Richard Biener  <rguenther@suse.de>
29740
29741         PR lto/60720
29742         * lto-streamer-out.c (wrap_refs): New function.
29743         (lto_output): Wrap symbol references in global initializes in
29744         type-preserving MEM_REFs.
29745
29746 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29747
29748         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
29749
29750 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29751
29752         * config/sh/sh.md (setmemqi): New expand pattern.
29753         * config/sh/sh.h (CLEAR_RATIO): Define.
29754         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
29755         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
29756
29757 2014-04-14  Richard Biener  <rguenther@suse.de>
29758
29759         PR middle-end/55022
29760         * fold-const.c (negate_expr_p): Don't negate directional rounding
29761         division.
29762         (fold_negate_expr): Likewise.
29763
29764 2014-04-14  Richard Biener  <rguenther@suse.de>
29765
29766         PR tree-optimization/59817
29767         PR tree-optimization/60453
29768         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
29769         recursion to catch all CHRECs in the scalar evolution and restrict
29770         the predicate for the remains appropriately.
29771
29772 2014-04-12  Catherine Moore  <clm@codesourcery.com>
29773
29774         * config/mips/constraints.md: Add new register constraint "kb".
29775         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
29776         (*movhi_internal): Likewise.
29777         (*movqi_internal): Likewise.
29778         * config/mips/mips.h (M16_STORE_REGS): New register class.
29779         (REG_CLASS_NAMES): Add M16_STORE_REGS.
29780         (REG_CLASS_CONTENTS): Likewise.
29781         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
29782
29783 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29784
29785         PR c/60194
29786         * doc/invoke.texi (-Wformat-signedness): Document it.
29787         (Wformat=2): Mention that this enables -Wformat-signedness.
29788
29789 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29790
29791         * common/config/epiphany/epiphany-common.c
29792         (epiphany_option_optimization_table): Enable section anchors by
29793         default at -O1 or higher.
29794         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
29795         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
29796         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
29797         carries no extra cost.
29798         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
29799         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
29800         * config/epiphany/predicates.md (memclob_operand): New predicate.
29801         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
29802         Use memclob_operand predicate and X constraint for operand 3.
29803
29804 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29805
29806         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
29807         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
29808         its operands.
29809
29810 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29811
29812         PR rtl-optimization/60651
29813         * mode-switching.c (optimize_mode_switching): Make sure to emit
29814         sets of a lower numbered entity before sets of a higher numbered
29815         entity to a mode of the same or lower priority.
29816         When creating a seginfo for a basic block that starts with a code
29817         label, move the insertion point past the code label.
29818         (new_seginfo): Document and enforce requirement that
29819         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
29820         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
29821         * doc/tm.texi: Regenerate.
29822
29823 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29824
29825         PR target/60811
29826         * config/arc/arc.c (arc_save_restore): Fix assert typo.
29827
29828 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
29829
29830         * BASE-VER: Set to 4.10.0.
29831
29832 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29833
29834         PR other/59055
29835         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
29836         * doc/gcc.texi (Service): Update description in the @menu
29837         * doc/invoke.texi (Option Summary): Remove misplaced and
29838         duplicated @menu.
29839
29840 2014-04-11  Steve Ellcey  <sellcey@mips.com>
29841             Jakub Jelinek  <jakub@redhat.com>
29842
29843         PR middle-end/60556
29844         * expr.c (convert_move): Use emit_store_flag_force instead of
29845         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
29846         argument to it.
29847
29848 2014-04-11  Richard Biener  <rguenther@suse.de>
29849
29850         PR middle-end/60797
29851         * varasm.c (assemble_alias): Avoid endless error reporting
29852         recursion by setting TREE_ASM_WRITTEN.
29853
29854 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29855
29856         * config/s390/s390.md: Add a splitter for NOT rtx.
29857
29858 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
29859
29860         PR rtl-optimization/60663
29861         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
29862
29863 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
29864             Jakub Jelinek  <jakub@redhat.com>
29865
29866         PR lto/60567
29867         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
29868         flag from decl_node to node.
29869
29870 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29871
29872         PR debug/60655
29873         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
29874         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
29875         ameliorating the cases where it can be.
29876
29877 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
29878
29879         Revert
29880         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29881
29882         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29883         (loadsync_<mode>): Change mode.
29884         (load_quadpti, store_quadpti): New.
29885         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29886         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29887         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
29888
29889 2014-04-09  Cong Hou  <congh@google.com>
29890
29891         PR testsuite/60773
29892         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
29893         documentation.
29894
29895 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29896
29897         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
29898         instead of vnor to exploit possible fusion opportunity in the
29899         future.
29900         (altivec_expand_vec_perm_const_le): Likewise.
29901
29902 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29903
29904         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29905         (loadsync_<mode>): Change mode.
29906         (load_quadpti, store_quadpti): New.
29907         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29908         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29909
29910 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
29911
29912         PR target/60763
29913         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
29914         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
29915         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
29916
29917 2014-04-08  Richard Biener  <rguenther@suse.de>
29918
29919         PR middle-end/60706
29920         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
29921         a 64bit widest int print double-int similar to on HWI64 hosts.
29922
29923 2014-04-08  Richard Biener  <rguenther@suse.de>
29924
29925         PR tree-optimization/60785
29926         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
29927         default defs properly.
29928
29929 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
29930
29931         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
29932         (Weffc++): Likewise.
29933
29934 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
29935
29936         * ipa-devirt.c (maybe_record_node): When node is not recorded,
29937         set completep to false rather than true.
29938
29939 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
29940
29941         PR target/60504
29942         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
29943         ARM_TARGET2_DWARF_FORMAT.
29944
29945 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
29946
29947         PR target/60609
29948         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
29949         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
29950         ADDR_DIFF_VEC.
29951
29952 2014-04-07  Richard Biener  <rguenther@suse.de>
29953
29954         PR tree-optimization/60766
29955         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
29956         (may_eliminate_iv): Convert cand_value_at result to desired type.
29957
29958 2014-04-07  Jason Merrill  <jason@redhat.com>
29959
29960         PR c++/60731
29961         * common.opt (-fno-gnu-unique): Add.
29962         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
29963
29964 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29965
29966         * haifa-sched.c: Fix outdated function reference and minor
29967         grammar errors in introductory comment.
29968
29969 2014-04-07  Richard Biener  <rguenther@suse.de>
29970
29971         PR middle-end/60750
29972         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
29973         for noreturn calls.
29974         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
29975
29976 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
29977
29978         PR debug/55794
29979         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
29980         size accounting for thunks.
29981         (pa_asm_output_mi_thunk): Use final_start_function() and
29982         final_end_function() to output function start and end directives.
29983
29984 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29985
29986         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
29987         device specific ISA/ feature information. Remove short_sp and
29988         errata_skip ds.  Add avr_device_specific_features enum to have device
29989         specific info.
29990         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
29991         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
29992         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
29993         updated device specific info.
29994         * config/avr/avr-mcus.def: Merge device specific details to
29995         dev_attribute field.
29996         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
29997         errata_skip.
29998         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
29999         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30000         assembler if RMW isa supported by current device.
30001         * config/avr/genmultilib.awk: Update as device info structure changed.
30002         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30003
30004 2014-04-04  Cong Hou  <congh@google.com>
30005
30006         PR tree-optimization/60656
30007         * tree-vect-stmts.c (supportable_widening_operation):
30008         Fix a bug that elements in a vector with vect_used_by_reduction
30009         property are incorrectly reordered when the operation on it is not
30010         consistant with the one in reduction operation.
30011
30012 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
30013
30014         PR rtl-optimization/60155
30015         * gcse.c (record_set_data): New function.
30016         (single_set_gcse): New function.
30017         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30018         (hoist_code): Likewise.
30019         (get_pressure_class_and_nregs): Likewise.
30020
30021 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
30022
30023         * explow.c (probe_stack_range): Emit a final optimization blockage.
30024
30025 2014-04-04  Anthony Green  <green@moxielogic.com>
30026
30027         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30028         typos.
30029
30030 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
30031
30032         PR ipa/59626
30033         * lto-cgraph.c (input_overwrite_node): Check that partitioning
30034         flags are set only during streaming.
30035         * ipa.c (process_references, walk_polymorphic_call_targets,
30036         symtab_remove_unreachable_nodes): Drop bodies of always inline
30037         after early inlining.
30038         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30039
30040 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
30041         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30042
30043         PR debug/60655
30044         * dwarf2out.c (const_ok_for_output_1): Reject expressions
30045         containing a NOT.
30046
30047 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30048
30049         PR bootstrap/60743
30050         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30051         duration.
30052         (cortex_a53_fdivd): Likewise.
30053
30054 2014-04-04  Martin Jambor  <mjambor@suse.cz>
30055
30056         PR ipa/60640
30057         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30058         Adjust all callers.
30059         * cgraph.c (clone_of_p): Also return true if thunks match.
30060         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30061         cgraph_function_or_thunk_node and an obsolete comment.
30062         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30063         file.
30064         (build_function_decl_skip_args): Likewise.
30065         (set_new_clone_decl_and_node_flags): New function.
30066         (duplicate_thunk_for_node): Likewise.
30067         (redirect_edge_duplicating_thunks): Likewise.
30068         (cgraph_clone_node): New parameter args_to_skip, pass it to
30069         redirect_edge_duplicating_thunks which is called instead of
30070         cgraph_redirect_edge_callee.
30071         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30072         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30073
30074 2014-04-04  Jeff Law  <law@redhat.com>
30075
30076         PR target/60657
30077         * config/arm/predicates.md (const_int_I_operand): New predicate.
30078         (const_int_M_operand): Similarly.
30079         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30080         const_int_operand.
30081         (insv_t2, extv_reg, extzv_t2): Likewise.
30082         (load_multiple_with_writeback): Similarly for const_int_I_operand.
30083         (pop_multiple_with_writeback_and_return): Likewise.
30084         (vfp_pop_multiple_with_writeback): Likewise
30085
30086 2014-04-04  Richard Biener  <rguenther@suse.de>
30087
30088         PR ipa/60746
30089         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30090         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30091         non-GIMPLE_LABELs.
30092         * gimplify.h (gimple_add_tmp_var_fn): Declare.
30093         * gimplify.c (gimple_add_tmp_var_fn): New function.
30094         * gimple-expr.h (create_tmp_reg_fn): Declare.
30095         * gimple-expr.c (create_tmp_reg_fn): New function.
30096         * gimple-low.c (record_vars_into): Don't change cfun.
30097         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30098         code generation without cfun.
30099
30100 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30101
30102         PR bootstrap/60719
30103         * Makefile.in (install-driver): Fix shell scripting.
30104
30105 2014-04-03  Cong Hou  <congh@google.com>
30106
30107         PR tree-optimization/60505
30108         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30109         threshold of number of iterations below which no vectorization
30110         will be done.
30111         * tree-vect-loop.c (new_loop_vec_info):
30112         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30113         * tree-vect-loop.c (vect_analyze_loop_operations):
30114         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30115         * tree-vect-loop.c (vect_transform_loop):
30116         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30117         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30118         of iterations of the loop and see if we should build the epilogue.
30119
30120 2014-04-03  Richard Biener  <rguenther@suse.de>
30121
30122         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30123         (streamer_tree_cache_create): Adjust.
30124         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30125         to allow optional nodes array.
30126         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30127         (streamer_tree_cache_append): Likewise.
30128         (streamer_tree_cache_create): Create nodes array optionally
30129         as specified by parameter.
30130         * lto-streamer-out.c (create_output_block): Avoid maintaining
30131         the node array in the writer cache.
30132         (DFS_write_tree): Remove assertion.
30133         (produce_asm_for_decls): Free the out decl state hash table early.
30134         * lto-streamer-in.c (lto_data_in_create): Adjust for
30135         streamer_tree_cache_create prototype change.
30136
30137 2014-04-03  Richard Biener  <rguenther@suse.de>
30138
30139         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30140         set TREE_CHAIN to NULL_TREE.
30141
30142 2014-04-03  Richard Biener  <rguenther@suse.de>
30143
30144         PR tree-optimization/60740
30145         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30146         over all GIMPLE_COND operands.
30147
30148 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30149
30150         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30151         (Weffc++): Remove Scott's numbering, merge lists and reference
30152         Wnon-virtual-dtor.
30153
30154 2014-04-03  Nick Clifton  <nickc@redhat.com>
30155
30156         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30157         properly.
30158
30159 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30160
30161         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30162         mention gcc_unreachable before failing.
30163         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30164         removed symbols.
30165
30166 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30167
30168         PR ipa/60659
30169         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30170         inconsistent code and instead mark the context inconsistent.
30171         (possible_polymorphic_call_targets): For inconsistent contexts
30172         return empty complete list.
30173
30174 2014-04-02  Anthony Green  <green@moxielogic.com>
30175
30176         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30177         (extendqisi2, extendhisi2): Define.
30178         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30179         (WCHAR_TYPE): Change to unsigned int.
30180
30181 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30182
30183         PR tree-optimization/60733
30184         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30185         insertion point for PHI candidates to be the end of the feeding
30186         block for the PHI argument.
30187
30188 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30189
30190         PR rtl-optimization/60650
30191         * lra-constraints.c (process_alt_operands): Decrease reject for
30192         earlyclobber matching.
30193
30194 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30195
30196         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30197
30198 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30199
30200         * config/spu/spu.c (pad_bb): Do not crash when the last
30201         insn is CODE_FOR_blockage.
30202
30203 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30204
30205         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30206         lies outside the target mode.
30207
30208 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30209
30210         PR target/60735
30211         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30212         software floating point or no floating point registers, do not
30213         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30214         in GPRs that occurs after we tested for GPRs that would never be
30215         true.
30216
30217         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30218         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30219         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30220         specifically allow DDmode, since that does not use the SPE SIMD
30221         instructions.
30222
30223 2014-04-02  Richard Biener  <rguenther@suse.de>
30224
30225         PR middle-end/60729
30226         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30227         MODE_INTs.  Properly use negv_optab.
30228         (expand_abs): Likewise.
30229
30230 2014-04-02  Richard Biener  <rguenther@suse.de>
30231
30232         PR bootstrap/60719
30233         * Makefile.in (install-driver): Guard extra installs with special
30234         names properly.
30235
30236 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30237
30238         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30239         Document vec_vgbbd.
30240
30241 2014-04-01  Richard Henderson  <rth@redhat.com>
30242
30243         PR target/60704
30244         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30245         alternative enabled before register allocation.
30246
30247 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30248
30249         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30250         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30251         typo.
30252         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30253         (nios2_got_address): Update nios2_large_got_address call site.
30254         (nios2_delegitimize_address): New function.
30255         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30256         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30257         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30258
30259 2014-04-01  Martin Husemann  <martin@duskware.de>
30260
30261         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30262         for -mabi=32.
30263
30264 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30265
30266         PR rtl-optimization/60604
30267         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30268         check from register_operand.
30269         (register_operand): Redefine in terms of general_operand.
30270         (nonmemory_operand): Use register_operand for the non-constant cases.
30271
30272 2014-04-01  Richard Biener  <rguenther@suse.de>
30273
30274         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30275
30276 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30277
30278         * doc/invoke.texi (mapp-regs): Clarify.
30279
30280 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30281
30282         * config/i386/avx512fintrin.h (__v32hi): Define type.
30283         (__v64qi): Likewise.
30284         (_mm512_set1_epi8): Define.
30285         (_mm512_set1_epi16): Define.
30286         (_mm512_set4_epi32): Define.
30287         (_mm512_set4_epi64): Define.
30288         (_mm512_set4_pd): Define.
30289         (_mm512_set4_ps): Define.
30290         (_mm512_setr4_epi64): Define.
30291         (_mm512_setr4_epi32): Define.
30292         (_mm512_setr4_pd): Define.
30293         (_mm512_setr4_ps): Define.
30294         (_mm512_setzero_epi32): Define.
30295
30296 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30297
30298         PR middle-end/60647
30299         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30300         callsite_arguments_match_p.  Updated all callers.  Also check types of
30301         corresponding formal parameters and actual arguments.
30302         (not_all_callers_have_enough_arguments_p) Renamed to
30303         some_callers_have_mismatched_arguments_p.
30304
30305 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30306
30307         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30308
30309 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30310
30311         PR target/60034
30312         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30313         section anchor.
30314
30315 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30316
30317         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30318         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30319         Split out
30320         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30321         Use FMAMODE_NOVF512 mode iterator.
30322         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30323         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30324         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30325         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30326         Split out
30327         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30328         Use VF_128_256 mode iterator.
30329         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30330         Ditto.
30331
30332 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30333
30334         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30335         static chain if needed.
30336
30337 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30338
30339         PR target/60697
30340         * lra-constraints.c (index_part_to_reg): New.
30341         (process_address): Use it.
30342
30343 2014-03-27  Jeff Law  <law@redhat.com>
30344             Jakub Jelinek  <jakub@redhat.com>
30345
30346         PR target/60648
30347         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30348         gen_rtx_{PLUS,MULT} to build up the address expression.
30349
30350         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30351         creating non-canonical RTL.
30352
30353 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30354
30355         PR ipa/60243
30356         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30357         functions; reorganize to make cheap checks first.
30358         (inline_small_functions): Do not estimate growth when dumping;
30359         it is expensive.
30360         * ipa-inline.h (inline_summary): Add min_size.
30361         (growth_likely_positive): New function.
30362         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30363         (set_cond_stmt_execution_predicate): Cleanup.
30364         (estimate_edge_size_and_time): Compute min_size.
30365         (estimate_calls_size_and_time): Likewise.
30366         (estimate_node_size_and_time): Likewise.
30367         (inline_update_overall_summary): Update min_size.
30368         (do_estimate_edge_time): Likewise.
30369         (do_estimate_edge_size): Update.
30370         (do_estimate_edge_hints): Update.
30371         (growth_likely_positive): New function.
30372
30373 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30374
30375         PR target/60693
30376         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30377         also if addr has VOIDmode.
30378
30379 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30380
30381         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30382         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30383         Declare extern.
30384         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30385         instructions as well as AdvancedSIMD loads.
30386
30387 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30388
30389         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30390         Use crypto_aese type.
30391         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30392         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30393         crypto_aese, crypto_aesmc.  Move to types.md.
30394         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30395         crypto_aesmc.
30396         * config/arm/iterators.md (crypto_type): Likewise.
30397
30398 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30399
30400         * cgraph.c: Include expr.h and tree-dfa.h.
30401         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30402         remove LHS.
30403
30404 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30405
30406         PR target/60675
30407         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30408         regs from checking multi-reg pseudos.
30409
30410 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30411
30412         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30413
30414 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30415
30416         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30417         if it would clobber the stack pointer, even temporarily.
30418
30419 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30420
30421         * mode-switching.c: Make small adjustments to the top comment.
30422
30423 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30424
30425         * config/rs6000/constraints.md (wD constraint): New constraint to
30426         match the constant integer to get the top DImode/DFmode out of a
30427         vector in a VSX register.
30428
30429         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30430         match the constant integer to get the top DImode/DFmode out of a
30431         vector in a VSX register.
30432
30433         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30434         for ISA 2.07.
30435
30436         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30437         vbpermq builtins.
30438
30439         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30440         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30441
30442         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30443         Optimize vec_extract of 64-bit values, where the value being
30444         extracted is in the top word, where we can use scalar
30445         instructions.  Add direct move and store support.  Combine the big
30446         endian/little endian vector select load support into a single insn.
30447         (vsx_extract_<mode>_internal1): Likewise.
30448         (vsx_extract_<mode>_internal2): Likewise.
30449         (vsx_extract_<mode>_load): Likewise.
30450         (vsx_extract_<mode>_store): Likewise.
30451         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30452         combined into vsx_extract_<mode>_load.
30453         (vsx_extract_<mode>_one_le): Likewise.
30454
30455         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30456         define the top 64-bit vector element.
30457
30458         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30459         constraint.
30460
30461         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30462         Document vec_vbpermq builtin.
30463
30464         PR target/60672
30465         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30466         enable use of xxsldwi and xxpermdi builtin functions.
30467         (vec_xxpermdi): Likewise.
30468
30469         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30470         Document use of vec_xxsldwi and vec_xxpermdi builtins.
30471
30472 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30473
30474         PR rtl-optimization/60650
30475         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30476         first_p.  Use it.
30477         (find_spills_for): New.
30478         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30479         Spill all pseudos on the second iteration.
30480
30481 2014-03-27  Marek Polacek  <polacek@redhat.com>
30482
30483         PR c/50347
30484         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30485         types.
30486
30487 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30488
30489         * config/s390/s390.c (s390_can_use_return_insn): Check for
30490         call-saved FPRs on 31 bit.
30491
30492 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
30493
30494         PR middle-end/60682
30495         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
30496         if they need regimplification, just drop them instead of
30497         calling gimple_regimplify_operands on them.
30498
30499 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30500
30501         PR target/60580
30502         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
30503         (aarch64_frame_pointer_required): Adjust logic.
30504         (aarch64_can_eliminate): Adjust logic.
30505         (aarch64_override_options_after_change): Adjust logic.
30506
30507 2014-03-27  Dehao Chen  <dehao@google.com>
30508
30509         * ipa-inline.c (early_inliner): Update node's inline info.
30510
30511 2014-03-26  Dehao Chen  <dehao@google.com>
30512
30513         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
30514         compiler inserted conditional jumps for NAN float check.
30515
30516 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30517
30518         * ubsan.h (ubsan_create_data): Change second argument's type
30519         to const location_t *.
30520         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
30521         _("<unknown>").
30522         (ubsan_create_data): Change second argument to const location_t *PLOC.
30523         Create Loc field whenever PLOC is non-NULL.
30524         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
30525         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
30526         callers.
30527
30528         PR other/59545
30529         * real.c (real_to_integer2): Change type of low to UHWI.
30530
30531 2014-03-26  Tobias Burnus  <burnus@net-b.de>
30532
30533         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
30534         (CILK_SELF_SPECS): New define.
30535         (driver_self_specs): Use it.
30536
30537 2014-03-26  Richard Biener  <rguenther@suse.de>
30538
30539         * tree-pretty-print.c (percent_K_format): Implement special
30540         case for LTO and its stripped down BLOCK tree.
30541
30542 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30543
30544         PR sanitizer/60636
30545         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
30546
30547         * tree-vrp.c (simplify_internal_call_using_ranges): If only
30548         one range is range_int_cst_p, but not both, at least optimize
30549         addition/subtraction of 0 and multiplication by 0 or 1.
30550         * gimple-fold.c (gimple_fold_call): Fold
30551         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
30552         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
30553         INTEGER_CSTs, try to fold at least x * 0 and y - y.
30554
30555 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
30556
30557         PR rtl-optimization/60452
30558         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
30559         <case REG>: Return 1 for invalid offsets from the frame pointer.
30560
30561 2014-03-26  Marek Polacek  <polacek@redhat.com>
30562
30563         PR c/37428
30564         * doc/extend.texi (C Extensions): Mention variable-length arrays in
30565         a structure/union.
30566
30567 2014-03-26  Marek Polacek  <polacek@redhat.com>
30568
30569         PR c/39525
30570         * doc/extend.texi (Designated Inits): Describe what happens to omitted
30571         field members.
30572
30573 2014-03-26  Marek Polacek  <polacek@redhat.com>
30574
30575         PR other/59545
30576         * ira-color.c (update_conflict_hard_regno_costs): Perform the
30577         multiplication in unsigned type.
30578
30579 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30580
30581         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
30582
30583 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30584
30585         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
30586
30587 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30588
30589         PR ipa/60315
30590         * cif-code.def (UNREACHABLE) New code.
30591         * ipa-inline.c (inline_small_functions): Skip edges to
30592         __builtlin_unreachable.
30593         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
30594         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
30595         predicate to __bulitin_unreachable.
30596         (set_cond_stmt_execution_predicate): Fix issue when
30597         invert_tree_comparison returns ERROR_MARK.
30598         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
30599         propagate to inline clones.
30600         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
30601         to unreachable.
30602         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
30603         * cgraphclones.c (cgraph_clone_node): If call destination is already
30604         ureachable, do not redirect it back.
30605         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
30606         unreachable.
30607
30608 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30609
30610         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
30611         Do not modify inline clones.
30612
30613 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30614
30615         * config/i386/i386.md (general_sext_operand): New mode attr.
30616         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
30617         don't generate (sign_extend (const_int)).
30618         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
30619         operands[2].  Use We constraint instead of <i> and
30620         <general_sext_operand> predicate instead of <general_operand>.
30621         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
30622         * config/i386/constraints.md (We): New constraint.
30623         * config/i386/predicates.md (x86_64_sext_operand,
30624         sext_operand): New predicates.
30625
30626 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30627
30628         PR ipa/60600
30629         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
30630         inconsistent devirtualizations to __builtin_unreachable.
30631
30632 2014-03-25  Marek Polacek  <polacek@redhat.com>
30633
30634         PR c/35449
30635         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
30636
30637 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
30638
30639         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
30640         order of elements for big-endian.
30641
30642 2014-03-25  Richard Biener  <rguenther@suse.de>
30643
30644         PR middle-end/60635
30645         * gimplify-me.c (gimple_regimplify_operands): Update the
30646         re-gimplifed stmt.
30647
30648 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30649
30650         PR ipa/59176
30651         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
30652         (lto_output_varpool_node): Likewise.
30653         (input_overwrite_node): Likewise.
30654         (input_varpool_node): Likewise.
30655
30656 2014-03-25  Richard Biener  <rguenther@suse.de>
30657
30658         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
30659         (run_gcc): Likewise.
30660
30661 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30662
30663         * combine.c (simplify_compare_const): Add MODE argument.
30664         Handle mode_width 0 as very large mode_width.
30665         (try_combine, simplify_comparison): Adjust callers.
30666
30667         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
30668         type to avoid signed integer overflow.
30669         * explow.c (plus_constant): Likewise.
30670
30671 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30672
30673         * doc/generic.texi: Correct typos.
30674
30675 2014-03-24  Tobias Burnus  <burnus@net-b.de>
30676
30677         * doc/invoke.texi (-flto): Expand section about
30678         using static libraries with LTO.
30679
30680 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30681
30682         PR rtl-optimization/60501
30683         * optabs.def (addptr3_optab): New optab.
30684         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
30685         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
30686         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
30687
30688         * lra.c (emit_add3_insn): Use the addptr pattern if available.
30689
30690         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
30691
30692 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
30693
30694         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
30695         _mm512_set1_pd.
30696
30697         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
30698         (_mm256_undefined_ps): Define.
30699         (_mm256_undefined_pd): Define.
30700         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
30701         (_mm_undefined_pd): Define.
30702         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
30703         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
30704         (_mm512_undefined_ps): Define.
30705         (_mm512_undefined_pd): Define.
30706         Use _mm*_undefined_*.
30707         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
30708
30709 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
30710
30711         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
30712         (lshr_simd): DI mode added.
30713         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
30714         (aarch64_ushr_simddi): Likewise.
30715         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
30716         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
30717         (vshrd_n_u64): Likewise.
30718
30719 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30720
30721         * Makefile.in (s-macro_list): Depend on cc1.
30722
30723 2014-03-23  Teresa Johnson  <tejohnson@google.com>
30724
30725         * ipa-utils.c (ipa_print_order): Use specified dump file.
30726
30727 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30728
30729         PR rtl-optimization/60601
30730         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
30731
30732         * gcc.c (eval_spec_function): Initialize save_growing_value.
30733
30734 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
30735
30736         PR sanitizer/60613
30737         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
30738         code == MINUS_EXPR, never swap op0 with op1.
30739
30740         * toplev.c (init_local_tick): Avoid signed integer multiplication
30741         overflow.
30742         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
30743         shift by first operand's bitsize.
30744
30745 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
30746
30747         PR target/60610
30748         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
30749         redefine to 1 or 0.
30750         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
30751         TARGET_ISA_64BIT_P(x).
30752
30753 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30754
30755         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
30756         pattern for vector nor instead of subtract from splat(-1).
30757         (altivec_expand_vec_perm_const_le): Likewise.
30758
30759 2014-03-21  Richard Henderson  <rth@twiddle.net>
30760
30761         PR target/60598
30762         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
30763         related insns after epilogue_completed.
30764
30765 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30766
30767         PR ipa/59176
30768         * cgraph.h (symtab_node): New flag body_removed.
30769         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
30770         when removing bodies.
30771         * symtab.c (dump_symtab_base): Dump body_removed flag.
30772         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
30773         had their bodies removed.
30774
30775 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30776
30777         PR ipa/60419
30778         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
30779         in the border.
30780
30781 2014-03-21  Richard Biener  <rguenther@suse.de>
30782
30783         PR tree-optimization/60577
30784         * tree-core.h (struct tree_base): Document nothrow_flag use
30785         in DECL_NONALIASED.
30786         * tree.h (DECL_NONALIASED): New.
30787         (may_be_aliased): Adjust.
30788         * coverage.c (build_var): Set DECL_NONALIASED.
30789
30790 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30791
30792         * expr.c (expand_expr_real_1): Remove outdated comment.
30793
30794 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
30795
30796         PR middle-end/60597
30797         * ira.c (adjust_cleared_regs): Call copy_rtx on
30798         *reg_equiv[REGNO (loc)].src_p before passing it to
30799         simplify_replace_fn_rtx.
30800
30801         PR target/60568
30802         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
30803         into CONST, put pic register as first operand of PLUS.  Use
30804         gen_const_mem for both 32-bit and 64-bit PIC got loads.
30805
30806 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30807
30808         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
30809
30810 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30811
30812         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
30813         around for store forwarding issue in the FPU on the UT699.
30814         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
30815         loads and operations if -mfix-ut699 is specified.
30816         (divtf3_hq): Tweak attribute.
30817         (sqrttf2_hq): Likewise.
30818
30819 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30820
30821         * calls.c (store_one_arg): Remove incorrect const qualification on the
30822         type of the temporary.
30823         * cfgexpand.c (expand_return): Likewise.
30824         * expr.c (expand_constructor): Likewise.
30825         (expand_expr_real_1): Likewise.
30826
30827 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30828
30829         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
30830         of parts.
30831
30832 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
30833
30834         PR target/60039
30835         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
30836
30837 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
30838
30839         * config/arm/aarch-common-protos.h
30840         (alu_cost_table): Fix spelling of "extend".
30841         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
30842
30843 2014-03-19  Richard Biener  <rguenther@suse.de>
30844
30845         PR middle-end/60553
30846         * tree-core.h (tree_type_common): Re-order pointer members
30847         to reduce recursion depth during GC walks.
30848
30849 2014-03-19  Marek Polacek  <polacek@redhat.com>
30850
30851         PR sanitizer/60569
30852         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
30853         before accessing it.
30854
30855 2014-03-19  Richard Biener  <rguenther@suse.de>
30856
30857         PR lto/59543
30858         * lto-streamer-in.c (input_function): In WPA stage do not drop
30859         debug stmts.
30860
30861 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
30862
30863         PR tree-optimization/60559
30864         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
30865         with build_zero_cst assignment.
30866
30867 2014-03-18  Kai Tietz  <ktietz@redhat.com>
30868
30869         PR rtl-optimization/56356
30870         * sdbout.c (sdbout_parms): Verify that parms'
30871         incoming argument is valid.
30872         (sdbout_reg_parms): Likewise.
30873
30874 2014-03-18  Richard Henderson  <rth@redhat.com>
30875
30876         PR target/60562
30877         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
30878         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
30879         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
30880
30881 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
30882
30883         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
30884         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
30885         Italicize plugin event names in description.  Explain that
30886         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
30887         Remind that no GCC functions should be called after PLUGIN_FINISH.
30888         Explain what pragmas with expansion are.
30889
30890 2014-03-18  Martin Liska  <mliska@suse.cz>
30891
30892         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
30893         gimple call statement is update.
30894         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
30895         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
30896
30897 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30898
30899         PR sanitizer/60557
30900         * ubsan.c (ubsan_instrument_unreachable): Call
30901         initialize_sanitizer_builtins.
30902         (ubsan_pass): Likewise.
30903
30904         PR sanitizer/60535
30905         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
30906         varpool_finalize_decl instead of rest_of_decl_compilation.
30907
30908 2014-03-18  Richard Biener  <rguenther@suse.de>
30909
30910         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
30911         by using bitmap_and_compl instead of bitmap_and_compl_into.
30912         (df_rd_transfer_function): Likewise.
30913
30914 2014-03-18  Richard Biener  <rguenther@suse.de>
30915
30916         * doc/lto.texi (fresolution): Fix typo.
30917
30918 2014-03-18  Richard Biener  <rguenther@suse.de>
30919
30920         * doc/invoke.texi (flto): Update for changes in 4.9.
30921
30922 2014-03-18  Richard Biener  <rguenther@suse.de>
30923
30924         * doc/loop.texi: Remove section on the removed lambda framework.
30925         Update loop docs with recent changes in preserving loop structure.
30926
30927 2014-03-18  Richard Biener  <rguenther@suse.de>
30928
30929         * doc/lto.texi (-fresolution): Document.
30930
30931 2014-03-18  Richard Biener  <rguenther@suse.de>
30932
30933         * doc/contrib.texi: Adjust my name.
30934
30935 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30936
30937         PR ipa/58721
30938         * internal-fn.c: Include diagnostic-core.h.
30939         (expand_BUILTIN_EXPECT): New function.
30940         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
30941         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
30942         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
30943         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
30944         IFN_BUILTIN_EXPECT.
30945         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
30946         Revert 3 argument __builtin_expect code.
30947         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
30948         * gimple-fold.c (gimple_fold_call): Likewise.
30949         * tree.h (fold_builtin_expect): New prototype.
30950         * builtins.c (build_builtin_expect_predicate): Add predictor
30951         argument, if non-NULL, create 3 argument __builtin_expect.
30952         (fold_builtin_expect): No longer static.  Add ARG2 argument,
30953         pass it through to build_builtin_expect_predicate.
30954         (fold_builtin_2): Adjust caller.
30955         (fold_builtin_3): Handle BUILT_IN_EXPECT.
30956         * internal-fn.def (BUILTIN_EXPECT): New.
30957
30958 2014-03-18  Tobias Burnus  <burnus@net-b.de>
30959
30960         PR ipa/58721
30961         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
30962         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
30963         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
30964
30965 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
30966
30967         PR ipa/58721
30968         * predict.c (combine_predictions_for_bb): Fix up formatting.
30969         (expr_expected_value_1, expr_expected_value): Add predictor argument,
30970         fill what it points to if non-NULL.
30971         (tree_predict_by_opcode): Adjust caller, use the predictor.
30972         * predict.def (PRED_COMPARE_AND_SWAP): Add.
30973
30974 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
30975
30976         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
30977         proper constant for the store mode.
30978
30979 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
30980
30981         * symtab.c (change_decl_assembler_name): Fix transparent alias
30982         chain construction.
30983
30984 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
30985
30986         * config/aarch64/aarch64.c: Correct the comments about the
30987         aarch64 stack layout.
30988
30989 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
30990
30991         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
30992         check for GF_OMP_FOR_KIND_FOR.
30993
30994 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
30995
30996         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
30997         ymm and zmm register names.
30998
30999 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
31000
31001         PR target/60516
31002         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31003         note creation for the 2010-08-31 changes.
31004
31005 2014-03-17  Marek Polacek  <polacek@redhat.com>
31006
31007         PR middle-end/60534
31008         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31009         as -fno-tree-loop-vectorize.
31010         (expand_omp_simd): Likewise.
31011
31012 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31013
31014         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31015         (eligible_for_call_delay): New prototype.
31016         * config/sparc/sparc.c (tls_call_delay): Rename into...
31017         (eligible_for_call_delay): ...this.  Return false if the instruction
31018         cannot be put in the delay slot of a branch.
31019         (eligible_for_restore_insn): Simplify.
31020         (eligible_for_return_delay): Return false if the instruction cannot be
31021         put in the delay slot of a branch and simplify.
31022         (eligible_for_sibcall_delay): Return false if the instruction cannot be
31023         put in the delay slot of a branch.
31024         * config/sparc/sparc.md (fix_ut699): New attribute.
31025         (tls_call_delay): Delete.
31026         (in_call_delay): Reimplement.
31027         (eligible_for_sibcall_delay): Rename into...
31028         (in_sibcall_delay): ...this.
31029         (eligible_for_return_delay): Rename into...
31030         (in_return_delay): ...this.
31031         (in_branch_delay): Reimplement.
31032         (in_uncond_branch_delay): Delete.
31033         (in_annul_branch_delay): Delete.
31034
31035 2014-03-14  Richard Henderson  <rth@redhat.com>
31036
31037         PR target/60525
31038         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31039         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31040         (*floathi<X87MODEF>2_i387_with_temp): Remove.
31041         (floathi splitters): Remove.
31042         (float<SWI48x>xf2): New pattern.
31043         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
31044         code that tried to handle DImode for 32-bit, but which was excluded
31045         by the pattern's condition.  Drop allocation of stack temporary.
31046         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31047         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31048         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31049         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31050         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31051         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31052         (*float<SWI48><MODEF>2_sse_interunit): Remove.
31053         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31054         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31055         (*float<SWI48x><X87MODEF>2_i387): Remove.
31056         (all float _with_temp splitters): Remove.
31057         (*float<SWI48x><MODEF>2_i387): New pattern.
31058         (*float<SWI48><MODEF>2_sse): New pattern.
31059         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31060         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31061
31062 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
31063             Marek Polacek  <polacek@redhat.com>
31064
31065         PR middle-end/60484
31066         * common.opt (dump_base_name_prefixed): New Variable.
31067         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31068         if x_dump_base_name_prefixed is already set, set it at the end.
31069
31070 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
31071
31072         PR rtl-optimization/60508
31073         * lra-constraints.c (get_reload_reg): Add new parameter
31074         in_subreg_p.
31075         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31076         Pass the new parameter values.
31077
31078 2014-03-14  Richard Biener  <rguenther@suse.de>
31079
31080         * common.opt: Revert unintented changes from r205065.
31081         * opts.c: Likewise.
31082
31083 2014-03-14  Richard Biener  <rguenther@suse.de>
31084
31085         PR middle-end/60518
31086         * cfghooks.c (split_block): Properly adjust all loops the
31087         block was a latch of.
31088
31089 2014-03-14  Martin Jambor  <mjambor@suse.cz>
31090
31091         PR lto/60461
31092         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31093         and simplify it.
31094
31095 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
31096
31097         PR target/59396
31098         * config/avr/avr.c (avr_set_current_function): Pass function name
31099         through default_strip_name_encoding before sanity checking instead
31100         of skipping the first char of the assembler name.
31101
31102 2014-03-13  Richard Henderson  <rth@redhat.com>
31103
31104         PR debug/60438
31105         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31106         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31107         * config/i386/i386-protos.h: Likewise.
31108         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31109         in the expander instead of a splitter.
31110         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31111         any possibility of requiring a memory.
31112         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31113         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31114         (fp branch splitters): Update for ix86_split_fp_branch.
31115         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31116         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31117         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31118         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31119         (*fop_<MODEF>_3_i387): Likewise.
31120         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31121         (splitters for the fop_* register patterns): Remove.
31122         (fscalexf4_i387): Rename from *fscalexf4_i387.
31123         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31124
31125 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31126
31127         PR tree-optimization/59779
31128         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31129         type for bitsize and maxsize instead of HOST_WIDE_INT.
31130
31131 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31132
31133         PR rtl-optimization/57320
31134         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31135         the CFG after thread_prologue_and_epilogue_insns.
31136
31137 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31138
31139         PR rtl-optimization/57189
31140         * lra-constraints.c (process_alt_operands): Disfavor spilling
31141         vector pseudos.
31142
31143 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31144
31145         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31146
31147 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31148
31149         PR tree-optimization/59025
31150         PR middle-end/60418
31151         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31152         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31153
31154 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31155
31156         PR target/60486
31157         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31158         calls of avr_out_plus_1.
31159
31160 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31161
31162         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31163         BB's single pred and update the father loop's latch info later.
31164
31165 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31166
31167         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31168         (VEC_M): Likewise.
31169         (VEC_N): Likewise.
31170         (VEC_R): Likewise.
31171         (VEC_base): Likewise.
31172         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31173         registers, we need to swap double words in little endian mode.
31174
31175         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31176         to be a container mode for 128-bit integer operations added in ISA
31177         2.07.  Unlike TImode and PTImode, the preferred register set is
31178         the Altivec/VMX registers for the 128-bit operations.
31179
31180         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31181         declarations.
31182         (rs6000_split_128bit_ok_p): Likewise.
31183
31184         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31185         macros for creating ISA 2.07 normal and overloaded builtin
31186         functions with 3 arguments.
31187         (BU_P8V_OVERLOAD_3): Likewise.
31188         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31189         for use as overloaded functions.
31190         (VPERM_1TI_UNS): Likewise.
31191         (VSEL_1TI): Likewise.
31192         (VSEL_1TI_UNS): Likewise.
31193         (ST_INTERNAL_1ti): Likewise.
31194         (LD_INTERNAL_1ti): Likewise.
31195         (XXSEL_1TI): Likewise.
31196         (XXSEL_1TI_UNS): Likewise.
31197         (VPERM_1TI): Likewise.
31198         (VPERM_1TI_UNS): Likewise.
31199         (XXPERMDI_1TI): Likewise.
31200         (SET_1TI): Likewise.
31201         (LXVD2X_V1TI): Likewise.
31202         (STXVD2X_V1TI): Likewise.
31203         (VEC_INIT_V1TI): Likewise.
31204         (VEC_SET_V1TI): Likewise.
31205         (VEC_EXT_V1TI): Likewise.
31206         (EQV_V1TI): Likewise.
31207         (NAND_V1TI): Likewise.
31208         (ORC_V1TI): Likewise.
31209         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31210         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31211         overloaded builtin.
31212         (VADDUQM): Likewise.
31213         (VSUBCUQ): Likewise.
31214         (VADDEUQM): Likewise.
31215         (VADDECUQ): Likewise.
31216         (VSUBEUQM): Likewise.
31217         (VSUBECUQ): Likewise.
31218
31219         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31220         __int128_t and __uint128_t types.
31221         (__uint128_type): Likewise.
31222         (altivec_categorize_keyword): Add support for vector __int128_t,
31223         vector __uint128_t, vector __int128, and vector unsigned __int128
31224         as a container type for TImode operations that need to be done in
31225         VSX/Altivec registers.
31226         (rs6000_macro_to_expand): Likewise.
31227         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31228         to support 128-bit integer instructions vaddcuq, vadduqm,
31229         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31230         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31231
31232         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31233         for V1TImode, and set up preferences to use VSX/Altivec registers.
31234         Setup VSX reload handlers.
31235         (rs6000_debug_reg_global): Likewise.
31236         (rs6000_init_hard_regno_mode_ok): Likewise.
31237         (rs6000_preferred_simd_mode): Likewise.
31238         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31239         (easy_altivec_constant): Likewise.
31240         (output_vec_const_move): Likewise.
31241         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31242         simple move.
31243         (rs6000_expand_vector_extract): Likewise.
31244         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31245         addressing.
31246         (rs6000_const_vec): Add support for V1TImode.
31247         (rs6000_emit_le_vsx_load): Swap double words when loading or
31248         storing TImode/V1TImode.
31249         (rs6000_emit_le_vsx_store): Likewise.
31250         (rs6000_emit_le_vsx_move): Likewise.
31251         (rs6000_emit_move): Add support for V1TImode.
31252         (altivec_expand_ld_builtin): Likewise.
31253         (altivec_expand_st_builtin): Likewise.
31254         (altivec_expand_vec_init_builtin): Likewise.
31255         (altivec_expand_builtin): Likewise.
31256         (rs6000_init_builtins): Add support for V1TImode type.  Add
31257         support for ISA 2.07 128-bit integer builtins.  Define type names
31258         for the VSX/Altivec vector types.
31259         (altivec_init_builtins): Add support for overloaded vector
31260         functions with V1TImode type.
31261         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31262         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31263         external function.
31264         (rs6000_split_128bit_ok_p): Likewise.
31265         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31266         __int128_t and vector __uint128_t.
31267
31268         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31269         and mode attributes.
31270         (VSX_M): Likewise.
31271         (VSX_M2): Likewise.
31272         (VSm): Likewise.
31273         (VSs): Likewise.
31274         (VSr): Likewise.
31275         (VSv): Likewise.
31276         (VS_scalar): Likewise.
31277         (VS_double): Likewise.
31278         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31279
31280         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31281         we support the ISA 2.07 128-bit integer arithmetic instructions.
31282         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31283         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31284         and TImode types for use with the builtin functions.
31285         (V1TI_type_node): Likewise.
31286         (unsigned_V1TI_type_node): Likewise.
31287         (intTI_type_internal_node): Likewise.
31288         (uintTI_type_internal_node): Likewise.
31289
31290         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31291         128-bit builtin functions.
31292         (UNSPEC_VADDEUQM): Likewise.
31293         (UNSPEC_VADDECUQ): Likewise.
31294         (UNSPEC_VSUBCUQ): Likewise.
31295         (UNSPEC_VSUBEUQM): Likewise.
31296         (UNSPEC_VSUBECUQ): Likewise.
31297         (VM): Add V1TImode to vector mode iterators.
31298         (VM2): Likewise.
31299         (VI_unit): Likewise.
31300         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31301         (altivec_vaddcuq): Likewise.
31302         (altivec_vsubuqm): Likewise.
31303         (altivec_vsubcuq): Likewise.
31304         (altivec_vaddeuqm): Likewise.
31305         (altivec_vaddecuq): Likewise.
31306         (altivec_vsubeuqm): Likewise.
31307         (altivec_vsubecuq): Likewise.
31308
31309         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31310         mode iterators.
31311         (BOOL_128): Likewise.
31312         (BOOL_REGS_OUTPUT): Likewise.
31313         (BOOL_REGS_OP1): Likewise.
31314         (BOOL_REGS_OP2): Likewise.
31315         (BOOL_REGS_UNARY): Likewise.
31316         (BOOL_REGS_AND_CR0): Likewise.
31317
31318         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31319         128-bit integer builtin support.
31320         (vec_vadduqm): Likewise.
31321         (vec_vaddecuq): Likewise.
31322         (vec_vaddeuqm): Likewise.
31323         (vec_vsubecuq): Likewise.
31324         (vec_vsubeuqm): Likewise.
31325         (vec_vsubcuq): Likewise.
31326         (vec_vsubuqm): Likewise.
31327
31328         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31329         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31330         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31331         128-bit integer add/subtract to ISA 2.07.
31332
31333 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31334
31335         * config/arc/arc.c (arc_predicate_delay_insns):
31336         Fix third argument passed to conditionalize_nonjump.
31337
31338 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31339
31340         * config/aarch64/aarch64-builtins.c
31341         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31342         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31343         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31344         instead of __builtin_lfloor.
31345         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31346
31347 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31348
31349         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31350         (tree_ssa_ifcombine_bb_1): New function.
31351         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31352         is an empty forwarder block to then_bb or vice versa and then_bb
31353         and else_bb are effectively swapped.
31354
31355 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31356
31357         PR target/60264
31358         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31359         REG_CFA_DEF_CFA note.
31360         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31361         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31362
31363 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31364
31365         PR tree-optimization/60454
31366         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31367
31368 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31369
31370         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31371         Do not define target_cpu_default2 to generic.
31372         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31373         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31374         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31375
31376 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31377             Marc Glisse  <marc.glisse@inria.fr>
31378
31379         PR tree-optimization/60502
31380         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31381         instead of build_low_bits_mask.
31382
31383 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31384
31385         PR middle-end/60482
31386         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31387         if there are multiple uses, but op doesn't live on E edge.
31388         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31389         clobber stmts before __builtin_unreachable.
31390
31391 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31392
31393         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31394         hard_frame_pointer_rtx.
31395         * cse.c (cse_insn): Remove volatile check.
31396         * cselib.c (cselib_process_insn): Likewise.
31397         * dse.c (scan_insn): Likewise.
31398
31399 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31400
31401         * config/arc/arc.c (conditionalize_nonjump): New function,
31402         broken out of ...
31403         (arc_ifcvt): ... this.
31404         (arc_predicate_delay_insns): Use it.
31405
31406 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31407
31408         * config/arc/predicates.md (extend_operand): During/after reload,
31409         allow const_int_operand.
31410         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31411         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31412         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31413         to "i".
31414         (umulsi3_highpart_i): Likewise.
31415
31416 2014-03-11  Richard Biener  <rguenther@suse.de>
31417
31418         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31419         Add asserts to guard possible wrong-code bugs.
31420
31421 2014-03-11  Richard Biener  <rguenther@suse.de>
31422
31423         PR tree-optimization/60429
31424         PR tree-optimization/60485
31425         * tree-ssa-structalias.c (set_union_with_increment): Properly
31426         take into account all fields that overlap the shifted vars.
31427         (do_sd_constraint): Likewise.
31428         (do_ds_constraint): Likewise.
31429         (get_constraint_for_ptr_offset): Likewise.
31430
31431 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31432
31433         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31434         (nios2_compute_frame_layout):
31435         Add calculation of cfun->machine->fp_save_offset.
31436         (nios2_expand_prologue): Correct setting of frame pointer register
31437         in prologue.
31438         (nios2_expand_epilogue): Update recovery of stack pointer from
31439         frame pointer accordingly.
31440         (nios2_initial_elimination_offset): Update calculation of offset
31441         for eliminating to HARD_FRAME_POINTER_REGNUM.
31442
31443 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
31444
31445         PR ipa/60457
31446         * ipa.c (symtab_remove_unreachable_nodes): Don't call
31447         cgraph_get_create_node on VAR_DECLs.
31448
31449 2014-03-10  Richard Biener  <rguenther@suse.de>
31450
31451         PR middle-end/60474
31452         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31453
31454 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
31455
31456         * config/vms/vms.opt (vms_float_format): New variable.
31457
31458 2014-03-08  Tobias Burnus  <burnus@net-b.de>
31459
31460         * doc/invoke.texi (-fcilkplus): Update implementation status.
31461
31462 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
31463             Richard Biener  <rguenther@suse.de>
31464
31465         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31466         consistently accross all TUs.
31467         (run_gcc): Enable -fshort-double automatically at link at link-time
31468         and disallow override.
31469
31470 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
31471
31472         PR target/58271
31473         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31474         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31475         if they can't be used.
31476
31477 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31478
31479         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31480         for Solaris 11/x86 ld.
31481         * configure: Regenerate.
31482
31483 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31484
31485         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31486         (LIB_TLS_SPEC): Save as ld_tls_libs.
31487         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31488         (HAVE_AS_IX86_TLSLDM): New test.
31489         * configure, config.in: Regenerate.
31490         * config/i386/i386.c (legitimize_tls_address): Fall back to
31491         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
31492         cannot support TLS_MODEL_LOCAL_DYNAMIC.
31493         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
31494         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
31495
31496 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
31497
31498         * common.opt (fira-loop-pressure): Mark as optimization.
31499
31500 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
31501
31502         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
31503         an OpenMP mappable type.
31504
31505 2014-03-06  Matthias Klose  <doko@ubuntu.com>
31506
31507         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
31508         MULTILIB_OSDIRNAMES is not defined.
31509
31510 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
31511             Meador Inge  <meadori@codesourcery.com>
31512
31513         PR target/58595
31514         * config/arm/arm.c (arm_tls_symbol_p): Remove.
31515         (arm_legitimize_address): Call legitimize_tls_address for any
31516         arm_tls_referenced_p expression, handle constant addend.  Call it
31517         before testing for !TARGET_ARM.
31518         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
31519
31520 2014-03-06  Richard Biener  <rguenther@suse.de>
31521
31522         PR middle-end/60445
31523         PR lto/60424
31524         PR lto/60427
31525         Revert
31526         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31527
31528         * tree-streamer.c (record_common_node): Assert we don't record
31529         nodes with type double.
31530         (preload_common_node): Skip type double, complex double and double
31531         pointer since it is now frontend dependent due to fshort-double option.
31532
31533 2014-03-06  Richard Biener  <rguenther@suse.de>
31534
31535         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
31536         or -fno-lto is specified and the linker has full plugin support.
31537         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
31538         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
31539         * lto-wrapper.c (merge_and_complain): Merge compile-time
31540         optimization levels.
31541         (run_gcc): And pass it through to the link options.
31542
31543 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
31544
31545         PR debug/60381
31546         Revert:
31547         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31548         PR debug/59992
31549         * cselib.c (remove_useless_values): Skip to avoid quadratic
31550         behavior if the condition moved from...
31551         (cselib_process_insn): ... here holds.
31552
31553 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31554
31555         PR plugins/59335
31556         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
31557         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
31558
31559         PR plugins/59335
31560         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31561         (TM_H): Add x86-tune.def.
31562
31563 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31564
31565         * config/aarch64/aarch64.c (generic_tunings):
31566         Use cortexa57_extra_costs.
31567
31568 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31569
31570         PR lto/60404
31571         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
31572         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
31573         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
31574         cost for in_lto_p.
31575
31576 2014-03-04  Heiher  <r@hev.cc>
31577
31578         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
31579         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
31580
31581 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
31582
31583         * config/i386/predicates.md (const2356_operand): Change to ...
31584         (const2367_operand): ... this.
31585         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
31586         const2367_operand.
31587         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31588         (*avx512pf_scatterpf<mode>sf): Ditto.
31589         (avx512pf_scatterpf<mode>df): Ditto.
31590         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31591         (*avx512pf_scatterpf<mode>df): Ditto.
31592         * config/i386/i386.c (ix86_expand_builtin): Update
31593         incorrect hint operand error message.
31594
31595 2014-03-04  Richard Biener  <rguenther@suse.de>
31596
31597         * lto-section-in.c (lto_get_section_data): Fix const cast.
31598
31599 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31600
31601         * tree-streamer.c (record_common_node): Assert we don't record
31602         nodes with type double.
31603         (preload_common_node): Skip type double, complex double and double
31604         pointer since it is now frontend dependent due to fshort-double option.
31605
31606 2014-03-04  Richard Biener  <rguenther@suse.de>
31607
31608         PR lto/60405
31609         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
31610         (lto_input_toplevel_asms): Likewise.
31611         * lto-section-in.c (lto_get_section_data): Instead do it here
31612         for every section.
31613
31614 2014-03-04  Richard Biener  <rguenther@suse.de>
31615
31616         PR tree-optimization/60382
31617         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
31618         dead PHIs a reduction.
31619
31620 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
31621
31622         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
31623         hint value.
31624         (_mm_prefetch): Move out of GCC target("sse") pragma.
31625         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
31626         GCC target("prfchw") pragma.
31627         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
31628         for locality <= 2.
31629         * config/i386/i386.c (ix86_option_override_internal): Enable
31630         -mprfchw with -mprefetchwt1.
31631
31632 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31633
31634         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
31635         Mark as varying.
31636
31637 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31638
31639         * opts.h (CL_PCH_IGNORE): Define.
31640         * targhooks.c (option_affects_pch_p):
31641         Return false for options that have CL_PCH_IGNORE set.
31642         * opt-functions.awk: Process PchIgnore.
31643         * doc/options.texi: Document PchIgnore.
31644
31645         * config/arc/arc.opt (misize): Add PchIgnore property.
31646
31647 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31648
31649         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
31650         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
31651         constraint on constants to permit them being loaded into
31652         GENERAL_REGS or BASE_REGS.
31653
31654 2014-03-03  Nick Clifton  <nickc@redhat.com>
31655
31656         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
31657         anti-cacnonical alternatives.
31658         (negandhi3_real): New pattern.
31659         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
31660
31661 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
31662
31663         * config/avr/avr-mcus.def: Remove atxmega16x1.
31664         * config/avr/avr-tables.opt: Regenerate.
31665         * config/avr/t-multilib: Regenerate.
31666         * doc/avr-mmcu.texi: Regenerate.
31667
31668 2014-03-03  Tobias Grosser  <tobias@grosser.es>
31669             Mircea Namolaru  <mircea.namolaru@inria.fr>
31670
31671         PR tree-optimization/58028
31672         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
31673         scalar dimensions.
31674
31675 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31676
31677         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
31678         not handled by recognizers.
31679
31680 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
31681
31682         PR middle-end/60175
31683         * function.c (expand_function_end): Don't emit
31684         clobber_return_register sequence if clobber_after is a BARRIER.
31685         * cfgexpand.c (construct_exit_block): Append instructions before
31686         return_label to prev_bb.
31687
31688 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31689
31690         * config/rs6000/constraints.md: Document reserved use of "wc".
31691
31692 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31693
31694         PR ipa/60150
31695         * ipa.c (function_and_variable_visibility): When dissolving comdat
31696         group, also set all symbols to local.
31697
31698 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31699
31700         PR ipa/60306
31701
31702         Revert:
31703         2013-12-14  Jan Hubicka  <jh@suse.cz>
31704         PR middle-end/58477
31705         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
31706
31707 2014-03-02  Jon Beniston  <jon@beniston.com>
31708
31709         PR bootstrap/48230
31710         PR bootstrap/50927
31711         PR bootstrap/52466
31712         PR target/46898
31713         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
31714         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
31715         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
31716         (simple_return, *simple_return): New patterns
31717         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
31718         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
31719
31720 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
31721
31722         * dwarf2out.c (gen_subprogram_die): Tidy.
31723
31724 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
31725
31726         PR target/60071
31727         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
31728         (*mov_t_msb_neg_negc): ... this new insn.
31729
31730 2014-02-28  Jason Merrill  <jason@redhat.com>
31731
31732         PR c++/58678
31733         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
31734         function.
31735
31736 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
31737
31738         PR c++/60314
31739         * dwarf2out.c (decltype_auto_die): New static.
31740         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
31741         (gen_type_die_with_usage): Handle 'decltype(auto)'.
31742         (is_cxx_auto): Likewise.
31743
31744 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
31745
31746         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
31747         we are not using general regs only.
31748
31749 2014-02-28  Richard Biener  <rguenther@suse.de>
31750
31751         PR target/60280
31752         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
31753         previous fix and only allow to remove trivial pre-headers
31754         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
31755         (remove_forwarder_block): Properly update the latch of a loop.
31756
31757 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31758
31759         PR debug/59992
31760         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
31761         (cselib_preserved_hash_table): New.
31762         (preserve_constants_and_equivs): Move preserved vals to it.
31763         (cselib_find_slot): Look it up first.
31764         (cselib_init): Initialize it.
31765         (cselib_finish): Release it.
31766         (dump_cselib_table): Dump it.
31767
31768 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31769
31770         PR debug/59992
31771         * cselib.c (remove_useless_values): Skip to avoid quadratic
31772         behavior if the condition moved from...
31773         (cselib_process_insn): ... here holds.
31774
31775 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31776
31777         PR debug/57232
31778         * var-tracking.c (vt_initialize): Apply the same condition to
31779         preserve the CFA base value.
31780
31781 2014-02-28  Joey Ye  <joey.ye@arm.com>
31782
31783         PR target/PR60169
31784         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
31785         if reload in progress or completed.
31786
31787 2014-02-28  Tobias Burnus  <burnus@net-b.de>
31788
31789         PR middle-end/60147
31790         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
31791         NAMELIST_DECL.
31792
31793 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
31794
31795         * doc/tm.texi.in (Condition Code Status): Update documention for
31796         relative locations of cc0-setter and cc0-user.
31797
31798 2014-02-27  Jeff Law  <law@redhat.com>
31799
31800         PR rtl-optimization/52714
31801         * combine.c (try_combine): When splitting an unrecognized PARALLEL
31802         into two independent simple sets, if I3 is a jump, ensure the
31803         pattern we place into I3 is a (set (pc) ...).
31804
31805 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
31806             Jeff Law  <law@redhat.com>
31807
31808         PR rtl-optimization/49847
31809         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
31810         are in different blocks.
31811         * doc/tm.texi (Condition Code Status): Update documention for
31812         relative locations of cc0-setter and cc0-user.
31813
31814 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
31815
31816         PR target/59222
31817         * lra.c (lra_emit_add): Check SUBREG too.
31818
31819 2014-02-27  Andreas Schwab  <schwab@suse.de>
31820
31821         * config/m68k/m68k.c (m68k_option_override): Disable
31822         -flive-range-shrinkage for classic m68k.
31823         (m68k_override_options_after_change): Likewise.
31824
31825 2014-02-27  Marek Polacek  <polacek@redhat.com>
31826
31827         PR middle-end/59223
31828         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
31829         -Wmaybe-uninitialized.
31830
31831 2014-02-27  Alan Modra  <amodra@gmail.com>
31832
31833         PR target/57936
31834         * reload1.c (emit_input_reload_insns): When reload_override_in,
31835         set old to rl->in_reg when rl->in_reg is a subreg.
31836
31837 2014-02-26  Richard Biener  <rguenther@suse.de>
31838
31839         PR bootstrap/60343
31840         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
31841
31842 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31843
31844         * common/config/i386/predicates.md (const1256_operand): Remove.
31845         (const2356_operand): New.
31846         (const_1_to_2_operand): Remove.
31847         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
31848         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
31849         (*avx512pf_gatherpf<mode>sf): Ditto.
31850         (avx512pf_gatherpf<mode>df): Ditto.
31851         (*avx512pf_gatherpf<mode>df_mask): Ditto.
31852         (*avx512pf_gatherpf<mode>df): Ditto.
31853         (avx512pf_scatterpf<mode>sf): Ditto.
31854         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31855         (*avx512pf_scatterpf<mode>sf): Ditto.
31856         (avx512pf_scatterpf<mode>df): Ditto.
31857         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31858         (*avx512pf_scatterpf<mode>df): Ditto.
31859         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
31860
31861 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
31862
31863         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
31864         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
31865         (_mm512_mask_testn_epi64_mask): Move to ...
31866         * config/i386/avx512cdintrin.h: Here.
31867         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
31868         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
31869         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
31870         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
31871         TARGET_AVX512F from TARGET_AVX512CD.
31872
31873 2014-02-26  Richard Biener  <rguenther@suse.de>
31874
31875         PR ipa/60327
31876         * ipa.c (walk_polymorphic_call_targets): Properly guard
31877         call to inline_update_overall_summary.
31878
31879 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
31880
31881         PR target/60280
31882         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
31883         and latches only if requested.  Fix latch if it is removed.
31884         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
31885         LOOPS_HAVE_PREHEADERS.
31886
31887 2014-02-25  Andrew Pinski  <apinski@cavium.com>
31888
31889         * builtins.c (expand_builtin_thread_pointer): Create a new target
31890         when the target is NULL.
31891
31892 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
31893
31894         PR rtl-optimization/60317
31895         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31896         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31897         * lra-assigns.c: Include params.h.
31898         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
31899         other reload pseudos considerations.
31900
31901 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31902
31903         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
31904         to use canonical form for nor<mode>3.
31905
31906 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31907
31908         PR target/55426
31909         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
31910         conversions.
31911
31912 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31913
31914         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
31915         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
31916         (ix86_handle_option): Handle OPT_mprefetchwt1.
31917         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
31918         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
31919         PREFETCHWT1 CPUID.
31920         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31921         OPTION_MASK_ISA_PREFETCHWT1.
31922         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
31923         (PTA_PREFETCHWT1): New.
31924         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
31925         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
31926         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
31927         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
31928         (*prefetch_avx512pf_<mode>_: Change into ...
31929         (*prefetch_prefetchwt1_<mode>: This.
31930         * config/i386/i386.opt (mprefetchwt1): New.
31931         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
31932         (_mm_prefetch): Handle intent to write.
31933         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
31934
31935 2014-02-25  Richard Biener  <rguenther@suse.de>
31936
31937         PR middle-end/60291
31938         * emit-rtl.c (mem_attrs_htab): Remove.
31939         (mem_attrs_htab_hash): Likewise.
31940         (mem_attrs_htab_eq): Likewise.
31941         (set_mem_attrs): Always allocate new mem-attrs when something changed.
31942         (init_emit_once): Do not allocate mem_attrs_htab.
31943
31944 2014-02-25  Richard Biener  <rguenther@suse.de>
31945
31946         PR lto/60319
31947         * lto-opts.c (lto_write_options): Output non-explicit conservative
31948         -fwrapv, -fno-trapv and -fno-strict-overflow.
31949         * lto-wrapper.c (merge_and_complain): Handle merging those options.
31950         (run_gcc): And pass them through.
31951
31952 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31953
31954         * sel-sched.c (calculate_new_fences): New parameter ptime.
31955         Calculate it as a maximum over all fence cycles.
31956         (sel_sched_region_2): Adjust the call to calculate_new_fences.
31957         Print the final schedule timing when sched_verbose.
31958
31959 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31960
31961         PR rtl-optimization/60292
31962         * sel-sched.c (fill_vec_av_set): Do not reset target availability
31963         bit fot the fence instruction.
31964
31965 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
31966
31967         * calls.h: Fix typo in comment.
31968
31969 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
31970
31971         * config/pa/pa.c (pa_output_move_double): Don't valididate when
31972         adjusting offsetable addresses.
31973
31974 2014-02-24  Guozhi Wei  <carrot@google.com>
31975
31976         * sparseset.h (sparseset_pop): Fix the wrong index.
31977
31978 2014-02-24  Walter Lee  <walt@tilera.com>
31979
31980         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
31981         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
31982         triplet.
31983         * common/config/tilegx/tilegx-common.c
31984         (TARGET_DEFAULT_TARGET_FLAGS): Define.
31985         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
31986         (LINK_SPEC): Ditto.
31987         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
31988         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
31989         (tilegx_gimplify_va_arg_expr): Handle big endian.
31990         (tilegx_expand_unaligned_load): Ditto.
31991         (tilegx_expand_unaligned_store): Ditto.
31992         (TARGET_RETURN_IN_MSB): New.
31993         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
31994         (TARGET_ENDIAN_DEFAULT): New.
31995         (TARGET_BIG_ENDIAN): Handle big endian.
31996         (BYTES_BIG_ENDIAN): Ditto.
31997         (WORDS_BIG_ENDIAN): Ditto.
31998         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
31999         (ENDIAN_SPEC): New.
32000         (EXTRA_SPECS): New.
32001         * config/tilegx/tilegx.md (extv): Handle big endian.
32002         (extzv): Ditto.
32003         (insn_st<n>): Ditto.
32004         (insn_st<n>_add<bitsuffix>): Ditto.
32005         (insn_stnt<n>): Ditto.
32006         (insn_stnt<n>_add<bitsuffix>):Ditto.
32007         (vec_interleave_highv8qi): Handle big endian.
32008         (vec_interleave_highv8qi_be): New.
32009         (vec_interleave_highv8qi_le): New.
32010         (insn_v1int_h): Handle big endian.
32011         (vec_interleave_lowv8qi): Handle big endian.
32012         (vec_interleave_lowv8qi_be): New.
32013         (vec_interleave_lowv8qi_le): New.
32014         (insn_v1int_l): Handle big endian.
32015         (vec_interleave_highv4hi): Handle big endian.
32016         (vec_interleave_highv4hi_be): New.
32017         (vec_interleave_highv4hi_le): New.
32018         (insn_v2int_h): Handle big endian.
32019         (vec_interleave_lowv4hi): Handle big endian.
32020         (vec_interleave_lowv4hi_be): New.
32021         (vec_interleave_lowv4hi_le): New.
32022         (insn_v2int_l): Handle big endian.
32023         (vec_interleave_highv2si): Handle big endian.
32024         (vec_interleave_highv2si_be): New.
32025         (vec_interleave_highv2si_le): New.
32026         (insn_v4int_h): Handle big endian.
32027         (vec_interleave_lowv2si): Handle big endian.
32028         (vec_interleave_lowv2si_be): New.
32029         (vec_interleave_lowv2si_le): New.
32030         (insn_v4int_l): Handle big endian.
32031         * config/tilegx/tilegx.opt (mbig-endian): New option.
32032         (mlittle-endian): New option.
32033         * doc/install.texi: Document tilegxbe-linux.
32034         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32035
32036 2014-02-24  Martin Jambor  <mjambor@suse.cz>
32037
32038         PR ipa/60266
32039         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32040         there are no parameter descriptors.
32041
32042 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
32043
32044         PR rtl-optimization/60268
32045         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32046         initialization to ...
32047         (sched_rgn_init): ... here.
32048         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32049
32050 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32051
32052         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32053         names.
32054
32055 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
32056
32057         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32058         definition.
32059
32060 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32061
32062         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32063         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32064
32065 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32066
32067         * config/microblaze/predicates.md: Add cmp_op predicate.
32068         * config/microblaze/microblaze.md: Add branch_compare instruction
32069         which uses cmp_op predicate and emits cmp insn before branch.
32070         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32071         to microblaze_expand_conditional_branch and consolidate logic.
32072         (microblaze_expand_conditional_branch): emit branch_compare
32073         insn instead of handling cmp op separate from branch insn.
32074
32075 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32076
32077         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32078         to permit subregs.
32079
32080 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32081
32082         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32083         define_insn with define_expand and new define_insn
32084         *altivec_lve<VI_char>x_internal.
32085         (altivec_stve<VI_char>x): Replace define_insn with define_expand
32086         and new define_insn *altivec_stve<VI_char>x_internal.
32087         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32088         prototype.
32089         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32090         lve*x built-ins.
32091         (altivec_expand_stvex_be): New function.
32092
32093 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
32094
32095         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32096         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32097         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32098         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32099
32100 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32101
32102         PR target/60298
32103         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32104         instead of emit_move_insn.
32105
32106 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32107
32108         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32109         vspltw with vsldoi.
32110         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32111         gen_altivec_vsumsws.
32112
32113 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32114
32115         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32116         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32117         (altivec_lvxl_<mode>): New define_expand incorporating
32118         -maltivec=be semantics where needed.
32119         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32120         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32121         semantics where needed.
32122         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32123         (altivec_stvx_<mode>): New define_expand incorporating
32124         -maltivec=be semantics where needed.
32125         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32126         VM2 iterator instead of V4SI.
32127         (altivec_stvxl_<mode>): New define_expand incorporating
32128         -maltivec=be semantics where needed.
32129         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32130         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32131         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32132         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32133         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32134         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32135         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32136         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32137         ALTIVEC_BUILTIN_STVXL.
32138         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32139         (altivec_expand_stvx_be): Likewise.
32140         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32141         (altivec_expand_lvx_be): Likewise.
32142         (altivec_expand_stvx_be): Likewise.
32143         (altivec_expand_builtin): Add cases for
32144         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32145         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32146         (altivec_init_builtins): Add definitions for
32147         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32148         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32149
32150 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32151
32152         * doc/invoke.texi (mvirt, mno-virt): Document.
32153         * config/mips/mips.opt (mvirt): New option.
32154         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32155
32156 2014-02-21  Richard Biener  <rguenther@suse.de>
32157
32158         PR tree-optimization/60276
32159         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32160         (STMT_VINFO_MIN_NEG_DIST): New macro.
32161         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32162         STMT_VINFO_MIN_NEG_DIST.
32163         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32164         made for negative dependence distances still hold.
32165
32166 2014-02-21  Richard Biener  <rguenther@suse.de>
32167
32168         PR middle-end/60291
32169         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32170         DECL_INITIAL for globals not in the current function context.
32171
32172 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32173
32174         PR tree-optimization/56490
32175         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32176         * tree-ssa-uninit.c: Include params.h.
32177         (compute_control_dep_chain): Add num_calls argument, return false
32178         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32179         num_calls to recursive call.
32180         (find_predicates): Change dep_chain into normal array,
32181         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32182         variable and adjust compute_control_dep_chain caller.
32183         (find_def_preds): Likewise.
32184
32185 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32186
32187         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32188         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32189
32190 2014-02-21  Nick Clifton  <nickc@redhat.com>
32191
32192         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32193         (pushhi1): Likewise.
32194         (popqi1): Add mode to pre_dec.
32195         (pophi1): Likewise.
32196
32197 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32198
32199         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32200         mode for mask of V8SFmode permutation.
32201
32202 2014-02-20  Richard Henderson  <rth@redhat.com>
32203
32204         PR c++/60272
32205         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32206         a new pseudo for OLDVAL.
32207
32208 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32209
32210         PR target/57896
32211         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32212         gen_reg_rtx if d->testing_p.
32213         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32214         if d->testing_p and we will certainly return true.
32215         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32216         if d->testing_p.
32217
32218 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32219
32220         * emit-rtl.c (gen_reg_rtx): Assert that
32221         crtl->emit.regno_pointer_align_length is non-zero.
32222
32223 2014-02-20  Richard Henderson  <rth@redhat.com>
32224
32225         PR c++/60272
32226         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32227         on failure the store back into EXPECT.
32228
32229 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32230             Sandra Loosemore  <sandra@codesourcery.com>
32231
32232         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32233         * config/nios2/nios2.c (nios2_function_profiler): Add
32234         -fPIC (flag_pic == 2) support.
32235         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32236         (nios2_large_offset_p): New function.
32237         (nios2_unspec_reloc_p): Move up position, update to use
32238         nios2_large_offset_p.
32239         (nios2_unspec_address): Remove function.
32240         (nios2_unspec_offset): New function.
32241         (nios2_large_got_address): New function.
32242         (nios2_got_address): Add large offset support.
32243         (nios2_legitimize_tls_address): Update usage of removed and new
32244         functions.
32245         (nios2_symbol_binds_local_p): New function.
32246         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32247         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32248         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32249         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32250         processing for (const (unspec ...)).
32251         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32252
32253 2014-02-20  Richard Biener  <rguenther@suse.de>
32254
32255         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32256         doing the substitution.
32257         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32258
32259 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32260
32261         PR ipa/55260
32262         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32263         info when checking whether lattices are bottom.
32264
32265 2014-02-20  Richard Biener  <rguenther@suse.de>
32266
32267         PR middle-end/60221
32268         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32269         regions at -O0.
32270
32271 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32272
32273         PR ipa/58555
32274         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32275         parameter specifying the scaling.
32276         (inline_call): Update.
32277         (want_inline_recursively): Guard division by zero.
32278         (recursive_inlining): Update.
32279         * ipa-inline.h (clone_inlined_nodes): Update.
32280
32281 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32282
32283         PR target/60204
32284         * config/i386/i386.c (classify_argument): Pass structures of size
32285         64 bytes or less in register.
32286
32287 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32288             Kirill Yukhin  <kirill.yukhin@intel.com>
32289
32290         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32291         (_mm_rcp28_round_ss): Ditto.
32292         (_mm_rsqrt28_round_sd): Ditto.
32293         (_mm_rsqrt28_round_ss): Ditto.
32294         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32295         (_mm_rcp14_round_ss): Ditto.
32296         (_mm_rsqrt14_round_sd): Ditto.
32297         (_mm_rsqrt14_round_ss): Ditto.
32298         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32299         the first input operand, get rid of match_dup.
32300         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32301         attribute to sse.
32302         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32303         Ditto.
32304         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32305         operand as the first input operand, set type attribute.
32306         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32307         Set type attribute.
32308         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32309         operand as the first input operand, set type attribute.
32310
32311 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32312
32313         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32314         bit of zero.
32315
32316 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32317
32318         PR target/60207
32319         * config/i386/i386.c (construct_container): Remove TFmode check
32320         for X86_64_INTEGER_CLASS.
32321
32322 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32323
32324         PR target/59794
32325         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32326         only when -Wpsabi is enabled.
32327
32328 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32329
32330         PR target/59799
32331         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32332         passing arrays in registers are the same as for structs, so remove the
32333         special case for them.
32334
32335 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32336
32337         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32338         destination type, extract only the valid bits if the source type is not
32339         integral and has a different mode.
32340
32341 2014-02-19  Richard Biener  <rguenther@suse.de>
32342
32343         PR ipa/60243
32344         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32345         for all calls.
32346
32347 2014-02-19  Richard Biener  <rguenther@suse.de>
32348
32349         PR ipa/60243
32350         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32351         (ipa_modify_call_arguments): Emit an argument load explicitely and
32352         preserve virtual SSA form there and for the replacement call.
32353         Do not update SSA form nor free dominance info.
32354
32355 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32356
32357         * ipa.c (function_and_variable_visibility): Also clear WEAK
32358         flag when disolving COMDAT_GROUP.
32359
32360 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32361
32362         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32363         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32364         not devirtualizing.
32365         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32366         do more sanity checks.
32367         (detect_type_change): Return true when giving up early.
32368         (compute_complex_assign_jump_func): Fix type parameter of
32369         ipa_set_ancestor_jf.
32370         (compute_complex_ancestor_jump_func): Likewise.
32371         (update_jump_functions_after_inlining): Fix updating of
32372         ancestor function.
32373         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32374
32375 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32376
32377         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32378         inline clones when edge disappears.
32379
32380 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32381
32382         PR target/60203
32383         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32384         Split 64-bit moves into 2 patterns.  Do not allow the use of
32385         direct move for TDmode in little endian, since the decimal value
32386         has little endian bytes within a word, but the 64-bit pieces are
32387         ordered in a big endian fashion, and normal subreg's of TDmode are
32388         not allowed.
32389         (mov<mode>_64bit_dm): Likewise.
32390         (movtd_64bit_nodm): Likewise.
32391
32392 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32393
32394         PR tree-optimization/60174
32395         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32396         statement of an SSA_NAME that occurs in an abnormal PHI node.
32397
32398 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32399
32400         PR sanitizer/60142
32401         * final.c (SEEN_BB): Remove.
32402         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32403         (final_scan_insn): Don't force_source_line on second
32404         NOTE_INSN_BASIC_BLOCK.
32405
32406 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32407
32408         PR target/60205
32409         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32410         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32411         (type_natural_mode): Warn ABI change when %zmm register is not
32412         available for AVX512F vector value passing.
32413
32414 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32415
32416         PR target/60193
32417         * config/i386/i386.c (ix86_expand_prologue): Use value in
32418         rax register as displacement when restoring %r10 or %rax.
32419         Fix wrong offset when restoring both registers.
32420
32421 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32422
32423         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32424         assertion with conditional return.
32425
32426 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32427             Uros Bizjak  <ubizjak@gmail.com>
32428
32429         PR driver/60233
32430         * config/i386/driver-i386.c (host_detect_local_cpu): If
32431         YMM state is not saved by the OS, also clear has_f16c.  Move
32432         CPUID 0x80000001 handling before YMM state saving checking.
32433
32434 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32435
32436         PR rtl-optimization/58960
32437         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32438         factored out from ...
32439         (sched_init): ... here.
32440         (free_global_sched_pressure_data): New, factored out from ...
32441         (sched_finish): ... here.
32442         * sched-int.h (free_global_sched_pressure_data): Declare.
32443         * sched-rgn.c (nr_regions_initial): New static global.
32444         (haifa_find_rgns): Initialize it.
32445         (schedule_region): Disable sched-pressure for the newly
32446         generated regions.
32447
32448 2014-02-17  Richard Biener  <rguenther@suse.de>
32449
32450         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32451         release SSA defs of pattern stmts.
32452
32453 2014-02-17  Richard Biener  <rguenther@suse.de>
32454
32455         * tree-inline.c (expand_call_inline): Release the virtual
32456         operand defined by the call we are about to inline.
32457
32458 2014-02-17  Richard Biener  <rguenther@suse.de>
32459
32460         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32461
32462 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
32463             Ilya Tocar  <ilya.tocar@intel.com>
32464
32465         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32466         arguments order in builtin.
32467         (_mm512_permutexvar_epi64): Ditto.
32468         (_mm512_mask_permutexvar_epi64): Ditto
32469         (_mm512_maskz_permutexvar_epi32): Ditto
32470         (_mm512_permutexvar_epi32): Ditto
32471         (_mm512_mask_permutexvar_epi32): Ditto
32472
32473 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32474
32475         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32476         (p8_vmrgow): Likewise.
32477
32478 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32479
32480         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32481         endian targets.
32482
32483 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
32484
32485         PR target/60203
32486         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32487         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32488         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
32489         using direct move instructions on ISA 2.07.  Also adjust
32490         instruction length for 64-bit.
32491         (mov<mode>_64bit, TFmode/TDmode): Likewise.
32492         (mov<mode>_32bit, TFmode/TDmode): Likewise.
32493
32494 2014-02-15  Alan Modra  <amodra@gmail.com>
32495
32496         PR target/58675
32497         PR target/57935
32498         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
32499         find_replacement on parts of insn rtl that might be reloaded.
32500
32501 2014-02-15  Richard Biener  <rguenther@suse.de>
32502
32503         PR tree-optimization/60183
32504         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
32505         (tree_ssa_phiprop): Calculate and free post-dominators.
32506
32507 2014-02-14  Jeff Law  <law@redhat.com>
32508
32509         PR rtl-optimization/60131
32510         * ree.c (get_extended_src_reg): New function.
32511         (combine_reaching_defs): Use it rather than assuming location of REG.
32512         (find_and_remove_re): Verify first operand of extension is
32513         a REG before adding the insns to the copy list.
32514
32515 2014-02-14  Roland McGrath  <mcgrathr@google.com>
32516
32517         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
32518         * configure: Regenerated.
32519         * config.in: Regenerated.
32520         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
32521         instead of ASM_SHORT.
32522
32523 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
32524             Richard Earnshaw  <rearnsha@arm.com>
32525
32526         PR rtl-optimization/59535
32527         * lra-constraints.c (process_alt_operands): Encourage alternative
32528         when unassigned pseudo class is superset of the alternative class.
32529         (inherit_reload_reg): Don't inherit when optimizing for code size.
32530         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
32531         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
32532         modes not less than 4 for Thumb1.
32533
32534 2014-02-14  Kyle McMartin  <kyle@redhat.com>
32535
32536         PR pch/60010
32537         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
32538
32539 2014-02-14  Richard Biener  <rguenther@suse.de>
32540
32541         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
32542         (get_frame_arg): Drop the assert with langhook types_compatible_p.
32543         Do not strip INDIRECT_REFs.
32544
32545 2014-02-14  Richard Biener  <rguenther@suse.de>
32546
32547         PR lto/60179
32548         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
32549         DECL_FUNCTION_SPECIFIC_TARGET.
32550         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
32551         * tree-streamer-out.c (pack_ts_target_option): Remove.
32552         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
32553         (write_ts_function_decl_tree_pointers): Do not stream
32554         DECL_FUNCTION_SPECIFIC_TARGET.
32555         * tree-streamer-in.c (unpack_ts_target_option): Remove.
32556         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
32557         (lto_input_ts_function_decl_tree_pointers): Do not stream
32558         DECL_FUNCTION_SPECIFIC_TARGET.
32559
32560 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
32561
32562         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
32563         (get_initial_def_for_induction, vectorizable_induction): Ignore
32564         debug stmts when looking for exit_phi.
32565         (vectorizable_live_operation): Fix up condition.
32566
32567 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32568
32569         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
32570         nreverse() because it changes the content of original tree list.
32571
32572 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32573
32574         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
32575         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
32576
32577 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32578
32579         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
32580         GNU coding standards.
32581
32582 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32583
32584         PR debug/60152
32585         * dwarf2out.c (gen_subprogram_die): Don't call
32586         add_calling_convention_attribute if subr_die is old_die.
32587
32588 2014-02-13  Sharad Singhai  <singhai@google.com>
32589
32590         * doc/optinfo.texi: Fix order of nodes.
32591
32592 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
32593
32594         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
32595         operands[2], not operands[3].
32596
32597 2014-02-13  Richard Biener  <rguenther@suse.de>
32598
32599         PR bootstrap/59878
32600         * doc/install.texi (ISL): Update recommended version to 0.12.2,
32601         mention the possibility of an in-tree build.
32602         (CLooG): Update recommended version to 0.18.1, mention the
32603         possibility of an in-tree build and clarify that the ISL
32604         bundled with CLooG does not work.
32605
32606 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32607
32608         PR target/43546
32609         * expr.c (compress_float_constant): If x is a hard register,
32610         extend into a pseudo and then move to x.
32611
32612 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32613
32614         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
32615         caused by bad second argument to warning_at() with -mhotpatch and
32616         nested functions (e.g. with gfortran).
32617
32618 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
32619
32620         * opts.c (option_name): Remove "enabled by default" rider.
32621
32622 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
32623
32624         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
32625
32626 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32627             Uros Bizjak  <ubizjak@gmail.com>
32628
32629         PR target/60151
32630         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
32631         * configure: Regenerated.
32632
32633 2014-02-12  Richard Biener  <rguenther@suse.de>
32634
32635         * vec.c (vec_prefix::calculate_allocation): Move as
32636         inline variant to vec.h.
32637         (vec_prefix::calculate_allocation_1): New out-of-line version.
32638         * vec.h (vec_prefix::calculate_allocation_1): Declare.
32639         (vec_prefix::m_has_auto_buf): Rename to ...
32640         (vec_prefix::m_using_auto_storage): ... this.
32641         (vec_prefix::calculate_allocation): Inline the easy cases
32642         and dispatch to calculate_allocation_1 which doesn't need the
32643         prefix address.
32644         (va_heap::reserve): Use gcc_checking_assert.
32645         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
32646         m_using_auto_storage.
32647         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
32648         member and adjust.
32649         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
32650         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
32651         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
32652
32653 2014-02-12  Richard Biener  <rguenther@suse.de>
32654
32655         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
32656         when we found a dependence.
32657
32658 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
32659
32660         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
32661         common code...
32662         (maybe_fold_stmt): ... into this new function.
32663         * omp-low.c (lower_omp): Update comment.
32664
32665         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
32666         last use.
32667
32668         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
32669         dereference.
32670
32671 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
32672
32673         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
32674         identifiers in comments.
32675         (cortexa53_extra_costs): Likewise.
32676         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
32677         (cortexa7_extra_costs): Likewise.
32678         (cortexa12_extra_costs): Likewise.
32679         (cortexa15_extra_costs): Likewise.
32680         (v7m_extra_costs): Likewise.
32681
32682 2014-02-12  Richard Biener  <rguenther@suse.de>
32683
32684         PR middle-end/60092
32685         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
32686         of posix_memalign being successful.
32687         (lower_stmt): Restrict lowering of posix_memalign to when
32688         -ftree-bit-ccp is enabled.
32689
32690 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32691
32692         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
32693         arg_loc.
32694         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
32695
32696 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
32697
32698         PR rtl-optimization/60116
32699         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
32700         other_insn once the combination has been validated.
32701
32702 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
32703
32704         PR lto/59468
32705         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
32706         and wrapper.
32707         * ipa-devirt.c: Include demangle.h
32708         (odr_violation_reported): New static variable.
32709         (add_type_duplicate): Update odr_violations.
32710         (maybe_record_node): Add completep parameter; update it.
32711         (record_target_from_binfo): Add COMPLETEP parameter;
32712         update it as needed.
32713         (possible_polymorphic_call_targets_1): Likewise.
32714         (struct polymorphic_call_target_d): Add nonconstruction_targets;
32715         rename FINAL to COMPLETE.
32716         (record_targets_from_bases): Sanity check we found the binfo;
32717         fix COMPLETEP updating.
32718         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
32719         parameter, fix computing of COMPLETEP.
32720         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
32721         at LTO time do demangling.
32722         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
32723         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
32724         parameter.
32725         (gimple_get_virt_method_for_binfo): Likewise.
32726         * gimple-fold.h (gimple_get_virt_method_for_binfo,
32727         gimple_get_virt_method_for_vtable): Update prototypes.
32728
32729 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
32730
32731         PR target/49008
32732         * genautomata.c (add_presence_absence): Fix typo with
32733         {final_}presence_list.
32734
32735 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
32736
32737         PR target/60137
32738         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
32739         for VSX/Altivec vectors that land in GPR registers.
32740
32741 2014-02-11  Richard Henderson  <rth@redhat.com>
32742             Jakub Jelinek  <jakub@redhat.com>
32743
32744         PR debug/59776
32745         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
32746         around drhs if type conversion to lacc->type is not useless.
32747
32748 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32749
32750         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
32751         tuning struct.
32752         (cortex-a57.cortex-a53): Likewise.
32753         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
32754
32755 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32756
32757         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
32758         arm_restrict_it.
32759
32760 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
32761
32762         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
32763         add_options_for_arm_vfp3.
32764
32765 2014-02-11  Jeff Law  <law@redhat.com>
32766
32767         PR middle-end/54041
32768         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
32769         object with an undesirable mode.
32770
32771 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32772
32773         PR libgomp/60107
32774         * config/i386/sol2-9.h: New file.
32775         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
32776         *-*-solaris2.9*): Use it.
32777
32778 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32779
32780         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
32781         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
32782
32783 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32784
32785         * config/microblaze/microblaze.c: Extend mcpu version format
32786
32787 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
32788
32789         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
32790
32791 2014-02-10  Richard Henderson  <rth@redhat.com>
32792
32793         PR target/59927
32794         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
32795         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
32796         ms-abi vs -mno-accumulate-outgoing-args.
32797         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
32798         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
32799         respect to ms-abi.
32800
32801 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32802
32803         PR middle-end/60080
32804         * cfgexpand.c (expand_asm_operands): Attach source location to
32805         ASM_INPUT rtx objects.
32806         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
32807
32808 2014-02-10  Nick Clifton  <nickc@redhat.com>
32809
32810         * config/mn10300/mn10300.c (popcount): New function.
32811         (mn10300_expand_prologue): Include saved registers in stack usage
32812         count.
32813
32814 2014-02-10  Jeff Law  <law@redhat.com>
32815
32816         PR middle-end/52306
32817         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
32818         when changing the SET_DEST of a prior insn to avoid an input reload.
32819
32820 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32821
32822         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
32823         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
32824         -mcall-openbsd, or -mcall-linux.
32825         (CC1_ENDIAN_BIG_SPEC): Remove.
32826         (CC1_ENDIAN_LITTLE_SPEC): Remove.
32827         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32828         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
32829         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
32830         and %cc1_endian_default.
32831         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32832
32833 2014-02-10  Richard Biener  <rguenther@suse.de>
32834
32835         PR tree-optimization/60115
32836         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
32837         MEM_REF handling.  Properly verify that the accesses are not
32838         out of the objects bound.
32839
32840 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32841
32842         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
32843         coretex to cortex.
32844
32845 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
32846
32847         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
32848         proper constants and fix formatting.
32849         (possible_polymorphic_call_targets): Fix formatting.
32850
32851 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
32852             Ilya Tocar  <ilya.tocar@intel.com>
32853
32854         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
32855         (_mm512_loadu_epi32): Renamed into...
32856         (_mm512_loadu_si512): This.
32857         (_mm512_storeu_epi32): Renamed into...
32858         (_mm512_storeu_si512): This.
32859         (_mm512_maskz_ceil_ps): Removed.
32860         (_mm512_maskz_ceil_pd): Ditto.
32861         (_mm512_maskz_floor_ps): Ditto.
32862         (_mm512_maskz_floor_pd): Ditto.
32863         (_mm512_floor_round_ps): Ditto.
32864         (_mm512_floor_round_pd): Ditto.
32865         (_mm512_ceil_round_ps): Ditto.
32866         (_mm512_ceil_round_pd): Ditto.
32867         (_mm512_mask_floor_round_ps): Ditto.
32868         (_mm512_mask_floor_round_pd): Ditto.
32869         (_mm512_mask_ceil_round_ps): Ditto.
32870         (_mm512_mask_ceil_round_pd): Ditto.
32871         (_mm512_maskz_floor_round_ps): Ditto.
32872         (_mm512_maskz_floor_round_pd): Ditto.
32873         (_mm512_maskz_ceil_round_ps): Ditto.
32874         (_mm512_maskz_ceil_round_pd): Ditto.
32875         (_mm512_expand_pd): Ditto.
32876         (_mm512_expand_ps): Ditto.
32877         * config/i386/i386.c (ix86_builtins): Remove
32878         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
32879         (bdesc_args): Ditto.
32880         * config/i386/predicates.md (const1256_operand): New.
32881         (const_1_to_2_operand): Ditto.
32882         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32883         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32884         (*avx512pf_gatherpf<mode>sf): Ditto.
32885         (avx512pf_gatherpf<mode>df): Ditto.
32886         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32887         (*avx512pf_gatherpf<mode>df): Ditto.
32888         (avx512pf_scatterpf<mode>sf): Ditto.
32889         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32890         (*avx512pf_scatterpf<mode>sf): Ditto.
32891         (avx512pf_scatterpf<mode>df): Ditto.
32892         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32893         (*avx512pf_scatterpf<mode>df): Ditto.
32894         (avx512f_expand<mode>): Removed.
32895         (<shift_insn><mode>3<mask_name>): Change predicate type.
32896
32897 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32898
32899         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
32900         not at the end of datarefs vector use ordered_remove to avoid
32901         reordering datarefs vector.
32902
32903         PR c/59984
32904         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
32905         mark local addressable non-static vars as GOVD_PRIVATE
32906         instead of GOVD_LOCAL.
32907         * omp-low.c (lower_omp_for): Move gimple_bind_vars
32908         and BLOCK_VARS of gimple_bind_block to new_stmt rather
32909         than copying them.
32910
32911         PR middle-end/60092
32912         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
32913         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
32914         assume_aligned or alloc_align attributes.
32915         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
32916         arguments.  Handle also assume_aligned and alloc_align attributes.
32917         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
32918         calls to functions with assume_aligned or alloc_align attributes.
32919         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
32920
32921 2014-02-08  Terry Guo  <terry.guo@arm.com>
32922
32923         * doc/invoke.texi: Document ARM -march=armv7e-m.
32924
32925 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32926
32927         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
32928         flag on __cilkrts_rethrow builtin.
32929
32930         PR ipa/60026
32931         * ipa-cp.c (determine_versionability): Fail at -O0
32932         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
32933         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
32934
32935         Revert:
32936         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
32937
32938         PR ipa/60026
32939         * tree-inline.c (copy_forbidden): Fail for
32940         __attribute__((optimize (0))) functions.
32941
32942 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32943
32944         * varpool.c: Include pointer-set.h.
32945         (varpool_remove_unreferenced_decls): Variables in other partitions
32946         will not be output; be however careful to not lose information
32947         about partitioning.
32948
32949 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32950
32951         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
32952         lookup in the vtable constructor.
32953
32954 2014-02-07  Jeff Law  <law@redhat.com>
32955
32956         PR target/40977
32957         * config/m68k/m68k.md (ashldi_extsi): Turn into a
32958         define_insn_and_split.
32959
32960         * ipa-inline.c (inline_small_functions): Fix typos.
32961
32962 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32963
32964         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
32965         (s390_can_use_return_insn): Declare.
32966         * config/s390/s390.h (EPILOGUE_USES): Define.
32967         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
32968         instructions.
32969         (s390_chunkify_start): Handle return JUMP_LABELs.
32970         (s390_early_mach): Emit a main_pool instruction on the entry edge.
32971         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
32972         (s390_can_use_return_insn): New functions.
32973         (s390_fix_long_loop_prediction): Handle conditional returns.
32974         (TARGET_SET_UP_BY_PROLOGUE): Define.
32975         * config/s390/s390.md (ANY_RETURN): New code iterator.
32976         (*creturn, *csimple_return, return, simple_return): New patterns.
32977
32978 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32979
32980         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
32981         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
32982         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
32983         REG_CFA_RESTORE list when deciding not to restore a register.
32984
32985 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32986
32987         * config/s390/s390.c: Include tree-pass.h and context.h.
32988         (s390_early_mach): New function, split out from...
32989         (s390_emit_prologue): ...here.
32990         (pass_data_s390_early_mach): New pass structure.
32991         (pass_s390_early_mach): New class.
32992         (s390_option_override): Create and register early_mach pass.
32993         Move to end of file.
32994
32995 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32996
32997         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
32998         to match for the exit block.
32999
33000 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33001
33002         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33003         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33004         Reject misaligned operands.
33005
33006 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33007
33008         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33009
33010 2014-02-07  Richard Biener  <rguenther@suse.de>
33011
33012         PR middle-end/60092
33013         * gimple-low.c (lower_builtin_posix_memalign): New function.
33014         (lower_stmt): Call it to lower posix_memalign in a way
33015         to make alignment info accessible.
33016
33017 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
33018
33019         PR c++/60082
33020         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33021         __builtin_setjmp_receiver.
33022
33023 2014-02-07  Richard Biener  <rguenther@suse.de>
33024
33025         PR middle-end/60092
33026         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33027         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33028         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33029         Handle BUILT_IN_POSIX_MEMALIGN.
33030         (find_func_clobbers): Likewise.
33031         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33032         (call_may_clobber_ref_p_1): Likewise.
33033
33034 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33035
33036         PR ipa/59918
33037         * ipa-devirt.c (record_target_from_binfo): Remove overactive
33038         sanity check.
33039
33040 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33041
33042         PR ipa/59469
33043         * lto-cgraph.c (lto_output_node): Use
33044         symtab_get_symbol_partitioning_class.
33045         (lto_output_varpool_node): likewise.
33046         (symtab_get_symbol_partitioning_class): Move here from
33047         lto/lto-partition.c
33048         * cgraph.h (symbol_partitioning_class): Likewise.
33049         (symtab_get_symbol_partitioning_class): Declare.
33050
33051 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33052
33053         * ggc.h (ggc_internal_cleared_alloc): New macro.
33054         * vec.h (vec_safe_copy): Handle memory stats.
33055         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33056         * target-globals.c (save_target_globals): Likewise.
33057
33058 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33059
33060         PR target/60077
33061         * expr.c (emit_move_resolve_push): Export; be bit more selective
33062         on when to clear alias set.
33063         * expr.h (emit_move_resolve_push): Declare.
33064         * function.h (struct function): Add tail_call_marked.
33065         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33066         * config/i386/i386-protos.h (ix86_expand_push): Remove.
33067         * config/i386/i386.md (TImode move expander): De not call
33068         ix86_expand_push.
33069         (FP push expanders): Preserve memory attributes.
33070         * config/i386/sse.md (push<mode>1): Remove.
33071         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33072         (ix86_expand_push): Remove.
33073         * config/i386/mmx.md (push<mode>1): Remove.
33074
33075 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33076
33077         PR rtl-optimization/60030
33078         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33079         lopart with paradoxical subreg before shifting it up by hprec.
33080
33081 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33082
33083         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33084         Remove extra newline at end of file.
33085         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33086         (arm_issue_rate): Handle cortexa57.
33087         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33088         (cortex-a57.cortex-a53): Likewise.
33089
33090 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33091
33092         PR target/59575
33093         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33094         don't record in REG_FRAME_RELATED_EXPR registers not set in that
33095         bitmask.
33096         (arm_expand_prologue): Adjust all callers.
33097         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33098         info, registers also at the lowest numbered registers side.  Use
33099         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33100         XEXP.
33101
33102         PR debug/59992
33103         * var-tracking.c (adjust_mems): Before adding a SET to
33104         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33105
33106 2014-02-06  Alan Modra  <amodra@gmail.com>
33107
33108         PR target/60032
33109         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33110         change SDmode to DDmode when lra_in_progress.
33111
33112 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33113
33114         PR middle-end/59150
33115         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33116         free_data_ref on the dr first, and before goto again also set dr
33117         to the next dr.  For simd_lane_access, free old datarefs[i] before
33118         overwriting it.  For get_vectype_for_scalar_type failure, don't
33119         free_data_ref if simd_lane_access.
33120
33121         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33122
33123         PR target/60062
33124         * tree.h (opts_for_fn): New inline function.
33125         (opt_for_fn): Define.
33126         * config/i386/i386.c (ix86_function_regparm): Use
33127         opt_for_fn (decl, optimize) instead of optimize.
33128
33129 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33130
33131         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33132         for SYMBOL_REF in large memory model.
33133
33134 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33135
33136         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33137         and crypto support.
33138         (cortex-a57): Likewise.
33139         (cortex-a57.cortex-a53): Likewise.
33140
33141 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33142             Kugan Vivekanandarajah  <kuganv@linaro.org>
33143
33144         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33145         unaligned_access.
33146         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33147
33148 2014-02-06  Richard Biener  <rguenther@suse.de>
33149
33150         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33151         set_loop_copy and initialize_original_copy_tables.
33152
33153 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33154
33155         * config/aarch64/aarch64-simd.md
33156         (aarch64_ashr_simddi): Change QI to SI.
33157
33158 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33159             Jakub Jelinek  <jakub@redhat.com>
33160
33161         PR middle-end/60013
33162         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33163         of the dataflow.
33164
33165 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33166
33167         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33168         CODE_FOR_altivec_vpku[hw]um to
33169         CODE_FOR_altivec_vpku[hw]um_direct.
33170         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33171         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33172         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33173         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33174
33175 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33176
33177         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33178         generation for -maltivec=be.
33179         (altivec_vsumsws): Simplify redundant test.
33180
33181 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33182
33183         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33184         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33185         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33186         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33187         gen_altivec_vpkuwum.
33188         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33189         BYTES_BIG_ENDIAN.
33190         (altivec_vpks<VI_char>ss): Likewise.
33191         (altivec_vpks<VI_char>us): Likewise.
33192         (altivec_vpku<VI_char>us): Likewise.
33193         (altivec_vpku<VI_char>um): Likewise.
33194         (altivec_vpku<VI_char>um_direct): New (copy of
33195         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33196         internal use).
33197         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33198         target is little endian and -maltivec=be is not specified.
33199         (*altivec_vupkhs<VU_char>_direct): New (copy of
33200         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33201         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33202         target is little endian and -maltivec=be is not specified.
33203         (*altivec_vupkls<VU_char>_direct): New (copy of
33204         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33205         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33206         little endian and -maltivec=be is not specified.
33207         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33208         little endian and -maltivec=be is not specified.
33209
33210 2014-02-05  Richard Henderson  <rth@redhat.com>
33211
33212         PR debug/52727
33213         * combine-stack-adj.c: Revert r206943.
33214         * sched-int.h (struct deps_desc): Add last_args_size.
33215         * sched-deps.c (init_deps): Initialize it.
33216         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33217         contain REG_ARGS_SIZE notes.
33218
33219 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33220
33221         * lto-cgraph.c (asm_nodes_output): Make global.
33222         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33223         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33224         (driver_handle_option): Handle OPT_fwpa.
33225
33226 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33227
33228         PR ipa/59947
33229         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33230         a comment typo and formatting issue.  If odr_hash hasn't been
33231         created, return vNULL and set *completep to false.
33232
33233         PR middle-end/57499
33234         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33235         bb with no successors.
33236
33237 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33238
33239         PR target/59718
33240         * doc/invoke.texi (-march): Clarify documentation for ARM.
33241         (-mtune): Likewise.
33242         (-mcpu): Likewise.
33243
33244 2014-02-05  Richard Biener  <rguenther@suse.de>
33245
33246         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33247         when not vectorizing because of too many alias checks.
33248         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33249         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33250
33251 2014-02-05  Nick Clifton  <nickc@redhat.com>
33252
33253         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33254         accept extended registers in any mode when compiling for the MN10300.
33255
33256 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33257
33258         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33259         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33260         sanitization attributes.
33261         (can_inline_edge_p): Likewise.
33262         (sanitize_attrs_match_for_inline_p): New function.
33263
33264 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33265
33266         * ipa-prop.c (detect_type_change): Shor circuit testing of
33267         type changes on THIS pointer.
33268
33269 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33270
33271         PR target/59777
33272         * config/pa/pa.c (legitimize_tls_address): Return original address
33273         if not passed a SYMBOL_REF rtx.
33274         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33275         addresses.
33276         (pa_emit_move_sequence): Simplify TLS source operands.
33277         (pa_legitimate_constant_p): Reject all TLS constants.
33278         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33279         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33280
33281 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33282
33283         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33284         groups when we know they are controlled by LTO.
33285         * varasm.c (default_binds_local_p_1): If object is in other partition,
33286         it will be resolved locally.
33287
33288 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33289
33290         * config/host-linux.c (linux_gt_pch_use_address): Don't
33291         use SSIZE_MAX because it is not always defined.
33292
33293 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33294
33295         PR bootstrap/59913
33296         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33297         threshold for pseudo splitting.
33298         (update_ebb_live_info): Process call argument hard registers and
33299         hard registers from insn definition too.
33300         (max_small_class_regs_num): New constant.
33301         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33302         reloads_num only for small register classes.  Don't split for
33303         outputs of jumps.
33304
33305 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33306
33307         PR ipa/60058
33308         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33309         is non-null.
33310
33311 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33312
33313         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33314         visibility is safe.
33315
33316 2014-02-04  Marek Polacek  <polacek@redhat.com>
33317
33318         * gdbinit.in (pel): Define.
33319
33320 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33321
33322         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33323         behavior.
33324
33325 2014-02-04  Richard Biener  <rguenther@suse.de>
33326
33327         PR lto/59723
33328         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33329         in function context local.
33330         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33331         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33332         similar to LTO_imported_decl_ref.
33333
33334 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33335
33336         PR tree-optimization/60002
33337         * cgraphclones.c (build_function_decl_skip_args): Clear
33338         DECL_LANG_SPECIFIC.
33339
33340         PR tree-optimization/60023
33341         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33342         false to gsi_replace.
33343         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33344         has been in some EH region and vec_stmt could throw, add
33345         vec_stmt into the same EH region.
33346         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33347         has no lhs, ignore it.
33348         * internal-fn.c (expand_MASK_LOAD): Likewise.
33349
33350         PR ipa/60026
33351         * tree-inline.c (copy_forbidden): Fail for
33352         __attribute__((optimize (0))) functions.
33353
33354         PR other/58712
33355         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33356         is set, copy one less argument.
33357         (expand_simd_clones): Don't subtract clone_info->inbranch
33358         from simd_clone_struct_alloc argument.
33359
33360         PR rtl-optimization/57915
33361         * recog.c (simplify_while_replacing): If all unary/binary/relational
33362         operation arguments are constant, attempt to simplify those.
33363
33364         PR middle-end/59261
33365         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33366         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33367
33368 2014-02-04  Richard Biener  <rguenther@suse.de>
33369
33370         PR tree-optimization/60012
33371         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33372         TBAA disambiguation to all DDRs.
33373
33374 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33375
33376         PR target/59788
33377         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33378         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33379
33380 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33381
33382         PR ipa/59882
33383         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33384
33385 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33386
33387         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33388         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33389
33390 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33391
33392         PR ipa/59831
33393         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33394         to figure out targets of polymorphic calls with known decl.
33395         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33396         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33397         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33398         (get_polymorphic_call_info): ... here.
33399         (get_polymorphic_call_info_from_invariant): New function.
33400
33401 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33402
33403         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33404         lookup via vtable pointer; check for type consistency
33405         and turn inconsitent facts into UNREACHABLE.
33406         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33407         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33408         type inconsistent querries; return UNREACHABLE instead.
33409
33410 2014-02-03  Richard Henderson  <rth@twiddle.net>
33411
33412         PR tree-opt/59924
33413         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33414         already processed this node.
33415         (normalize_one_pred_1): Pass along mark_set.
33416         (normalize_one_pred): Create and destroy a pointer_set_t.
33417         (normalize_one_pred_chain): Likewise.
33418
33419 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33420
33421         PR gcov-profile/58602
33422         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33423
33424 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33425
33426         PR ipa/59831
33427         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33428         -fno-devirtualize; try to devirtualize by the knowledge of
33429         virtual table pointer given by aggregate propagation.
33430         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33431         (ipa_print_node_jump_functions): Dump also offset that
33432         is relevant for polymorphic calls.
33433         (determine_known_aggregate_parts): Add arg_type parameter; use it
33434         instead of determining the type from pointer type.
33435         (ipa_compute_jump_functions_for_edge): Update call of
33436         determine_known_aggregate_parts.
33437         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33438         (gimple_get_virt_method_for_binfo): ... here; simplify using
33439         vtable_pointer_value_to_vtable.
33440         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33441         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33442         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33443         (vtable_pointer_value_to_vtable): Break out from ...; handle also
33444         POINTER_PLUS_EXPR.
33445         (vtable_pointer_value_to_binfo): ... here.
33446         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33447
33448 2014-02-03  Teresa Johnson  <tejohnson@google.com>
33449
33450         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33451         redef of outer loop index variable.
33452
33453 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
33454
33455         PR c++/53017
33456         PR c++/59211
33457         * doc/extend.texi (Function Attributes): Typo.
33458
33459 2014-02-03  Cong Hou  <congh@google.com>
33460
33461         PR tree-optimization/60000
33462         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33463         if the vectorized statement is a store.  A store statement can only
33464         appear at the end of pattern statements.
33465
33466 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33467
33468         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33469         (ix86_option_override_internal): Default long double to 64-bit for
33470         32-bit Bionic and to 128-bit for 64-bit Bionic.
33471
33472         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33473         TARGET_LONG_DOUBLE_128 is true.
33474         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33475
33476         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33477         (mlong-double-64): Negate -mlong-double-128.
33478         (mlong-double-128): New option.
33479
33480         * config/i386/i386-c.c (ix86_target_macros): Define
33481         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33482
33483         * doc/invoke.texi: Document -mlong-double-128.
33484
33485 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33486
33487         PR rtl-optimization/60024
33488         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33489
33490 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
33491
33492         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
33493
33494 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33495
33496         PR rtl-optimization/57662
33497         * sel-sched.c (code_motion_path_driver): Do not mark already not
33498         existing blocks in the visiting bitmap.
33499
33500 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33501
33502         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
33503         on the insn being emitted.
33504
33505 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
33506             Will Deacon  <will.deacon@arm.com>
33507
33508         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
33509
33510 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33511
33512         * config/arm/arm-tables.opt: Regenerate.
33513
33514 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33515
33516         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
33517         for vector types other than V16QImode.
33518         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
33519         define_expand, and call altivec_expand_vec_perm_le when producing
33520         code with little endian element order.
33521         (*altivec_vperm_<mode>_internal): New insn having previous
33522         behavior of altivec_vperm_<mode>.
33523         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
33524         altivec_expand_vec_perm_le when producing code with little endian
33525         element order.
33526         (*altivec_vperm_<mode>_uns_internal): New insn having previous
33527         behavior of altivec_vperm_<mode>_uns.
33528
33529 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33530
33531         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
33532         (altivec_vsumsws): Add handling for -maltivec=be with a little
33533         endian target.
33534         (altivec_vsumsws_direct): New.
33535         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
33536         gen_altivec_vsumsws.
33537
33538 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33539
33540         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
33541         vtable_pointer_value_to_binfo): New functions.
33542         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
33543         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
33544
33545 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
33546
33547         * config/nios2/nios2.md (load_got_register): Initialize GOT
33548         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
33549         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
33550
33551 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33552
33553         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
33554         preserverd by passthrough, do not propagate the type.
33555
33556 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33557
33558         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
33559         (mips_atomic_assign_expand_fenv): New function.
33560         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33561
33562 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33563
33564         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
33565         (__builtin_mips_set_fcsr): Likewise.
33566         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
33567         MIPS_USI_FTYPE_VOID.
33568         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
33569         (mips16_expand_set_fcsr): Likewise.
33570         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
33571         (mips16_set_fcsr_stub): Likewise.
33572         (mips16_get_fcsr_one_only_stub): New class.
33573         (mips16_set_fcsr_one_only_stub): Likewise.
33574         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
33575         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
33576         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
33577         (hard_float): New availability predicate.
33578         (mips_builtins): Add get_fcsr and set_fcsr.
33579         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
33580         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
33581         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
33582         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
33583         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
33584         patterns.
33585
33586 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33587
33588         * config/mips/mips.c (mips_one_only_stub): New class.
33589         (mips_need_mips16_rdhwr_p): Replace with...
33590         (mips16_rdhwr_stub): ...this new variable.
33591         (mips16_stub_call_address): New function.
33592         (mips16_rdhwr_one_only_stub): New class.
33593         (mips_expand_thread_pointer): Use mips16_stub_call_address.
33594         (mips_output_mips16_rdhwr): Delete.
33595         (mips_finish_stub): New function.
33596         (mips_code_end): Use it to handle rdhwr stubs.
33597
33598 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
33599
33600         PR target/60017
33601         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
33602         when calculating size of integer atomic types.
33603
33604 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
33605
33606         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
33607
33608 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
33609
33610         PR tree-optimization/60003
33611         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
33612         * profile.c (branch_prob): Use gimple_call_builtin_p
33613         to check for BUILT_IN_SETJMP_RECEIVER.
33614         * tree-inline.c (copy_bb): Call notice_special_calls.
33615
33616 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
33617
33618         PR bootstrap/59985
33619         * lra-constraints.c (process_alt_operands): Update reload_sum only
33620         on the first pass.
33621
33622 2014-01-31  Richard Henderson  <rth@redhat.com>
33623
33624         PR middle-end/60004
33625         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
33626         until after else_eh is processed.
33627
33628 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33629
33630         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
33631         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
33632         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
33633         in smmintrin.h, remove them.
33634         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
33635         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
33636         * config/i386/i386.md (ROUND_SAE): Fix value.
33637         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
33638         (const48_operand): New.
33639         * config/i386/subst.md (round), (round_expand): Use
33640         const_4_or_8_to_11_operand.
33641         (round_saeonly), (round_saeonly_expand): Use const48_operand.
33642
33643 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33644
33645         * config/i386/constraints.md (Yk): Swap meaning with k.
33646         * config/i386/i386.md (movhi_internal): Change Yk to k.
33647         (movqi_internal): Ditto.
33648         (*k<logic><mode>): Ditto.
33649         (*andhi_1): Ditto.
33650         (*andqi_1): Ditto.
33651         (kandn<mode>): Ditto.
33652         (*<code>hi_1): Ditto.
33653         (*<code>qi_1): Ditto.
33654         (kxnor<mode>): Ditto.
33655         (kortestzhi): Ditto.
33656         (kortestchi): Ditto.
33657         (kunpckhi): Ditto.
33658         (*one_cmplhi2_1): Ditto.
33659         (*one_cmplqi2_1): Ditto.
33660         * config/i386/sse.md (): Change k to Yk.
33661         (avx512f_load<mode>_mask): Ditto.
33662         (avx512f_blendm<mode>): Ditto.
33663         (avx512f_store<mode>_mask): Ditto.
33664         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
33665         (avx512f_storedqu<mode>_mask): Ditto.
33666         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
33667         Ditto.
33668         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
33669         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
33670         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
33671         (avx512f_maskcmp<mode>3): Ditto.
33672         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
33673         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
33674         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
33675         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
33676         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
33677         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
33678         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
33679         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
33680         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
33681         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
33682         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
33683         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
33684         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
33685         (vec_extract_lo_<mode>_maskm): Ditto.
33686         (vec_extract_hi_<mode>_maskm): Ditto.
33687         (avx512f_vternlog<mode>_mask): Ditto.
33688         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
33689         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
33690         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
33691         (avx512f_<code>v8div16qi2_mask): Ditto.
33692         (avx512f_<code>v8div16qi2_mask_store): Ditto.
33693         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
33694         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
33695         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
33696         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
33697         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33698         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33699         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33700         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33701         (avx512cd_maskb_vec_dupv8di): Ditto.
33702         (avx512cd_maskw_vec_dupv16si): Ditto.
33703         (avx512f_vpermi2var<mode>3_maskz): Ditto.
33704         (avx512f_vpermi2var<mode>3_mask): Ditto.
33705         (avx512f_vpermi2var<mode>3_mask): Ditto.
33706         (avx512f_vpermt2var<mode>3_maskz): Ditto.
33707         (*avx512f_gathersi<mode>): Ditto.
33708         (*avx512f_gathersi<mode>_2): Ditto.
33709         (*avx512f_gatherdi<mode>): Ditto.
33710         (*avx512f_gatherdi<mode>_2): Ditto.
33711         (*avx512f_scattersi<mode>): Ditto.
33712         (*avx512f_scatterdi<mode>): Ditto.
33713         (avx512f_compress<mode>_mask): Ditto.
33714         (avx512f_compressstore<mode>_mask): Ditto.
33715         (avx512f_expand<mode>_mask): Ditto.
33716         * config/i386/subst.md (mask): Change k to Yk.
33717         (mask_scalar_merge): Ditto.
33718         (sd): Ditto.
33719
33720 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
33721
33722         * doc/extend.texi (Vector Extensions): Document ?: in C++.
33723
33724 2014-01-31  Richard Biener  <rguenther@suse.de>
33725
33726         PR middle-end/59990
33727         * builtins.c (fold_builtin_memory_op): Make sure to not
33728         use a floating-point mode or a boolean or enumeral type for
33729         the copy operation.
33730
33731 2014-01-30  DJ Delorie  <dj@redhat.com>
33732
33733         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
33734         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
33735         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
33736         whenever main() has an epilogue.
33737
33738 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33739
33740         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
33741         unused variable "field".
33742         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
33743         (vsx_mergeh_<mode>): Likewise.
33744         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
33745         (altivec_vmrghh): Likewise.
33746         (altivec_vmrghw): Likewise.
33747         (altivec_vmrglb): Likewise.
33748         (altivec_vmrglh): Likewise.
33749         (altivec_vmrglw): Likewise.
33750         (altivec_vspltb): Add missing uses.
33751         (altivec_vsplth): Likewise.
33752         (altivec_vspltw): Likewise.
33753         (altivec_vspltsf): Likewise.
33754
33755 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33756
33757         PR target/59923
33758         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
33759         frame related instructions.
33760
33761 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
33762
33763         PR rtl-optimization/59959
33764         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
33765         any reload of register whose subreg is invalid.
33766
33767 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33768
33769         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
33770         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
33771         Add missing return type - void.
33772
33773 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33774
33775         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
33776         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
33777         remove element index adjustment for endian (now handled in vsx.md
33778         and altivec.md).
33779         (altivec_expand_vec_perm_const): Use
33780         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
33781         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
33782         (vsx_xxspltw_<mode>): Adjust element index for little endian.
33783         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
33784         define_expand and a new define_insn *altivec_vspltb_internal;
33785         adjust for -maltivec=be on a little endian target.
33786         (altivec_vspltb_direct): New.
33787         (altivec_vsplth): Divide into a define_expand and a new
33788         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
33789         little endian target.
33790         (altivec_vsplth_direct): New.
33791         (altivec_vspltw): Divide into a define_expand and a new
33792         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
33793         little endian target.
33794         (altivec_vspltw_direct): New.
33795         (altivec_vspltsf): Divide into a define_expand and a new
33796         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
33797         a little endian target.
33798
33799 2014-01-30  Richard Biener  <rguenther@suse.de>
33800
33801         PR tree-optimization/59993
33802         * tree-ssa-forwprop.c (associate_pointerplus): Check we
33803         can propagate form the earlier stmt and avoid the transform
33804         when the intermediate result is needed.
33805
33806 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
33807
33808         * README.Portability: Fix typo.
33809
33810 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
33811
33812         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
33813         comparison_operator with ordered_comparison_operator.
33814
33815 2014-01-30  Nick Clifton  <nickc@redhat.com>
33816
33817         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
33818         Rename to mn10300_store_multiple_regs.
33819         * config/mn10300/mn10300.c: Likewise.
33820         * config/mn10300/mn10300.md (store_movm): Fix typo: call
33821         store_multiple_regs.
33822         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
33823         Call mn10300_store_multiple_regs.
33824
33825 2014-01-30  Nick Clifton  <nickc@redhat.com>
33826             DJ Delorie  <dj@redhat.com>
33827
33828         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
33829         %fp 2 to keep registers after it properly word-aligned.
33830         (rl78_alloc_physical_registers_umul): Handle the case where both
33831         input operands are the same.
33832
33833 2014-01-30  Richard Biener  <rguenther@suse.de>
33834
33835         PR tree-optimization/59903
33836         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
33837         check properly.
33838
33839 2014-01-30  Jason Merrill  <jason@redhat.com>
33840
33841         PR c++/59633
33842         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
33843
33844         PR c++/59645
33845         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
33846
33847 2014-01-30  Richard Biener  <rguenther@suse.de>
33848
33849         PR tree-optimization/59951
33850         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
33851
33852 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
33853
33854         PR target/59784
33855         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
33856         SFmode to DFmode case.
33857
33858 2014-01-29  DJ Delorie  <dj@redhat.com>
33859
33860         * config/msp430/msp430.opt (-minrt): New.
33861         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
33862         if -minrt given.
33863         (ENDFILE_SPEC): Likewise.
33864
33865 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
33866
33867         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
33868         (estimate_function_body_sizes): Use it.
33869
33870 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
33871
33872         PR c++/58561
33873         * dwarf2out.c (is_cxx_auto): New.
33874         (is_base_type): Use it.
33875         (gen_type_die_with_usage): Likewise.
33876
33877 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33878
33879         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
33880         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
33881         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
33882         -maltivec=be with LE targets.
33883         (vsx_mergeh_<mode>): Likewise.
33884         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
33885         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
33886         (altivec_vmrghb): Replace with define_expand and new
33887         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
33888         (altivec_vmrghb_direct): New define_insn.
33889         (altivec_vmrghh): Replace with define_expand and new
33890         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
33891         (altivec_vmrghh_direct): New define_insn.
33892         (altivec_vmrghw): Replace with define_expand and new
33893         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
33894         (altivec_vmrghw_direct): New define_insn.
33895         (*altivec_vmrghsf): Adjust for endianness.
33896         (altivec_vmrglb): Replace with define_expand and new
33897         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
33898         (altivec_vmrglb_direct): New define_insn.
33899         (altivec_vmrglh): Replace with define_expand and new
33900         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
33901         (altivec_vmrglh_direct): New define_insn.
33902         (altivec_vmrglw): Replace with define_expand and new
33903         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
33904         (altivec_vmrglw_direct): New define_insn.
33905         (*altivec_vmrglsf): Adjust for endianness.
33906         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33907         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33908         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33909         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33910         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33911         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33912         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33913         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33914
33915 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33916
33917         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
33918         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
33919         whitespace.
33920
33921 2014-01-29  Richard Biener  <rguenther@suse.de>
33922
33923         PR tree-optimization/58742
33924         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
33925         associate_pointerplus_align.
33926         (associate_pointerplus_diff): New function.
33927         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
33928         and associate_pointerplus_diff.
33929
33930 2014-01-29  Richard Biener  <rguenther@suse.de>
33931
33932         * lto-streamer.h (LTO_major_version): Bump to 3.
33933         (LTO_minor_version): Reset to 0.
33934
33935 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
33936
33937         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
33938         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
33939         (arm_file_start): Generate correct asm header for armv7ve.
33940         * config/arm/bpabi.h: Add multilib support for armv7ve.
33941         * config/arm/driver-arm.c: Change the architectures of cortex-a7
33942         and cortex-a15 to armv7ve.
33943         * config/arm/t-aprofile: Add multilib support for armv7ve.
33944         * doc/invoke.texi: Document -march=armv7ve.
33945
33946 2014-01-29  Richard Biener  <rguenther@suse.de>
33947
33948         PR tree-optimization/58742
33949         * tree-ssa-forwprop.c (associate_plusminus): Return true
33950         if we changed sth, defer EH cleanup to ...
33951         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
33952         (simplify_mult): New function.
33953
33954 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
33955
33956         PR middle-end/59917
33957         PR tree-optimization/59920
33958         * tree.c (build_common_builtin_nodes): Remove
33959         __builtin_setjmp_dispatcher initialization.
33960         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
33961         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
33962         instead of gsi_after_labels + manually skipping debug stmts.
33963         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
33964         ignore bbs with IFN_ABNORMAL_DISPATCHER.
33965         * tree-inline.c (copy_edges_for_bb): Remove
33966         can_make_abnormal_goto argument, instead add abnormal_goto_dest
33967         argument.  Ignore computed_goto_p stmts.  Don't call
33968         make_abnormal_goto_edges.  If a call might need abnormal edges
33969         for non-local gotos, see if it already has an edge to
33970         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
33971         with true argument, don't do anything then, otherwise add
33972         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
33973         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
33974         caller.
33975         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
33976         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
33977         (lower_stmt): Don't set data->calls_builtin_setjmp.
33978         (lower_builtin_setjmp): Adjust comment.
33979         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
33980         * tree-cfg.c (found_computed_goto): Remove.
33981         (factor_computed_gotos): Remove.
33982         (make_goto_expr_edges): Return bool, true for computed gotos.
33983         Don't call make_abnormal_goto_edges.
33984         (build_gimple_cfg): Don't set found_computed_goto, don't call
33985         factor_computed_gotos.
33986         (computed_goto_p): No longer static.
33987         (make_blocks): Don't set found_computed_goto.
33988         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
33989         (make_edges): If make_goto_expr_edges returns true, push bb
33990         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
33991         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
33992         vector.  Record mapping between bbs and OpenMP regions if there
33993         are any, adjust make_gimple_omp_edges caller.  Call
33994         handle_abnormal_edges.
33995         (make_abnormal_goto_edges): Remove.
33996         * tree-cfg.h (make_abnormal_goto_edges): Remove.
33997         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
33998         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
33999         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34000         * internal-fn.def (ABNORMAL_DISPATCHER): New.
34001         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34002         filling *region also set *region_idx to (*region)->entry->index.
34003
34004         PR other/58712
34005         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34006         For REGs set ORIGINAL_REGNO.
34007
34008 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
34009
34010         * doc/md.texi: Mention that a target shouldn't implement
34011         vec_widen_(s|u)mul_even/odd pair if it is less efficient
34012         than hi/lo pair.
34013
34014 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34015
34016         PR tree-optimization/59594
34017         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34018         a copy of the datarefs vector rather than the vector itself.
34019
34020 2014-01-28  Jason Merrill  <jason@redhat.com>
34021
34022         PR c++/53756
34023         * dwarf2out.c (auto_die): New static.
34024         (gen_type_die_with_usage): Handle C++1y 'auto'.
34025         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34026         on definition.
34027
34028 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
34029
34030         PR target/59672
34031         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34032         (SPEC_X32): Likewise.
34033         (SPEC_64): Likewise.
34034         * config/i386/i386.c (ix86_option_override_internal): Turn off
34035         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34036         for TARGET_16BIT.
34037         (x86_file_start): Output .code16gcc for TARGET_16BIT.
34038         * config/i386/i386.h (TARGET_16BIT): New macro.
34039         (TARGET_16BIT_P): Likewise.
34040         * config/i386/i386.opt: Add m16.
34041         * doc/invoke.texi: Document -m16.
34042
34043 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
34044
34045         PR preprocessor/59935
34046         * input.c (location_get_source_line): Bail out on when line number
34047         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34048
34049 2014-01-28  Richard Biener  <rguenther@suse.de>
34050
34051         PR tree-optimization/58742
34052         * tree-ssa-forwprop.c (associate_plusminus): Handle
34053         pointer subtraction of the form (T)(P + A) - (T)P.
34054
34055 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34056
34057         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34058         at const_int_cost.
34059
34060 2014-01-28  Richard Biener  <rguenther@suse.de>
34061
34062         Revert
34063         2014-01-28  Richard Biener  <rguenther@suse.de>
34064
34065         PR rtl-optimization/45364
34066         PR rtl-optimization/59890
34067         * var-tracking.c (local_get_addr_clear_given_value): Handle
34068         already cleared slot.
34069         (val_reset): Handle not allocated local_get_addr_cache.
34070         (vt_find_locations): Use post-order on the inverted CFG.
34071
34072 2014-01-28  Richard Biener  <rguenther@suse.de>
34073
34074         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34075
34076 2014-01-28  Richard Biener  <rguenther@suse.de>
34077
34078         PR rtl-optimization/45364
34079         PR rtl-optimization/59890
34080         * var-tracking.c (local_get_addr_clear_given_value): Handle
34081         already cleared slot.
34082         (val_reset): Handle not allocated local_get_addr_cache.
34083         (vt_find_locations): Use post-order on the inverted CFG.
34084
34085 2014-01-28  Alan Modra  <amodra@gmail.com>
34086
34087         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34088         * configure.ac <recursive call for build != host>: Define
34089         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34090         and LD_FOR_BUILD too.
34091         * configure: Regenerate.
34092
34093 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
34094
34095         * config/i386/i386.c (get_builtin_code_for_version): Separate
34096         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34097         Broadwell from Haswell.
34098
34099 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34100
34101         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34102         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34103         * config/mips/mips.c (mips_option_override): Change setting
34104         of TARGET_DSP.
34105         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34106         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34107         Change from Mask to Var.
34108
34109 2014-01-27  Jeff Law  <law@redhat.com>
34110
34111         * ipa-inline.c (inline_small_functions): Fix typo.
34112
34113 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34114
34115         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34116         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34117         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34118         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34119         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34120         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34121         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34122         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34123         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34124         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34125         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34126         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34127         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34128         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34129         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34130         (_mm512_storeu_epi64): Ditto.
34131         (_mm512_cmpge_epi32_mask): Ditto.
34132         (_mm512_cmpge_epu32_mask): Ditto.
34133         (_mm512_cmpge_epi64_mask): Ditto.
34134         (_mm512_cmpge_epu64_mask): Ditto.
34135         (_mm512_cmple_epi32_mask): Ditto.
34136         (_mm512_cmple_epu32_mask): Ditto.
34137         (_mm512_cmple_epi64_mask): Ditto.
34138         (_mm512_cmple_epu64_mask): Ditto.
34139         (_mm512_cmplt_epi32_mask): Ditto.
34140         (_mm512_cmplt_epu32_mask): Ditto.
34141         (_mm512_cmplt_epi64_mask): Ditto.
34142         (_mm512_cmplt_epu64_mask): Ditto.
34143         (_mm512_cmpneq_epi32_mask): Ditto.
34144         (_mm512_cmpneq_epu32_mask): Ditto.
34145         (_mm512_cmpneq_epi64_mask): Ditto.
34146         (_mm512_cmpneq_epu64_mask): Ditto.
34147         (_mm512_expand_pd): Ditto.
34148         (_mm512_expand_ps): Ditto.
34149         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34150         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34151         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34152         * config/i386/i386.c (ix86_builtins): Add
34153         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34154         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34155         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34156         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34157         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34158         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34159         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34160         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34161         IX86_BUILTIN_PMOVUSQW512_MEM.
34162         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34163         __builtin_ia32_pmovsqd512mem_mask,
34164         __builtin_ia32_pmovqd512mem_mask,
34165         __builtin_ia32_pmovusqw512mem_mask,
34166         __builtin_ia32_pmovsqw512mem_mask,
34167         __builtin_ia32_pmovqw512mem_mask,
34168         __builtin_ia32_pmovusdw512mem_mask,
34169         __builtin_ia32_pmovsdw512mem_mask,
34170         __builtin_ia32_pmovdw512mem_mask,
34171         __builtin_ia32_pmovqb512mem_mask,
34172         __builtin_ia32_pmovusqb512mem_mask,
34173         __builtin_ia32_pmovsqb512mem_mask,
34174         __builtin_ia32_pmovusdb512mem_mask,
34175         __builtin_ia32_pmovsdb512mem_mask,
34176         __builtin_ia32_pmovdb512mem_mask.
34177         (bdesc_args): Add __builtin_ia32_expanddf512,
34178         __builtin_ia32_expandsf512.
34179         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34180         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34181         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34182         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34183         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34184         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34185         (avx512f_<code>v8div16qi2_mask_store): This.
34186         (avx512f_expand<mode>): New.
34187
34188 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34189
34190         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34191         New.
34192         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34193         (_mm512_prefetch_i32scatter_pd): Ditto.
34194         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34195         (_mm512_prefetch_i64scatter_pd): Ditto.
34196         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34197         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34198         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34199         (_mm512_prefetch_i32scatter_ps): Ditto.
34200         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34201         (_mm512_prefetch_i64scatter_ps): Ditto.
34202         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34203         * config/i386/i386-builtin-types.def: Define
34204         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34205         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34206         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34207         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34208         IX86_BUILTIN_SCATTERPFQPD.
34209         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34210         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34211         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34212         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34213         __builtin_ia32_scatterpfqps.
34214         (ix86_expand_builtin): Expand new built-ins.
34215         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34216         fix memory access data type.
34217         (*avx512pf_gatherpf<mode>_mask): Ditto.
34218         (*avx512pf_gatherpf<mode>): Ditto.
34219         (avx512pf_scatterpf<mode>): Ditto.
34220         (*avx512pf_scatterpf<mode>_mask): Ditto.
34221         (*avx512pf_scatterpf<mode>): Ditto.
34222         (GATHER_SCATTER_SF_MEM_MODE): New.
34223         (avx512pf_gatherpf<mode>df): Ditto.
34224         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34225         (*avx512pf_scatterpf<mode>df): Ditto.
34226
34227 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34228
34229         PR bootstrap/59934
34230         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34231         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34232         reached.
34233
34234 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34235
34236         * common/config/arm/arm-common.c
34237         (arm_rewrite_mcpu): Handle multiple names.
34238         * config/arm/arm.h
34239         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34240
34241 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34242
34243         * gimple-builder.h (create_gimple_tmp): Delete.
34244
34245 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34246
34247         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34248         words comparisons.
34249
34250 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34251
34252         * config/pa/pa.md (call): Generate indirect long calls to non-local
34253         functions when outputing 32-bit code.
34254         (call_value): Likewise except for special call to buggy powf function.
34255
34256         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34257         portable runtime and PIC indirect calls.
34258         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34259         and PIC call sequences.  Use ldo instead of blr to set return register
34260         in PIC call sequence.
34261
34262 2014-01-25  Walter Lee  <walt@tilera.com>
34263
34264         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34265         avoid clobbering a live register.
34266
34267 2014-01-25  Walter Lee  <walt@tilera.com>
34268
34269         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34270         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34271         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34272         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34273
34274 2014-01-25  Walter Lee  <walt@tilera.com>
34275
34276         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34277         arguments on even registers.
34278         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34279         STACK_BOUNDARY.
34280         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34281         (BIGGEST_ALIGNMENT): Ditto.
34282         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34283
34284 2014-01-25  Walter Lee  <walt@tilera.com>
34285
34286         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34287         insns before bundling.
34288         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34289
34290 2014-01-25  Walter Lee  <walt@tilera.com>
34291
34292         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34293         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34294         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34295
34296 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34297
34298         * config/mips/constraints.md (kl): Delete.
34299         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34300         define expands, using...
34301         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34302         instructions for MIPS16.
34303         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34304         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34305
34306 2014-01-25  Walter Lee  <walt@tilera.com>
34307
34308         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34309         (clzdi2): Ditto.
34310         (ffsdi2): Ditto.
34311
34312 2014-01-25  Walter Lee  <walt@tilera.com>
34313
34314         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34315         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34316
34317 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34318
34319         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34320         Handle XOR.
34321
34322 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34323
34324         * print-rtl.c (in_call_function_usage): New var.
34325         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34326         EXPR_LIST mode as mode and not as reg note name.
34327
34328         PR middle-end/59561
34329         * cfgloopmanip.c (copy_loop_info): If
34330         loop->warned_aggressive_loop_optimizations, make sure
34331         the flag is set in target loop too.
34332
34333 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34334
34335         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34336         flag_cilkplus.
34337         * builtins.def: Likewise.
34338         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34339         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34340         * ira.c (ira_setup_eliminable_regset): Likewise.
34341         * omp-low.c (gate_expand_omp): Likewise.
34342         (execute_lower_omp): Likewise.
34343         (diagnose_sb_0): Likewise.
34344         (gate_diagnose_omp_blocks): Likewise.
34345         (simd_clone_clauses_extract): Likewise.
34346         (gate): Likewise.
34347
34348 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34349
34350         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34351         correction for little endian...
34352         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34353         here.
34354
34355 2014-01-24  Jeff Law  <law@redhat.com>
34356
34357         PR tree-optimization/59919
34358         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34359         for non-returning calls.
34360
34361 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34362
34363         * common/config/aarch64/aarch64-common.c
34364         (aarch64_rewrite_mcpu): Handle multiple names.
34365         * config/aarch64/aarch64.h
34366         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34367
34368 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34369
34370         * input.c (add_file_to_cache_tab): Handle the case where fopen
34371         returns NULL.
34372
34373 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34374
34375         PR target/59929
34376         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34377         from push operand if code of push isn't PRE_DEC.
34378
34379 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34380
34381         PR target/59909
34382         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34383         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34384         it is only used for non-atomic loads/stores.
34385
34386         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34387         -mquad-memory or -mquad-memory-atomic switches.
34388
34389         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34390         -mquad-memory-atomic to ISA 2.07 support.
34391
34392         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34393         to separate support of normal quad word memory operations (ldq, stq)
34394         from the atomic quad word memory operations.
34395
34396         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34397         support to separate non-atomic quad word operations from atomic
34398         quad word operations.  Disable non-atomic quad word operations in
34399         little endian mode so that we don't have to swap words after the
34400         load and before the store.
34401         (quad_load_store_p): Add comment about atomic quad word support.
34402         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34403         options printed with -mdebug=reg.
34404
34405         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34406         -mquad-memory-atomic as the test for whether we have quad word
34407         atomic instructions.
34408         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34409         or -mp8-vector are used, allow byte/half-word atomic operations.
34410
34411         * config/rs6000/sync.md (load_lockedti): Insure that the address
34412         is a proper indexed or indirect address for the lqarx instruction.
34413         On little endian systems, swap the hi/lo registers after the lqarx
34414         instruction.
34415         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34416         insure the address is valid for the lqarx instruction.
34417         (store_conditionalti): Insure that the address is a proper indexed
34418         or indirect address for the stqcrx. instruction.  On little endian
34419         systems, swap the hi/lo registers before doing the stqcrx.
34420         instruction.
34421         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34422         insure the address is valid for the stqcrx. instruction.
34423
34424         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34425         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34426         type of quad memory support is available.
34427
34428 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34429
34430         PR regression/59915
34431         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34432         there is a danger of looping.
34433
34434 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34435
34436         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34437         force flag_ira_loop_pressure if set via command line.
34438
34439 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34440
34441         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34442         (ashr_simd): New builtin handling DI mode.
34443         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34444         (aarch64_sshr_simddi): New match pattern.
34445         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34446         (vshrd_n_s64): Likewise.
34447         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34448
34449 2014-01-23  Nick Clifton  <nickc@redhat.com>
34450
34451         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34452         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34453         favour of mcu specific scripts.
34454         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34455         430x multilibs.
34456
34457 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34458             Alex Velenko  <Alex.Velenko@arm.com>
34459
34460         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34461         (vaddv_s16): Likewise.
34462         (vaddv_s32): Likewise.
34463         (vaddv_u8): Likewise.
34464         (vaddv_u16): Likewise.
34465         (vaddv_u32): Likewise.
34466         (vaddvq_s8): Likewise.
34467         (vaddvq_s16): Likewise.
34468         (vaddvq_s32): Likewise.
34469         (vaddvq_s64): Likewise.
34470         (vaddvq_u8): Likewise.
34471         (vaddvq_u16): Likewise.
34472         (vaddvq_u32): Likewise.
34473         (vaddvq_u64): Likewise.
34474         (vaddv_f32): Likewise.
34475         (vaddvq_f32): Likewise.
34476         (vaddvq_f64): Likewise.
34477         (vmaxv_f32): Likewise.
34478         (vmaxv_s8): Likewise.
34479         (vmaxv_s16): Likewise.
34480         (vmaxv_s32): Likewise.
34481         (vmaxv_u8): Likewise.
34482         (vmaxv_u16): Likewise.
34483         (vmaxv_u32): Likewise.
34484         (vmaxvq_f32): Likewise.
34485         (vmaxvq_f64): Likewise.
34486         (vmaxvq_s8): Likewise.
34487         (vmaxvq_s16): Likewise.
34488         (vmaxvq_s32): Likewise.
34489         (vmaxvq_u8): Likewise.
34490         (vmaxvq_u16): Likewise.
34491         (vmaxvq_u32): Likewise.
34492         (vmaxnmv_f32): Likewise.
34493         (vmaxnmvq_f32): Likewise.
34494         (vmaxnmvq_f64): Likewise.
34495         (vminv_f32): Likewise.
34496         (vminv_s8): Likewise.
34497         (vminv_s16): Likewise.
34498         (vminv_s32): Likewise.
34499         (vminv_u8): Likewise.
34500         (vminv_u16): Likewise.
34501         (vminv_u32): Likewise.
34502         (vminvq_f32): Likewise.
34503         (vminvq_f64): Likewise.
34504         (vminvq_s8): Likewise.
34505         (vminvq_s16): Likewise.
34506         (vminvq_s32): Likewise.
34507         (vminvq_u8): Likewise.
34508         (vminvq_u16): Likewise.
34509         (vminvq_u32): Likewise.
34510         (vminnmv_f32): Likewise.
34511         (vminnmvq_f32): Likewise.
34512         (vminnmvq_f64): Likewise.
34513
34514 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34515
34516         * config/aarch64/aarch64-simd.md
34517         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
34518         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
34519         (*aarch64_mul3_elt<mode>): Likewise.
34520         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
34521         (*aarch64_mul3_elt_to_64v2df): Likewise.
34522         (*aarch64_mla_elt<mode>): Likewise.
34523         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34524         (*aarch64_mls_elt<mode>): Likewise.
34525         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34526         (*aarch64_fma4_elt<mode>): Likewise.
34527         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34528         (*aarch64_fma4_elt_to_64v2df): Likewise.
34529         (*aarch64_fnma4_elt<mode>): Likewise.
34530         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34531         (*aarch64_fnma4_elt_to_64v2df): Likewise.
34532         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
34533         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
34534         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34535         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34536         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
34537         (aarch64_sqdmull_lane<mode>_internal): Likewise.
34538         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
34539
34540 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34541
34542         * config/aarch64/aarch64-simd.md
34543         (aarch64_be_checked_get_lane<mode>): New define_expand.
34544         * config/aarch64/aarch64-simd-builtins.def
34545         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
34546         New builtin definition.
34547         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
34548         Use new safe be builtin.
34549
34550 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34551
34552         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
34553         New define_insn.
34554         (aarch64_be_st1<mode>): Likewise.
34555         (aarch_ld1<VALL:mode>): Define_expand modified.
34556         (aarch_st1<VALL:mode>): Likewise.
34557         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
34558         (UNSPEC_ST1): Likewise.
34559
34560 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
34561
34562         * config/microblaze/microblaze.md: Add trap insn and attribute
34563
34564 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
34565
34566         PR preprocessor/58580
34567         * input.h (location_get_source_line): Take an additional line_size
34568         parameter.
34569         (void diagnostics_file_cache_fini): Declare new function.
34570         * input.c (struct fcache): New type.
34571         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
34572         New static constants.
34573         (diagnostic_file_cache_init, total_lines_num)
34574         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
34575         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
34576         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
34577         (get_next_line, read_next_line, goto_next_line, read_line_num):
34578         New static function definitions.
34579         (diagnostic_file_cache_fini): New function.
34580         (location_get_source_line): Take an additional output line_len
34581         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
34582         read_line_num.
34583         * diagnostic.c (diagnostic_finish): Call
34584         diagnostic_file_cache_fini.
34585         (adjust_line): Take an additional input parameter for the length
34586         of the line, rather than calculating it with strlen.
34587         (diagnostic_show_locus): Adjust the use of
34588         location_get_source_line and adjust_line with respect to their new
34589         signature.  While displaying a line now, do not stop at the first
34590         null byte.  Rather, display the zero byte as a space and keep
34591         going until we reach the size of the line.
34592         * Makefile.in: Add vec.o to OBJS-libcommon
34593
34594 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34595             Ilya Tocar  <ilya.tocar@intel.com>
34596
34597         * config/i386/avx512fintrin.h (_mm512_kmov): New.
34598         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
34599         (__builtin_ia32_kmov16): Ditto.
34600         * config/i386/i386.md (UNSPEC_KMOV): New.
34601         (kmovw): Ditto.
34602
34603 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34604
34605         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
34606         (_mm512_storeu_si512): Ditto.
34607
34608 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
34609
34610         PR target/52125
34611         * rtl.h (get_referenced_operands): Declare.
34612         * recog.c (get_referenced_operands): New function.
34613         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
34614         operands have been referenced when recording LO_SUM references.
34615
34616 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
34617
34618         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
34619
34620 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34621
34622         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
34623         Enable for generic and recent AMD targets.
34624
34625 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34626
34627         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
34628         ARG_SIZE note when adjustment was eliminated.
34629
34630 2014-01-22  Jeff Law  <law@redhat.com>
34631
34632         PR tree-optimization/59597
34633         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
34634         in file.  Accept new argument REGISTERING and use it to modify
34635         dump output appropriately.
34636         (register_jump_thread): Corresponding changes.
34637         (mark_threaded_blocks): Reinstate code to cancel unprofitable
34638         thread paths involving joiner blocks.  Add code to dump cancelled
34639         jump threading paths.
34640
34641 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
34642
34643         PR rtl-optimization/59477
34644         * lra-constraints.c (inherit_in_ebb): Process call for living hard
34645         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
34646
34647 2014-01-22  Tom Tromey  <tromey@redhat.com>
34648
34649         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
34650         PARAMS.
34651         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
34652
34653 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34654
34655         PR rtl-optimization/59896
34656         * lra-constraints.c (process_alt_operands): Check unused note for
34657         matched operands of insn with no output reloads.
34658
34659 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
34660
34661         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
34662         (mips_move_from_gpr_cost): Likewise.
34663
34664 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34665
34666         PR rtl-optimization/59858
34667         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
34668         ira_class_hard_regs_num.
34669         (process_alt_operands): Increase reject for dying matched operand.
34670
34671 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
34672
34673         PR target/59003
34674         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
34675         smaller than size, perform several stores or loads and stores
34676         at dst + count - size to store or copy all of size bytes, rather
34677         than just last modesize bytes.
34678
34679 2014-01-20  DJ Delorie  <dj@redhat.com>
34680
34681         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
34682         that CLOBBERs are REGs before propogating their values.
34683
34684 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
34685
34686         PR middle-end/59789
34687         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
34688         (cgraph_inline_failed_type): New function.
34689         * cgraph.h (DEFCIFCODE): Add type.
34690         (cgraph_inline_failed_type_t): New enum.
34691         (cgraph_inline_failed_type): New prototype.
34692         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
34693         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34694         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
34695         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
34696         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
34697         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
34698         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
34699         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
34700         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
34701         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
34702         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
34703         OPTIMIZATION_MISMATCH.
34704         * tree-inline.c (expand_call_inline): Emit errors during
34705         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
34706
34707 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34708
34709         PR target/59685
34710         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
34711         mode attribute in insn output.
34712
34713 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
34714
34715         * output.h (output_constant): Delete.
34716         * varasm.c (output_constant): Make private.
34717
34718 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
34719
34720         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
34721
34722 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34723
34724         PR middle-end/59860
34725         * tree.h (fold_builtin_strcat): New prototype.
34726         * builtins.c (fold_builtin_strcat): No longer static.  Add len
34727         argument, if non-NULL, don't call c_strlen.  Optimize
34728         directly into __builtin_memcpy instead of __builtin_strcpy.
34729         (fold_builtin_2): Adjust fold_builtin_strcat caller.
34730         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
34731
34732 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34733
34734         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34735         for SImode_address_operand operands, having only a REG argument.
34736
34737 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34738
34739         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
34740         loader name using mbig-endian.
34741         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
34742
34743 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34744
34745         * doc/invoke.texi (-march): Clarify documentation for AArch64.
34746         (-mtune): Likewise.
34747         (-mcpu): Likewise.
34748
34749 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
34750
34751         * config/aarch64/aarch64-protos.h
34752         (aarch64_cannot_change_mode_class_ptr): Declare.
34753         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
34754         aarch64_cannot_change_mode_class_ptr): New.
34755         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
34756         backend hook aarch64_cannot_change_mode_class.
34757
34758 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34759
34760         * common/config/aarch64/aarch64-common.c
34761         (aarch64_handle_option): Don't handle any option order logic here.
34762         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
34763         selected_cpu, warn on architecture version mismatch.
34764         (aarch64_override_options): Fix parsing order for option strings.
34765
34766 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34767             Iain Sandoe  <iain@codesourcery.com>
34768
34769         PR bootstrap/59496
34770         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
34771         warning.  Amend comment to reflect current functionality.
34772
34773 2014-01-20  Richard Biener  <rguenther@suse.de>
34774
34775         PR middle-end/59860
34776         * builtins.c (fold_builtin_strcat): Remove case better handled
34777         by tree-ssa-strlen.c.
34778
34779 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
34780
34781         * config/aarch64/aarch64.opt
34782         (mcpu, march, mtune): Make case-insensitive.
34783
34784 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34785
34786         PR target/59880
34787         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34788         if operands[1] is a REG or ZERO_EXTEND of a REG.
34789
34790 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
34791
34792         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
34793
34794 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
34795
34796         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
34797         long non-pic millicode calls.
34798
34799 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34800
34801         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
34802
34803 2014-01-19  Kito Cheng  <kito@0xlab.org>
34804
34805         * builtins.c (expand_movstr): Check movstr expand done or fail.
34806
34807 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34808             H.J. Lu  <hongjiu.lu@intel.com>
34809
34810         PR target/59379
34811         * config/i386/i386.md (*lea<mode>): Zero-extend return register
34812         to DImode for zero-extended addresses.
34813
34814 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
34815
34816         PR rtl-optimization/57763
34817         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
34818         on the new indirect jump_insn and increment LABEL_NUSES (label).
34819
34820 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
34821
34822         PR bootstrap/59580
34823         PR bootstrap/59583
34824         * config.gcc (x86_archs): New variable.
34825         (x86_64_archs): Likewise.
34826         (x86_cpus): Likewise.
34827         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
34828         --with-arch/--with-cpu= options.
34829         Support --with-arch=/--with-cpu={nehalem,westmere,
34830         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
34831
34832 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34833
34834         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
34835         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
34836
34837 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34838
34839         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
34840
34841 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
34842
34843         PR target/58944
34844         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
34845         clear cpp_get_options (parse_in)->warn_unused_macros for
34846         ix86_target_macros_internal with cpp_define.
34847
34848 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
34849
34850         * jump.c (delete_related_insns): Keep (use (insn))s.
34851         * reorg.c (redundant_insn): Check for barriers too.
34852
34853 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34854
34855         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
34856
34857 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
34858
34859         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
34860         call to $$dyncall when TARGET_LONG_CALLS is true.
34861
34862 2014-01-17  Jeff Law  <law@redhat.com>
34863
34864         * ree.c (combine_set_extension): Temporarily disable test for
34865         changing number of hard registers.
34866
34867 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34868
34869         PR middle-end/58125
34870         * ipa-inline-analysis.c (inline_free_summary):
34871         Do not free summary of aliases.
34872
34873 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34874
34875         PR middle-end/59706
34876         * gimplify.c (gimplify_expr): Use create_tmp_var
34877         instead of create_tmp_var_raw.  If cond doesn't have
34878         integral type, don't add the IFN_ANNOTATE builtin at all.
34879
34880 2014-01-17  Martin Jambor  <mjambor@suse.cz>
34881
34882         PR ipa/59736
34883         * ipa-cp.c (prev_edge_clone): New variable.
34884         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
34885         Also resize prev_edge_clone vector.
34886         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
34887         (ipcp_edge_removal_hook): New function.
34888         (ipcp_driver): Register ipcp_edge_removal_hook.
34889
34890 2014-01-17  Andrew Pinski  <apinski@cavium.com>
34891             Steve Ellcey  <sellcey@mips.com>
34892
34893         PR target/59462
34894         * config/mips/mips.c (mips_print_operand): Check operand mode instead
34895         of operator mode.
34896
34897 2014-01-17  Jeff Law  <law@redhat.com>
34898
34899         PR middle-end/57904
34900         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
34901         so that pass_ccp runs first.
34902
34903 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34904
34905         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
34906         (ix86_adjust_cost): Use !TARGET_XXX.
34907         (do_reorder_for_imul): Likewise.
34908         (swap_top_of_ready_list): Likewise.
34909         (ix86_sched_reorder): Likewise.
34910
34911 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34912
34913         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34914         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
34915         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
34916         (intel_memset): New.  Duplicate slm_memset.
34917         (intel_cost): New.  Duplicate slm_cost.
34918         (m_INTEL): New macro.
34919         (processor_target_table): Add "intel".
34920         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
34921         with PROCESSOR_INTEL for "intel".
34922         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
34923         PROCESSOR_SILVERMONT.
34924         (ix86_issue_rate): Likewise.
34925         (ix86_adjust_cost): Likewise.
34926         (ia32_multipass_dfa_lookahead): Likewise.
34927         (swap_top_of_ready_list): Likewise.
34928         (ix86_sched_reorder): Likewise.
34929         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
34930         instead of TARGET_OPT_AGU.
34931         * config/i386/i386.h (TARGET_INTEL): New.
34932         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
34933         (processor_type): Add PROCESSOR_INTEL.
34934         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
34935         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
34936
34937 2014-01-17  Marek Polacek  <polacek@redhat.com>
34938
34939         PR c/58346
34940         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
34941         size is zero.
34942
34943 2014-01-17  Richard Biener  <rguenther@suse.de>
34944
34945         PR tree-optimization/46590
34946         * opts.c (default_options_table): Add entries for
34947         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
34948         all enabled at -O1 but not for -Og.
34949         * common.opt (fbranch-count-reg): Remove Init(1).
34950         (fmove-loop-invariants): Likewise.
34951         (ftree-pta): Likewise.
34952
34953 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34954
34955         * config/i386/i386.c (ix86_data_alignment): For compatibility with
34956         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
34957         decls to at least the GCC 4.8 used alignments.
34958
34959         PR fortran/59440
34960         * tree-nested.c (convert_nonlocal_reference_stmt,
34961         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
34962         of GIMPLE_BIND stmts, adjust associated decls.
34963
34964 2014-01-17  Richard Biener  <rguenther@suse.de>
34965
34966         PR tree-optimization/46590
34967         * vec.h (vec<>::bseach): New member function implementing
34968         binary search according to C89 bsearch.
34969         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
34970         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
34971         bitmap pointer again.  Make accesses_in_loop a flat array.
34972         (mem_ref_obstack): New global.
34973         (outermost_indep_loop): Adjust for mem_ref->stored changes.
34974         (mark_ref_stored): Likewise.
34975         (ref_indep_loop_p_2): Likewise.
34976         (set_ref_stored_in_loop): New helper function.
34977         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
34978         (memref_free): Adjust.
34979         (record_mem_ref_loc): Simplify.
34980         (gather_mem_refs_stmt): Adjust.
34981         (sort_locs_in_loop_postorder_cmp): New function.
34982         (analyze_memory_references): Sort accesses_in_loop after
34983         loop postorder number.
34984         (find_ref_loc_in_loop_cmp): New function.
34985         (for_all_locs_in_loop): Find relevant cluster of locs in
34986         accesses_in_loop and iterate without recursion.
34987         (execute_sm): Avoid uninit warning.
34988         (struct ref_always_accessed): Simplify.
34989         (ref_always_accessed::operator ()): Likewise.
34990         (ref_always_accessed_p): Likewise.
34991         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
34992         loop postorder numbers here.
34993         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
34994         numbers.
34995
34996 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34997
34998         PR c++/57945
34999         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35000         on decls for which assemble_alias has been called.
35001
35002 2014-01-17  Nick Clifton  <nickc@redhat.com>
35003
35004         * config/msp430/msp430.opt: (mcpu): New option.
35005         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35006         (msp430_option_override): Parse target_cpu.  If the MCU name
35007         matches a generic string, clear target_mcu.
35008         (msp430_attr): Allow numeric interrupt values up to 63.
35009         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35010         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35011         option.
35012         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35013         Add mcpu matches.
35014         * config/msp430/msp430.md (popm): Use %J rather than %I.
35015         (addsi3): Use msp430_nonimmediate_operand for operand 2.
35016         (addhi_cy_i): Use immediate_operand for operand 2.
35017         * doc/invoke.texi: Document -mcpu option.
35018
35019 2014-01-17  Richard Biener  <rguenther@suse.de>
35020
35021         PR rtl-optimization/38518
35022         * df.h (df_analyze_loop): Declare.
35023         * df-core.c: Include cfgloop.h.
35024         (df_analyze_1): Split out main part of df_analyze.
35025         (df_analyze): Adjust.
35026         (loop_inverted_post_order_compute): New function.
35027         (loop_post_order_compute): Likewise.
35028         (df_analyze_loop): New function avoiding whole-function
35029         postorder computes.
35030         * loop-invariant.c (find_defs): Use df_analyze_loop.
35031         (find_invariants): Adjust.
35032         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35033
35034 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
35035
35036         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35037         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35038
35039 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
35040
35041         * ipa-ref.c (ipa_remove_stmt_references): Fix references
35042         traversal when removing references.
35043
35044 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
35045
35046         PR ipa/59775
35047         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35048
35049 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
35050
35051         PR middle-end/56791
35052         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35053         pushing a reload for an autoinc when we had previously reloaded an
35054         inner part of the address.
35055
35056 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
35057
35058         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35059         field.
35060         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35061         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35062         when not giving up or versioning for alias only because of
35063         loop->safelen.
35064         (vect_analyze_data_ref_dependences): Set to true.
35065         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35066         is a GIMPLE_PHI.
35067         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35068         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35069         to the condition.
35070
35071         PR middle-end/58344
35072         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35073
35074         PR target/59839
35075         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35076         operand 0 predicate for gathers, use a new pseudo as subtarget.
35077
35078 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35079
35080         PR middle-end/59609
35081         * lra-constraints.c (process_alt_operands): Add printing debug info.
35082         Check absence of input/output reloads for matched operands too.
35083
35084 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35085
35086         PR rtl-optimization/59835
35087         * ira.c (ira_init_register_move_cost): Increase cost for
35088         impossible modes.
35089
35090 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
35091
35092         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35093
35094 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
35095
35096         PR target/59780
35097         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35098         non-register objects.  Use gen_(high/low)part more consistently.
35099         Fix assertions.
35100
35101 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35102
35103         PR target/59844
35104         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35105         endian support, remove tests for WORDS_BIG_ENDIAN.
35106         (p8_mfvsrd_3_<mode>): Likewise.
35107         (reload_gpr_from_vsx<mode>): Likewise.
35108         (reload_gpr_from_vsxsf): Likewise.
35109         (p8_mfvsrd_4_disf): Likewise.
35110
35111 2014-01-16  Richard Biener  <rguenther@suse.de>
35112
35113         PR rtl-optimization/46590
35114         * lcm.c (compute_antinout_edge): Use postorder iteration.
35115         (compute_laterin): Use inverted postorder iteration.
35116
35117 2014-01-16  Nick Clifton  <nickc@redhat.com>
35118
35119         PR middle-end/28865
35120         * varasm.c (output_constant): Return the number of bytes actually
35121         emitted.
35122         (output_constructor_array_range): Update the field size with the
35123         number of bytes emitted by output_constant.
35124         (output_constructor_regular_field): Likewise.  Also do not
35125         complain if the total number of bytes emitted is now greater
35126         than the expected fieldpos.
35127         * output.h (output_constant): Update prototype and descriptive comment.
35128
35129 2014-01-16  Marek Polacek  <polacek@redhat.com>
35130
35131         PR middle-end/59827
35132         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35133         it is error_mark_node.
35134
35135 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35136
35137         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35138         VALID_AVX256_REG_OR_OI_MODE.
35139
35140 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35141
35142         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35143         current procedure should be profiled.
35144
35145 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35146
35147         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35148         of moving from/to the STACK_REG register class.
35149
35150 2014-01-15  Richard Henderson  <rth@redhat.com>
35151
35152         PR debug/54694
35153         * reginfo.c (global_regs_decl): Globalize.
35154         * rtl.h (global_regs_decl): Declare.
35155         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35156         reserved via global_regs.
35157
35158 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35159
35160         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35161
35162 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35163
35164         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35165         and vmulosh rather than call gen_vec_widen_smult_*.
35166         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35167         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35168         (vec_widen_smult_even_v16qi): Likewise.
35169         (vec_widen_umult_even_v8hi): Likewise.
35170         (vec_widen_smult_even_v8hi): Likewise.
35171         (vec_widen_umult_odd_v16qi): Likewise.
35172         (vec_widen_smult_odd_v16qi): Likewise.
35173         (vec_widen_umult_odd_v8hi): Likewise.
35174         (vec_widen_smult_odd_v8hi): Likewise.
35175         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35176         vmuloub rather than call gen_vec_widen_umult_*.
35177         (vec_widen_umult_lo_v16qi): Likewise.
35178         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35179         vmulosb rather than call gen_vec_widen_smult_*.
35180         (vec_widen_smult_lo_v16qi): Likewise.
35181         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35182         rather than call gen_vec_widen_umult_*.
35183         (vec_widen_umult_lo_v8hi): Likewise.
35184         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35185         rather than call gen_vec_widen_smult_*.
35186         (vec_widen_smult_lo_v8hi): Likewise.
35187
35188 2014-01-15  Jeff Law  <law@redhat.com>
35189
35190         PR tree-optimization/59747
35191         * ree.c (find_and_remove_re): Properly handle case where a second
35192         eliminated extension requires widening a copy created for elimination
35193         of a prior extension.
35194         (combine_set_extension): Ensure that the number of hard regs needed
35195         for a destination register does not change when we widen it.
35196
35197 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35198
35199         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35200         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35201         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35202         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35203         (avr-*-rtems*): Likewise.
35204         (bfin*-rtems*): Likewise.
35205         (moxie-*-rtems*): Likewise.
35206         (h8300-*-rtems*): Likewise.
35207         (i[34567]86-*-rtems*): Likewise.
35208         (lm32-*-rtems*): Likewise.
35209         (m32r-*-rtems*): Likewise.
35210         (m68k-*-rtems*): Likewise.
35211         (microblaze*-*-rtems*): Likewise.
35212         (mips*-*-rtems*): Likewise.
35213         (powerpc-*-rtems*): Likewise.
35214         (sh-*-rtems*): Likewise.
35215         (sparc-*-rtems*): Likewise.
35216         (sparc64-*-rtems*): Likewise.
35217         (v850-*-rtems*): Likewise.
35218         (m32c-*-rtems*): Likewise.
35219
35220 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35221
35222         PR rtl-optimization/59511
35223         * ira.c (ira_init_register_move_cost): Use memory costs for some
35224         cases of register move cost calculations.
35225         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35226         instead of BB frequency.
35227         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35228         * lra-assigns.c (find_hard_regno_for): Ditto.
35229
35230 2014-01-15  Richard Biener  <rguenther@suse.de>
35231
35232         PR tree-optimization/59822
35233         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35234         (vectorizable_load): Use it to hoist defs of uses of invariant
35235         loads out of the loop.
35236
35237 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35238             Kugan Vivekanandarajah  <kuganv@linaro.org>
35239
35240         PR target/59695
35241         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35242         truncation.
35243
35244 2014-01-15  Richard Biener  <rguenther@suse.de>
35245
35246         PR rtl-optimization/59802
35247         * lcm.c (compute_available): Use inverted postorder to seed
35248         the initial worklist.
35249
35250 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35251
35252         PR target/59803
35253         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35254         ADDR_REGS for invalid symrefs in non-PIC code.
35255
35256 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35257
35258         PR other/58712
35259         * builtins.c (determine_block_size): Initialize *probable_max_size
35260         even if len_rtx is CONST_INT.
35261
35262 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35263
35264         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35265         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35266         (cortexa53_tunings): Likewise.
35267         (aarch64_sched_issue_rate): New function.
35268         (TARGET_SCHED_ISSUE_RATE): Define.
35269
35270 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35271
35272         * ira-costs.c (find_costs_and_classes): Add missed
35273         ira_init_register_move_cost_if_necessary.
35274
35275 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35276
35277         PR target/59787
35278         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35279
35280 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35281
35282         PR target/59794
35283         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35284         to indicate if type is used for function return value.  Warn ABI
35285         change if the vector mode isn't available for function return value.
35286         (ix86_function_arg_advance): Pass false to type_natural_mode.
35287         (ix86_function_arg): Likewise.
35288         (ix86_gimplify_va_arg): Likewise.
35289         (function_arg_32): Don't warn ABI change.
35290         (ix86_function_value): Pass true to type_natural_mode.
35291         (ix86_return_in_memory): Likewise.
35292         (ix86_struct_value_rtx): Removed.
35293         (TARGET_STRUCT_VALUE_RTX): Likewise.
35294
35295 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35296
35297         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35298         converting a conditional jump into a conditional return.
35299
35300 2014-01-14  Richard Biener  <rguenther@suse.de>
35301
35302         PR tree-optimization/58921
35303         PR tree-optimization/59006
35304         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35305         hoisting invariant stmts.
35306         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35307         invariant loads on the preheader edge if possible.
35308
35309 2014-01-14  Joey Ye  <joey.ye@arm.com>
35310
35311         * doc/plugin.texi (Building GCC plugins): Update to C++.
35312
35313 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35314
35315         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35316         (_mm_rcp28_round_ss): Ditto.
35317         (_mm_rsqrt28_round_sd): Ditto.
35318         (_mm_rsqrt28_round_ss): Ditto.
35319         (_mm_rcp28_sd): Ditto.
35320         (_mm_rcp28_ss): Ditto.
35321         (_mm_rsqrt28_sd): Ditto.
35322         (_mm_rsqrt28_ss): Ditto.
35323         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35324         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35325         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35326         (IX86_BUILTIN_RCP28SD): Ditto.
35327         (IX86_BUILTIN_RCP28SS): Ditto.
35328         (IX86_BUILTIN_RSQRT28SD): Ditto.
35329         (IX86_BUILTIN_RSQRT28SS): Ditto.
35330         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35331         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35332         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35333         (ix86_expand_special_args_builtin): Expand new FTYPE.
35334         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35335         (srcp14<mode>): Make insn unary.
35336         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35337         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35338         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35339         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35340         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35341         Fix rounding: make it SAE only.
35342         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35343         Ditto.
35344         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35345         Ditto.
35346         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35347         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35348         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35349         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35350         (round_saeonly_mask_scalar_operand4): Ditto.
35351         (round_saeonly_mask_scalar_op3): Ditto.
35352         (round_saeonly_mask_scalar_op4): Ditto.
35353
35354 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35355
35356         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35357         Implement -maltivec=be for vec_insert and vec_extract.
35358
35359 2014-01-10  DJ Delorie  <dj@redhat.com>
35360
35361         * config/msp430/msp430.md (call_internal): Don't allow memory
35362         references with SP as the base register.
35363         (call_value_internal): Likewise.
35364         * config/msp430/constraints.md (Yc): New.  For memory references
35365         that don't use SP as a base register.
35366
35367         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35368         "an integer without a # prefix"
35369         * config/msp430/msp430.md (epilogue_helper): Use it.
35370
35371 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35372
35373         PR target/59617
35374         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35375         AVX512F gather builtins.
35376         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35377         on gather decls with INTEGER_TYPE masktype.
35378         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35379         directly into the builtin rather than hoisting it before loop.
35380
35381         PR tree-optimization/59387
35382         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35383         (scev_const_prop): If folded_casts and type has undefined overflow,
35384         use force_gimple_operand instead of force_gimple_operand_gsi and
35385         for each added stmt if it is assign with
35386         arith_code_with_undefined_signed_overflow, call
35387         rewrite_to_defined_overflow.
35388         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35389         gimple-fold.h instead.
35390         (arith_code_with_undefined_signed_overflow,
35391         rewrite_to_defined_overflow): Moved to ...
35392         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35393         rewrite_to_defined_overflow): ... here.  No longer static.
35394         Include gimplify-me.h.
35395         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35396         rewrite_to_defined_overflow): New prototypes.
35397
35398 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35399
35400         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35401
35402 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35403
35404         * builtins.c (get_object_alignment_2): Minor tweak.
35405         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35406
35407 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35408
35409         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35410         optimized non constant lengths.
35411
35412 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35413
35414         PR libgomp/59194
35415         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35416         load as __atomic_load_N if possible.
35417
35418 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35419
35420         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35421         target parameter.
35422         (rs6000_expand_builtin): Adjust call.
35423
35424 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35425
35426         PR target/58115
35427         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35428         * config/rs6000/rs6000.c: Include target-globals.h.
35429         (rs6000_set_current_function): Instead of doing target_reinit
35430         unconditionally, use save_target_globals_default_opts and
35431         restore_target_globals.
35432
35433         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35434         FPSCR.
35435         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35436         (rs6000_expand_builtin): Handle mffs and mtfsf.
35437         (rs6000_init_builtins): Define mffs and mtfsf.
35438         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35439         (rs6000_mffs): New pattern.
35440         (rs6000_mtfsf): New pattern.
35441
35442 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
35443
35444         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35445         Start narrowing with START.  Apply candidate-use pair
35446         and check overall cost in narrowing.
35447         (iv_ca_prune): Pass new argument.
35448
35449 2014-01-10  Jeff Law  <law@redhat.com>
35450
35451         PR middle-end/59743
35452         * ree.c (combine_reaching_defs): Ensure the defining statement
35453         occurs before the extension when optimizing extensions with
35454         different source and destination hard registers.
35455
35456 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35457
35458         PR ipa/58585
35459         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35460         vtables into the type inheritance graph.
35461
35462 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35463
35464         PR rtl-optimization/59754
35465         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35466         modes in the REGNO != REGNO case.
35467
35468 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35469
35470         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35471
35472 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35473
35474         PR tree-optimization/59745
35475         * tree-predcom.c (tree_predictive_commoning_loop): Call
35476         free_affine_expand_cache if giving up because components is NULL.
35477
35478         * target-globals.c (save_target_globals): Allocate < 4KB structs using
35479         GC in payload of target_globals struct instead of allocating them on
35480         the heap and the larger structs separately using GC.
35481         * target-globals.h (struct target_globals): Make regs, hard_regs,
35482         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35483         of GTY((skip)) and change type to void *.
35484         (reset_target_globals): Cast loads from those fields to corresponding
35485         types.
35486
35487 2014-01-10  Steve Ellcey  <sellcey@mips.com>
35488
35489         PR plugins/59335
35490         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
35491         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
35492         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
35493
35494 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
35495
35496         PR target/59744
35497         * aarch64-modes.def (CC_Zmode): New flags mode.
35498         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
35499         represents an equality.
35500         (aarch64_get_condition_code): Handle CC_Zmode.
35501         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
35502
35503 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35504
35505         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
35506         extraction in good case.
35507
35508 2014-01-10  Richard Biener  <rguenther@suse.de>
35509
35510         PR tree-optimization/59374
35511         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
35512         checking after SLP discovery.  Mark stmts not participating
35513         in any SLP instance properly.
35514
35515 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35516
35517         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
35518         when handling a SET rtx.
35519
35520 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35521
35522         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
35523         (cortex-a57): Likewise.
35524         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
35525
35526 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35527
35528         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
35529         non-iwmmxt builtins.
35530
35531 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35532
35533         PR ipa/58252
35534         PR ipa/59226
35535         * ipa-devirt.c record_target_from_binfo): Take as argument
35536         stack of binfos and lookup matching one for virtual inheritance.
35537         (possible_polymorphic_call_targets_1): Update.
35538
35539 2014-01-10  Huacai Chen  <chenhc@lemote.com>
35540
35541         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
35542         kernel strings for Loongson-2E/2F/3A.
35543
35544 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35545
35546         PR middle-end/59670
35547         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
35548         is_gimple_call before calling gimple_call_internal_p.
35549
35550 2014-01-09  Steve Ellcey  <sellcey@mips.com>
35551
35552         * Makefile.in (TREE_FLOW_H): Remove.
35553         (TREE_SSA_H): Add file names from tree-flow.h.
35554         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
35555         * tree.h: Remove tree-flow.h reference.
35556         * hash-table.h: Remove tree-flow.h reference.
35557         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
35558         reference with tree-ssa-loop.h.
35559
35560 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35561
35562         * doc/invoke.texi: Add -maltivec={be,le} options, and document
35563         default element-order behavior for -maltivec.
35564         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
35565         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
35566         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
35567         when targeting big endian, at least for now.
35568         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
35569
35570 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35571
35572         PR middle-end/47735
35573         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
35574         var satisfies use_register_for_decl, just take into account type
35575         alignment, rather than decl alignment.
35576
35577         PR tree-optimization/59622
35578         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
35579         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
35580         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
35581         Don't devirtualize for inplace at all.  For targets.length () == 1,
35582         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
35583
35584 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35585
35586         * config/i386/i386.md (cpu): Remove the unused btver1.
35587
35588 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35589
35590         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
35591
35592 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35593
35594         PR target/58115
35595         * tree-core.h (struct target_globals): New forward declaration.
35596         (struct tree_target_option): Add globals field.
35597         * tree.h (TREE_TARGET_GLOBALS): Define.
35598         (prepare_target_option_nodes_for_pch): New prototype.
35599         * target-globals.h (struct target_globals): Define even if
35600         !SWITCHABLE_TARGET.
35601         * tree.c (prepare_target_option_node_for_pch,
35602         prepare_target_option_nodes_for_pch): New functions.
35603         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
35604         * config/i386/i386.c: Include target-globals.h.
35605         (ix86_set_current_function): Instead of doing target_reinit
35606         unconditionally, use save_target_globals_default_opts and
35607         restore_target_globals.
35608
35609 2014-01-09  Richard Biener  <rguenther@suse.de>
35610
35611         PR tree-optimization/59715
35612         * tree-cfg.h (split_critical_edges): Declare.
35613         * tree-cfg.c (split_critical_edges): Export.
35614         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
35615
35616 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
35617
35618         * cfgexpand.c (expand_stack_vars): Optionally disable
35619         asan stack protection.
35620         (expand_used_vars): Likewise.
35621         (partition_stack_vars): Likewise.
35622         * asan.c (asan_emit_stack_protection): Optionally disable
35623         after return stack usage.
35624         (instrument_derefs): Optionally disable memory access instrumentation.
35625         (instrument_builtin_call): Likewise.
35626         (instrument_strlen_call): Likewise.
35627         (asan_protect_global): Optionally disable global variables protection.
35628         * doc/invoke.texi: Added doc for new options.
35629         * params.def: Added new options.
35630         * params.h: Likewise.
35631
35632 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35633
35634         PR rtl-optimization/59724
35635         * ifcvt.c (cond_exec_process_if_block): Don't call
35636         flow_find_head_matching_sequence with 0 longest_match.
35637         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
35638         non-active insns if !stop_after.
35639         (try_head_merge_bb): Revert 2014-01-07 changes.
35640
35641 2014-01-08  Jeff Law  <law@redhat.com>
35642
35643         * ree.c (get_sub_rtx): New function, extracted from...
35644         (merge_def_and_ext): Here.
35645         (combine_reaching_defs): Use get_sub_rtx.
35646
35647 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
35648
35649         * cgraph.h (varpool_variable_node): Do not choke on null node.
35650
35651 2014-01-08  Catherine Moore  <clm@codesourcery.com>
35652
35653         * config/mips/mips.md (simple_return): Attempt to use JRC
35654         for microMIPS.
35655         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
35656
35657 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35658
35659         PR rtl-optimization/59137
35660         * reorg.c (steal_delay_list_from_target): Call update_block for
35661         elided insns.
35662         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
35663
35664 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35665
35666         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
35667         two duplicate entries.
35668
35669 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35670
35671         Revert:
35672         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
35673
35674         * config/mips/mips.c (mips_truncated_op_cost): New function.
35675         (mips_rtx_costs): Adjust test for BADDU.
35676         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
35677
35678         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
35679
35680         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
35681         (*baddu_si): ...this new pattern.
35682
35683 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35684
35685         PR ipa/59722
35686         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
35687
35688 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35689
35690         PR middle-end/57748
35691         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
35692         inner_reference_p.
35693         (expand_expr, expand_normal): Adjust.
35694         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
35695         inner_reference_p. Use inner_reference_p to expand inner references.
35696         (store_expr): Adjust.
35697         * cfgexpand.c (expand_call_stmt): Adjust.
35698
35699 2014-01-08  Rong Xu  <xur@google.com>
35700
35701         * gcov-io.c (gcov_var): Move from gcov-io.h.
35702         (gcov_position): Ditto.
35703         (gcov_is_error): Ditto.
35704         (gcov_rewrite): Ditto.
35705         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
35706         only part to libgcc/libgcov.h.
35707
35708 2014-01-08  Marek Polacek  <polacek@redhat.com>
35709
35710         PR middle-end/59669
35711         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
35712
35713 2014-01-08  Marek Polacek  <polacek@redhat.com>
35714
35715         PR sanitizer/59667
35716         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
35717
35718 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35719
35720         PR rtl-optimization/59649
35721         * stor-layout.c (get_mode_bounds): For BImode return
35722         0 and STORE_FLAG_VALUE.
35723
35724 2014-01-08  Richard Biener  <rguenther@suse.de>
35725
35726         PR middle-end/59630
35727         * gimple.h (is_gimple_builtin_call): Remove.
35728         (gimple_builtin_call_types_compatible_p): New.
35729         (gimple_call_builtin_p): New overload.
35730         * gimple.c (is_gimple_builtin_call): Remove.
35731         (validate_call): Rename to ...
35732         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
35733         check return types.
35734         (validate_type): New static function.
35735         (gimple_call_builtin_p): New overload and adjust.
35736         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
35737         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
35738         (gimple_fold_stmt_to_constant_1): Likewise.
35739         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
35740
35741 2014-01-08  Richard Biener  <rguenther@suse.de>
35742
35743         PR middle-end/59471
35744         * gimplify.c (gimplify_expr): Gimplify register-register type
35745         VIEW_CONVERT_EXPRs to separate stmts.
35746
35747 2014-01-07  Jeff Law  <law@redhat.com>
35748
35749         PR middle-end/53623
35750         * ree.c (combine_set_extension): Handle case where source
35751         and destination registers in an extension insn are different.
35752         (combine_reaching_defs): Allow source and destination registers
35753         in extension to be different under limited circumstances.
35754         (add_removable_extension): Remove restriction that the
35755         source and destination registers in the extension are the same.
35756         (find_and_remove_re): Emit a copy from the extension's
35757         destination to its source after the defining insn if
35758         the source and destination registers are different.
35759
35760         PR middle-end/59285
35761         * ifcvt.c (merge_if_block): If we are merging a block with more than
35762         one successor with a block with no successors, remove any BARRIER
35763         after the second block.
35764
35765 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
35766
35767         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
35768
35769 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
35770
35771         PR target/59652
35772         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
35773         for 14-bit register offsets when INT14_OK_STRICT is false.
35774
35775 2014-01-07  Roland Stigge  <stigge@antcom.de>
35776             Michael Meissner  <meissner@linux.vnet.ibm.com>
35777
35778         PR 57386/target
35779         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
35780         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
35781
35782 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
35783
35784         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
35785         -mcpu.
35786
35787 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
35788
35789         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
35790         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
35791         rtx is const0_rtx or not.
35792
35793 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
35794
35795         PR target/58115
35796         * target-globals.c (save_target_globals): Remove this_fn_optab
35797         handling.
35798         * toplev.c: Include optabs.h.
35799         (target_reinit): Temporarily restore the global options if another
35800         set of options are in force.
35801
35802 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
35803
35804         PR rtl-optimization/58668
35805         * cfgcleanup.c (flow_find_cross_jump): Don't count
35806         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
35807         to determine what is counted.
35808         (flow_find_head_matching_sequence): Use active_insn_p to determine
35809         what is counted.
35810         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
35811         counting change.
35812         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
35813         determine what is counted.
35814
35815         PR tree-optimization/59643
35816         * tree-predcom.c (split_data_refs_to_components): If one dr is
35817         read and one write, determine_offset fails and the write isn't
35818         in the bad component, just put the read into the bad component.
35819
35820 2014-01-07  Mike Stump  <mikestump@comcast.net>
35821             Jakub Jelinek  <jakub@redhat.com>
35822
35823         PR pch/59436
35824         * tree-core.h (struct tree_optimization_option): Change optabs
35825         type from unsigned char * to void *.
35826         * optabs.c (init_tree_optimization_optabs): Adjust
35827         TREE_OPTIMIZATION_OPTABS initialization.
35828
35829 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
35830
35831         PR target/59644
35832         * config/i386/i386.h (struct machine_function): Add
35833         no_drap_save_restore field.
35834         * config/i386/i386.c (ix86_save_reg): Use
35835         !cfun->machine->no_drap_save_restore instead of
35836         crtl->stack_realign_needed.
35837         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
35838         this function clears frame_pointer_needed.  Set
35839         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
35840         and DRAP reg is needed.
35841
35842 2014-01-06  Marek Polacek  <polacek@redhat.com>
35843
35844         PR c/57773
35845         * doc/implement-c.texi: Mention that other integer types are
35846         permitted as bit-field types in strictly conforming mode.
35847
35848 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
35849
35850         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
35851         is newly allocated.
35852
35853 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
35854
35855         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
35856
35857 2014-01-06  Martin Jambor  <mjambor@suse.cz>
35858
35859         PR ipa/59008
35860         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
35861         to int.
35862         * ipa-prop.c (ipa_print_node_params): Fix indentation.
35863
35864 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
35865
35866         PR debug/59350
35867         PR debug/59510
35868         * var-tracking.c (add_stores): Preserve the value of the source even if
35869         we don't record the store.
35870
35871 2014-01-06  Terry Guo  <terry.guo@arm.com>
35872
35873         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
35874
35875 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
35876
35877         PR bootstrap/59541
35878         * config/darwin.c (darwin_function_section): Adjust return values to
35879         correspond to optimisation changes made in r206070.
35880
35881 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
35882
35883         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
35884         from prefetch_block tune setting.
35885         (nocona_cost): Correct size of prefetch block to 64.
35886
35887 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
35888
35889         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
35890         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
35891         used to save the static chain register in the computation of the offset
35892         from which the FP registers need to be restored.
35893
35894 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
35895
35896         PR tree-optimization/59519
35897         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
35898         ICE if get_current_def (current_new_name) is already non-NULL, as long
35899         as it is a phi result of some other phi in *new_exit_bb that has
35900         the same argument.
35901
35902         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
35903         or vmovdqu* for misaligned_operand.
35904         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
35905         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
35906         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
35907         aligned_mem for AVX512F masked aligned load and store builtins and for
35908         non-temporal moves.
35909
35910 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
35911
35912         PR tree-optimization/59651
35913         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
35914         Address range for negative step should be added by TYPE_SIZE_UNIT.
35915
35916 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
35917
35918         * config/m68k/m68k.c (handle_move_double): Handle pushes with
35919         overlapping registers also for registers other than the stack pointer.
35920
35921 2014-01-03  Marek Polacek  <polacek@redhat.com>
35922
35923         PR other/59661
35924         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
35925         __builtin_FILE.
35926
35927 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
35928
35929         PR target/59625
35930         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
35931         asm goto as jump.
35932
35933         * config/i386/i386.md (MODE_SIZE): New mode attribute.
35934         (push splitter): Use <P:MODE_SIZE> instead of
35935         GET_MODE_SIZE (<P:MODE>mode).
35936         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
35937         (mov -1, reg peephole2): Likewise.
35938         * config/i386/sse.md (*mov<mode>_internal,
35939         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
35940         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
35941         *<code><mode>3, *andnot<mode>3<mask_name>,
35942         <mask_codefor><code><mode>3<mask_name>): Likewise.
35943         * config/i386/subst.md (mask_mode512bit_condition,
35944         sd_mask_mode512bit_condition): Likewise.
35945
35946 2014-01-02  Xinliang David Li  <davidxl@google.com>
35947
35948         PR tree-optimization/59303
35949         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
35950         (dump_predicates): Better output format.
35951         (pred_equal_p): New function.
35952         (is_neq_relop_p): Ditto.
35953         (is_neq_zero_form_p): Ditto.
35954         (pred_expr_equal_p): Ditto.
35955         (pred_neg_p): Ditto.
35956         (simplify_pred): Ditto.
35957         (simplify_preds_2): Ditto.
35958         (simplify_preds_3): Ditto.
35959         (simplify_preds_4): Ditto.
35960         (simplify_preds): Ditto.
35961         (push_pred): Ditto.
35962         (push_to_worklist): Ditto.
35963         (get_pred_info_from_cmp): Ditto.
35964         (is_degenerated_phi): Ditto.
35965         (normalize_one_pred_1): Ditto.
35966         (normalize_one_pred): Ditto.
35967         (normalize_one_pred_chain): Ditto.
35968         (normalize_preds): Ditto.
35969         (normalize_cond_1): Remove function.
35970         (normalize_cond): Ditto.
35971         (is_gcond_subset_of): Ditto.
35972         (is_subset_of_any): Ditto.
35973         (is_or_set_subset_of): Ditto.
35974         (is_and_set_subset_of): Ditto.
35975         (is_norm_cond_subset_of): Ditto.
35976         (pred_chain_length_cmp): Ditto.
35977         (convert_control_dep_chain_into_preds): Type change.
35978         (find_predicates): Ditto.
35979         (find_def_preds): Ditto.
35980         (destroy_predicates_vecs): Ditto.
35981         (find_matching_predicates_in_rest_chains): Ditto.
35982         (use_pred_not_overlap_with_undef_path_pred): Ditto.
35983         (is_pred_expr_subset): Ditto.
35984         (is_pred_chain_subset_of): Ditto.
35985         (is_included_in): Ditto.
35986         (is_superset_of): Ditto.
35987
35988 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35989
35990         Update copyright years.
35991
35992 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35993
35994         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
35995         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
35996         config/arc/arc.md, config/arc/arc.opt,
35997         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
35998         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
35999         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36000         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36001         config/linux-protos.h, config/linux.c, config/winnt-c.c,
36002         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36003         vtable-verify.c, vtable-verify.h: Use the standard form for the
36004         copyright notice.
36005
36006 2014-01-02  Tobias Burnus  <burnus@net-b.de>
36007
36008         * gcc.c (process_command): Update copyright notice dates.
36009         * gcov-dump.c: Ditto.
36010         * gcov.c: Ditto.
36011         * doc/cpp.texi: Bump @copying's copyright year.
36012         * doc/cppinternals.texi: Ditto.
36013         * doc/gcc.texi: Ditto.
36014         * doc/gccint.texi: Ditto.
36015         * doc/gcov.texi: Ditto.
36016         * doc/install.texi: Ditto.
36017         * doc/invoke.texi: Ditto.
36018
36019 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
36020
36021         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36022
36023 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
36024
36025         * config/i386/sse.md (*mov<mode>_internal): Guard
36026         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36027
36028         PR rtl-optimization/59647
36029         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36030         new_rtx into UNSIGNED_FLOAT rtxes.
36031 \f
36032 Copyright (C) 2014 Free Software Foundation, Inc.
36033
36034 Copying and distribution of this file, with or without modification,
36035 are permitted in any medium without royalty provided the copyright
36036 notice and this notice are preserved.