m68k.c: Include rtl-iter.h.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * config/m68k/m68k.c: Include rtl-iter.h.
4         (m68k_final_prescan_insn_1): Delete.
5         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
6
7 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
8
9         PR tree-optimization/63641
10         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
11         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12
13 2014-10-25  Alan Modra  <amodra@gmail.com>
14
15         PR rtl-optimization/63615
16         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
17         decomposing PLUS or MINUS if operands are not placed adjacent
18         in the "ops" array.
19
20 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
21
22         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
23         not allow e500 double in registers not satisyfing
24         SPE_SIMD_REGNO_P.
25
26 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
27
28         * dwarf2out.c (declare_in_namespace): Only emit external
29         declarations in the local scope once.
30
31 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
32
33         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
34
35 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
36
37         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
38         update uses to use new macro arguments.
39         (__LD3_LANE_FUNC): Likewise.
40         (__LD4_LANE_FUNC): Likewise.
41
42 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
43
44         * config/aarch64/aarch64-builtins.c
45         (aarch64_types_loadstruct_lane_qualifiers): Define.
46         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
47         ld4_lane): New builtins.
48         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
49         New pattern.
50         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
51         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
52         (aarch64_ld2_lane<mode>): New expand.
53         (aarch64_ld3_lane<mode>): Likewise.
54         (aarch64_ld4_lane<mode>): Likewise.
55         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
56         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
57
58 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
59
60         * avr-protos.h (avr_out_sign_extend): New.
61         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
62         (avr_out_sign_extend): New function.
63         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
64         (extendhisi2, extendpsisi2): Use it.
65         (adjust_len) [sext]: New.
66
67 2014-10-24  Martin Liska  <mliska@suse.cz>
68
69         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
70         added.
71
72 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
73
74         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
75         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
76         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
77         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
78
79 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
80
81         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
82         do while (0).
83         * config/aarch64/aarch64.c (is_mem_p): Delete.
84         (is_memory_op): Rename to...
85         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
86         (dep_between_memop_and_curr): Assert that the input is a SET.
87         (aarch64_madd_needs_nop): Add comment.  Do not call
88         dep_between_memop_and_curr on NULL body.
89         (aarch64_final_prescan_insn): Add comment.
90         Include rtl-iter.h.
91
92 2014-10-24  Richard Biener  <rguenther@suse.de>
93
94         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
95         to genmatch BUILD_LIBS instead.
96
97 2014-10-24  Richard Biener  <rguenther@suse.de>
98
99         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
100         and build_call_expr_loc.
101         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
102         non_lvalue_loc to build it for GENERIC.
103         (decision_tree::gen_generic): Add location argument to
104         generic_simplify prototype.
105         (capture_info): New class.
106         (capture_info::capture_info): New constructor.
107         (capture_info::walk_match): New method.
108         (capture_info::walk_result): New method.
109         (capture_info::walk_c_expr): New method.
110         (dt_simplify::gen): Handle preserving side-effects for
111         GENERIC code generation.
112         (decision_tree::gen_generic): Do not reject operands
113         with TREE_SIDE_EFFECTS.
114         * generic-match.h: New file.
115         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
116         * match.pd: Add some constant folding patterns from fold-const.c.
117         * fold-const.c: Include generic-match.h.
118         (fold_unary_loc): Dispatch to generic_simplify.
119         (fold_ternary_loc): Likewise.
120         (fold_binary_loc): Likewise.  Remove patterns now implemented
121         by generic_simplify.
122         * gimple-fold.c (replace_stmt_with_simplification): New function.
123         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
124         (no_follow_ssa_edges): New function.
125         (fold_stmt): New overload with valueization hook.  Use
126         no_follow_ssa_edges for the overload without hook.
127         (fold_stmt_inplace): Likewise.
128         * gimple-fold.h (no_follow_ssa_edges): Declare.
129
130 2014-10-24  Felix Yang  <felix.yang@huawei.com>
131         Jiji Jiang  <jiangjiji@huawei.com>
132
133         PR target/63173
134         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
135         (__LD3R_FUNC): Ditto.
136         (__LD4R_FUNC): Ditto.
137         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
138          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
139          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
140          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
141          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
142          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
143         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
144          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
145          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
146          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
147          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
148          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
149         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
150          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
151          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
152          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
153          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
154          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
155         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
156         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
157         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
158         builtins.
159         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
160         (aarch64_simd_ld3r<mode>): Likewise.
161         (aarch64_simd_ld4r<mode>): Likewise.
162         (aarch64_ld2r<mode>): New expand.
163         (aarch64_ld3r<mode>): Likewise.
164         (aarch64_ld4r<mode>): Likewise.
165
166 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
167
168         * rtlanal.c (get_base_term): Handle SCRATCH.
169
170 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
171
172         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
173         register pressure.
174
175 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
176
177         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
178         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
179         (max_issue, choose_ready, sched_init): Update.
180
181 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
182
183         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
184         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
185         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
186         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
187         (print_rank_for_schedule_stats): Print out elements of ready list that
188         ended up on their respective places due to each of the sorting
189         heuristics.
190         (ready_sort): Update.
191         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
192         (schedule_block): Update.
193
194 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
195
196         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
197         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
198         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
199         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
200         (model_start_schedule): Update.
201         (sched_pressure_start_bb): New static function.  Calculate
202         sched_class_regs_num.
203         (schedule_block): Use it.
204         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
205
206 2014-10-24  Richard Biener  <rguenther@suse.de>
207
208         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
209         host library and make sure to pull in the required libintl
210         and libiconv dependencies.
211
212 2014-10-24  Richard Biener  <rguenther@suse.de>
213
214         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
215
216 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
217
218         PR bootstrap/63632
219         * collect2.c (main): Filter out -fno-lto.
220
221 2014-10-24  Martin Liska  <mliska@suse.cz>
222
223         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
224         division by zero in dumps.
225         (sem_item_optimizer::merge_classes): Ditto.
226
227 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
228
229         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
230
231 2014-10-23  Ian Lance Taylor  <iant@google.com>
232
233         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
234
235 2014-10-23  Ian Lance Taylor  <iant@google.com>
236
237         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
238
239 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
240
241         PR debug/63623
242         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
243         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
244         instead of only handling autoinc in dest if it is a MEM.
245         (vt_stack_adjustments): Fix up formatting.
246
247 2014-10-23  DJ Delorie  <dj@redhat.com>
248
249         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
250         independend of -mlarge.
251         * config/msp430/constraints.md (Ys): Update comment.
252
253 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
254
255         PR target/63534
256         PR target/63618
257         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
258         while it is pseudo.
259         * dse.c (deletable_insn_p): Likewise.
260
261 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
262
263         * config/avr/avr.c: Fix GNU coding rules and typos.
264         * config/avr/avr.h: Dito.
265         * config/avr/avr-c.c: Dito.
266         * config/avr/avr.md: Dito.
267
268 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
269
270         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
271         New.
272         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
273         iterator.
274         (define_expand "abs<mode>2"): Ditto.
275
276 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
277
278         * tree-core.h (tree_var_decl): Extend `function_code' field
279         by one bit, move `regdecl_flag' field to ...
280         (tree_decl_with_vis): Here.
281         * tree.h (DECL_STATIC_CHAIN): Update struct name.
282
283 2014-10-23  Richard Biener  <rguenther@suse.de>
284
285         * Makefile.in (BUILD_CPPLIB): Add.
286         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
287         Drop LIBIBERTY.
288
289 2014-10-23  Richard Biener  <rguenther@suse.de>
290
291         * fold-const.c (fold_binary_loc): Preserve side-effects of
292         X - X when simplifying to 0.
293         * stor-layout.c (finish_bitfield_representative): Strip
294         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
295
296 2014-10-22  Richard Biener  <rguenther@suse.de>
297             Tobias Burnus <burnus@net-b.de>
298
299         PR lto/63603
300         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
301
302 2014-10-22  Dehao Chen  <dehao@google.com>
303
304         * auto-profile.c: Change order of header files.
305
306 2014-10-22  Guozhi Wei  <carrot@google.com>
307
308         PR tree-optimization/63530
309         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
310         pointer alignment according to DR_MISALIGNMENT.
311
312 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
313
314         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
315
316 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
317
318         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
319         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
320         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
321         * dominance.h: New.  Add prototypes for dominance.c.
322         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
323         * cfghooks.h: (struct profile_record) Relocate here.
324         Relocate 2 prototypes from basic-block.h.
325         * basic-block.h: Move prototypes and struct to new header files.
326         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
327         * rtl.h: Move a few prototypes to new header files.
328         * cfgcleanup.c (merge_memattrs): Make static.
329         * genopinit.c (main): Add predict.h to list of includes.
330         * predict.h: Update prototype list to match predict.c.
331         * predict.c (maybe_hot_count_p): Export.
332         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
333         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
334         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
335         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
336         * profile.h: Adjust prototypes.
337         * ifcvt.h: New.  Relocate struct ce_if_block here.
338         * ifcvt.c: Include ifcvt.h.
339         * config/frv/frv.c: Include ifcvt.h.
340         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
341
342 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
343
344         * lra.c (lra): Remove call to recog_init.
345         * config/i386/i386.md (preferred_for_speed): New attribute
346         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
347         "enabled".  Remove check for sched1.
348
349 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
350
351         * recog.h (recog_data_d): Remove enabled_alternatives.
352         * recog.c (extract_insn): Don't set it.
353         * reload.c (find_reloads): Call get_enabled_alternatives.
354
355 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
356
357         * recog.h (constrain_operands): Add an alternative_mask parameter.
358         (constrain_operands_cached): Likewise.
359         (get_preferred_alternatives): Declare new form.
360         * recog.c (get_preferred_alternatives): New bb-taking instance.
361         (constrain_operands): Take the set of available alternatives as
362         a parameter.
363         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
364         (extract_constrain_insn_cached): Update calls to constrain_operands.
365         * caller-save.c (reg_save_code): Likewise.
366         * ira.c (setup_prohibited_mode_move_regs): Likewise.
367         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
368         * ree.c (combine_reaching_defs): Likewise.
369         * reload.c (can_reload_into): Likewise.
370         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
371         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
372         (emit_insn_if_valid_for_reload): Likewise.
373         * reorg.c (fill_slots_from_thread): Likewise.
374         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
375         * config/pa/pa.c (pa_can_combine_p): Likewise.
376         * config/rl78/rl78.c (insn_ok_now): Likewise.
377         * config/sh/sh.md (define_peephole2): Likewise.
378         * final.c (final_scan_insn): Update call to constrain_operands_cached.
379
380 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
381
382         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
383         attributes.
384         * genattr.c (main): Handle "preferred_for_size" and
385         "preferred_for_speed" in the same way as "enabled".
386         * recog.h (bool_attr): New enum.
387         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
388         (get_preferred_alternatives, check_bool_attrs): Declare.
389         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
390         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
391         New functions.
392         (get_enabled_alternatives): Use get_bool_attr_mask.
393         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
394         instead of recog_data.enabled_alternatives.
395         * ira.c (ira_setup_alts): Likewise.
396         * postreload.c (reload_cse_simplify_operands): Likewise.
397         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
398         * ira-lives.c (preferred_alternatives): New variable.
399         (process_bb_node_lives): Set it.
400         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
401         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
402         of recog_data.enabled_alternatives.
403         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
404         to preferred_alternatives.
405         * lra-constraints.c (process_alt_operands): Update accordingly.
406         * lra.c (lra_set_insn_recog_data): Likewise.
407         (lra_update_insn_recog_data): Assert check_bool_attrs.
408
409 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
410
411         * recog.h (extract_constrain_insn): Declare.
412         * recog.c (extract_constrain_insn): New function.
413         * lra.c (check_rtl): Use it.
414         * postreload.c (reload_cse_simplify_operands): Likewise.
415         * reg-stack.c (check_asm_stack_operands): Likewise.
416         (subst_asm_stack_regs): Likewise.
417         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
418         * regrename.c (build_def_use): Likewise.
419         * sel-sched.c (get_reg_class): Likewise.
420         * config/arm/arm.c (note_invalid_constants): Likewise.
421         * config/s390/predicates.md (execute_operation): Likewise.
422
423 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
424             Yury Gribov  <y.gribov@samsung.com>
425
426         * common.opt (flag_sanitize_recover): New variable.
427         (fsanitize-recover): Remove Var/Init, deprecate.
428         (fsanitize-recover=): New option.
429         * doc/invoke.texi (fsanitize-recover): Update docs.
430         * opts.c (finish_options): Use opts->x_flag_sanitize
431         instead of flag_sanitize.  Prohibit -fsanitize-recover
432         for anything besides UBSan.  Formatting.
433         (common_handle_option): Handle OPT_fsanitize_recover_
434         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
435         instead of flag_sanitize.
436         * asan.c (pass_sanopt::execute): Fix up formatting.
437         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
438         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
439         instrument_bool_enum_load, ubsan_instrument_float_cast,
440         instrument_nonnull_arg, instrument_nonnull_return): Check
441         bits in flag_sanitize_recover bitmask instead of
442         flag_sanitize_recover as bool flag.
443
444 2014-10-22  Jiong Wang <jiong.wang@arm.com>
445
446         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
447
448 2014-10-22  Renlin Li <renlin.li@arm.com>
449
450         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
451         __ARM_FEATURE_IDIV__.
452
453 2014-10-22  Richard Biener  <rguenther@suse.de>
454
455         * Makefile.in (s-match): Adjust dependencies to only catch
456         match.pd.
457
458 2014-10-22  Richard Biener  <rguenther@suse.de>
459         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
460
461         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
462         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
463         (gimple-match.c): Generate by triggering s-match.
464         (generic-match.c): Likewise.
465         (s-match): Rule to build gimple-match.c and generic-match.c
466         by running the genmatch generator program.
467         (build/hash-table.o): Dependencies to build hash-table.c for the host.
468         (build/genmatch.o): Dependencies to build genmatch.
469         (genprog): Add match.
470         (build/genmatch): Likewise.
471         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
472         * generic-match-head.c: New file.
473         * gimple-match-head.c: Likewise.
474         * gimple-match.h: Likewise.
475         * genmatch.c: Likewise.
476         * match.pd: Likewise.
477         * builtins.h (fold_builtin_n): Export.
478         * builtins.c (fold_builtin_n): Likewise.
479         * gimple-fold.h (gimple_build): Declare various overloads.
480         (gimple_simplify): Likewise.
481         (gimple_convert): Re-implement in terms of gimple_build.
482         * gimple-fold.c (gimple_convert): Remove.
483         (gimple_build): New functions.
484         * doc/match-and-simplify.texi: New file.
485         * doc/gccint.texi: Add menu item Match and Simplify and include
486         match-and-simplify.texi.
487
488 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
489
490         PR target/63594
491         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
492         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
493         even for just TARGET_AVX2, not only for
494         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
495         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
496         otherwise build it using concatenation of 256-bit
497         broadcast.
498         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
499         avx512 broadcast patterns.
500         (vec_dup<mode>): Likewise.  For avx2 use
501         v<sseintprefix>broadcast<bcstscalarsuff> instead of
502         vbroadcast<ssescalarmodesuffix>.
503         (AVX2_VEC_DUP_MODE): New mode iterator.
504         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
505         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
506
507         PR target/63542
508         * config/i386/i386.c (ix86_pic_register_p): Also return
509         true if x is a hard register with ORIGINAL_REGNO equal to
510         pic_offset_table_rtx pseudo REGNO.
511         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
512         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
513
514 2014-10-22  Alan Modra  <amodra@gmail.com>
515
516         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
517         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
518         (gcc_obstack_init): Use obstack_specify_allocation in place of
519         _obstack_begin.
520         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
521         (regexp_representation): Likewise.
522         * godump.c (go_output_type): Likewise.
523
524 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
525
526         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
527         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
528         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
529
530 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
531
532         * doc/invoke.texi (pedantic-errors): Explain better.
533
534 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
535             Vidya Praveen <vidya.praveen@atmel.com>
536             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
537             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
538             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
539
540         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
541         __MEMX for avrtiny.
542         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
543         (avr_nonconst_pointer_addrspace): Likewise.
544         * config/avr/avr.h (AVR_HAVE_LPM): Define.
545
546         Added AVRTINY architecture to avr target.
547         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
548         (base_arch_s): member added for AVRTINY architecture.
549         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
550         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
551         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
552         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
553         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
554         in callee saved register list.
555         (avr_option_override): CCP address updated for AVRTINY.
556         (avr_init_expanders): tmp and zero rtx initialized as per arch.
557         Reset avr_have_dimode if AVRTINY.
558         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
559         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
560         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
561         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
562         (expand_epilogue): Likewise.
563         (avr_print_operand): Print CCP address in case of AVRTINY also.
564         <TBD>bad address
565         (function_arg_regno_p): Check different register list for arguments
566         if AVRTINY.
567         (init_cumulative_args): Check for AVRTINY to update number of argument
568         registers.
569         (tiny_valid_direct_memory_access_range): New function. Return false if
570         direct memory access range is not in accepted range for AVRTINY.
571         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
572         indirect load (with displacement) for AVRTINY.
573         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
574         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
575         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
576         indirect load (no displacement) for AVRTINY.
577         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
578         indirect load (with displacement) for AVRTINY.
579         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
580         indirect load for pre-decrement address.
581         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
582         functions. Update instruction length for AVRTINY.
583         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
584         SImode.
585         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
586         (out_movsi_r_mr): Likewise, for SImode.
587         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
588         indirect store (no displacement) for AVRTINY.
589         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
590         indirect store (with displacement) for AVRTINY.
591         (out_movsi_mr_r): Emit out insn for IO address store. Update store
592         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
593         store functions.
594         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
595         indirect load (no displacement) for PSImode in AVRTINY.
596         (avr_out_load_psi_reg_disp_tiny): New function to handle register
597         indirect load (with displacement) for PSImode in AVRTINY.
598         (avr_out_load_psi): Call PSImode register indirect load functions for
599         AVRTINY. Update instruction length for AVRTINY.
600         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
601         indirect store (no displacement) for PSImode in AVRTINY.
602         (avr_out_store_psi_reg_disp_tiny): New function to handle register
603         indirect store (with displacement) for PSImode in AVRTINY.
604         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
605         register indirect store functions for AVRTINY.
606         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
607         register indirect store (with displacement) for AVRTINY.
608         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
609         register indirect store function for QImode in AVRTINY.
610         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
611         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
612         indirect store (no displacement) for HImode in AVRTINY.
613         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
614         indirect store (with displacement) for HImode in AVRTINY.
615         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
616         indirect store for post-increment address in HImode.
617         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
618         register indirect store function for HImode in AVRTINY.
619         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
620         in case of AVRTINY.
621         (order_regs_for_local_alloc): Updated register allocation order for
622         AVRTINY.
623         (avr_conditional_register_usage): New function. It is a target hook
624         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
625         used registers list and register allocation order for AVRTINY.
626         (avr_return_in_memory): Update return value size for AVRTINY.
627         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
628         for AVRTINY arch and tiny program memory base address.
629         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
630         (avr_texinfo): Added description for AVRTINY arch.
631         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
632         STATIC_CHAIN_REGNUM for AVRTINY.
633         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
634         * config/avr/avr.md: Added constants for tmp/ zero registers in
635         AVRTINY. Attributes for AVRTINY added.
636         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
637         memory access range.
638         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
639         in AVRTINY memory access range.
640         (*mov<mode>): Likewise for HImode and SImode.
641         (*movsf): Likewise for SFmode.
642         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
643         not have sbiw.
644         * config/avr/avr-protos.h: Added function prototype for
645         tiny_valid_direct_memory_access_range.
646         * config/avr/avr-tables.opt: Regenerate.
647         * gcc/config/avr/t-multilib: Regenerate.
648         * doc/avr-mmcu.texi: Regenerate.
649
650 2014-10-21  Andrew Pinski  <apinski@cavium.com>
651
652         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
653         available option also.
654         * config/aarch64/aarch64-cost-tables.h: New file.
655         * config/aarch64/aarch64-cores.def (thunderx): New core.
656         * config/aarch64/aarch64-tune.md: Regenerate.
657         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
658         of config/arm/aarch-cost-tables.h.
659         (thunderx_regmove_cost): New variable.
660         (thunderx_tunings): New variable.
661
662 2014-10-21  Dehao Chen  <dehao@google.com>
663
664         * auto-profile.c: New file.
665         * auto-profile.h: New file.
666         * basic-block.h (maybe_hot_count_p): New export func.
667         (add_working_set): New export func.
668         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
669         (GCOV_TAG_AFDO_FUNCTION): Likewise.
670         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
671         * opts.c (enable_fdo_optimizations): New func.
672         (common_handle_option): Handle -fauto-profile flag.
673         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
674         (class pass_early_inline): Export early_inliner.
675         (early_inliner): Likewise.
676         (pass_early_inline::execute): Likewise.
677         * ipa-inline.h (early_inliner): Likewise.
678         * predict.c (maybe_hot_count_p): New export func.
679         (counts_to_freqs): AutoFDO logic.
680         (rebuild_frequencies): Likewise.
681         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
682         * profile.c (add_working_set): New func.
683         * Makefile.in (auto-profile.o): New object file.
684         * passes.def (pass_ipa_auto_profile): New pass.
685         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
686         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
687         * toplev.c (compile_file): AutoFDO logic.
688         * doc/invoke.texi (-fauto-profile): New doc.
689         * coverage.c (coverage_init): AutoFDO logic.
690         * common.opt (-fauto-profile): New flag.
691         * timevar.def (TV_IPA_AUTOFDO): New tag.
692         * value-prof.c (gimple_alloc_histogram_value): New export func.
693         (check_ic_target): Likewise.
694         * value-prof.h (gimple_alloc_histogram_value): Likewise.
695         (check_ic_target): Likewise.
696
697 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
698
699         * cgraph.c (cgraph_c_finalize): New function.
700         * cgraph.h (cgraph_c_finalize): New prototype.
701         (cgraphunit_c_finalize): New prototype.
702         * cgraphunit.c (first_analyzed): Move from analyze_functions
703         to file-scope.
704         (first_analyzed_var): Likewise.
705         (analyze_functions): Move static variables into file-scope.
706         (cgraphunit_c_finalize): New function.
707         * diagnostic.c (diagnostic_finish): Free the memory for
708         context->classify_diagnostic and context->printer, running the
709         destructor for the latter.
710         (bt_stop): Use toplev::main.
711         * dwarf2out.c (dwarf2out_finalize): New function.
712         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
713         * gcse.c (gcse_c_finalize): New function.
714         * gcse.h (gcse_c_finalize): New prototype.
715         * ggc-page.c (init_ggc): Make idempotent.
716         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
717         * ipa-cp.c (ipa_cp_c_finalize): New function.
718         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
719         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
720         a field of class pass_ipa_pure_const.
721         (node_duplication_hook_holder): Likewise.
722         (node_removal_hook_holder): Likewise.
723         (register_hooks): Convert to method...
724         (pass_ipa_pure_const::register_hooks): ...here, converting
725         static variable init_p into...
726         (pass_ipa_pure_const::init_p): ...new field.
727         (pure_const_generate_summary): Update invocation of
728         register_hooks to invoke as a method of current_pass.
729         (pure_const_read_summary): Likewise.
730         (propagate): Convert to...
731         (pass_ipa_pure_const::execute): ...method.
732         * ipa-reference.c (ipa_init): Move static bool init_p from here
733         to...
734         (ipa_init_p): New file-scope variable, so that it can be reset
735         when repeatedly invoking the compiler within one process by...
736         (ipa_reference_c_finalize): New function.
737         * ipa-reference.h (ipa_reference_c_finalize): New.
738         * main.c (main): Replace invocation of toplev_main with
739         construction of a toplev instance, and call its "main" method.
740         * params.c (global_init_params): Add an assert that
741         params_finished is false.
742         (params_c_finalize): New.
743         * params.h (params_c_finalize): New.
744         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
745         invoking generate_summary, for the benefit of pass_ipa_pure_const.
746         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
747         before calling write_summary hook.
748         (ipa_write_optimization_summaries_1): Likewise when calling
749         write_optimization_summary hook.
750         (ipa_read_summaries_1): Likewise for read_summary hook.
751         (ipa_read_optimization_summaries_1): Likewise for
752         read_optimization_summary hook.
753         (execute_ipa_stmt_fixups): Likewise.
754         * stringpool.c (init_stringpool): Clean up if we're called more
755         than once.
756         * timevar.c (timevar_init): Ignore repeated calls.
757         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
758         "ipa-prop.h".
759         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
760         (initialize_rtl): Move static local "initialized_once"
761         into file scope, and rename to...
762         (rtl_initialized): New variable.
763         (do_compile): Move timevar initialization from here to
764         toplev::start_timevars.
765         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
766         toplev::finalize): New functions.
767         (toplev_main): Rename to...
768         (toplev::main): ...this.
769         * toplev.h (class toplev): New class.
770
771 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
772
773         * loop-doloop.c: Include loop-unroll.h.
774
775 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
776
777         * cfg.h: New.  Header file for cfg.c.
778         * cfganal.h: New.  Header file for cfganal.c.
779         * lcm.h: New.  Header file for lcm.c.
780         * loop-unroll.h: New.  Header file for loop-unroll.h.
781         * cfgloop.h: (unroll_loops): Remove prototype.
782         * basic-block.h: Move prototypes and structs to new header files.
783         Include cfg.h, cfganal.h, and lcm.h.
784         * loop-init.c: Include loop-unroll.h.
785         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
786         * modulo-sched.c: Include loop-unroll.h.
787
788 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
789
790         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
791         MARKER_BYTE_UNKNOWN markers when handling casts.
792
793 2014-10-21  Richard Biener  <rguenther@suse.de>
794
795         * tree-ssa-phiopt.c (value_replacement): Properly verify we
796         are the non-singleton PHI.
797
798 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
799
800         PR tree-optimization/63563
801         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
802         if either dra or drb stmts are not normal loads/stores.
803
804 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
805
806         * config/i386/i386.c (expand_vec_perm_1): Fix
807         expand_vec_perm_palignr case.
808         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
809         VI1_AVX512.
810
811 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
812
813         * cfgloopanal.c (seq_cost): Delete.
814         * rtl.h (seq_cost): New prototype.
815         * rtlanal.c (seq_cost): New function.
816         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
817
818 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
819
820         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
821         * basic-block.h: Remove prototypes for cfgrtl.c.
822         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
823         prototypes to cfgrtl.h.
824         * profile.h (profile_info): Add extern export declaration.
825         * rtl.h: Remove prototypes for cfgrtl.h.
826         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
827         * ipa-inline.c: Include profile.h.
828         * loop-unroll.c: Ditto.
829         * modulo-sched.c: Ditto.
830         * postreload-gcse.c: Ditto.
831         * predict.c: Ditto.
832         * sched-ebb.c: Ditto.
833         * sched-rgn.c: Ditto.
834         * tracer.c: Ditto.
835         * tree-ssa-loop-ivcanon.c: Ditto.
836
837 2014-10-20  Richard Biener  <rguenther@suse.de>
838
839         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
840         operands to get a def operand kind match.  Signal mismatches
841         to the parent so we can try swapping its operands.
842         (vect_build_slp_tree): Try swapping operands if they have
843         a mismatched operand kind.
844
845 2014-10-20  Alan Modra  <amodra@gmail.com>
846
847         PR debug/60655
848         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
849         Increase "ops" array size.  Correct array size tests.  Init
850         n_constants in loop.  Break out of innermost loop when finding
851         a trivial CONST expression.
852
853 2014-10-20  Martin Liska  <mliska@suse.cz>
854
855         PR ipa/63583
856         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
857         Gimple tempate string is compared.
858
859 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
860
861         * varasm.c (const_alias_set): Remove.
862         (init_varasm_once): Remove initialization of const_alias_set.
863         (build_constant_desc): Do not set alias set to const_alias_set.
864
865 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
866
867         * configure: Regenerate.
868         * configure.ac: Move the test for section attribute specifier "e" in GAS
869         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
870         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
871         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
872         ifdef HAVE_GAS_SECTION_EXCLUDE.
873
874 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
875
876         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
877         match_operand expression.
878
879 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
880             David Edelsohn  <dje.gcc@gmail.com>
881
882         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
883         function.
884         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
885
886 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
887
888         * doc/invoke.texi (Options to Request or Suppress Warnings):
889         Explain options precedence.
890         (Wtrampolines): Do not indent paragraph.
891
892 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
893
894         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
895         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
896         (pa_jump_in_call_delay): Likewise.
897         * config/pa/pa.c (pa_option_override): Remove jump in call delay
898         override.
899         (pa_output_millicode_call): Remove support for jump in call delay.
900         (pa_output_call): Likewise.
901         (pa_jump_in_call_delay): Delete.
902         (pa_following_call): Likewise.
903         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
904         (uncond_branch): Remove following call check from attribute length.
905
906 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
907
908         PR target/53513
909         * config/sh/sh-modes.def (PSI): Remove.
910         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
911         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
912         (sh_reorg): Remove commented out FPSCR code.
913         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
914         insn instead of move insn.
915         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
916         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
917         handling.
918         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
919         (sh1_builtin_p): Uncomment.
920         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
921         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
922         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
923         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
924         (general_movsrc_operand, general_movdst_operand): Disallow
925         fpscr_operand.
926         * config/sh/sh.md (FPSCR_FR): New constant.
927         (push_fpscr): Emit sts_fpscr insn.
928         (pop_fpscr): Emit lds_fpscr_insn.
929         (movsi_ie): Disallow FPSCR operands.
930         (fpu_switch, unnamed related split, extend_psi_si,
931         truncate_si_psi): Remove insns.
932         (lds_fpscr, sts_fpscr): New insns.
933         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
934
935 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
936
937         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
938         (clone_inlined_nodes): Do not overwrite the clone if above predicate
939         returns true.
940
941 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
942
943         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
944         (expand_vec_perm_d): Ditto.
945         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
946         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
947         V4DFmode.
948         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
949         (ix86_expand_sse_unpack): Handle V64QImode.
950         (expand_vec_perm_blend): Update conditions for TARGET, handle
951         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
952         (expand_vec_perm_pshufb): Handle V64QImode.
953         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
954         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
955         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
956         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
957         (ix86_expand_vecop_qihi): Handle V64QImode.
958         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
959         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
960         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
961         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
962         (mul<mode>3): Use VI1_AVX512.
963         (<sse2_avx2>_packsswb): Ditto.
964         (<sse2_avx2>_packuswb): Ditto.
965         (<ssse3_avx2>_pshufb<mode>3): Ditto.
966         (<shift_insn><mode>3): Ditto.
967
968 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
969
970         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
971         conditions to fix bootstrap.
972
973 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
974
975         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
976
977 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
978             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
979             Anna Tikhonova  <anna.tikhonova@intel.com>
980             Ilya Tocar  <ilya.tocar@intel.com>
981             Andrey Turetskiy  <andrey.turetskiy@intel.com>
982             Ilya Verbin  <ilya.verbin@intel.com>
983             Kirill Yukhin  <kirill.yukhin@intel.com>
984             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
985
986         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
987         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
988         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
989         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
990         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
991         (define_expand "vec_init<mode>"): Use VF48_I1248.
992
993 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
994             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
995             Anna Tikhonova  <anna.tikhonova@intel.com>
996             Ilya Tocar  <ilya.tocar@intel.com>
997             Andrey Turetskiy  <andrey.turetskiy@intel.com>
998             Ilya Verbin  <ilya.verbin@intel.com>
999             Kirill Yukhin  <kirill.yukhin@intel.com>
1000             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1001
1002         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1003         expand_sse2_mulvxdi3.
1004
1005 2014-10-17  Richard Biener  <rguenther@suse.de>
1006
1007         * fold-const.c (fold_comparison): Remove redundant constant
1008         folding and operand swapping.
1009         (fold_binary_loc): Do comparison operand swapping here.
1010         (fold_ternary_loc): Canonicalize operand order for
1011         commutative ternary operations.
1012         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1013         and FMA_EXPR.
1014
1015 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1016
1017         PR tree-optimization/63464
1018         * gimple.h (gimple_seq_discard): New prototype.
1019         * gimple.c: Include stringpool.h and tree-ssanames.h.
1020         (gimple_seq_discard): New function.
1021         * optabs.h (lshift_cheap_p): New prototype.
1022         * optabs.c (lshift_cheap_p): New function, moved from...
1023         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1024         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1025         (reassoc_branch_fixups): New variable.
1026         (update_range_test): Add otherrangep and seq arguments.
1027         Unshare exp.  If otherrange is NULL, use for other ranges
1028         array of pointers pointed by otherrangep instead.
1029         Emit seq before gimplified statements for tem.
1030         (optimize_range_tests_diff): Adjust update_range_test
1031         caller.
1032         (optimize_range_tests_xor): Likewise.  Fix up comment.
1033         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1034         functions.
1035         (optimize_range_tests): Adjust update_range_test caller.
1036         Call optimize_range_tests_to_bit_test.
1037         (branch_fixup): New function.
1038         (execute_reassoc): Call branch_fixup.
1039
1040         PR tree-optimization/63302
1041         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1042         optimize_range_tests_diff): Use !integer_pow2p () instead of
1043         tree_log2 () < 0.
1044
1045 2014-10-17  Martin Liska  <mliska@suse.cz>
1046
1047         * ipa-icf.c (sem_function::merge): Local flags are set to false
1048         to enforce equal calling convention to be used.
1049         * opts.c (common_handle_option): Indentation fix.
1050
1051 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1052
1053         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1054
1055 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1056
1057         PR rtl-optimization/61605
1058         * regcprop.c (copyprop_hardreg_forward_1): Use
1059         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1060
1061 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1062
1063         PR rtl-optimization/61605
1064         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1065         notice stores for noops.  Don't regard noops as copies.
1066
1067 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1068
1069         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1070         register in a special way.
1071         (__cpuid_count): Ditto.
1072         * config/i386/driver-i386.h: Protect with
1073         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1074         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1075         is required to compile the function.
1076
1077 2014-10-16  DJ Delorie  <dj@redhat.com>
1078
1079         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1080         integers.
1081
1082         * config/rs6000/rs6000-c.c (rid_int128): New.
1083         (rs6000_macro_to_expand): Use instead of RID_INT128.
1084
1085 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1086
1087         * function.h: Flatten file.  Remove includes, adjust prototypes to
1088         reflect only what is in function.h.
1089         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1090         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1091         from expr.h.
1092         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1093         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1094         prototypes to predict.h.
1095         (init_varasm_status): Move prototype to varasm.h.
1096         * expr.h: Adjust include files.
1097         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1098         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1099         to function.h.
1100         (locate_and_pad_parm): Move prototype to function.h.
1101         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1102         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1103         assign_temp, reposition_prologue_and_epilogue_notes,
1104         prologue_epilogue_contains, sibcall_epilogue_contains,
1105         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1106         set_return_jump_label): Move prototypes to function.h.
1107         * predict.h (optimize_function_for_size_p,
1108         optimize_function_for_speed_p): Relocate prototypes from function.h.
1109         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1110         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1111         function.h.
1112         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1113         * genattrtab.c (write_header): Add predict.h to include list.
1114         * genconditions.c (write_header): Add predict.h to include list.
1115         * genemit.c (main): Adjust header file includes.
1116         * gengtype.c (ifiles): Add flattened function.h header files.
1117         * genoutput.c (output_prologue): Add predict.h to include list.
1118         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1119         * genrecog.c (write_header): Add flattened function.h header files.
1120         * alias.c: Adjust include files.
1121         * auto-inc-dec.c: Likewise.
1122         * basic-block.h: Likewise.
1123         * bb-reorder.c: Likewise.
1124         * bt-load.c: Likewise.
1125         * builtins.c: Likewise.
1126         * caller-save.c: Likewise.
1127         * calls.c: Likewise.
1128         * cfgbuild.c: Likewise.
1129         * cfgcleanup.c: Likewise.
1130         * cfgexpand.c: Likewise.
1131         * cfgloop.c: Likewise.
1132         * cfgloop.h: Likewise.
1133         * cfgrtl.c: Likewise.
1134         * cgraph.h: Likewise.
1135         * cgraphclones.c: Likewise.
1136         * cgraphunit.c: Likewise.
1137         * combine-stack-adj.c: Likewise.
1138         * combine.c: Likewise.
1139         * coverage.c: Likewise.
1140         * cprop.c: Likewise.
1141         * cse.c: Likewise.
1142         * cselib.c: Likewise.
1143         * dbxout.c: Likewise.
1144         * ddg.c: Likewise.
1145         * df-core.c: Likewise.
1146         * df-problems.c: Likewise.
1147         * df-scan.c: Likewise.
1148         * dojump.c: Likewise.
1149         * dwarf2cfi.c: Likewise.
1150         * dwarf2out.c: Likewise.
1151         * emit-rtl.c: Likewise.
1152         * except.c: Likewise.
1153         * explow.c: Likewise.
1154         * expr.c: Likewise.
1155         * final.c: Likewise.
1156         * function.c: Likewise.
1157         * gcse.c: Likewise.
1158         * gimple-fold.c: Likewise.
1159         * gimple-low.c: Likewise.
1160         * gimple-streamer.h: Likewise.
1161         * haifa-sched.c: Likewise.
1162         * ifcvt.c: Likewise.
1163         * ira.c: Likewise.
1164         * jump.c: Likewise.
1165         * lcm.c: Likewise.
1166         * loop-invariant.c: Likewise.
1167         * lra-assigns.c: Likewise.
1168         * lra-coalesce.c: Likewise.
1169         * lra-constraints.c: Likewise.
1170         * lra-eliminations.c: Likewise.
1171         * lra-lives.c: Likewise.
1172         * lra-spills.c: Likewise.
1173         * lra.c: Likewise.
1174         * lto-cgraph.c: Likewise.
1175         * lto-section-in.c: Likewise.
1176         * lto-section-out.c: Likewise.
1177         * lto-streamer-in.c: Likewise.
1178         * lto-streamer-out.c: Likewise.
1179         * mode-switching.c: Likewise.
1180         * modulo-sched.c: Likewise.
1181         * omp-low.c: Likewise.
1182         * optabs.c: Likewise.
1183         * passes.c: Likewise.
1184         * postreload-gcse.c: Likewise.
1185         * postreload.c: Likewise.
1186         * predict.c: Likewise.
1187         * profile.c: Likewise.
1188         * recog.c: Likewise.
1189         * ree.c: Likewise.
1190         * reg-stack.c: Likewise.
1191         * regcprop.c: Likewise.
1192         * reginfo.c: Likewise.
1193         * regrename.c: Likewise.
1194         * reload.c: Likewise.
1195         * reload1.c: Likewise.
1196         * reorg.c: Likewise.
1197         * resource.c: Likewise.
1198         * rtlanal.c: Likewise.
1199         * sched-deps.c: Likewise.
1200         * sched-ebb.c: Likewise.
1201         * sched-rgn.c: Likewise.
1202         * sel-sched-dump.c: Likewise.
1203         * sel-sched-ir.c: Likewise.
1204         * sel-sched.c: Likewise.
1205         * shrink-wrap.c: Likewise.
1206         * simplify-rtx.c: Likewise.
1207         * statistics.c: Likewise.
1208         * stmt.c: Likewise.
1209         * stor-layout.c: Likewise.
1210         * store-motion.c: Likewise.
1211         * symtab.c: Likewise.
1212         * targhooks.c: Likewise.
1213         * toplev.c: Likewise.
1214         * trans-mem.c: Likewise.
1215         * tree-cfg.c: Likewise.
1216         * tree-cfgcleanup.c: Likewise.
1217         * tree-dfa.c: Likewise.
1218         * tree-eh.c: Likewise.
1219         * tree-inline.c: Likewise.
1220         * tree-into-ssa.c: Likewise.
1221         * tree-nested.c: Likewise.
1222         * tree-nrv.c: Likewise.
1223         * tree-profile.c: Likewise.
1224         * tree-ssa-alias.c: Likewise.
1225         * tree-ssa-ccp.c: Likewise.
1226         * tree-ssa-copy.c: Likewise.
1227         * tree-ssa-copyrename.c: Likewise.
1228         * tree-ssa-dom.c: Likewise.
1229         * tree-ssa-operands.c: Likewise.
1230         * tree-ssa-propagate.c: Likewise.
1231         * tree-ssa-structalias.c: Likewise.
1232         * tree-ssa-tail-merge.c: Likewise.
1233         * tree-ssa-threadedge.c: Likewise.
1234         * tree-ssa-threadupdate.c: Likewise.
1235         * tree-ssa-uncprop.c: Likewise.
1236         * tree-ssa-uninit.c: Likewise.
1237         * tree-ssa.c: Likewise.
1238         * tree-stdarg.c: Likewise.
1239         * tree-tailcall.c: Likewise.
1240         * tree.c: Likewise.
1241         * tsan.c: Likewise.
1242         * valtrack.c: Likewise.
1243         * varasm.c: Likewise.
1244         * vmsdbgout.c: Likewise.
1245         * web.c: Likewise.
1246         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1247         * config/alpha/alpha.c: Likewise.
1248         * config/arc/arc.c: Likewise.
1249         * config/arm/arm.c: Likewise.
1250         * config/avr/avr-log.c: Likewise.
1251         * config/avr/avr.c: Likewise.
1252         * config/bfin/bfin.c: Likewise.
1253         * config/c6x/c6x.c: Likewise.
1254         * config/cr16/cr16.c: Likewise.
1255         * config/cris/cris.c: Likewise.
1256         * config/darwin.c: Likewise.
1257         * config/epiphany/epiphany.c: Likewise.
1258         * config/epiphany/mode-switch-use.c: Likewise.
1259         * config/epiphany/resolve-sw-modes.c: Likewise.
1260         * config/fr30/fr30.c: Likewise.
1261         * config/frv/frv.c: Likewise.
1262         * config/h8300/h8300.c: Likewise.
1263         * config/i386/i386.c: Likewise.
1264         * config/ia64/ia64.c: Likewise.
1265         * config/iq2000/iq2000.c: Likewise.
1266         * config/lm32/lm32.c: Likewise.
1267         * config/m32c/m32c.c: Likewise.
1268         * config/m32r/m32r.c: Likewise.
1269         * config/m68k/m68k.c: Likewise.
1270         * config/mcore/mcore.c: Likewise.
1271         * config/mep/mep-pragma.c: Likewise.
1272         * config/mep/mep.c: Likewise.
1273         * config/microblaze/microblaze.c: Likewise.
1274         * config/mips/mips.c: Likewise.
1275         * config/mmix/mmix.c: Likewise.
1276         * config/mn10300/mn10300.c: Likewise.
1277         * config/moxie/moxie.c: Likewise.
1278         * config/msp430/msp430.c: Likewise.
1279         * config/nds32/nds32-cost.c: Likewise.
1280         * config/nds32/nds32-fp-as-gp.c: Likewise.
1281         * config/nds32/nds32-intrinsic.c: Likewise.
1282         * config/nds32/nds32-isr.c: Likewise.
1283         * config/nds32/nds32-md-auxiliary.c: Likewise.
1284         * config/nds32/nds32-memory-manipulation.c: Likewise.
1285         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1286         * config/nds32/nds32-predicates.c: Likewise.
1287         * config/nds32/nds32.c: Likewise.
1288         * config/nios2/nios2.c: Likewise.
1289         * config/pa/pa.c: Likewise.
1290         * config/pdp11/pdp11.c: Likewise.
1291         * config/rl78/rl78.c: Likewise.
1292         * config/rs6000/rs6000.c: Likewise.
1293         * config/rx/rx.c: Likewise.
1294         * config/s390/s390.c: Likewise.
1295         * config/score/score.c: Likewise.
1296         * config/sh/sh.c: Likewise.
1297         * config/sparc/sparc.c: Likewise.
1298         * config/spu/spu.c: Likewise.
1299         * config/stormy16/stormy16.c: Likewise.
1300         * config/tilegx/tilegx.c: Likewise.
1301         * config/tilepro/tilepro.c: Likewise.
1302         * config/v850/v850.c: Likewise.
1303         * config/vax/vax.c: Likewise.
1304         * config/xtensa/xtensa.c: Likewise.
1305
1306 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1307
1308         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1309         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1310
1311 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1312
1313         * config/sh/sh-protos.h (fldi_ok): Remove.
1314         * config/sh/sh.c (fldi_ok): Likewise.
1315         (sh_secondary_reload): Don't use fldi_ok.
1316         * config/sh/constraints.md (G constraint, H constraint): Don't use
1317         fldi_ok.
1318
1319 2014-10-16  Martin Liska  <mliska@suse.cz>
1320
1321         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1322         Cast to unsigned long.
1323         (sem_item_optimizer::dump_cong_classes): Likewise.
1324
1325 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1326
1327         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1328         with SSA_NAME_IN_FREELIST.
1329
1330 2014-10-16  Richard Biener  <rguenther@suse.de>
1331
1332         PR middle-end/63554
1333         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1334         (fold_builtin_strncat_chk): Move ...
1335         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1336         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1337
1338 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1339
1340         PR target/59401
1341         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1342         GBR to 0.
1343
1344 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1345             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1346             Anna Tikhonova  <anna.tikhonova@intel.com>
1347             Ilya Tocar  <ilya.tocar@intel.com>
1348             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1349             Ilya Verbin  <ilya.verbin@intel.com>
1350             Kirill Yukhin  <kirill.yukhin@intel.com>
1351             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1352
1353         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1354         V64QI modes.
1355
1356 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1357             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1358             Anna Tikhonova  <anna.tikhonova@intel.com>
1359             Ilya Tocar  <ilya.tocar@intel.com>
1360             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1361             Ilya Verbin  <ilya.verbin@intel.com>
1362             Kirill Yukhin  <kirill.yukhin@intel.com>
1363             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1364
1365         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1366         V16SI, V32HI, V64QI modes.
1367
1368 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1369
1370         PR target/53513
1371         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1372         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1373
1374         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1375         to match fp insn patterns.
1376         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1377         list.
1378         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1379         expand_df_unop, expand_df_binop): Remove.
1380         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1381         FPSCR_STAT_REG as not call clobbered.
1382         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1383         invoking fpscr_set_from_mem.
1384
1385         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1386         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1387         FPSCR_STAT_REG.
1388         (REGISTER_NAMES): Adjust.
1389         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1390         (FIRST_PSEUDO_REGISTER): Increase to 156.
1391         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1392         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1393         FPSCR_STAT_REG.
1394         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1395         FPSCR_MODES_REG and FPSCR_STAT_REG.
1396         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1397
1398         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
1399         FPSCR_SZ): Add new constants.
1400         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
1401
1402         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
1403         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
1404         Use TARGET_FPU_ANY condition.
1405         (fpu_switch peephole2): Remove.
1406         (fpu_switch split): Use simple_mem_operand to capture the mem and
1407         adjust split implementation.
1408         (extend_psi_si, truncate_si_psi): New insns.
1409         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
1410         set of FPSCR_MODES_REG.
1411
1412         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
1413         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
1414         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
1415         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
1416         call_value_compact, call_value_compact_rettramp, call,
1417         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
1418         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
1419         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1420         sibcall_value_compact, sibcall_value, call_value_pop_compact,
1421         call_value_pop_compact_rettramp, various unnamed splits):
1422         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
1423         function uses.
1424
1425         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
1426         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
1427         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
1428         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
1429         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
1430
1431         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
1432         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
1433         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
1434         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
1435         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
1436         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
1437         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
1438
1439 2014-10-16  Martin Liska  <mliska@suse.cz>
1440             Jan Hubicka  <hubicka@ucw.cz>
1441
1442         * Makefile.in: New object files included.
1443         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
1444         is printed.
1445         (verify_edge_corresponds_to_fndecl): More sensitive verification
1446         of nodes that are merged by IPA ICF.
1447         * cgraph.h (cgraph_node::num_references): New function.
1448         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
1449         * common.opt: New options ipa-icf, ipa-icf-functions and
1450         ipa-icf-variables introduced.
1451         * doc/invoke.texi: Documentation of new options introduced.
1452         * ipa-icf-gimple.c: New file.
1453         * ipa-icf-gimple.h: New file.
1454         * ipa-icf.c: New file.
1455         * ipa-icf.h: New file.
1456         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
1457         (input_overwrite_node): Likewise.
1458         * lto-section-in.c: New icf section added.
1459         * lto-streamer.h (enum lto_section_type): Likewise.
1460         * opts.c (common_handle_option): New option added.
1461         * passes.def: New pass included.
1462         * timevar.def: Time variable for IPA ICF added.
1463         * tree-pass.h: New IPA ICF pass entry point added.
1464
1465 2014-10-16  Richard Biener  <rguenther@suse.de>
1466
1467         PR tree-optimization/63168
1468         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
1469         latches if after merging they are no longer simple.
1470         * cfghooks.c (merge_blocks): Handle merging a latch block
1471         into another block.
1472
1473 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1474             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1475             Anna Tikhonova  <anna.tikhonova@intel.com>
1476             Ilya Tocar  <ilya.tocar@intel.com>
1477             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1478             Ilya Verbin  <ilya.verbin@intel.com>
1479             Kirill Yukhin  <kirill.yukhin@intel.com>
1480             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1481
1482         * config/i386/sse.md
1483         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
1484         support AVX-512VL instructions.
1485
1486 2014-10-16  DJ Delorie  <dj@redhat.com>
1487
1488         * tree-core.h: Fix comment to not assume pointers are multiples of
1489         bytes.
1490
1491 2014-10-15  Tom Tromey  <tromey@redhat.com>
1492
1493         * timevar.h (class auto_timevar): New class.
1494
1495 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
1496
1497         PR go/59432
1498         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1499         Remove the second alternative.
1500         (regprefix): Remove mode attribute.
1501         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
1502         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
1503
1504         Revert:
1505         2013-11-05  Ian Lance Taylor  <iant@google.com>
1506
1507         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1508         If possible, add .cfi directives to record change to bx.
1509         * config/i386/i386.c (ix86_emit_cfi): New function.
1510         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
1511
1512 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
1513
1514         PR lto/62026
1515         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
1516         to duplicate.
1517         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
1518         at WPA time.
1519
1520 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1521
1522         PR rtl-optimization/63448
1523         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1524         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1525         (LRA_MAX_INHERITANCE_PASSES): Use it.
1526         (lra_constraint_iter_after_spill): Remove.
1527         (lra_assignment_iter): New.
1528         (lra_assignment_iter_after_spill): New.
1529         * lra-assigns.c (lra_assignment_iter): New.
1530         (lra_assignment_iter_after_spill): New.
1531         (former_reload_pseudo_spill_p): New.
1532         (spill_for): Set up former_reload_pseudo_spill_p.
1533         (setup_live_pseudos_and_spill_after_risky): Ditto.
1534         (assign_by_spills): Ditto.
1535         (lra_assign): Increment lra_assignment_iter.  Print the iteration
1536         number.  Reset former_reload_pseudo_spill_p.  Check
1537         lra_assignment_iter_after_spill.
1538         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
1539         lra_assignment_iter and lra_assignment_iter_after_spill.
1540         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1541         (lra_constraints): Remove code with
1542         lra_assignment_iter_after_spill.
1543
1544 2014-10-15  Teresa Johnson  <tejohnson@google.com>
1545
1546         PR bootstrap/63432
1547         * tree-ssa-threadupdate.c (recompute_probabilities): Better
1548         overflow checking.
1549
1550 2014-10-15  Renlin Li <renlin.li@arm.com>
1551
1552         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1553         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
1554         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
1555         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
1556
1557 2014-10-15  Richard Biener  <rguenther@suse.de>
1558
1559         * gimple-fold.c (gimple_fold_call): Properly keep virtual
1560         SSA form up-to-date when devirtualizing a call to
1561         __builtin_unreachable and avoid fixing up EH info here.
1562
1563 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1564             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1565             Anna Tikhonova  <anna.tikhonova@intel.com>
1566             Ilya Tocar  <ilya.tocar@intel.com>
1567             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1568             Ilya Verbin  <ilya.verbin@intel.com>
1569             Kirill Yukhin  <kirill.yukhin@intel.com>
1570             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1571
1572         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
1573         to support AVX-512BW.
1574         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
1575         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
1576         (define_insn "*<plusminus_insn><mode>3"): Ditto.
1577         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
1578         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1579         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
1580         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1581         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
1582         (define_insn "*andnot<mode>3"): Ditto.
1583         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
1584         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
1585         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
1586         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
1587         (define_insn "*abs<mode>2"): Remove masking support.
1588         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
1589         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
1590         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
1591
1592 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1593             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1594             Anna Tikhonova  <anna.tikhonova@intel.com>
1595             Ilya Tocar  <ilya.tocar@intel.com>
1596             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1597             Ilya Verbin  <ilya.verbin@intel.com>
1598             Kirill Yukhin  <kirill.yukhin@intel.com>
1599             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1600
1601         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
1602         * config/i386/sse.md
1603         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
1604         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
1605         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
1606         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1607         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1608         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1609         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1610
1611 2014-10-15  Renlin Li <renlin.li@arm.com>
1612
1613         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
1614
1615 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
1616
1617         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
1618         MINUS_EXPR in unsigned type to avoid undefined behavior.
1619
1620 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1621
1622         * stor-layout.c (self_referential_size): Do not promote arguments.
1623
1624 2014-10-15  Marek Polacek  <polacek@redhat.com>
1625
1626         * doc/invoke.texi: Update to reflect that GNU11 is the default
1627         mode for C.
1628         * c-common.h (c_language_kind): Update comment.
1629
1630 2014-10-15  Richard Biener  <rguenther@suse.de>
1631
1632         * hash-table.c: Include bconfig.h if building for the host.
1633         * hash-table.h: Do not include ggc.h on the host but just declare
1634         a few ggc allocation templates.
1635
1636 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
1637             Jeff Law  <law@redhat.com>
1638
1639         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
1640         multiple hard registers, use smaller mode derived from MODE.
1641
1642 2014-10-15  Andreas Schwab  <schwab@suse.de>
1643
1644         * explow.c (convert_memory_address_addr_space_1): Mark in_const
1645         as ATTRIBUTE_UNUSED.
1646
1647 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
1648
1649         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
1650         (decide_unrolling): ... this one.
1651         (peel_loops_completely): Remove.
1652         (decide_peel_simple): Remove.
1653         (decide_peel_once_rolling): Remove.
1654         (decide_peel_completely): Remove.
1655         (peel_loop_simple): Remove.
1656         (peel_loop_completely): Remove.
1657         (unroll_and_peel_loops): Rename to ...
1658         (unroll_loops): ... this one; handle only unrolling.
1659         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
1660         LPT_PEEL_SIMPLE.
1661         (UAP_PEEL): Remove.
1662         (unroll_and_peel_loops): Remove.
1663         (unroll_loops): New.
1664         * passes.def: Replace
1665         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
1666         * loop-init.c (gate_rtl_unroll_and_peel_loops,
1667         rtl_unroll_and_peel_loops): Rename to ...
1668         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
1669         (pass_rtl_unroll_and_peel_loops): Rename to ...
1670         (pass_rtl_unroll_loops): ... this one.
1671         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
1672         (make_pass_rtl_unroll_loops): New.
1673         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
1674         (canonicalize_loop_induction_variables): Update.
1675
1676 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1677
1678         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
1679         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
1680         !TARGET_HARD_FLOAT_POSTINC.
1681         (*lsip, *ssip): new instructions.
1682
1683 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1684
1685         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
1686         remove.
1687
1688 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1689
1690         * explow.c (convert_memory_address_addr_space): Rename to ...
1691         (convert_memory_address_addr_space_1): This.  Add in_const argument.
1692         Inside a CONST RTL, permute the conversion and addition of constant
1693         for zero and sign extended pointers.
1694         (convert_memory_address_addr_space): New function.
1695
1696 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1697
1698         Revert:
1699         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1700
1701         PR middle-end/49721
1702         * explow.c (convert_memory_address_addr_space): Also permute the
1703         conversion and addition of constant for zero-extend.
1704
1705 2014-10-14  DJ Delorie  <dj@redhat.com>
1706
1707         * config/msp430/msp430-modes.def (PSI): Add.
1708
1709         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
1710         (msp430_hard_regno_nregs_with_padding): New.
1711         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
1712         (msp430_hard_regno_nregs_has_padding): New.
1713         (msp430_hard_regno_nregs_with_padding): New.
1714         (msp430_unwind_word_mode): Use PSImode instead of SImode.
1715         (msp430_addr_space_legitimate_address_p): New.
1716         (msp430_asm_integer): New.
1717         (msp430_init_dwarf_reg_sizes_extra): New.
1718         (msp430_print_operand): Use X suffix for PSImode even in small model.
1719         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
1720         (PTR_SIZE): ...but 4 bytes for EH.
1721         (SIZE_TYPE): Use __int20.
1722         (PTRDIFF_TYPE): Likewise.
1723         (INCOMING_FRAME_SP_OFFSET): Adjust.
1724         * config/msp430/msp430.md (movqi_topbyte): New.
1725         (movpsi): Use fixed suffixes.
1726         (movsipsi2): Enable for 430X, not large model.
1727         (extendhipsi2): Likewise.
1728         (zero_extendhisi2): Likewise.
1729         (zero_extendhisipsi2): Likewise.
1730         (extend_and_shift1_hipsi2): Likewise.
1731         (extendpsisi2): Likewise.
1732         (*bitbranch<mode>4_z): Fix suffix logic.
1733
1734 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1735
1736         PR ada/62019
1737         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
1738         do not choke on null node.
1739         <VAR_DECL>: Likewise.
1740
1741 2014-10-14  DJ Delorie  <dj@redhat.com>
1742
1743         * machmode.h (int_n_data_t): New.
1744         (int_n_enabled_p): New.
1745         (int_n_data): New.
1746         * tree.c (int_n_enabled_p): New.
1747         (int_n_trees): New.
1748         (make_or_reuse_type): Check for all __intN types, not just
1749         __int128.
1750         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
1751         entries.
1752         * tree.h (int128_integer_type_node): Remove.
1753         (int128_unsigned_type_node): Remove.
1754         (int_n_trees_t): New.
1755         (int_n_enabled_p): New.
1756         (int_n_trees): New.
1757         * toplev.c (standard_type_bitsize): New.
1758         (do_compile): Check which __intN types are enabled for the current
1759         run.
1760         * builtin-types.def (BT_INT128): Remove.
1761         (BT_UINT128): Remove.
1762         * machmode.def: Add macro to create __int128 for all targets.
1763         * stor-layout.c (mode_for_size): Support __intN types.
1764         (smallest_mode_for_size): Likewise.
1765         (initialize_sizetypes): Support __intN types.
1766         * genmodes.c (struct mode_data): Add int_n field.
1767         (blank_mode): Likewise.
1768         (INT_N): New.
1769         (make_int_n): New.
1770         (emit_insn_modes_h): Count __intN entries and define
1771         NUM_INT_N_ENTS.
1772         (emit_mode_int_n): New.
1773         (emit_insn_modes_c): Call it.
1774         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
1775         types, not just __int128.
1776         * tree-core.h (integer_type_kind): Remove __int128-specific
1777         entries, reserve spots for __intN entries.
1778
1779         * config/msp430/msp430-modes.def (PSI): Add.
1780
1781 2014-10-14  Kito Cheng  <kito@0xlab.org>
1782
1783         * ira.c: Fix typo in comment.
1784         * ira.h: Ditto.
1785         * ira-build.c: Ditto.
1786         * ira-color.c: Ditto.
1787         * ira-emit.c: Ditto.
1788         * ira-int.h: Ditto.
1789         * ira-lives.c: Ditto.
1790
1791 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
1792
1793         PR rtl-optimization/63475
1794         * alias.c (true_dependence_1): Always use get_addr to extract
1795         true address operands from x_addr and mem_addr.  Use extracted
1796         address operands to check for references with alignment ANDs.
1797         Use extracted address operands with find_base_term and
1798         base_alias_check. For noncanonicalized operands call canon_rtx with
1799         extracted address operand.
1800         (write_dependence_1): Ditto.
1801         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
1802
1803 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
1804
1805         PR target/63534
1806         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
1807         __morestack local.
1808
1809 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1810             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1811             Anna Tikhonova  <anna.tikhonova@intel.com>
1812             Ilya Tocar  <ilya.tocar@intel.com>
1813             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1814             Ilya Verbin  <ilya.verbin@intel.com>
1815             Kirill Yukhin  <kirill.yukhin@intel.com>
1816             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1817
1818         * config/i386/i386.c
1819         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
1820         (ix86_expand_int_vcond): Ditto.
1821
1822 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1823             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1824             Anna Tikhonova  <anna.tikhonova@intel.com>
1825             Ilya Tocar  <ilya.tocar@intel.com>
1826             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1827             Ilya Verbin  <ilya.verbin@intel.com>
1828             Kirill Yukhin  <kirill.yukhin@intel.com>
1829             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1830
1831         * config/i386/i386.c
1832         (emit_reduc_half): Handle V64QI and V32HI mode.
1833         * config/i386/sse.md
1834         (define_mode_iterator VI_AVX512BW): New.
1835         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
1836
1837 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1838             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1839             Anna Tikhonova  <anna.tikhonova@intel.com>
1840             Ilya Tocar  <ilya.tocar@intel.com>
1841             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1842             Ilya Verbin  <ilya.verbin@intel.com>
1843             Kirill Yukhin  <kirill.yukhin@intel.com>
1844             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1845
1846         * config/i386/sse.md
1847         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
1848
1849 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1850             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1851             Anna Tikhonova  <anna.tikhonova@intel.com>
1852             Ilya Tocar  <ilya.tocar@intel.com>
1853             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1854             Ilya Verbin  <ilya.verbin@intel.com>
1855             Kirill Yukhin  <kirill.yukhin@intel.com>
1856             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1857
1858         * config/i386/i386.c
1859         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
1860         * config/i386/sse.md
1861         (define_mode_iterator VI): Add V64QI and V32HI modes.
1862
1863 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1864             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1865             Anna Tikhonova  <anna.tikhonova@intel.com>
1866             Ilya Tocar  <ilya.tocar@intel.com>
1867             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1868             Ilya Verbin  <ilya.verbin@intel.com>
1869             Kirill Yukhin  <kirill.yukhin@intel.com>
1870             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1871
1872         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
1873
1874 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1875             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1876             Anna Tikhonova  <anna.tikhonova@intel.com>
1877             Ilya Tocar  <ilya.tocar@intel.com>
1878             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1879             Ilya Verbin  <ilya.verbin@intel.com>
1880             Kirill Yukhin  <kirill.yukhin@intel.com>
1881             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1882
1883         * config/i386/sse.md
1884         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
1885         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
1886
1887 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1888             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1889             Anna Tikhonova  <anna.tikhonova@intel.com>
1890             Ilya Tocar  <ilya.tocar@intel.com>
1891             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1892             Ilya Verbin  <ilya.verbin@intel.com>
1893             Kirill Yukhin  <kirill.yukhin@intel.com>
1894             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1895
1896         * config/i386/sse.md
1897         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
1898         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
1899
1900 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1901             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1902             Anna Tikhonova  <anna.tikhonova@intel.com>
1903             Ilya Tocar  <ilya.tocar@intel.com>
1904             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1905             Ilya Verbin  <ilya.verbin@intel.com>
1906             Kirill Yukhin  <kirill.yukhin@intel.com>
1907             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1908
1909         * config/i386/sse.md
1910         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
1911         (define_mode_iterator VI2_AVX2): Add V32HI mode.
1912         (define_expand "mul<mode>3<mask_name>"): Add masking.
1913         (define_insn "*mul<mode>3<mask_name>"): Ditto.
1914         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
1915         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
1916         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
1917         (define_mode_attr SDOT_PMADD_SUF): Ditto.
1918         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
1919         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
1920         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
1921         (define_insn "avx2_packusdw"): Delete.
1922         (define_insn "sse4_1_packusdw"): Ditto.
1923         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
1924
1925 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1926             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1927             Anna Tikhonova  <anna.tikhonova@intel.com>
1928             Ilya Tocar  <ilya.tocar@intel.com>
1929             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1930             Ilya Verbin  <ilya.verbin@intel.com>
1931             Kirill Yukhin  <kirill.yukhin@intel.com>
1932             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1933
1934         * config/i386/sse.md
1935         (define_insn "vec_dup<mode>"): Update constraints.
1936
1937 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1938             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1939             Anna Tikhonova  <anna.tikhonova@intel.com>
1940             Ilya Tocar  <ilya.tocar@intel.com>
1941             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1942             Ilya Verbin  <ilya.verbin@intel.com>
1943             Kirill Yukhin  <kirill.yukhin@intel.com>
1944             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1945
1946         * config/i386/sse.md
1947         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
1948         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
1949         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
1950
1951 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1952             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1953             Anna Tikhonova  <anna.tikhonova@intel.com>
1954             Ilya Tocar  <ilya.tocar@intel.com>
1955             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1956             Ilya Verbin  <ilya.verbin@intel.com>
1957             Kirill Yukhin  <kirill.yukhin@intel.com>
1958             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1959
1960         * config/i386/sse.md
1961         (define_expand "mul<mode>3<mask_name>"): Add masking.
1962
1963 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1964             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1965             Anna Tikhonova  <anna.tikhonova@intel.com>
1966             Ilya Tocar  <ilya.tocar@intel.com>
1967             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1968             Ilya Verbin  <ilya.verbin@intel.com>
1969             Kirill Yukhin  <kirill.yukhin@intel.com>
1970             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1971
1972         * config/i386/sse.md
1973         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
1974         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
1975
1976 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1977             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1978             Anna Tikhonova  <anna.tikhonova@intel.com>
1979             Ilya Tocar  <ilya.tocar@intel.com>
1980             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1981             Ilya Verbin  <ilya.verbin@intel.com>
1982             Kirill Yukhin  <kirill.yukhin@intel.com>
1983             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1984
1985         * config/i386/sse.md
1986         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
1987         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
1988         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
1989         Ditto.
1990
1991 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1992             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1993             Anna Tikhonova  <anna.tikhonova@intel.com>
1994             Ilya Tocar  <ilya.tocar@intel.com>
1995             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1996             Ilya Verbin  <ilya.verbin@intel.com>
1997             Kirill Yukhin  <kirill.yukhin@intel.com>
1998             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1999
2000         * config/i386/sse.md
2001         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2002         use VF_128_256 mode iterator and update assembler emit code.
2003         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2004         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2005         Add masking, use VF_128_256 mode iterator.
2006         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2007         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2008         Add masking, use VF_128_256 mode iterator and update assembler emit
2009         code.
2010         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2011         (define_mode_attr avx512flogicsuff): Delete.
2012         (define_insn "avx512f_<logic><mode>"): Ditto.
2013         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2014         MODE_TI.
2015         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
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_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2028         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2029         use VI12_128 mode iterator.
2030         (define_expand "ashrv2di3<mask_name>"): New.
2031
2032 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2033             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2034             Anna Tikhonova  <anna.tikhonova@intel.com>
2035             Ilya Tocar  <ilya.tocar@intel.com>
2036             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2037             Ilya Verbin  <ilya.verbin@intel.com>
2038             Kirill Yukhin  <kirill.yukhin@intel.com>
2039             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2040
2041         * config/i386/i386.c
2042         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2043         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2044         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2045         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2046         CODE_FOR_avx512vl_ucmpv4si3_mask.
2047         * config/i386/sse.md
2048         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2049         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2050         (define_insn
2051         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2052         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2053         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2054         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2055         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2056         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2057
2058 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2059             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2060             Anna Tikhonova  <anna.tikhonova@intel.com>
2061             Ilya Tocar  <ilya.tocar@intel.com>
2062             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2063             Ilya Verbin  <ilya.verbin@intel.com>
2064             Kirill Yukhin  <kirill.yukhin@intel.com>
2065             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2066
2067         * config/i386/sse.md
2068         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2069         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2070         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2071         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2072         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2073         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2074         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2075         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2076         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2077
2078 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2079             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2080             Anna Tikhonova  <anna.tikhonova@intel.com>
2081             Ilya Tocar  <ilya.tocar@intel.com>
2082             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2083             Ilya Verbin  <ilya.verbin@intel.com>
2084             Kirill Yukhin  <kirill.yukhin@intel.com>
2085             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2086
2087         * config/i386/sse.md
2088         (define_insn "avx512f_blendm<mode>"): Delete.
2089         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2090         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2091         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2092         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2093         (define_insn
2094         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2095         Remove.
2096         (define_insn
2097         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2098         New.
2099         (define_insn
2100         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2101         Ditto.
2102         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2103         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2104         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2105         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2106         Delete.
2107         (define_insn
2108         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2109         New.
2110         (define_insn
2111         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2112         Ditto.
2113         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2114         Delete.
2115         (define_insn
2116         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2117         New.
2118         (define_insn
2119         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2120         Ditto.
2121
2122 2014-10-14  Richard Biener  <rguenther@suse.de>
2123
2124         PR tree-optimization/63512
2125         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2126         modified.
2127
2128 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2129
2130         PR target/63260
2131         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2132         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2133         of FPSCR.
2134         (negsf2_i): Rename to *negsf2_i.
2135         (abssf2_i): Rename to *abssf2_i.
2136         (negdf2_i): Rename to *negdf2_i.
2137         (absdf2_i): Rename to *absdf2_i.
2138
2139 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2140             Jeff Law  <law@redhat.com>
2141
2142         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2143         "replace" into boolean bitfields; turn member "loop_depth" into a short
2144         integer; add new member "no_equiv" and "reserved".
2145         (no_equiv): Set no_equiv of struct equivalence if register is marked
2146         as having no known equivalence.
2147         (update_equiv_regs): Check all definitions for a multiple-set
2148         register to make sure that the RHS have the same value.
2149
2150 2014-10-13  Richard Henderson  <rth@redhat.com>
2151
2152         * combine-stack-adj.c (no_unhandled_cfa): New.
2153         (maybe_merge_cfa_adjust): New.
2154         (combine_stack_adjustments_for_block): Use them.
2155
2156 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2157
2158         * Makefile.in (TAGS): Tag ../include files.
2159
2160 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2161
2162         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2163         to rs6000_dbx_register_number.
2164         (DWARF_FRAME_REGNUM): Redefine as identity map.
2165         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2166         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2167         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2168         argument to handle .debug_frame and .eh_frame directly.  Always
2169         translate SPE high register numbers.  Add special treatment for CR,
2170         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2171
2172         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2173         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2174         (RS6000_USE_DWARF_NUMBERING): Define.
2175         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2176         (RS6000_USE_DWARF_NUMBERING): Define.
2177         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2178         (RS6000_USE_DWARF_NUMBERING): Define.
2179         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2180         (RS6000_USE_DWARF_NUMBERING): Define.
2181         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2182         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2183
2184 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2185
2186         * config/i386/i386.c (ix86_address_cost): Lower cost for
2187         when address contains GOT register.
2188
2189 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2190             Vladimir Makarov  <vmakarov@redhat.com>
2191
2192         PR target/8340
2193         PR middle-end/47602
2194         PR rtl-optimization/55458
2195         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2196         (ix86_init_pic_reg): New.
2197         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2198         (ix86_save_reg): Likewise.
2199         (ix86_expand_prologue): Remove PIC register initialization
2200         now performed in ix86_init_pic_reg.
2201         (ix86_output_function_epilogue): Add check on pseudo register.
2202         (set_pic_reg_ever_alive): New.
2203         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2204         set_pic_reg_ever_alive.
2205         (legitimize_tls_address): Likewise.
2206         (ix86_pic_register_p): New check.
2207         (ix86_delegitimize_address): Add check on pseudo register.
2208         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2209         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2210         (TARGET_INIT_PIC_REG): New.
2211         (TARGET_USE_PSEUDO_PIC_REG): New.
2212         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2213         if pic_offset_table_rtx exists.
2214         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2215         Document.
2216         * doc/tm.texi: Regenerate.
2217         * function.c (assign_parms): Generate pseudo register for PIC.
2218         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2219         register.
2220         * ira-color.c (color_pass): Add check on pseudo register.
2221         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2222         register.
2223         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2224         register.
2225         (ira): Add target specific PIC register initialization.
2226         (do_reload): Keep PIC pseudo register.
2227         * lra-assigns.c (spill_for): Add checks on pseudo register.
2228         * lra-constraints.c (contains_symbol_ref_p): New.
2229         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2230         register.
2231         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2232         * target.def (use_pseudo_pic_reg): New.
2233         (init_pic_reg): New.
2234
2235 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2236
2237         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2238         Remove m_SILVERMONT and m_INTEL from the tune.
2239
2240 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2241
2242         PR libfortran/63471
2243         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2244         when _HPUX_SOURCE is defined.
2245
2246 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2247
2248         PR tree-optimization/62127
2249         * tree.c (remap_type_1): When remapping array, remap
2250         also its type.
2251
2252 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2253
2254         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2255         longer impact parallelization.
2256
2257 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2258
2259         PR bootstrap/63496
2260         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2261
2262 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2263
2264         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2265
2266 2014-10-13  Richard Biener  <rguenther@suse.de>
2267
2268         PR tree-optimization/63419
2269         * gimple-fold.h (gimple_convert): New function.
2270         * gimple-fold.c (gimple_convert): Likewise.
2271         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2272         to split out required conversions early.
2273
2274 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2275
2276         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2277         Add the parts of an insn in reverse order, with the pattern at
2278         the top of the queue.  Detect when we're iterating over a SEQUENCE
2279         pattern and in that case just consider patterns of subinstructions.
2280
2281 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2282
2283         PR target/59401
2284         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2285         of rtx.
2286         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2287         insn walking.
2288         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2289         address.  Use def chains to handle GBR clobbering call insns.
2290
2291 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2292
2293         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2294         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2295         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2296         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2297         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2298         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2299         * doc/gty.texi (for_user): Document new option.
2300         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2301         char.
2302         (walk_type): Don't error out on for_user option.
2303         (write_func_for_structure): Emit user marking routines if requested by
2304         for_user option.
2305         (write_local_func_for_structure): Likewise.
2306         (main): Mark types with for_user option as used.
2307         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2308         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2309         * hash-table.h (ggc_hasher): New struct.
2310         (hash_table::create_ggc): New function.
2311         (gt_pch_nx): New overload for hash_table.
2312
2313 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2314
2315         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2316         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2317         * config/sh/sh.c: Likewise.
2318         * config/sh/sh-mem.cc: Likewise.
2319         * config/sh/sh.md: Likewise.
2320         * config/sh/predicates.md: Likewise.
2321         * config/sh/sync.md: Likewise.
2322
2323 2014-10-11  Martin Liska  <mliska@suse.cz>
2324
2325         PR middle-end/63376
2326         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2327         for call_cgraph_insertion_hooks added.
2328
2329 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2330
2331         PR c/63495
2332         * stor-layout.c (min_align_of_type): Don't decrease alignment
2333         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2334         TYPE_USER_ALIGN is set.
2335
2336 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2337
2338         PR rtl-optimization/63483
2339         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2340         references when alignment ANDs are involved.
2341         (write_dependence_p): Ditto.
2342         (may_alias_p): Ditto.
2343
2344 2014-10-10  Marek Polacek  <polacek@redhat.com>
2345
2346         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2347         * doc/invoke.texi: Document -fsanitize=object-size.
2348         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2349         or it into SANITIZE_UNDEFINED.
2350         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2351         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2352         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2353         * opts.c (common_handle_option): Handle -fsanitize=object-size.
2354         * ubsan.c: Include tree-object-size.h.
2355         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2356         (ubsan_expand_bounds_ifn): Use false instead of 0.
2357         (ubsan_expand_objsize_ifn): New function.
2358         (instrument_object_size): New function.
2359         (pass_ubsan::execute): Add object size instrumentation.
2360         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2361
2362 2014-10-10  Richard Henderson  <rth@redhat.com>
2363
2364         PR target/63404
2365         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2366         Restrict the set of expressions we're willing to move.
2367
2368 2014-10-10  Jeff Law  <law@redhat.com>
2369
2370         * ira.c (struct equivalence): Promote INIT_INSNs field to
2371         an rtx_insn_list.  Add comments.
2372         (no_equiv): Promote LIST to an rtx_insn_list.  Update
2373         testing for and creating the special marker.  Use methods
2374         to extract the insn and next pointers.  Promote INSN to an
2375         rtx_insn.
2376         (update_equiv_regs): Update test for special marker in the
2377         INIT_INSNs list.
2378
2379 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2380
2381         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2382         * configure: Regenerate.
2383         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2384         TARGET_FIX_ERR_A53_835769_DEFAULT.
2385         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2386         value to 2.
2387         * doc/install.texi (aarch64*-*-*): Document
2388         new --enable-fix-cortex-a53-835769 option.
2389
2390 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2391             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2392
2393         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2394         (ADJUST_INSN_LENGTH): Define.
2395         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2396         * config/aarch64/aarch64.c (is_mem_p): New function.
2397         (is_memory_op): Likewise.
2398         (aarch64_prev_real_insn): Likewise.
2399         (is_madd_op): Likewise.
2400         (dep_between_memop_and_curr): Likewise.
2401         (aarch64_madd_needs_nop): Likewise.
2402         (aarch64_final_prescan_insn): Likewise.
2403         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2404         and -mno-fix-cortex-a53-835769 options.
2405
2406 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2407
2408         PR tree-optimization/63464
2409         * tree-switch-conversion.c (struct case_bit_test): Remove
2410         hi and lo fields, add wide_int mask field.
2411         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
2412         hi/lo fields into wide_int mask operations, optimize by pretending
2413         minval to be 0 if maxval is small enough.
2414         (process_switch): Adjust caller.
2415
2416 2014-10-10  Richard Biener  <rguenther@suse.de>
2417
2418         PR tree-optimization/63379
2419         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2420         a neutral operand for min/max when it is not a reduction chain.
2421
2422 2014-10-10  Richard Biener  <rguenther@suse.de>
2423
2424         PR tree-optimization/63476
2425         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
2426         (BB_LIVE_VOP_ON_EXIT): New define.
2427         (create_expression_by_pieces): Assign VUSEs to stmts.
2428         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
2429         (pass_pre::execute): Assert virtual SSA form is up-to-date
2430         after insertion.
2431
2432 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2433
2434         * lra-assigns.c (assign_by_spills): Error out on spill failure.
2435
2436 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
2437
2438         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
2439         assertion.
2440
2441 2014-10-09  Richard Biener  <rguenther@suse.de>
2442
2443         PR tree-optimization/63380
2444         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2445         may trap.
2446
2447 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2448
2449         * config/avr/avr.opt (mmcu=): Change to have a string value.
2450         (mn-flash=, mskip-bug, march=, mrmw): New options.
2451         (HeaderInclude): New.
2452         (mmcu=): Remove Var / Init clauses.
2453         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
2454         -specs option.
2455         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
2456         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
2457         (SYMBOL_FLAG_IO_LOW): Define.
2458         (avr_device_to_as, avr_device_to_ld): Don't declare.
2459         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2460         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
2461         (EXTRA_SPEC_FUNCTIONS): Don't define.
2462         (ASM_SPEC): Translate -arch= option to -mmcu= option.
2463         (LINK_SPEC): Translate -arch= option to -m= option.
2464         Don't use device_to_ld / device_to_data_start.
2465         (STARTFILE_SPEC): Now empty.
2466         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
2467         * config/avr/gen-avr-mmcu-specs.c: New file.
2468         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
2469         (s-device-specs): Likewise.
2470         (GCC_PASSES): Add s-device-specs.
2471         (install-driver): Depend on install-device-specs.
2472         (install-device-specs): New rule.
2473         * config/avr/avr.c (avr_option_override): Look up mcu arch by
2474         avr_arch_index and provide fallback initialization for avr_n_flash.
2475         (varasm.h): #include.
2476         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
2477         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
2478         (avr_attribute_table): Add "io", "address" and "io_low".
2479         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
2480         Add special handling for symbols with "io" and/or "address" attributes.
2481         (avr_asm_asm_output_aligned_bss): New function.
2482         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
2483         as appropriate.  Handle io_low attribute.
2484         (avr_out_sbxx_branch): Handle symbolic io addresses.
2485         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
2486         avr_n_flash instead of avr_current_device->n_flash.
2487         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
2488         (avr_emit_movmemhi): Likewise.
2489         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
2490         Use TARGET_RMW instead of avr_current_device->dev_attributes.
2491         Don't define avr_current_device->macro (that's the specfile's job).
2492         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
2493         * config/avr/avr.c (avr_2word_insn_p): Likewise.
2494         * config/avr/avr.md (*cpse.ne): Likewise.
2495         (mov<mode>): Use avr_eval_addr_attrib.
2496         (cbi): Change constraint for low_io_address_operand operand to "i".
2497         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
2498         * config/avr/predicates.md (io_address_operand):
2499         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
2500         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
2501         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
2502         Update prototype.
2503         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
2504         * config/avr/genmultilib.awk: Use -march=.
2505         Remove Multilib matches processing.
2506         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
2507         * config/avr/avr-arch.h: Add double include guard.
2508         (avr_mcu_t) <library_name>: Update comment.
2509         * config/avr/driver-avr.c (avr_device_to_as): Delete.
2510         (avr_device_to_ld, avr_device_to_data_start): Likewise.
2511         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
2512         (avr_device_to_sp8): Likewise.
2513         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
2514
2515         * doc/extend.texi (io, address): Document new AVR variable attributes.
2516         (io_low): Likewise.
2517
2518 2014-10-09  Marek Polacek  <polacek@redhat.com>
2519
2520         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
2521
2522 2014-10-08  Richard Biener  <rguenther@suse.de>
2523
2524         PR tree-optimization/61969
2525         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2526         variables.
2527
2528 2014-10-09  Richard Biener  <rguenther@suse.de>
2529
2530         PR tree-optimization/63445
2531         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
2532         overflow for non-equality compares.
2533
2534 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
2535
2536         PR rtl-optimization/57003
2537         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2538         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2539         killing regs_invalidated_by_call.
2540
2541 2014-10-08  Teresa Johnson  <tejohnson@google.com>
2542
2543         PR bootstrap/63432.
2544         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
2545         (ssa_fix_duplicate_block_edges): Invoke it.
2546         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
2547
2548 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
2549
2550         PR target/52941
2551         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2552         atomic_fetch_<fetchop_name>si_hard,
2553         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2554         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2555         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2556         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2557
2558 2014-10-08  Rong Xu  <xur@google.com>
2559
2560         * gcov-tool.c (profile_overlap): New driver function
2561         to compute profile overlap.
2562         (print_overlap_usage_message): New.
2563         (overlap_usage): New.
2564         (do_overlap): New.
2565         (print_usage): Add calls to overlap function.
2566         (main): Ditto.
2567         * doc/gcov-tool.texi: Add documentation.
2568
2569 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2570
2571         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
2572         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
2573
2574 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
2575
2576         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
2577         pattern matching of MEM_REF.
2578         (check_stmt_for_type_change): Update.
2579
2580 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2581
2582         * config/mips/linux64.h: Remove.
2583         * config/mips/gnu-user64.h: Remove.
2584         * gcc.config (mips*-*-*): Remove references to linux64.h and
2585         gnu-user64.h
2586         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
2587         with modified version from gnu-user64.h.
2588         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
2589         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
2590         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
2591         linux64.h.
2592         (GNU_USER_LINK_EMULATION64): Ditto.
2593         (GNU_USER_LINK_EMULATIONN32): Ditto.
2594         (GLIBC_DYNAMIC_LINKER32): Ditto.
2595         (GLIBC_DYNAMIC_LINKER64): Ditto.
2596         (GLIBC_DYNAMIC_LINKERN32): Ditto.
2597         (UCLIBC_DYNAMIC_LINKER32): Ditto.
2598         (UCLIBC_DYNAMIC_LINKER64): Ditto.
2599         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
2600         (BIONIC_DYNAMIC_LINKERN32): Ditto.
2601         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
2602         (GLIBC_DYNAMIC_LINKER): Delete.
2603         (UCLIBC_DYNAMIC_LINKER): Delete.
2604
2605 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
2606             Richard Biener  <rguenther@suse.de>
2607
2608         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
2609         Get address space from operand 0 (BASE).
2610
2611 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
2612
2613         PR target/61387
2614         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
2615
2616 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
2617
2618         * dwarf2out.c: Remove current_function_has_inlines.
2619         (gen_subprogram_die): Same.
2620         (gen_inlined_subroutine_die): Same.
2621
2622 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
2623
2624         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
2625         type.
2626         (_addcarry_u64): Ditto.
2627         (_addcarryx_u64): Ditto.
2628
2629 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2630
2631         * cgraph.h (cgraph_node::get_fun): Declare.
2632         * cgraph.c (cgraph_node::get_fun): New method.
2633         * ipa-inline.c (can_inline_edge_p): Use it.
2634
2635 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2636
2637         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
2638         and -ftrapping-math.
2639         * lto-wrapper.c (merge_and_complain): Likewise.
2640         (run_gcc): Likewise.
2641
2642 2014-10-06  Rong Xu  <xur@google.com>
2643
2644         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
2645         * tree-profile.c: (params.h): New include.
2646         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
2647         and __gcov_indirect_call_topn_counters for
2648         indirect_call_topn_profile.
2649         (gimple_init_edge_profiler): New decls for
2650         __gcov_indirect_call_topn_profiler.
2651         (gimple_gen_ic_profiler): Generate the correct profiler call.
2652         (gimple_gen_ic_func_profiler): Fix format.
2653         * value-prof.c (params.h): New include.
2654         (dump_histogram_value): Hanlde indirect_call_topn counters.
2655         (stream_in_histogram_value): Ditto.
2656         (gimple_indirect_call_to_profile): Use indirect_call_topn
2657         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
2658         (gimple_find_values_to_profile): Hanlde indirect_call_topn
2659         counters.
2660         * value-prof.h (enum hist_type): Histrogram type for
2661         indirect_call_topn counters.
2662         * profile.c (instrument_values): Instrument
2663         indirect_call_topn counters.
2664
2665 2014-10-06  Rong Xu  <xur@google.com>
2666
2667         * Makefile.in: Fix dependence.
2668         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
2669         indirect call topn profiler.
2670         * gcov-io.h: Ditto.
2671
2672 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2673
2674         * calls.c (expand_call): Do not use the target as the return slot if
2675         it is not sufficiently aligned.
2676
2677 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2678
2679         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
2680         discussion of permutes and why we don't handle them.
2681
2682 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2683
2684         * config/sparc/predicates.md (int_register_operand): Delete.
2685
2686 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2687
2688         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
2689
2690 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
2691
2692         * ubsan.h (ubsan_get_source_location): New prototype.
2693         * ubsan.c (ubsan_source_location_type): New variable.
2694         Function renamed to ...
2695         (ubsan_get_source_location_type): ... this.  Cache
2696         return value in ubsan_source_location_type variable.
2697         (ubsan_source_location, ubsan_create_data): Use
2698         ubsan_get_source_location_type instead of
2699         ubsan_source_location_type.
2700         * asan.c (asan_protect_global): Don't protect globals
2701         with ubsan_get_source_location_type () type.
2702         (asan_add_global): Provide global decl location info
2703         if possible.
2704
2705 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2706
2707         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
2708         sanity check.
2709
2710 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2711
2712         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
2713         on size.
2714         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
2715         into vptr pointer.
2716         (ipa_polymorphic_call_context::dump): Fix formating.
2717         (walk_ssa_copies): Add logic avoiding loops; update uses.
2718         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
2719
2720 2014-10-02  Mark Wielaard  <mjw@redhat.com>
2721
2722         PR debug/63239
2723         * dwarf2out.c (gen_subprogram_die): When a member function is
2724         explicitly deleted then add a DW_AT_GNU_deleted attribute.
2725         * langhooks.h (struct lang_hooks_for_decls): Add
2726         function_decl_deleted_p langhook.
2727         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
2728         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
2729
2730 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2731
2732         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
2733         NULL pointer checks.
2734         (ipa_polymorphic_call_context::get_dynamic_type): Return true
2735         if type doesn't change.
2736         * cgraph.h (cgraph_indirect_call_info): New flag.
2737         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
2738         (cgraph_node::dump): Dump it.
2739         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
2740         of context.get_dynamic_type.
2741         (ipa_make_edge_direct_to_target): Do not speculate
2742         edge that is already speuclative.
2743         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
2744         speculate to __builtin_unreachable
2745         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
2746         vptr_changed.
2747         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
2748
2749 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2750
2751         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
2752         get_dynamic_type; drop TODO.
2753         * ipa-polymorphic-call.c
2754         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
2755         for otr_type to be unknown.
2756
2757 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2758
2759         * common/config/score/score-common.c: Remove.
2760         * config.gcc: Remove support for score-*.
2761         * config/score/constraints.md: Remove.
2762         * config/score/elf.h: Remove.
2763         * config/score/predicates.md: Remove.
2764         * config/score/score-conv.h: Remove.
2765         * config/score/score-generic.md: Remove.
2766         * config/score/score-modes.def: Remove.
2767         * config/score/score-protos.h: Remove.
2768         * config/score/score.c: Remove.
2769         * config/score/score.h: Remove.
2770         * config/score/score.md: Remove.
2771         * config/score/score.opt: Remove.
2772         * doc/md.texi: Don't document score-*.
2773
2774 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2775
2776         PR pch/63429
2777         * genconditions.c: Directly include ggc.h before rtl.h.
2778
2779 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2780
2781         * ipa-polymorphic-call.c
2782         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
2783         code determining speculative type.
2784         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
2785
2786 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2787
2788         * altivec.md (altivec_lvsl): New define_expand.
2789         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2790         (altivec_lvsr): New define_expand.
2791         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2792         * rs6000.c (rs6000_expand_builtin): Change to use
2793         altivec_lvs[lr]_direct; remove commented-out code.
2794
2795 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2796
2797         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2798         Issue a warning message when vec_lvsl or vec_lvsr is used with a
2799         little endian target.
2800
2801 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2802
2803         * tree-pretty-print.c (dump_location): Make it extern. Dump also
2804         the column.
2805         * tree-pretty-print.h (dump_location): Declare.
2806         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
2807         (pp_gimple_stmt_1): Likewise.
2808         (dump_implicit_edges): Likewise.
2809         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
2810         LOCATION_LINE.
2811
2812
2813 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2814
2815         * gcc.c (driver::global_initializations): Remove "const" so
2816         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
2817         and decoded_options_count.
2818
2819 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
2820
2821         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
2822         macro.
2823         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
2824         TARGET_E500_DOUBLE case here.
2825
2826 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
2827
2828         PR c++/54427
2829         PR c++/57198
2830         PR c++/58845
2831         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
2832
2833 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2834
2835         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
2836         * lto-cgraph.c (lto_output_edge, input_edge): Stream
2837         in_polymorphic_cdtor
2838         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
2839         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
2840         * cgraphclones.c (cgraph_edge::clone): Likewise.
2841         * ipa-prop.c (update_jump_functions_after_inlining,
2842         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
2843         to possible_dynamic_type_change.
2844         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
2845         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2846         IN_POLY_CDOTR argument.
2847
2848         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
2849         for BASE and OUTER_TYPE being NULL.
2850         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2851         in_poly_cdtor parameter.
2852
2853 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2854
2855         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
2856         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
2857         TARGET_AVX512F.
2858         (expand_vec_perm_1): Likewise.
2859
2860 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2861             Uros Bizjak  <ubizjak@gmail.com>
2862
2863         PR tree-optimization/61403
2864         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
2865         error in comment.  Also optimize 256-bit vectors for AVX2
2866         or AVX (floating vectors only), provided the first permutation
2867         can be performed in one insn.
2868
2869 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2870
2871         * gcc.c (class driver): New class.
2872         (main): Reimplement in terms of driver::main, moving most of the
2873         locals to be locals within individual methods of class driver.
2874         The remaining locals "explicit_link_files", "decoded_options" and
2875         "decoded_options_count" are used by multiple driver:: methods, and
2876         so become member data.  Doing so isolates the argc/argv reads and
2877         writes.  Replace "goto out" with a special exit code from
2878         new method driver::prepare_infiles.  Split out the old
2879         implementation of main into the following...
2880         (driver::main): New function, corresponding to the old "main"
2881         implementation.
2882         (driver::set_progname): New function, taken from the old
2883         "main" implementation.
2884         (driver::expand_at_files): Likewise.
2885         (driver::decode_argv): Likewise.
2886         (driver::global_initializations): Likewise.
2887         (driver::build_multilib_strings): Likewise.
2888         (driver::set_up_specs): Likewise.
2889         (driver::putenv_COLLECT_GCC): Likewise.
2890         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
2891         (driver::handle_unrecognized_options): Likewise.
2892         (driver::maybe_print_and_exit): Likewise.
2893         (driver::prepare_infiles): Likewise.
2894         (driver::do_spec_on_infiles): Likewise.
2895         (driver::maybe_run_linker): Likewise.
2896         (driver::final_actions): Likewise.
2897         (driver::get_exit_code): Likewise.
2898
2899 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
2900
2901         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2902         don't emit empty ctors.
2903
2904 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
2905
2906         * convert.c (convert_to_integer): Do not introduce useless conversions
2907         between integral types.
2908
2909 2014-10-03  David Sherwood  <david.sherwood@arm.com>
2910
2911         * ira-int.h (ira_allocno): Mark hard_regno as signed.
2912
2913 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
2914
2915         * lra-constraints.c (inherit_in_ebb): Handle calls with
2916         multiple return values.
2917         * caller-save.c (save_call_clobbered_regs): Likewise.
2918
2919 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2920
2921         * tree-vect-data-refs.c (vect_permute_load_chain,
2922         vect_shift_permute_load_chain): Fix a typo in temporary var names,
2923         suffle3 to shuffle3.
2924
2925         PR libgomp/61200
2926         * omp-low.c (taskreg_contexts): New variable.
2927         (scan_omp_parallel): Push newly created context into taskreg_contexts
2928         vector and move record layout code to finish_taskreg_scan.
2929         (scan_omp_task): Likewise.
2930         (finish_taskreg_scan): New function.
2931         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2932         vector elements and release it.
2933
2934         PR target/62128
2935         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
2936         of palignr arguments can't be used due to min 0 or max - min
2937         too high, try also op0, op1 order of palignr arguments.
2938
2939 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
2940
2941         * cgraph.h (ipa_polymorphic_call_context):
2942         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
2943         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
2944         * ipa-polymorphic-call.c
2945         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
2946         past end of dynamic types.
2947         (ipa_polymorphic_call_context::stream_out,
2948         speculative_outer_type): Stream dynamic flag.
2949         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
2950         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
2951         Clear DYNAMIC.
2952         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
2953         set it.
2954         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
2955         * ipa-prop.c (update_jump_functions_after_inlining,
2956         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
2957
2958 2014-10-02  Teresa Johnson  <tejohnson@google.com>
2959
2960         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
2961         up when synthesizing counts to avoid rounding errors.
2962
2963 2014-10-02  Teresa Johnson  <tejohnson@google.com>
2964
2965         PR middle-end/63422
2966         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
2967         asserts to handle incoming insanities.
2968
2969 2014-10-02  Martin Jambor  <mjambor@suse.cz>
2970
2971         PR tree-optimization/63375
2972         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2973         references.
2974
2975 2014-10-02  Olivier Hainque  <hainque@adacore.com>
2976
2977         * Makefile.in (CROSS): Define, to @CROSS.
2978
2979 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
2980
2981         PR target/62128
2982         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
2983         if it expands to a single insn only.
2984         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
2985         fail unless in_order is true.  Add forward declaration.
2986         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
2987         is useful for one_operand_p.
2988         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
2989
2990 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
2991
2992         * cgraphclones.c (build_function_type_skip_args): Do not make new
2993         type variant of old.
2994
2995 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
2996
2997         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
2998         when speculation is added.
2999         (ipa_edge_args): Add polymorphic_call_contexts.
3000         (ipa_get_ith_polymorhic_call_context): New accesor.
3001         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3002         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3003         (ipa_compute_jump_functions_for_edge): Compute contexts.
3004         (update_jump_functions_after_inlining): Update contexts.
3005         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3006         update dumping; add speculative edge creation.
3007         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3008         context updating.
3009         (update_indirect_edges_after_inlining): Pass down context.
3010         (ipa_edge_duplication_hook): Duplicate contexts.
3011         (ipa_write_node_info): Stream out contexts.
3012         (ipa_read_node_info): Stream in contexts.
3013         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3014         types.
3015         (try_speculative_devirtualization): New function.
3016         * ipa-utils.h (try_speculative_devirtualization): Declare.
3017
3018 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3019
3020         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3021         dumping during WPA.
3022
3023 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3024
3025         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3026         type variants.
3027
3028 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3029
3030         * ipa-polymorphic-call.c
3031         (ipa_polymorphic_call_context::restrict_to_inner_class):
3032         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3033         use speculation_consistent_p to do so; Add CONSDER_BASES
3034         and CONSIDER_PLACEMENT_NEW parameters.
3035         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3036         short circuit obvious cases.
3037         (ipa_polymorphic_call_context::dump): Improve formatting.
3038         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3039         combine_speculation_with to record speculations; Do not ICE when
3040         object is located in pointer type decl; do not ICE for methods
3041         of UNION_TYPE; do not record nonpolymorphic types.
3042         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3043         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3044         (ipa_polymorphic_call_context::combine_with): New method.
3045         (ipa_polymorphic_call_context::make_speculative): Move here; use
3046         combine speculation.
3047         * cgraph.h (ipa_polymorphic_call_context): Update
3048         restrict_to_inner_class prototype; add offset_by, make_speculative,
3049         combine_with, useless_p, combine_speculation_with and
3050         speculation_consistent_p methods.
3051         (ipa_polymorphic_call_context::offset_by): New method.
3052         (ipa_polymorphic_call_context::useless_p): New method.
3053
3054 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3055
3056         PR rtl-optimization/62151
3057         * combine.c (can_combine_p): Allow the destination register of INSN
3058         to be clobbered in I3.
3059         (subst): Do not substitute into clobbers of registers.
3060
3061 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3062
3063         PR debug/63342
3064         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3065         offset, TARGET_MEM_REF and SSA_NAME.
3066
3067         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3068         256-bit vectors for TARGET_AVX2.
3069
3070         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3071         dfirst permutation.
3072
3073         PR target/63428
3074         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3075         argument to avx2_permv2ti.
3076
3077 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3078
3079         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3080
3081 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3082
3083         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3084         (fmod<mode>3): Ditto.
3085         (fpremxf4_i387): Ditto.
3086         (reminderxf3): Ditto.
3087         (reminder<mode>3): Ditto.
3088         (fprem1xf4_i387): Ditto.
3089
3090 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3091
3092         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3093         duplicate_blocks bitmap.
3094         (remove_ctrl_stmt_and_useless_edges): Ditto.
3095         (create_block_for_threading): Ditto.
3096         (compute_path_counts): New function.
3097         (update_profile): Ditto.
3098         (recompute_probabilities): Ditto.
3099         (update_joiner_offpath_counts): Ditto.
3100         (freqs_to_counts_path): Ditto.
3101         (clear_counts_path): Ditto.
3102         (ssa_fix_duplicate_block_edges): Update profile info.
3103         (ssa_create_duplicates): Pass new parameter.
3104         (ssa_redirect_edges): Remove old profile update.
3105         (thread_block_1): New duplicate_blocks bitmap,
3106         remove old profile update.
3107         (thread_single_edge): Pass new parameter.
3108
3109 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3110
3111         PR middle-end/62120
3112         * varasm.c (decode_reg_name_and_count): Check availability for
3113         registers from ADDITIONAL_REGISTER_NAMES.
3114
3115 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3116
3117         PR plugins/63410
3118         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3119         (PLUGIN_HEADERS): Add pass-instances.def.
3120
3121 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3122
3123         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3124         iterator.
3125         * config/aarch64/aarch64-simd.md
3126         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3127         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3128         (vqdmulls_lane_s32): Fix return type.
3129         (vqdmulls_laneq_s32): New.
3130
3131 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3132
3133         PR inline-asm/63282
3134         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3135         or invert_jump_1 if jump isn't any_condjump_p.
3136
3137 2014-09-30  Terry Guo  <terry.guo@arm.com>
3138
3139         * config/arm/arm-cores.def (cortex-m7): New core name.
3140         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3141         (fpv5-d16): Ditto.
3142         * config/arm/arm-tables.opt: Regenerated.
3143         * config/arm/arm-tune.md: Regenerated.
3144         * config/arm/arm.h (TARGET_VFP5): New macro.
3145         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3146         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3147         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3148         * doc/invoke.texi: Document new cpu and fpu names.
3149
3150 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3151
3152         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3153         before sinking insn.
3154
3155 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3156
3157         * ira-int.h (ira_allocno): Add "wmode" field.
3158         * ira-build.c (create_insn_allocnos): Add new "parent" function
3159         parameter.
3160         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3161         that cannot be accessed in wmode.
3162
3163 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3164
3165         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3166         integer overflow.
3167
3168 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3169
3170         * opts.c (print_filtered_help): Print --param min/max/default
3171         with -Q.
3172
3173 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3174
3175         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3176
3177 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3178
3179         * tree-vrp.c (get_single_symbol): New function.
3180         (build_symbolic_expr): Likewise.
3181         (symbolic_range_based_on_p): New predicate.
3182         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3183         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3184         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3185         operand is symbolic and based on the other operand.
3186
3187 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3188
3189         * config/microblaze/microblaze.md (call_internal1): Use VOID
3190         instead of SI to fix "((void (*)(void)) 0)()" issue
3191
3192 2014-09-29  Nick Clifton  <nickc@redhat.com>
3193
3194         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3195         CLOBBER rtx for naked functions.
3196         (msp430_expand_epilogue): Likewise.
3197         (msp430_use_f5_series_hwmult): Cache result.
3198         (use_32bit_hwmult): Cache result.
3199         (msp430_no_hwmult): New function.
3200         (msp430_output_labelref): Use it.
3201
3202 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3203
3204         PR middle-end/63247
3205         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3206         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3207         use the alignment of avar rather than ovar.
3208
3209 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3210
3211         * config/pa/pa.c (pa_output_function_epilogue): Only update
3212         last_address when a nonnote insn is found.
3213
3214 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3215
3216         PR ipa/60665
3217         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3218
3219 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3220
3221         PR ipa/62121
3222         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3223         fix pasto in checking array size.
3224
3225 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3226
3227         PR middle-end/35545
3228         * passes.def (pass_tracer): Move before last dominator pass.
3229
3230 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3231
3232         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3233         users.
3234         (run_attempt): Handle errors of "pex_run" invocation.
3235
3236 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3237
3238         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3239         (CC1_SPEC): Define.
3240         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3241         (TARGET_ASAN_SHADOW_OFFSET): Define.
3242
3243 2014-09-26  Martin Liska  <mliska@suse.cz>
3244
3245         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3246         introduced.
3247         * cgraph.h: Likewise.
3248         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3249         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3250         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3251         * tree-ssa-alias.h: Likewise.
3252
3253 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3254             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3255
3256         * common.opt: New option.
3257         * doc/invoke.texi: Describe new option.
3258         * gcc.c (execute): Don't free first string early, but at the end
3259         of the function.  Call retry_ice if compiler exited with
3260         ICE_EXIT_CODE.
3261         (main): Factor out common code.
3262         (print_configuration): New function.
3263         (files_equal_p): Likewise.
3264         (check_repro): Likewise.
3265         (run_attempt): Likewise.
3266         (do_report_bug): Likewise.
3267         (append_text): Likewise.
3268         (try_generate_repro): Likewise
3269
3270 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3271
3272         * config/i386/i386.c (x86_print_call_or_nop): New function.
3273         (x86_function_profiler): Support -mnop-mcount and
3274         -mrecord-mcount.
3275         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3276         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3277
3278 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3279
3280         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3281         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3282         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3283         Remove.
3284
3285 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3286
3287         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3288         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3289         types_odr_comparable): Declare.
3290         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3291         * ipa-polymorphic-call.c: New file.
3292         (contains_polymorphic_type_p, possible_placement_new,
3293         ipa_polymorphic_call_context::restrict_to_inner_class,
3294         contains_type_p, decl_maybe_in_construction_p,
3295         ipa_polymorphic_call_context::stream_out,
3296         ipa_polymorphic_call_context::debug,
3297         ipa_polymorphic_call_context::stream_in,
3298         ipa_polymorphic_call_context::set_by_decl,
3299         ipa_polymorphic_call_context::set_by_invariant,
3300         walk_ssa_copies,
3301         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3302         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3303         extr_type_from_vtbl_ptr_store, record_known_type
3304         check_stmt_for_type_change,
3305         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3306         ipa-devirt.c
3307         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3308         and streamer-hooks.h
3309         (contains_polymorphic_type_p, possible_placement_new,
3310         ipa_polymorphic_call_context::restrict_to_inner_class,
3311         contains_type_p, decl_maybe_in_construction_p,
3312         ipa_polymorphic_call_context::stream_out,
3313         ipa_polymorphic_call_context::debug,
3314         ipa_polymorphic_call_context::stream_in,
3315         ipa_polymorphic_call_context::set_by_decl,
3316         ipa_polymorphic_call_context::set_by_invariant,
3317         walk_ssa_copies,
3318         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3319         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3320         extr_type_from_vtbl_ptr_store, record_known_type
3321         check_stmt_for_type_change,
3322         ipa_polymorphic_call_context::get_dynamic_type): Move to
3323         ipa-polymorphic-call.c
3324         (type_all_derivations_known_p, types_odr_comparable,
3325         types_must_be_same_for_odr): Export.
3326         (type_known_to_have_no_deriavations_p): New function.
3327         * Makefile.in: Add ipa-polymorphic-call.c
3328
3329 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3330
3331         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3332         for better storage.
3333         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3334         (possible_polymorphic_call_targets): Instead of computing both
3335         speculative and non-speculative answers, do just one at a time.
3336         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3337         (dump_targets): Break out from ...
3338         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3339         and non-speculative lists.
3340         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3341         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3342
3343 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3344
3345         PR rtl-optimization/63348
3346         * emit-rtl.c (try_split): Do not emit extra barrier.
3347
3348 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
3349
3350         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3351         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3352         new predicates.
3353         (aarch64_<sur>shll2_n<mode>): Likewise.
3354         (aarch64_<sur>shr_n<mode>): Likewise.
3355         (aarch64_<sur>sra_n<mode>: Likewise.
3356         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3357         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3358         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3359         * config/aarch64/iterators.md (ve_mode): New.
3360         (offsetlr): Remap to infix text for use in new predicates.
3361         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3362         (aarch64_simd_shift_imm_hi): Likewise.
3363         (aarch64_simd_shift_imm_si): Likewise.
3364         (aarch64_simd_shift_imm_di): Likewise.
3365         (aarch64_simd_shift_imm_offset_qi): Likewise.
3366         (aarch64_simd_shift_imm_offset_hi): Likewise.
3367         (aarch64_simd_shift_imm_offset_si): Likewise.
3368         (aarch64_simd_shift_imm_offset_di): Likewise.
3369         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3370         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3371         (aarch64_simd_shift_imm_bitsize_si): Likewise.
3372         (aarch64_simd_shift_imm_bitsize_di): Likewise.
3373
3374 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
3375
3376         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3377         new created BB as the intersection of live-in from "old_dest" and
3378         live-out from "bb".
3379
3380 2014-09-25  Felix Yang  <felix.yang@huawei.com>
3381
3382         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3383         * genautomata.c (merge_states): Ditto.
3384
3385 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
3386
3387         PR target/62218
3388         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3389         in instruction sequence.
3390
3391 2014-09-25  Nick Clifton  <nickc@redhat.com>
3392
3393         PR target/62218
3394         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3395         in instruction sequence.
3396
3397 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3398
3399         PR target/63335
3400         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
3401         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
3402
3403 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3404             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3405             Anna Tikhonova  <anna.tikhonova@intel.com>
3406             Ilya Tocar  <ilya.tocar@intel.com>
3407             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3408             Ilya Verbin  <ilya.verbin@intel.com>
3409             Kirill Yukhin  <kirill.yukhin@intel.com>
3410             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3411
3412         * config/i386/sse.md
3413         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
3414         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
3415         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
3416         (define_expand "<avx512>_perm<mode>_mask"): ... this.
3417         Use VI8F_256_512 mode iterator.
3418         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
3419         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
3420
3421 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3422             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3423             Anna Tikhonova  <anna.tikhonova@intel.com>
3424             Ilya Tocar  <ilya.tocar@intel.com>
3425             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3426             Ilya Verbin  <ilya.verbin@intel.com>
3427             Kirill Yukhin  <kirill.yukhin@intel.com>
3428             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3429
3430         * config/i386/sse.md
3431         (define_insn "avx_movshdup256<mask_name>"): Add masking.
3432         (define_insn "sse3_movshdup<mask_name>"): Ditto.
3433         (define_insn "avx_movsldup256<mask_name>"): Ditto.
3434         (define_insn "sse3_movsldup<mask_name>"): Ditto.
3435         (define_insn "vec_dupv2df<mask_name>"): Ditto.
3436         (define_insn "*vec_concatv2df"): Add EVEX version.
3437
3438 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3439             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3440             Anna Tikhonova  <anna.tikhonova@intel.com>
3441             Ilya Tocar  <ilya.tocar@intel.com>
3442             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3443             Ilya Verbin  <ilya.verbin@intel.com>
3444             Kirill Yukhin  <kirill.yukhin@intel.com>
3445             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3446
3447         * config/i386/sse.md
3448         (define_insn "vec_set<mode>_0"): Add EVEX version.
3449
3450 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3451             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3452             Anna Tikhonova  <anna.tikhonova@intel.com>
3453             Ilya Tocar  <ilya.tocar@intel.com>
3454             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3455             Ilya Verbin  <ilya.verbin@intel.com>
3456             Kirill Yukhin  <kirill.yukhin@intel.com>
3457             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3458
3459         * config/i386/sse.md
3460         (define_insn
3461         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
3462         New.
3463         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3464         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
3465         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
3466         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
3467         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
3468         (define_expand "sse2_cvtpd2ps_mask): New.
3469         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
3470         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
3471
3472 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3473             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3474             Anna Tikhonova  <anna.tikhonova@intel.com>
3475             Ilya Tocar  <ilya.tocar@intel.com>
3476             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3477             Ilya Verbin  <ilya.verbin@intel.com>
3478             Kirill Yukhin  <kirill.yukhin@intel.com>
3479             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3480
3481         * config/i386/i386.c
3482         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
3483         (ufix_notruncv8dfv8si2_mask_round): ... this.
3484         * config/i386/sse.md
3485         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
3486         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
3487         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
3488         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
3489         (define_expand "sse2_cvtpd2dq"): Delete.
3490         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
3491         make 2nd operand const0 vector.
3492         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
3493         Delete.
3494         (define_mode_attr pd2udqsuff): New.
3495         (define_insn
3496         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
3497         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
3498         (define_insn "*avx_cvttpd2dq256_2"): Delete.
3499         (define_expand "sse2_cvttpd2dq"): Ditto.
3500         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
3501         make 2nd operand const0 vector.
3502
3503 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
3504
3505         PR tree-optimization/63341
3506         * tree-vectorizer.h (vect_create_data_ref_ptr,
3507         vect_create_addr_base_for_vector_ref): Add another tree argument
3508         defaulting to NULL_TREE.
3509         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
3510         argument, pass it down to vect_create_addr_base_for_vector_ref.
3511         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
3512         add that to base_offset too if non-NULL.
3513         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
3514         for dr_explicit_realign_optimized set it to vector byte size
3515         - 1 instead of setting offset, pass byte_offset down to
3516         vect_create_data_ref_ptr.
3517
3518 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3519
3520         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
3521         forgotten debug output; canonicalize querries more wtih LTO.
3522
3523 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3524
3525         * cgraph.h (class ipa_polymorphic_call_context): Move here from
3526         ipa-utils.h; add stream_int and stream_out methods.
3527         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
3528         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
3529         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
3530         add CONTEXT.
3531         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3532         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3533         ipa_polymorphic_call_context::clear_speculation,
3534         ipa_polymorphic_call_context::clear_outer_type): Move here from
3535         ipa-utils.h
3536         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
3537         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3538         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3539         ipa_polymorphic_call_context::clear_speculation,
3540         ipa_polymorphic_call_context::clear_outer_type): Likewise.
3541         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
3542         streamer-hooks.h
3543         (ipa_polymorphic_call_context::stream_out): New method.
3544         (ipa_polymorphic_call_context::stream_in): New method.
3545         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
3546         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
3547         OUTER_TYPE.
3548         (ipa_analyze_call_uses): Simplify.
3549         (update_indirect_edges_after_inlining): Do not care about outer_type.
3550         (ipa_write_indirect_edge_info): Update.
3551         (ipa_write_indirect_edge_info): Likewise.
3552         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
3553         (dump_edge_flags): Break out from ...
3554         (cgraph_node::dump): ... here; dump indirect edges.
3555
3556 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3557
3558         * ipa-utils.h (polymorphic_call_context): Add
3559         metdhos dump, debug and clear_outer_type.
3560         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3561         (ipa_polymorphic_call_context::clear_outer_type): New method.
3562         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
3563         * ipa-devirt.c (types_odr_comparable): New function.
3564         (types_must_be_same_for_odr): New function.
3565         (odr_subtypes_equivalent_p): Simplify.
3566         (possible_placement_new): Break out from ...
3567         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
3568         be more cuatious about returning false in cases the context may be
3569         valid in derived type or via placement new.
3570         (contains_type_p): Clear maybe_derived_type
3571         (ipa_polymorphic_call_context::dump): New method.
3572         (ipa_polymorphic_call_context::debug): New method.
3573         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
3574         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
3575         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3576         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
3577         to suceed on all valid cases; remove confused sanity check.
3578         (dump_possible_polymorphic_call_targets): Simplify.
3579
3580 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
3581
3582         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
3583         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
3584         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
3585         varpool.c: Rename all instances of DECL_ABSTRACT to
3586         DECL_ABSTRACT_P.
3587
3588 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3589
3590         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
3591         special handling for stores whose SET_SRC is an UNSPEC (such as
3592         UNSPEC_STVE).
3593
3594 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
3595
3596         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
3597         !REG_P (src) to release more instruction sink opportunities.
3598
3599 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
3600
3601         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
3602         move costs for 128-bit types.
3603
3604 2014-09-24  Martin Jambor  <mjambor@suse.cz>
3605
3606         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
3607         when duplicating a PASS_THROUGH jump function when creating a
3608         speculative edge.
3609
3610 2014-09-24  Marek Polacek  <polacek@redhat.com>
3611
3612         PR c/61405
3613         PR c/53874
3614         * asan.c (maybe_instrument_call): Add default case.
3615         * ipa-pure-const.c (special_builtin_state): Likewise.
3616         * predict.c (expr_expected_value_1): Likewise.
3617         * lto-streamer-out.c (write_symbol): Initialize variable.
3618
3619 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3620
3621         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
3622         the lane.
3623         (vmuld_laneq_f64): Likewise.
3624         (vmuls_lane_f32): Likewise.
3625         (vmuls_laneq_f32): Likewise.
3626
3627 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
3628
3629         PR bootstrap/63235
3630         * varpool.c (varpool_node::add): Pass decl attributes
3631         to lookup_attribute.
3632
3633 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
3634
3635         PR sanitizer/63316
3636         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
3637
3638 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3639
3640         PR tree-optimization/63266
3641         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
3642         marker for unknown byte value.
3643         (MARKER_MASK): New macro.
3644         (MARKER_BYTE_UNKNOWN): New macro.
3645         (HEAD_MARKER): New macro.
3646         (do_shift_rotate): Mark bytes with unknown values due to sign
3647         extension when doing an arithmetic right shift. Replace hardcoded
3648         mask for marker by new MARKER_MASK macro.
3649         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
3650         numbers accordingly.
3651
3652 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3653             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3654             Anna Tikhonova  <anna.tikhonova@intel.com>
3655             Ilya Tocar  <ilya.tocar@intel.com>
3656             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3657             Ilya Verbin  <ilya.verbin@intel.com>
3658             Kirill Yukhin  <kirill.yukhin@intel.com>
3659             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3660
3661         * config/i386/sse.md
3662         (define_insn
3663         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
3664         Add masking.
3665         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
3666         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
3667
3668 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3669             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3670             Anna Tikhonova  <anna.tikhonova@intel.com>
3671             Ilya Tocar  <ilya.tocar@intel.com>
3672             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3673             Ilya Verbin  <ilya.verbin@intel.com>
3674             Kirill Yukhin  <kirill.yukhin@intel.com>
3675             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3676
3677         * config/i386/sse.md
3678         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
3679         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
3680         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
3681         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
3682         (define_expand "avx512vl_pshuflw_mask"): New.
3683         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
3684         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
3685         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
3686         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
3687         (define_expand "avx512vl_pshufhw_mask"): New.
3688         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
3689
3690 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3691             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3692             Anna Tikhonova  <anna.tikhonova@intel.com>
3693             Ilya Tocar  <ilya.tocar@intel.com>
3694             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3695             Ilya Verbin  <ilya.verbin@intel.com>
3696             Kirill Yukhin  <kirill.yukhin@intel.com>
3697             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3698
3699         * config/i386/i386.c
3700         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
3701         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
3702         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
3703         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
3704         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
3705         * config/i386/sse.md
3706         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
3707         (define_insn
3708         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
3709         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
3710         (define_insn
3711         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
3712         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
3713         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
3714         (define_expand "avx512vl_pshufd_mask"): New.
3715         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
3716
3717 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3718             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3719             Anna Tikhonova  <anna.tikhonova@intel.com>
3720             Ilya Tocar  <ilya.tocar@intel.com>
3721             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3722             Ilya Verbin  <ilya.verbin@intel.com>
3723             Kirill Yukhin  <kirill.yukhin@intel.com>
3724             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3725
3726         * config/i386/i386.c
3727         (CODE_FOR_avx2_extracti128): Rename to ...
3728         (CODE_FOR_avx_vextractf128v4di): this.
3729         (CODE_FOR_avx2_inserti128): Rename to ...
3730         (CODE_FOR_avx_vinsertf128v4di): this.
3731         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
3732         CODE_FOR_avx_vextractf128v4di.
3733         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
3734         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
3735         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
3736         CODE_FOR_avx512vl_vinsertv8si.
3737         * config/i386/sse.md
3738         (define_expand
3739         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
3740         AVX512_VEC mode iterator.
3741         (define_insn
3742         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
3743         Ditto.
3744         (define_expand
3745         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
3746         AVX512_VEC_2 mode iterator.
3747         (define_insn "vec_set_lo_<mode><mask_name>"): New.
3748         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3749         (define_expand "avx512vl_vinsert<mode>"): Ditto.
3750         (define_insn "avx2_vec_set_lo_v4di"): Delete.
3751         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
3752         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
3753         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3754         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
3755         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3756         (define_expand "avx2_extracti128"): Delete.
3757         (define_expand "avx2_inserti128"): Ditto.
3758
3759 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3760             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3761             Anna Tikhonova  <anna.tikhonova@intel.com>
3762             Ilya Tocar  <ilya.tocar@intel.com>
3763             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3764             Ilya Verbin  <ilya.verbin@intel.com>
3765             Kirill Yukhin  <kirill.yukhin@intel.com>
3766             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3767
3768         * config/i386/sse.md
3769         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
3770         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
3771         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
3772         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
3773         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
3774         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
3775         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
3776         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
3777         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
3778         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
3779         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
3780         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
3781         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
3782
3783 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3784
3785         PR rtl-optimization/63210
3786         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
3787         HARD_REGNO is not available for CONFLICT_A.
3788
3789 2014-09-23  Andi Kleen  <ak@linux.intel.com>
3790
3791         * cgraph.h (symtab_node): Add no_reorder attribute.
3792         (symbol_table::output_asm_statements): Remove.
3793         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
3794         (cgraph_node::create_version_clone): Dito.
3795         (symbol_table::output_asm_statements): Remove.
3796         * trans-mem.c (ipa_tm_create_version_alias): Dito.
3797         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
3798         (output_in_order): Add no_reorder flag. Only handle no_reorder
3799         nodes when set.
3800         (symbol_table::compile): Add separate pass for no_reorder nodes.
3801         (process_common_attributes): Set no_reorder flag in symtab node.
3802         Add node argument.
3803         (process_function_and_variable_attributes): Pass symtab nodes to
3804         process_common_attributes.
3805         * doc/extend.texi (no_reorder): Document no_reorder attribute.
3806         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
3807         (lto_output_varpool_node): Dito.
3808         (input_overwrite_node): Dito.
3809         (input_varpool_node): Dito.
3810         * varpool.c (varpool_node::add): Set no_reorder attribute.
3811         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
3812         (symbol_table::output_variables): Dito.
3813         * symtab.c (symtab_node::dump_base): Print no_reorder.
3814
3815 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
3816
3817         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
3818         be INVALID_REGNUM.
3819
3820 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
3821
3822         * configure: Regenerate.
3823
3824 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
3825
3826         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
3827         when result_mode == shift_mode.
3828
3829 2014-09-23  Kostya Serebryany  <kcc@google.com>
3830
3831         Update to match the changed asan API.
3832         * asan.c (asan_global_struct): Update the __asan_global definition
3833         to match the new API.
3834         (asan_add_global): Ditto.
3835         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
3836         to __asan_init_v4.
3837
3838 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3839
3840         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
3841         refine the constraints used on 32/64-bit floating point moves.
3842         (f32_av): Likewise.
3843         (f64_vsx): Likewise.
3844         (f64_dm): Likewise.
3845         (f64_av): Likewise.
3846         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
3847         (BOOL_REGS_OP1): Likewise.
3848         (BOOL_REGS_OP2): Likewise.
3849         (BOOL_REGS_UNARY): Likewise.
3850         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
3851         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
3852         for moves involving VSX registers.  Do not use constraints that
3853         target VSX registers for decimal types.
3854         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
3855         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
3856
3857 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
3858
3859         * tree.h (int_bit_position): Turn into inline function;
3860         implement using wide int.
3861         * tree.c (int_bit_position): Remove.
3862
3863 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
3864
3865         PR bootstrap/63280
3866         * target-globals.c (target_globals::~target_globals): Fix location
3867         of ira_int destruction.
3868
3869 2014-09-23  Renlin Li  <renlin.li@arm.com>
3870
3871         * config/aarch64/aarch64.md (return): New.
3872         (simple_return): Likewise.
3873         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
3874         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
3875
3876 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
3877
3878         * common/config/aarch64/aarch64-common.c:
3879         (default_options aarch_option_optimization_table):
3880         Default to -fsched-pressure.
3881
3882 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
3883
3884         * cfgcleanup.c (try_optimize_cfg): Do not remove label
3885         with LABEL_PRESERVE_P flag set.
3886
3887 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3888             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3889             Anna Tikhonova  <anna.tikhonova@intel.com>
3890             Ilya Tocar  <ilya.tocar@intel.com>
3891             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3892             Ilya Verbin  <ilya.verbin@intel.com>
3893             Kirill Yukhin  <kirill.yukhin@intel.com>
3894             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3895
3896         * config/i386/sse.md
3897         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
3898         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
3899         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
3900         (define_insn "sse2_shufpd_v2df_mask"): New.
3901
3902 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3903             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3904             Anna Tikhonova  <anna.tikhonova@intel.com>
3905             Ilya Tocar  <ilya.tocar@intel.com>
3906             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3907             Ilya Verbin  <ilya.verbin@intel.com>
3908             Kirill Yukhin  <kirill.yukhin@intel.com>
3909             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3910
3911         * config/i386/sse.md
3912         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
3913         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
3914         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
3915         (define_insn "sse_shufps_v4sf_mask"): New.
3916
3917 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3918             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3919             Anna Tikhonova  <anna.tikhonova@intel.com>
3920             Ilya Tocar  <ilya.tocar@intel.com>
3921             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3922             Ilya Verbin  <ilya.verbin@intel.com>
3923             Kirill Yukhin  <kirill.yukhin@intel.com>
3924             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3925
3926         * config/i386/sse.md
3927         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
3928         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
3929         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
3930         (define_insn "unpcklps128_mask"): New.
3931
3932 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3933             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3934             Anna Tikhonova  <anna.tikhonova@intel.com>
3935             Ilya Tocar  <ilya.tocar@intel.com>
3936             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3937             Ilya Verbin  <ilya.verbin@intel.com>
3938             Kirill Yukhin  <kirill.yukhin@intel.com>
3939             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3940
3941         * config/i386/sse.md
3942         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
3943         (define_insn "avx512vl_unpckhpd128_mask"): New.
3944         (define_expand "avx_movddup256<mask_name>"): Add masking.
3945         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
3946         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
3947         (define_insn "avx512vl_unpcklpd128_mask"): New.
3948
3949 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
3950
3951         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3952         * doc/tm.texi: Regenerate.
3953         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
3954         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3955         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3956         Remove.
3957         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3958         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3959         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3960         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3961         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3962         Remove.
3963         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3964         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3965         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3966         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3967         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3968         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3969         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3970         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3971         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3972         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3973         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3974         Remove.
3975
3976 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
3977
3978         * tree-ssa-ccp.c (prop_value_d): Rename to ...
3979         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
3980         * ipa-prop.c (struct type_change_info): Rename to ...
3981         (prop_type_change_info): ... this; update uses.
3982         * ggc-page.c (globals): Rename to ...
3983         (static struct ggc_globals): ... this; update uses.
3984         * tree-ssa-loop-im.c (mem_ref): Rename to ...
3985         (im_mem_ref): ... this; update uses.
3986         * ggc-common.c (loc_descriptor): Rename to ...
3987         (ggc_loc_descriptor): ... this; update uses.
3988         * lra-eliminations.c (elim_table): Rename to ...
3989         (lra_elim_table): ... this; update uses.
3990         * bitmap.c (output_info): Rename to ...
3991         (bitmap_output_info): ... this; update uses.
3992         * gcse.c (expr): Rename to ...
3993         (gcse_expr) ... this; update uses.
3994         (occr): Rename to ...
3995         (gcse_occr): .. this; update uses.
3996         * tree-ssa-copy.c (prop_value_d): Rename to ...
3997         (prop_value_t): ... this.
3998         * predict.c (block_info_def): Rename to ...
3999         (block_info): ... this; update uses.
4000         (edge_info_def): Rename to ...
4001         (edge_info): ... this; update uses.
4002         * profile.c (bb_info): Rename to ...
4003         (bb_profile_info): ... this; update uses.
4004         * alloc-pool.c (output_info): Rename to ...
4005         (pool_output_info): ... this; update uses.
4006         * ipa-cp.c (topo_info): Rename to ..
4007         (ipa_topo_info): ... this; update uses.
4008         * tree-nrv.c (nrv_data): Rename to ...
4009         (nrv_data_t): ... this; update uses.
4010         * ipa-split.c (bb_info): Rename to ...
4011         (split_bb_info): ... this one.
4012         * profile.h (edge_info): Rename to ...
4013         (edge_profile_info): ... this one; update uses.
4014         * dse.c (bb_info): Rename to ...
4015         (dse_bb_info): ... this one; update uses.
4016         * cprop.c (occr): Rename to ...
4017         (cprop_occr): ... this one; update uses.
4018         (expr): Rename to ...
4019         (cprop_expr): ... this one; update uses.
4020
4021 2014-09-22  Jason Merrill  <jason@redhat.com>
4022
4023         * Makefile.in (check-parallel-%): Add @.
4024
4025 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4026
4027         * config/aarch64/geniterators.sh: New.
4028         * config/aarch64/iterators.md (VDQF_DF): New.
4029         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4030         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4031
4032 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4033
4034         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4035         -lnosys when -msim absent.
4036
4037 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4038
4039         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4040
4041 2014-09-22  Richard Biener  <rguenther@suse.de>
4042
4043         * gimplify.c (gimplify_init_constructor): Do not leave
4044         non-GIMPLE vector constructors around.
4045         * tree-cfg.c (verify_gimple_assign_single): Verify that
4046         CONSTRUCTORs have gimple elements.
4047
4048 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4049
4050         PR debug/63328
4051         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4052         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4053         instead of a normal gimple assignment stmt.
4054
4055 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4056
4057         * config/bfin/bfin.md: Fix use of constraints in define_split.
4058
4059 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4060
4061         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4062         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4063
4064 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4065
4066         * hard-reg-set.h: Include hash-table.h.
4067         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4068         field.
4069         * target-globals.c (target_globals::~target_globals): Call
4070         hard_regs->finalize.
4071         * rtl.h (subreg_shape): New structure.
4072         (shape_of_subreg): New function.
4073         (simplifiable_subregs): Declare.
4074         * reginfo.c (simplifiable_subreg): New structure.
4075         (simplifiable_subregs_hasher): Likewise.
4076         (simplifiable_subregs): New function.
4077         (invalid_mode_changes): Delete.
4078         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4079         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4080         Record valid mode changes in valid_mode_changes.
4081         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4082         Update calls to record_subregs_of_mode.
4083         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4084         handling.  Initialize new variables.  Update call to
4085         find_subregs_of_mode.
4086         (invalid_mode_change_p): Check new variables instead of
4087         invalid_mode_changes.
4088         (finish_subregs_of_mode): Finalize new variables instead of
4089         invalid_mode_changes.
4090         (target_hard_regs::finalize): New function.
4091         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4092         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4093
4094 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4095
4096         * combine.c (subst): Use simplify_subreg_regno rather than
4097         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4098
4099 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4100
4101         * rtl.h (subreg_info): Expand commentary
4102         * rtlanal.c (subreg_get_info): Likewise.
4103
4104 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4105
4106         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4107         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4108         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4109
4110 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4111
4112         * config/arm/arm.c: #include "tm-constrs.h"
4113         (thumb1_size_rtx_costs): Adjust rtx costs.
4114
4115 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4116
4117         * configure.ac (target_header_dir): Move block defining
4118         this to before the block setting inhibit_libc.
4119         (inhibit_libc): When considering $with_headers, just
4120         check it it's explicitly "no".  If not, also check if
4121         $target_header_dir/stdio.h is present.  If not, set
4122         inhibit_libc=true.
4123         * configure: Regenerate.
4124
4125 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4126
4127         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4128
4129 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4130
4131         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4132         insn for divides by integer powers of two.
4133         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4134         (mod<mode>3): Fix formatting.
4135         (three anonymous define_insn and two define_split): Delete.
4136
4137 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4138
4139         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4140         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4141         (floatdisf2_internal2): Ditto.
4142         (ashrdi3_no_power): Ditto.  Fix formatting.
4143
4144 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4145
4146         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4147         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4148         Tidy.
4149
4150 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4151
4152         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4153         constant, use addsi3 directly.
4154         (three anonymous define_insn, two define_split): Delete.
4155         (sub<mode>3): Move.  Do not allow constant second operand.
4156         Generate different insn for constant first operand.
4157         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4158         (subf<mode>3_imm): New.
4159         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4160         (*plus_ltu<mode>): Only handle registers.
4161         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4162         (*plus_gtu<mode>): Only handle registers.
4163         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4164
4165 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4166
4167         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4168         (iorxor): New code_attr.
4169         (IORXOR): New code_attr.
4170         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4171         (ior<mode>3, xor<mode>3): Delete.
4172         (<iorxor><mode>3): New.
4173         (splitter for "big" integer ior, xor): New.
4174         (*bool<mode>3): Move.  Also handle AND.
4175         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4176         (splitter for "big" integer ior, xor): Delete.
4177
4178 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4179
4180         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4181         (two anonymous define_insn and two define_split): Delete.
4182         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4183
4184 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4185
4186         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4187         (two anonymous define_insn and two define_split): Delete.
4188         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4189
4190 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4191
4192         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4193
4194 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4195
4196         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4197         (input_operand): Do not allow ca_operand.
4198         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4199         carry bit, allow SImode and Pmode.
4200         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4201
4202 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4203
4204         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4205         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4206         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4207         (*call_rex64_ms_sysv): Remove.
4208         (*call_value_rex64_ms_sysv): Ditto.
4209         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4210
4211 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4212
4213         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4214         operand 3 to "CnL".
4215
4216 2014-09-20  Andreas Schwab  <schwab@suse.de>
4217
4218         * config/ia64/ia64.md: Remove constraints from define_split
4219         patterns.
4220
4221 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4222
4223         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4224         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4225         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4226         (get_dynamic_type): Remove.
4227         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4228         (clear_speculation): Bring to ipa-deivrt.h
4229         (get_class_context): Rename to ...
4230         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4231         (contains_type_p): Update.
4232         (get_dynamic_type): Rename to ...
4233         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4234         (possible_polymorphic_call_targets): UPdate.
4235         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4236         * ipa-prop.c (ipa_analyze_call_uses): Update.
4237
4238 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4239
4240         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4241         privatize dynamic TLS variables.
4242
4243 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4244
4245         * diagnostic.c (warning_n): New function.
4246         * diagnostic-core.h (warning_n): Declare.
4247         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4248         output dynamic counts when available.
4249
4250 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4251
4252         PR tree-optimization/63255
4253         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4254         issue in setting body_removed flag.
4255
4256 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4257
4258         PR c++/61825
4259         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4260         that visibility change is possible
4261         (handle_weakref_attribute): Likewise.
4262         * cgraph.h (symtab_node): Add method get_create and
4263         field refuse_visibility_changes.
4264         (symtab_node::get_create): New method.
4265         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4266         * varasm.c (mark_weak): Verify that visibility change is
4267         possible.
4268
4269 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4270
4271         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4272         for base_reg_operand to be common between LO_SUM and PLUS.
4273         (fusion_gpr_mem_combo): New predicate to match a fused address
4274         that combines the addis and memory offset address.
4275
4276         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4277         calling signature.
4278         (emit_fusion_gpr_load): Likewise.
4279
4280         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4281         signature to pass each argument separately, rather than
4282         using an operands array.  Rewrite the insns found by peephole2 to
4283         be a single insn, rather than hoping the insns will still be
4284         together when the peephole pass is done.  Drop being called via a
4285         normal peephole.
4286         (emit_fusion_gpr_load): Change calling signature to be called from
4287         the fusion_gpr_load_<mode> insns with a combined memory address
4288         instead of the peephole pass passing the addis and offset
4289         separately.
4290
4291         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4292         fusion.
4293         (power8 fusion peephole): Drop support for doing power8 via a
4294         normal peephole that was created by the peephole2 pass.
4295         (power8 fusion peephole2): Create a new insn with the fused
4296         address, so that the fused operation is kept together after
4297         register allocation is done.
4298         (fusion_gpr_load_<mode>): Likewise.
4299
4300 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4301
4302         PR lto/63286
4303         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4304
4305 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4306
4307         * recog.c (scratch_operand): Do not simply allow all hard registers:
4308         only allow those that are allocatable.
4309
4310 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4311
4312         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4313         comments and fix spacing to conform to coding style.
4314
4315 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4316
4317         * genrecog.c (validate_pattern): Allow empty constraints in
4318         a match_scratch.
4319
4320 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4321
4322         * dwarf2out.c (decl_ultimate_origin): Update comment.
4323         * tree.c (block_ultimate_origin): Same.
4324
4325 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4326
4327         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4328         Update GCC version name to GCC 5.
4329         (rs6000_function_arg_boundary): Likewise.
4330         (rs6000_function_arg): Likewise.
4331
4332 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4333
4334         * config/sh/sh.md: Fix use of constraints in define_split.
4335
4336 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4337
4338         PR ipa/61998
4339         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4340
4341 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4342
4343         * doc/md.texi (Modifiers): Consistently use "read/write"
4344         nomenclature rather than "input/output".
4345         * genrecog.c (constraints_supported_in_insn_p): New.
4346         (validate_pattern): If needed, also check constraints on
4347         MATCH_SCRATCH operands.
4348         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4349         operands with no '=' or '+' modifier.
4350
4351 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4352
4353         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4354         scratch register as written.
4355
4356 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4357
4358         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4359         assignment.
4360
4361 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4362
4363         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4364         expanders.
4365
4366 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4367
4368         PR target/62662
4369         * config/s390/s390.c (s390_emit_epilogue): When doing the return
4370         address load optimization force s390_optimize_prologue to leave it
4371         that way.  Only do the optimization if we already decided to push
4372         r14 into a stack slot.
4373
4374 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
4375
4376         * asan.c (build_check_stmt): Alignment arg was added.
4377         (asan_expand_check_ifn): Optimization for alignment >= 8.
4378
4379 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4380
4381         * config/i386/vxworksae.h: Remove obsolete definitions.
4382         (STACK_CHECK_PROTECT): Define.
4383         * config/i386/vx-common.h: Remove.  Merge contents within
4384         config/i386/vxworks.h.
4385         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4386         i386/vx-common.h.
4387
4388 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4389
4390         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4391         * config/rs6000/t-vxworksmils: New file.
4392         * config/rs6000/vxworksmils.h: New file.
4393
4394 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4395
4396         * varasm.c (default_section_type_flags): Flag .persistent.bss
4397         sections as SECTION_BSS.
4398
4399 2014-09-19  Nick Clifton  <nickc@redhat.com>
4400
4401         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
4402         pop'ed registers so that DCE does not eliminate them.
4403
4404 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
4405
4406         PR lto/63298
4407         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
4408
4409 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
4410
4411         * system.h (LIBGCC2_TF_CEXT): Poison.
4412         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
4413         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
4414         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
4415         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
4416         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
4417         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
4418         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
4419         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
4420         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
4421
4422 2014-09-19  Kito Cheng  <kito@0xlab.org>
4423
4424         * except.h: Fix header guard.
4425         * addresses.h: Add missing header guard.
4426         * cfghooks.h: Likewise.
4427         * collect-utils.h: Likewise.
4428         * collect2-aix.h: Likewise.
4429         * conditions.h: Likewise.
4430         * cselib.h: Likewise.
4431         * dwarf2asm.h: Likewise.
4432         * graphds.h: Likewise.
4433         * graphite-scop-detection.h: Likewise.
4434         * gsyms.h: Likewise.
4435         * hw-doloop.h: Likewise.
4436         * incpath.h: Likewise.
4437         * ipa-inline.h: Likewise.
4438         * ipa-ref.h: Likewise.
4439         * ira-int.h: Likewise.
4440         * ira.h: Likewise.
4441         * lra-int.h: Likewise.
4442         * lra.h: Likewise.
4443         * lto-section-names.h: Likewise.
4444         * read-md.h: Likewise.
4445         * reload.h: Likewise.
4446         * rtl-error.h: Likewise.
4447         * sdbout.h: Likewise.
4448         * targhooks.h: Likewise.
4449         * tree-affine.h: Likewise.
4450         * xcoff.h: Likewise.
4451         * xcoffout.h: Likewise.
4452
4453 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4454
4455         PR debug/63285
4456         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
4457         if advance != 0.
4458
4459 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4460
4461         PR target/61360
4462         * lra.c (lra): Call recog_init.
4463
4464 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR c++/62017
4467         * asan.c (transform_statements): Don't instrument clobber statements.
4468
4469 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4470
4471         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
4472         to neon_load1_1reg<q>.
4473
4474 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
4475
4476         PR debug/63284
4477         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
4478         if there are only debug stmts after the noreturn call, instead
4479         remove the debug stmts.
4480
4481 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
4482
4483         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
4484         (odr_types_equivalent_p): Use pair hash.
4485         (odr_subtypes_equivalent_p): Likewise, do structural compare
4486         on ODR types that may be mismatched.
4487         (warn_odr): Support warning when only one field is given.
4488         (odr_types_equivalent_p): Strenghten comparsions made;
4489         support VOIDtype.
4490         (add_type_duplicate): Update VISITED hash set.
4491
4492 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4493
4494         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
4495         Enable selection of 'posix' or no thread model.
4496
4497 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
4498
4499         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
4500         when architecture is older than ARMv7.
4501
4502 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
4503
4504         PR target/61853
4505         * config/pa/pa.c (pa_function_value): Directly handle aggregates
4506         that fit exactly in a word or double word.
4507
4508 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
4509
4510         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
4511         zmm/k regs support.
4512
4513 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4515             Anna Tikhonova  <anna.tikhonova@intel.com>
4516             Ilya Tocar  <ilya.tocar@intel.com>
4517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4518             Ilya Verbin  <ilya.verbin@intel.com>
4519             Kirill Yukhin  <kirill.yukhin@intel.com>
4520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4521
4522         * config/i386/i386.c
4523         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
4524         * config/i386/sse.md
4525         (define_mode_iterator VI48F_256): New.
4526         (define_mode_attr extract_type): Ditto.
4527         (define_mode_attr extract_suf): Ditto.
4528         (define_mode_iterator AVX512_VEC): Ditto.
4529         (define_expand
4530         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
4531         AVX512_VEC.
4532         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
4533         (define_insn
4534         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
4535         Ditto.
4536         (define_mode_attr extract_type_2): Ditto.
4537         (define_mode_attr extract_suf_2): Ditto.
4538         (define_mode_iterator AVX512_VEC_2): Ditto.
4539         (define_expand
4540         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
4541         AVX512_VEC_2 mode iterator.
4542         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4543         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
4544         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4545         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4546         (define_split for V16FI mode): Ditto.
4547         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4548         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4549         (define_split for VI8F_256 mode): Ditto.
4550         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4551         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4552         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4553         (define_split for VI4F_256 mode): Ditto.
4554         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
4555         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4556         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4557         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
4558         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
4559         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
4560         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
4561         Update `type' attribute, remove explicit `memory' attribute calculation.
4562
4563 2014-09-16  Kito Cheng  <kito@0xlab.org>
4564
4565         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
4566         ira_spilled_reg_stack_slots_num if using lra.
4567         (do_reload): Remove release ira_spilled_reg_stack_slots part.
4568         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
4569         make sure not using lra.
4570         (ira_reuse_stack_slot): Likewise.
4571         (ira_mark_new_stack_slot): Likewise.
4572
4573 2014-09-15  Andi Kleen  <ak@linux.intel.com>
4574
4575         * function.c (allocate_struct_function): Force
4576         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
4577         profiling is disabled.
4578
4579 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4580
4581         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
4582         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
4583         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
4584         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
4585         macro with statically checked member functions.
4586         * rtl.h (rtx_insn::deleted): New method.
4587         (rtx_insn::set_deleted): Likewise.
4588         (rtx_insn::set_undeleted): Likewise.
4589         (INSN_DELETED_P): Remove.
4590
4591 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4592
4593         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
4594         result of emit_jump_insn_before to a new variable.
4595         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
4596         (mark_jump_label_1): Likewise.
4597         (mark_jump_label_asm): Likewise.
4598         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
4599         * rtl.h (mark_jump_label): Adjust.
4600
4601 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
4602
4603         * Makefile.in (dg_target_exps): Remove.
4604         (check_gcc_parallelize): Change to just an upper bound number.
4605         (check-%-subtargets): Always print the non-parallelized goals.
4606         (check_p_vars, check_p_comma, check_p_subwork): Remove.
4607         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
4608         check_p_numbers3, check_p_numbers4, check_p_numbers5,
4609         check_p_numbers6): New variables.
4610         (check_p_numbers): Set to sequence from 1 to 9999.
4611         (check_p_subdirs): Set to sequence from 1 to minimum of
4612         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
4613         or 128.
4614         (check-%, check-parallel-%): Rewritten so that for parallelized
4615         testing each job runs all the *.exp files, with
4616         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
4617
4618 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4619
4620         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
4621         rtx to rtx_insn *.
4622         (arc_sets_cc_p): Likewise.
4623         * config/arc/arc.c (arc_print_operand): Use methods of
4624         "final_sequence" for clarity, and to enable strengthening of
4625         locals "jump" and "delay" from rtx to rtx_insn *.
4626         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
4627         rtx_insn *; use method of rtx_sequence for typesafety.
4628         (arc_get_insn_variants): Use insn method of rtx_sequence for
4629         typesafety.
4630         (arc_pad_return): Likewise.
4631         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
4632         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
4633         dyn_cast to rtx_sequence *, using insn method for typesafety.
4634         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
4635         rtx_sequence * and use insn method when invoking get_attr_length.
4636         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
4637         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
4638         rtx_sequence *, introducing a local "seq", using its insn method
4639         from typesafety and clarity.
4640         (add_sched_insns_for_speculation): Strengthen local "next" from
4641         rtx to rtx_insn *.
4642         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
4643         (predicate_insn): Likewise.
4644         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
4645         second param.
4646         * config/cris/cris.c (cris_notice_update_cc): Likewise.
4647         * config/epiphany/epiphany-protos.h
4648         (extern void epiphany_insert_mode_switch_use): Likewise for param
4649         "insn".
4650         (get_attr_sched_use_fpu): Likewise for param.
4651         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
4652         Likewise for param "insn".
4653         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
4654         param "insn" of "target_insert_mode_switch_use" callback.
4655         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
4656         (frv_issues_to_branch_unit_p): Likewise.
4657         (frv_pack_insn_p): Likewise.
4658         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
4659         const rtx * (i.e. mutable rtx_def * const *) to
4660         rtx_insn * const *.
4661         * config/i386/i386-protos.h (standard_sse_constant_opcode):
4662         Strengthen first param from rtx to rtx_insn *.
4663         (output_fix_trunc): Likewise.
4664         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
4665         (output_fix_trunc): Likewise.
4666         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
4667         local "insn".
4668         (min_insn_size): Likewise for param "insn".
4669         (get_mem_group): Likewise.
4670         (is_cmp): Likewise.
4671         (get_insn_path): Likewise.
4672         (get_insn_group): Likewise.
4673         (count_num_restricted): Likewise.
4674         (fits_dispatch_window): Likewise.
4675         (add_insn_window): Likewise.
4676         (add_to_dispatch_window): Likewise.
4677         (debug_insn_dispatch_info_file): Likewise.
4678         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
4679         first param.
4680         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
4681         "cmp" and local "prev".
4682         (m32c_output_compare): Likewise for param "insn".
4683         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
4684         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
4685         (define_predicate "large_insn_p"): Likewise.
4686         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
4687         param from rtx to rtx_insn *.
4688         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
4689         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
4690         (m68k_sched_attr_size): Likewise.
4691         (sched_get_opxy_mem_type): Likewise for param "insn".
4692         (m68k_sched_attr_op_mem): Likewise.
4693         (sched_mem_operand_p): Likewise.
4694         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
4695         * config/mep/mep.c (mep_multi_slot): Likewise.
4696         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
4697         first param.
4698         (mips_sync_loop_insns): Likewise.
4699         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
4700         method of "final_sequence" for typesafety.
4701         (mips_process_sync_loop): Strengthen param "insn" from rtx to
4702         rtx_insn *.
4703         (mips_output_sync_loop): Likewise.
4704         (mips_sync_loop_insns): Likewise.
4705         (mips_74k_agen_init): Likewise.
4706         (mips_sched_init): Use NULL rather than NULL_RTX when working with
4707         insns.
4708         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
4709         Strengthen param "insn" from rtx to rtx_insn *.
4710         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
4711         local "insn".
4712         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
4713         param.
4714         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
4715         "insn".  Use method of rtx_sequence for typesafety.
4716         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
4717         rtx_insn *.
4718         (branch_needs_nop_p): Likewise.
4719         (use_skip_p): Likewise.
4720         (pa_insn_refs_are_delayed): Likewise.
4721         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
4722         for locals "insn", "ninsn".
4723         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
4724         "insn".
4725         (is_cracked_insn): Likewise.
4726         (is_branch_slot_insn): Likewise.
4727         (is_nonpipeline_insn): Likewise.
4728         (insn_terminates_group_p): Likewise.
4729         (insn_must_be_first_in_group): Likewise.
4730         (insn_must_be_last_in_group): Likewise.
4731         (force_new_group): Likewise for param "next_insn".
4732         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
4733         "insn".
4734         (s390_sched_score): Likewise.
4735         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
4736         (rtx sfunc_uses_reg): Likewise for sole param.
4737         * config/sh/sh.c (sh_print_operand): Use insn method of
4738         final_sequence for typesafety.
4739         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
4740         Use insn method of final_sequence for typesafety.
4741         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
4742         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
4743         for param.
4744         (eligible_for_return_delay): Likewise.
4745         (eligible_for_sibcall_delay): Likewise.
4746         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
4747         (eligible_for_return_delay): Likewise.
4748         (eligible_for_sibcall_delay): Likewise.
4749         * config/stormy16/stormy16-protos.h
4750         (xstormy16_output_cbranch_hi): Likewise for final param.
4751         (xstormy16_output_cbranch_si): Likewise.
4752         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
4753         (xstormy16_output_cbranch_si): Likewise.
4754         * config/v850/v850-protos.h (notice_update_cc): Likewise.
4755         * config/v850/v850.c (notice_update_cc): Likewise.
4756
4757         * final.c (get_attr_length_1): Strengthen param "insn" and param
4758         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
4759         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
4760         (get_attr_min_length): Likewise.
4761         (shorten_branches): Likewise for signature of locals "length_fun"
4762         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
4763         from a checked cast and use its methods for clarity and to enable
4764         strengthening local "inner_insn" from rtx to rtx_insn *.
4765         * genattr.c (gen_attr): When writing out the prototypes of the
4766         various generated "get_attr_" functions, strengthen the params of
4767         the non-const functions from rtx to rtx_insn *.
4768         Similarly, strengthen the params of insn_default_length,
4769         insn_min_length, insn_variable_length_p, insn_current_length.
4770         (main): Similarly, strengthen the param of num_delay_slots,
4771         internal_dfa_insn_code, insn_default_latency, bypass_p,
4772         insn_latency, min_issue_delay, print_reservation,
4773         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
4774         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
4775         to hook_int_rtx_insn_unreachable.
4776         * genattrtab.c (write_attr_get): When writing out the generated
4777         "get_attr_" functions, strengthen the param "insn" from rtx to
4778         rtx_insn *, eliminating a checked cast.
4779         (make_automaton_attrs): When writing out prototypes of
4780         "internal_dfa_insn_code_", "insn_default_latency_" functions
4781         and the "internal_dfa_insn_code" and "insn_default_latency"
4782         callbacks, strengthen their params from rtx to rtx_insn *
4783         * genautomata.c (output_internal_insn_code_evaluation): When
4784         writing out code, add a checked cast from rtx to rtx_insn * when
4785         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
4786         (output_dfa_insn_code_func): Strengthen param of generated
4787         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
4788         (output_trans_func): Likewise for generated function
4789         "state_transition".
4790         (output_internal_insn_latency_func): When writing out generated
4791         function "internal_insn_latency", rename params from "insn" and
4792         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
4793         locals "insn" and "insn2" as rtx_insn * with checked casts once
4794         we've proven that we're not dealing with const0_rtx.
4795         (output_insn_latency_func):  Strengthen param of generated
4796         function "insn_latency" from rtx to rtx_insn *.
4797         (output_print_reservation_func): Likewise for generated function
4798         "print_reservation".
4799         (output_insn_has_dfa_reservation_p): Likewise for generated
4800         function "insn_has_dfa_reservation_p".
4801         * hooks.c (hook_int_rtx_unreachable): Rename to...
4802         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
4803         from rtx to rtx_insn *.
4804         * hooks.h (hook_int_rtx_unreachable): Likewise.
4805         (extern int hook_int_rtx_insn_unreachable): Likewise.
4806         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
4807         (get_attr_min_length): Likewise.
4808         * recog.c (get_enabled_alternatives): Likewise.
4809         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
4810         * reorg.c (find_end_label): Introduce local rtx "pat" and
4811         strengthen local "insn" from rtx to rtx_insn *.
4812         (redundant_insn): Use insn method of "seq" rather than element for
4813         typesafety; strengthen local "control" from rtx to rtx_insn *.
4814         * resource.c (mark_referenced_resources): Add checked cast to
4815         rtx_insn * within INSN/JUMP_INSN case.
4816         (mark_set_resources): Likewise.
4817         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
4818         rtx to rtx_insn *.
4819
4820 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4821
4822         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
4823         param "label" from rtx to rtx_insn *.
4824         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
4825         and local "op".
4826         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
4827         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
4828         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4829         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4830         * final.c (default_label_align_after_barrier_max_skip): Strengthen
4831         param from rtx to rtx_insn *.
4832         (default_loop_align_max_skip): Likewise.
4833         (default_label_align_max_skip): Likewise.
4834         (default_jump_align_max_skip): Likewise.
4835         * target.def (label_align_after_barrier_max_skip): Likewise.
4836         (loop_align_max_skip): Likewise.
4837         (label_align_max_skip): Likewise.
4838         (jump_align_max_skip): Likewise.
4839         * targhooks.h (default_label_align_after_barrier_max_skip):
4840         Likewise.
4841         (default_loop_align_max_skip): Likewise.
4842         (default_label_align_max_skip): Likewise.
4843         (default_jump_align_max_skip): Likewise.
4844
4845 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4846
4847         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
4848         from const_rtx to const rtx_insn *.  Update union members from rtx
4849         to rtx_insn *.
4850         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
4851         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
4852         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
4853         strengthen both params from const_rtx to const rtx_insn *.
4854         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
4855         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
4856         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
4857         rtx_insn *.
4858         * target.def (can_follow_jump): Strengthen both params from
4859         const_rtx to const rtx_insn *, and update default implementation
4860         from hook_bool_const_rtx_const_rtx_true to
4861         hook_bool_const_rtx_insn_const_rtx_insn_true.
4862
4863 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4864
4865         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
4866         "insn" from rtx to rtx_insn *.
4867         * sched-int.h (deps_start_bb): Likewise for 2nd param.
4868
4869 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4870             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4871             Anna Tikhonova  <anna.tikhonova@intel.com>
4872             Ilya Tocar  <ilya.tocar@intel.com>
4873             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4874             Ilya Verbin  <ilya.verbin@intel.com>
4875             Kirill Yukhin  <kirill.yukhin@intel.com>
4876             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4877
4878         * config/i386/sse.md
4879         (define_insn "vcvtph2ps<mask_name>"): Add masking.
4880         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
4881         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
4882         (define_expand "vcvtps2ph_mask"): New.
4883         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
4884         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
4885         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
4886
4887 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4888             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4889             Anna Tikhonova  <anna.tikhonova@intel.com>
4890             Ilya Tocar  <ilya.tocar@intel.com>
4891             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4892             Ilya Verbin  <ilya.verbin@intel.com>
4893             Kirill Yukhin  <kirill.yukhin@intel.com>
4894             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4895
4896         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
4897         New.
4898         (define_mode_iterator VI24_AVX512BW_1): Ditto.
4899         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
4900         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
4901         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
4902         also for TARGET_AVX512VL.
4903         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
4904
4905 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
4906
4907         * doc/install.texi (Options specification): add
4908         --disable-libsanitizer item.
4909
4910 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
4911             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4912
4913         PR target/61407
4914         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
4915         and above.
4916         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
4917         kernel version check to avoid incrementing it after every major OS X
4918         release.
4919         (darwin_default_min_version): Avoid static memory buffer.
4920
4921 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
4922
4923         * tree.c (need_assembler_name_p): Store C++ type mangling only
4924         for aggregates.
4925
4926 2014-09-13  Marek Polacek  <polacek@redhat.com>
4927
4928         * tree.c (protected_set_expr_location): Don't check whether T is
4929         non-null here.
4930
4931 2014-09-12  DJ Delorie  <dj@redhat.com>
4932
4933         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
4934         (extend_and_shift1_hipsi2): Likewise.
4935         (extend_and_shift2_hipsi2): Likewise.
4936
4937 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
4938
4939         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
4940         with NULL when dealing with an insn.
4941         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
4942         from rtx to rtx_insn *.
4943         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
4944         const_rtx to const rtx_insn *.
4945         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
4946
4947 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
4948
4949         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
4950         assert.
4951
4952 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
4953
4954         * target.def (libgcc_floating_mode_supported_p): New hook.
4955         * targhooks.c (default_libgcc_floating_mode_supported_p): New
4956         function.
4957         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
4958         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
4959         (LIBGCC2_HAS_TF_MODE): Remove.
4960         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
4961         * doc/tm.texi: Regenerate.
4962         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
4963         machine mode.
4964         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
4965         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
4966         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
4967         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
4968         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4969         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
4970         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
4971         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
4972         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
4973         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
4974         function.
4975         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
4976         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4977         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4978         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4979         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4980         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4981         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4982         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
4983         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
4984         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
4985         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4986         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
4987         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
4988         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
4989         Remove.
4990         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
4991         New macro.
4992         (ia64_libgcc_floating_mode_supported_p): New function.
4993         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
4994         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
4995         (IA64_NO_LIBGCC_TFMODE): Define.
4996         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
4997         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
4998         macro.
4999         (pdp11_scalar_mode_supported_p): New function.
5000         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5001         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5002
5003 2014-09-12  Richard Biener  <rguenther@suse.de>
5004
5005         PR middle-end/63237
5006         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5007
5008 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5009
5010         * tree.c (integer_each_onep): New function.
5011         * tree.h (integer_each_onep): Declare it.
5012         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5013         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5014         (X & 1) == 0 for vector and complex.
5015
5016 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5017
5018         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5019         for A57.
5020         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5021         cost to spilling from integer to FP registers.
5022
5023 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5024
5025         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5026         move handling.
5027         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5028         are now handled correctly.
5029
5030 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5031
5032         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5033         handling of CALLER_SAVE_REGS and POINTER_REGS.
5034
5035 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5036
5037         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5038         the number of hard registers.
5039
5040 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5041             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5042             Anna Tikhonova  <anna.tikhonova@intel.com>
5043             Ilya Tocar  <ilya.tocar@intel.com>
5044             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5045             Ilya Verbin  <ilya.verbin@intel.com>
5046             Kirill Yukhin  <kirill.yukhin@intel.com>
5047             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5048
5049         * config/i386/sse.md
5050         (define_mode_iterator VI48_AVX512VL): New.
5051         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5052         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5053         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5054         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5055         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5056         "avx512f_vternlog<mode>_mask" and update mode iterator.
5057         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5058         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5059         iterator.
5060         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5061         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5062         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5063         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5064         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5065         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5066
5067 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5068             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5069             Anna Tikhonova  <anna.tikhonova@intel.com>
5070             Ilya Tocar  <ilya.tocar@intel.com>
5071             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5072             Ilya Verbin  <ilya.verbin@intel.com>
5073             Kirill Yukhin  <kirill.yukhin@intel.com>
5074             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5075
5076         * config/i386/sse.md (VI128_256): Delete.
5077         (define_mode_iterator VI124_256): New.
5078         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5079         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5080         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5081         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5082         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5083         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5084         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5085         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5086         iterator.
5087         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5088         in presence of AVX-512.
5089
5090 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5091             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5092             Anna Tikhonova  <anna.tikhonova@intel.com>
5093             Ilya Tocar  <ilya.tocar@intel.com>
5094             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5095             Ilya Verbin  <ilya.verbin@intel.com>
5096             Kirill Yukhin  <kirill.yukhin@intel.com>
5097             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5098
5099         * config/i386/sse.md
5100         (define_expand "<avx512>_gathersi<mode>"): Rename from
5101         "avx512f_gathersi<mode>".
5102         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5103         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5104         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5105         "avx512f_gatherdi<mode>".
5106         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5107         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5108         wide versions.
5109         (define_expand "<avx512>_scattersi<mode>"): Rename from
5110         "avx512f_scattersi<mode>".
5111         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5112         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5113         "avx512f_scatterdi<mode>".
5114         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5115
5116 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5117
5118         * ira.h (ira_finish_once): Delete.
5119         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5120         (target_ira_int::free_ira_costs): Likewise.
5121         (target_ira_int::free_register_move_costs): Likewise.
5122         (ira_finish_costs_once): Delete.
5123         * ira.c (free_register_move_costs): Replace with...
5124         (target_ira_int::free_register_move_costs): ...this new function.
5125         (target_ira_int::~target_ira_int): Define.
5126         (ira_init): Call free_register_move_costs as a member function rather
5127         than a global function.
5128         (ira_finish_once): Delete.
5129         * ira-costs.c (free_ira_costs): Replace with...
5130         (target_ira_int::free_ira_costs): ...this new function.
5131         (ira_init_costs): Call free_ira_costs as a member function rather
5132         than a global function.
5133         (ira_finish_costs_once): Delete.
5134         * target-globals.c (target_globals::~target_globals): Call the
5135         target_ira_int destructor.
5136         * toplev.c: Include lra.h.
5137         (finalize): Call lra_finish_once rather than ira_finish_once.
5138
5139 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5140
5141         * common.opt (flto-odr-type-merging): New flag.
5142         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5143         (types_same_for_odr): Likewise.
5144         (odr_subtypes_equivalent_p): Likewise.
5145         (add_type_duplicate): Do not walk type variants.
5146         (register_odr_type): New function.
5147         * ipa-utils.h (register_odr_type): Declare.
5148         (odr_type_p): New function.
5149         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5150         TYPE_DECLs
5151         * doc/invoke.texi (-flto-odr-type-merging): Document.
5152         * tree.c (need_assembler_name_p): Compute ODR names when asked
5153         for it.
5154         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5155
5156 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5157
5158         PR target/63228
5159         * config/i386/i386.c (ix86_option_override_internal): Also turn
5160         off OPTION_MASK_ABI_X32 for -m16.
5161
5162 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5163
5164         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5165         GPR instead of P.
5166
5167 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5168
5169         PR target/58757
5170         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5171         Directly forward to __*_DENORM_MIN__.
5172
5173 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5174
5175         * rtl.h (LABEL_REF_LABEL): New macro.
5176
5177         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5178         of XEXP (, 0), where we know that we have a LABEL_REF.
5179         * cfgbuild.c (make_edges): Likewise.
5180         (purge_dead_tablejump_edges): Likewise.
5181         * cfgexpand.c (convert_debug_memory_address): Likewise.
5182         * cfgrtl.c (patch_jump_insn): Likewise.
5183         * combine.c (distribute_notes): Likewise.
5184         * cse.c (hash_rtx_cb): Likewise.
5185         (exp_equiv_p): Likewise.
5186         (fold_rtx): Likewise.
5187         (check_for_label_ref): Likewise.
5188         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5189         (cselib_hash_rtx): Likewise.
5190         * emit-rtl.c (mark_label_nuses): Likewise.
5191         * explow.c (convert_memory_address_addr_space): Likewise.
5192         * final.c (output_asm_label): Likewise.
5193         (output_addr_const): Likewise.
5194         * gcse.c (add_label_notes): Likewise.
5195         * genconfig.c (walk_insn_part): Likewise.
5196         * genrecog.c (validate_pattern): Likewise.
5197         * ifcvt.c (cond_exec_get_condition): Likewise.
5198         (noce_emit_store_flag): Likewise.
5199         (noce_get_alt_condition): Likewise.
5200         (noce_get_condition): Likewise.
5201         * jump.c (maybe_propagate_label_ref): Likewise.
5202         (mark_jump_label_1): Likewise.
5203         (redirect_exp_1): Likewise.
5204         (rtx_renumbered_equal_p): Likewise.
5205         * lra-constraints.c (operands_match_p): Likewise.
5206         * reload.c (operands_match_p): Likewise.
5207         (find_reloads): Likewise.
5208         * reload1.c (set_label_offsets): Likewise.
5209         * reorg.c (get_branch_condition): Likewise.
5210         * rtl.c (rtx_equal_p_cb): Likewise.
5211         (rtx_equal_p): Likewise.
5212         * rtlanal.c (reg_mentioned_p): Likewise.
5213         (rtx_referenced_p): Likewise.
5214         (get_condition): Likewise.
5215         * sched-vis.c (print_value): Likewise.
5216         * varasm.c (const_hash_1): Likewise.
5217         (compare_constant): Likewise.
5218         (const_rtx_hash_1): Likewise.
5219         (output_constant_pool_1): Likewise.
5220
5221 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5222
5223         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5224         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5225         instead of minus.
5226         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5227         cr6_test_for_lt_reverse): Ditto.
5228
5229 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5230
5231         PR c++/61489
5232         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5233
5234 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5235
5236         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5237         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5238         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5239         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5240         Delete.
5241
5242         (aarch64_fold_builtin): Remove all reinterpret cases.
5243
5244         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5245
5246         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5247
5248         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5249         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5250         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5251         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5252         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5253         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5254         aarch64_reinterpretv2df<mode>): Delete.
5255
5256         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5257
5258         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5259         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5260         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5261         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5262         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5263         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5264         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5265         vreinterpret_u32_f64): Use cast.
5266
5267         * config/aarch64/iterators.md (VD_RE): Delete.
5268
5269 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5270
5271         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5272         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5273         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5274         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5275         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5276         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5277         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5278         Replace inline assembler with __aarch64_vset_lane_any.
5279
5280 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5281
5282         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5283         types.
5284         (vmull_high_lane_s32): Likewise.
5285         (vmull_high_lane_u16): Likewise.
5286         (vmull_high_lane_u32): Likewise.
5287
5288 2014-09-11  Jason Merrill  <jason@redhat.com>
5289
5290         PR c++/58678
5291         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5292
5293 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5294
5295         PR target/63223
5296         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5297         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5298         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5299
5300 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5302             Anna Tikhonova  <anna.tikhonova@intel.com>
5303             Ilya Tocar  <ilya.tocar@intel.com>
5304             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5305             Ilya Verbin  <ilya.verbin@intel.com>
5306             Kirill Yukhin  <kirill.yukhin@intel.com>
5307             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5308
5309         * config/i386/sse.md
5310         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5311         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5312         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5313         New.
5314         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5315         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5316         iterator.
5317         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5318         New.
5319         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5320         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5321         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5322         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5323         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5324         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5325         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5326         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5327         iterator.
5328         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5329         New.
5330         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5331         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5332         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5333
5334 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5335
5336         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5337         to access removed nodes.
5338
5339 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5340
5341         PR tree-optimization/63186
5342         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5343         (mark_nonssa_use): Likewise.
5344         (verify_non_ssa_vars): Verify all header blocks for label
5345         definitions.
5346
5347 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5348             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5349             Anna Tikhonova  <anna.tikhonova@intel.com>
5350             Ilya Tocar  <ilya.tocar@intel.com>
5351             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5352             Ilya Verbin  <ilya.verbin@intel.com>
5353             Kirill Yukhin  <kirill.yukhin@intel.com>
5354             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5355
5356         * config/i386/sse.md
5357         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5358         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5359         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5360         "<avx2_avx512f>_permvar<mode><mask_name>".
5361         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5362         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5363         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5364         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5365         Ditto.
5366         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5367         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5368         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5369         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5370
5371 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5372
5373         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5374         V2DF, V4SF, DF, and DI modes.
5375         (vsx_fmav2df2): Likewise.
5376         (vsx_float_fix_<mode>2): Likewise.
5377         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5378
5379 2014-09-10  Xinliang David Li  <davidxl@google.com>
5380
5381         PR target/63209
5382         * config/arm/arm.md (movcond_addsi): Handle case where source
5383         and target operands are the same.
5384
5385 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5386
5387         * final.c (this_is_asm_operands): Strengthen this variable from
5388         rtx to const rtx_insn *.
5389         * output.h (this_is_asm_operands): Likewise.
5390         * rtl-error.c (location_for_asm): Strengthen param "insn" from
5391         const_rtx to const rtx_insn *.
5392         (diagnostic_for_asm): Likewise.
5393         * rtl-error.h (error_for_asm): Likewise.
5394         (warning_for_asm): Likewise.
5395
5396 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5397
5398         * genextract.c (print_header): When writing out insn_extract to
5399         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
5400         * recog.h (insn_extract): Strengthen the param from rtx to
5401         rtx_insn *.
5402
5403 2014-09-10  Mike Stump  <mikestump@comcast.net>
5404
5405         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
5406         8.6.1.
5407
5408 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5409
5410         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
5411         (analyze): Do not set analyze flag if expand_thunk returns false;.
5412         (create_wrapper): Likewise.
5413         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5414
5415 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5416
5417         PR ipa/61654
5418         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
5419         new decl properly.  Analyze the new thunk if it is expanded.
5420
5421 2014-09-10  Andreas Schwab  <schwab@suse.de>
5422
5423         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
5424         [USED_FOR_TARGET]: Define.
5425
5426 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
5427
5428         * config/mips/mips.c (mips_secondary_reload_class): Handle
5429         regno < 0 case.
5430
5431 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
5432
5433         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
5434         assignment.
5435
5436 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
5437
5438         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
5439         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
5440         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
5441         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
5442         flag_delete_null_pointer_checks for them.
5443         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
5444         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
5445         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
5446         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
5447         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
5448         stmt's iterator.
5449         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
5450         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
5451         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
5452         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
5453         * doc/invoke.texi (-fsanitize=nonnull-attribute,
5454         -fsanitize=returns-nonnull-attribute): Document.
5455
5456         * ubsan.h (struct ubsan_mismatch_data): Removed.
5457         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5458         * ubsan.c (ubsan_source_location): For unknown locations,
5459         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
5460         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5461         Allow more than one location and arbitrary extra arguments passed
5462         in ... instead of through MISMATCH pointer.
5463         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
5464         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5465         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
5466         callers.
5467
5468 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5469             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5470             Anna Tikhonova  <anna.tikhonova@intel.com>
5471             Ilya Tocar  <ilya.tocar@intel.com>
5472             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5473             Ilya Verbin  <ilya.verbin@intel.com>
5474             Kirill Yukhin  <kirill.yukhin@intel.com>
5475             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5476
5477         * config/i386/sse.md
5478         (define_mode_iterator VI48F): New.
5479         (define_insn "<avx512>_compress<mode>_mask"): Rename from
5480         "avx512f_compress<mode>_mask" and update mode iterator.
5481         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
5482         "avx512f_compressstore<mode>_mask" and update mode iterator.
5483         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
5484         "avx512f_expand<mode>_maskz" and update mode iterator.
5485         (define_insn "<avx512>_expand<mode>_mask"): Rename from
5486         "avx512f_expand<mode>_mask" and update mode iterator.
5487
5488 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5489             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5490             Anna Tikhonova  <anna.tikhonova@intel.com>
5491             Ilya Tocar  <ilya.tocar@intel.com>
5492             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5493             Ilya Verbin  <ilya.verbin@intel.com>
5494             Kirill Yukhin  <kirill.yukhin@intel.com>
5495             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5496
5497         * config/i386/i386.c
5498         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
5499         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
5500         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
5501         avx512dq_rangepv4sf_mask.
5502         * config/i386/sse.md
5503         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
5504         UNSPEC_RANGE.
5505         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
5506         (define_insn "reduces<mode>"): Ditto.
5507         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
5508         Ditto.
5509         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
5510         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
5511         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
5512
5513 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5515             Anna Tikhonova  <anna.tikhonova@intel.com>
5516             Ilya Tocar  <ilya.tocar@intel.com>
5517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5518             Ilya Verbin  <ilya.verbin@intel.com>
5519             Kirill Yukhin  <kirill.yukhin@intel.com>
5520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5521
5522         * config/i386/i386.c
5523         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
5524         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
5525         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
5526         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
5527         avx512vl_getmantv2df_mask.
5528         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
5529         avx512f_vgetmantv4sf_round.
5530         * config/i386/sse.md
5531         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
5532         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
5533         mode iterator.
5534         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
5535         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
5536         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
5537         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
5538         iterator..
5539         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
5540         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
5541         update mode iterator.
5542         (define_expand
5543         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
5544         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
5545         mode iterator.
5546         (define_insn
5547         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
5548         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
5549         update mode iterator.
5550         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
5551         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
5552         iterator..
5553         (define_insn
5554         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
5555         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
5556         mode iterator..
5557         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
5558         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
5559         update mode iterator.
5560         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
5561         "avx512f_getmant<mode><round_saeonly_name>".
5562
5563 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5564
5565         PR ipa/63166
5566         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
5567
5568 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5569             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5570             Anna Tikhonova  <anna.tikhonova@intel.com>
5571             Ilya Tocar  <ilya.tocar@intel.com>
5572             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5573             Ilya Verbin  <ilya.verbin@intel.com>
5574             Kirill Yukhin  <kirill.yukhin@intel.com>
5575             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5576
5577         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
5578         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
5579         (define_mode_iterator FMAMODE_AVX512): New.
5580         (define_mode_iterator FMAMODE): Remove conditions.
5581         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
5582         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
5583         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
5584         mode iterator.
5585         (define_mode_iterator FMAMODE_NOVF512): Remove.
5586         (define_insn "*fma_fmadd_<mode>"): Rename from
5587         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
5588         FMAMODE mode iterator.
5589         (define_mode_iterator VF_SF_AVX512VL): New.
5590         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
5591         Use VF_SF_AVX512VL mode iterator.
5592         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
5593         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5594         iterator.
5595         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
5596         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5597         iterator.
5598         (define_insn "*fma_fmsub_<mode>"): Rename from
5599         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
5600         FMAMODE mode iterator.
5601         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
5602         Use VF_SF_AVX512VL mode iterator.
5603         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
5604         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5605         iterator.
5606         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
5607         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5608         iterator.
5609         (define_insn "*fma_fnmadd_<mode>"): Rename from
5610         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
5611         use FMAMODE mode iterator.
5612         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
5613         Use VF_SF_AVX512VL mode iterator.
5614         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
5615         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5616         iterator.
5617         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
5618         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5619         iterator.
5620         (define_insn "*fma_fnmsub_<mode>"): Rename from
5621         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
5622         FMAMODE mode iterator.
5623         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
5624         Use VF_SF_AVX512VL mode iterator.
5625         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
5626         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5627         iterator.
5628         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
5629         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5630         iterator.
5631         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
5632         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
5633         use VF_AVX512VL mode iterator.
5634         (define_insn "*fma_fmaddsub_<mode>"): Rename from
5635         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
5636         remove subst usage.
5637         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
5638         Use VF_SF_AVX512VL mode iterator.
5639         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
5640         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5641         iterator.
5642         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
5643         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5644         iterator.
5645         (define_insn "*fma_fmsubadd_<mode>"): Rename from
5646         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
5647         remove usage of subst.
5648         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
5649         Use VF_SF_AVX512VL mode iterator.
5650         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
5651         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5652         iterator.
5653         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
5654         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5655         iterator.
5656
5657 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
5658
5659         Revert r213751:
5660         * calls.c (precompute_arguments): Check
5661          promoted_for_signed_and_unsigned_p and set the promoted mode.
5662         (promoted_for_signed_and_unsigned_p): New function.
5663         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
5664         and set the promoted mode.
5665         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
5666         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
5667         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
5668
5669 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5670
5671         * opth-gen.awk: Generate mapping from cpp message reasons to the
5672         options that enable them.
5673         * doc/options.texi (CppReason): Document.
5674
5675 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5676
5677         * doc/invoke.texi (Wnormalized=): Update.
5678
5679 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
5680
5681         PR target/63195
5682         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
5683         operands.  Split off the constant operand alternative to ...
5684         (*bool<mode>3_imm): New.
5685
5686 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5687
5688         * rtl.h (single_set_2): Strengthen first param from const_rtx to
5689         const rtx_insn *, and move prototype to above...
5690         (single_set): ...this.  Convert this from a macro to an inline
5691         function, enforcing the requirement that the param is a const
5692         rtx_insn *.
5693         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
5694
5695         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5696         Strengthen both params from rtx to rtx_insn *.
5697         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
5698         Likewise; introduce locals "producer_set", "consumer_set", using
5699         them in place of "producer" and "consumer" when dealing with SET
5700         rather than insn.
5701         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
5702         when invoking single_set in region guarded by INSN_P.
5703         (avr_out_bitop): Likewise.
5704         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
5705         region guarded by GET_CODE check, using methods to strengthen
5706         local "this_insn" from rtx to rtx_insn *, and for clarity.
5707         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
5708         Strengthen local "insn" from rtx to rtx_insn *.
5709         (define_insn_and_split "xload<mode>_A"): Likewise.
5710         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
5711         "insn".
5712         (find_load): Likewise for return type.
5713         (workaround_speculation): Likewise for both locals named
5714         "load_insn".
5715         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
5716         local "cc0_user".
5717         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
5718         for local "prev".
5719         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
5720         param 2.
5721         * config/h8300/h8300.c (notice_update_cc): Likewise.
5722         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
5723         "insn" and "dep_insn".
5724         (exact_store_load_dependency): Likewise for both params.
5725         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
5726         since this now clashes with inline function.  Instead, delay
5727         calling single_set until the point where its needed, and then
5728         assign the result to "compare_set" and rework the conditional that
5729         follows.
5730         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
5731         local "last" from rtx to rtx_insn *.
5732         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
5733         second param.
5734         (mips_store_data_bypass_p): Likewise for both params.
5735         * config/mips/mips.c (mips_load_store_insns): Likewise for second
5736         param.
5737         (mips_store_data_bypass_p): Likewise for both params.
5738         (mips_orphaned_high_part_p): Likewise for param "insn".
5739         * config/mn10300/mn10300.c (extract_bundle): Likewise.
5740         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
5741         Introduce local rtx "insn2_pat".
5742         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
5743         "ninsn".
5744         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
5745         Introduce local rtx "set", using it in place of "insn" for the
5746         result of single_set.  This appears to fix a bug, since the call
5747         to find_regno_note on a SET does nothing.
5748         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
5749         params from rtx to rtx_insn *.
5750         (set_to_load_agen): Likewise.
5751         * config/s390/s390.c (s390_label_align): Likewise for local
5752         "prev_insn".  Introduce new rtx locals "set" and "src", using
5753         them in place of "prev_insn" for the results of single_set
5754         and SET_SRC respectively.
5755         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
5756         Introduce new rtx local "set" using in place of "jump" for the
5757         result of single_set.  Use SET_SRC (set) rather than plain
5758         XEXP (set, 1).
5759         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
5760         rtx to rtx_insn *.
5761         (noncall_uses_reg): Likewise.
5762         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
5763         guarded by GET_CODE check, using its methods for clarity, and to
5764         enable strengthening local "this_insn" from rtx to rtx_insn *.
5765         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
5766         "insn" from rtx to rtx_insn *.
5767         (define_expand "umulhisi3"): Likewise.
5768         (define_expand "smulsi3_highpart"): Likewise.
5769         (define_expand "umulsi3_highpart"): Likewise.
5770         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5771         local "after".  Replace GET_CODE check with a dyn_cast,
5772         introducing new local rtx_sequence * "seq", using insn method for
5773         typesafety.
5774
5775         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
5776         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
5777         place of "insn" once we're dealing with patterns rather than the
5778         input insn.
5779         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
5780         (scan_trace): Likewise for local "elt", updating lookups within
5781         sequence to use insn method rather than element method.
5782         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
5783         to rtx_insn *.
5784         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
5785         * ifcvt.c (noce_try_abs): Likewise for local "insn".
5786         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
5787         invoking single_set.
5788         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
5789         "insn" from rtx to rtx_insn *.
5790         (skip_usage_debug_insns): Likewise for return type, adding a
5791         checked cast.
5792         (check_secondary_memory_needed_p): Likewise for local "insn".
5793         (inherit_reload_reg): Likewise.
5794         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
5795         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
5796         checked casts.
5797         (store_data_bypass_p): Likewise for both params.
5798         (if_test_bypass_p): Likewise.
5799         * recog.h (store_data_bypass_p): Likewise for both params.
5800         (if_test_bypass_p): Likewise.
5801         * reload.c (find_equiv_reg): Likewise for local "where".
5802         * reorg.c (delete_jump): Likewise for param "insn".
5803         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
5804         to const rtx_insn *.
5805         * store-motion.c (replace_store_insn): Likewise for param "del".
5806         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
5807         and use its methods for clarity, and to strengthen local "del"
5808         from rtx to rtx_insn *.
5809         (build_store_vectors): Use insn method of "st" when calling
5810         replace_store_insn for typesafety and clarity.
5811
5812 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5813
5814         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
5815         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
5816         on how to make it legal in future.
5817
5818 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5819
5820         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
5821         to rtx_insn *.
5822         (restinsn): Likewise.
5823         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
5824         Likewise for param.
5825         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
5826         Likewise.
5827         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
5828         first param.
5829         (arc_hazard): Likewise for both params.
5830         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
5831         checked casts to rtx_sequence * and uses of the insn method for
5832         type-safety.
5833         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
5834         (arc_adjust_insn_length): Likewise for param "insn".
5835         (struct insn_length_parameters_s): Likewise for first param of
5836         "get_variants" callback field.
5837         (arc_get_insn_variants): Likewise for first param and local
5838         "inner".  Replace a check of GET_CODE with a dyn_cast to
5839         rtx_sequence *, using methods for type-safety and clarity.
5840         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
5841         rtx_sequence * and uses of the insn method for type-safety when
5842         invoking arc_adjust_insn_length.
5843         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
5844         for param.
5845         (arm_address_offset_is_imm): Likewise.
5846         (struct tune_params): Likewise for params 1 and 3 of the
5847         "sched_adjust_cost" callback field.
5848         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
5849         params 1 and 3 ("insn" and "dep").
5850         (xscale_sched_adjust_cost): Likewise.
5851         (fa726te_sched_adjust_cost): Likewise.
5852         (cortexa7_older_only): Likewise for param "insn".
5853         (cortexa7_younger): Likewise.
5854         (arm_attr_length_move_neon): Likewise.
5855         (arm_address_offset_is_imm): Likewise.
5856         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
5857         * config/avr/avr.c (avr_notice_update_cc): Likewise.
5858         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
5859         (workaround_speculation): Likewise for local "last_condjump".
5860         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
5861         (shadow_or_blockage_p): Likewise.
5862         (get_unit_reqs): Likewise.
5863         (get_unit_operand_masks): Likewise.
5864         (c6x_registers_update): Likewise.
5865         (returning_call_p): Likewise.
5866         (can_use_callp): Likewise.
5867         (convert_to_callp): Likewise.
5868         (find_last_same_clock): Likwise for local "t".
5869         (reorg_split_calls): Likewise for local "shadow".
5870         (hwloop_pattern_reg): Likewise for param "insn".
5871         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
5872         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
5873         (frv_extract_membar): Likewise.
5874         (frv_optimize_membar_local): Strengthen param "last_membar" from
5875         rtx * to rtx_insn **.
5876         (frv_optimize_membar_global): Strengthen param "membar" from rtx
5877         to rtx_insn *.
5878         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
5879         to rtx_insn **.
5880         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
5881         both params from rtx to rtx_insn *.
5882         (ia64_ld_address_bypass_p): Likewise.
5883         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
5884         "insn".
5885         (ia64_safe_type): Likewise.
5886         (group_barrier_needed): Likewise.
5887         (safe_group_barrier_needed): Likewise.
5888         (ia64_single_set): Likewise.
5889         (is_load_p): Likewise.
5890         (record_memory_reference): Likewise.
5891         (get_mode_no_for_insn): Likewise.
5892         (important_for_bundling_p): Likewise.
5893         (unknown_for_bundling_p): Likewise.
5894         (ia64_st_address_bypass_p): Likewise for both params.
5895         (ia64_ld_address_bypass_p): Likewise.
5896         (expand_vselect): Introduce new local rtx_insn * "insn", using it
5897         in place of rtx "x" after the emit_insn call.
5898         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
5899         Strengthen param from rtx to rtx_insn *.
5900         (ix86_agi_dependent): Likewise for both params.
5901         (ix86_attr_length_immediate_default): Likewise for param 1.
5902         (ix86_attr_length_address_default): Likewise for param.
5903         (ix86_attr_length_vex_default): Likewise for param 1.
5904         * config/i386/i386.c (ix86_attr_length_immediate_default):
5905         Likewise for param "insn".
5906         (ix86_attr_length_address_default): Likewise.
5907         (ix86_attr_length_vex_default): Likewise.
5908         (ix86_agi_dependent): Likewise for both params.
5909         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
5910         (vselect_insn): Likewise for this variable.
5911         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
5912         for param 1.
5913         (m68k_sched_attr_opy_type): Likewise.
5914         * config/m68k/m68k.c (sched_get_operand): Likewise.
5915         (sched_attr_op_type): Likewise.
5916         (m68k_sched_attr_opx_type): Likewise.
5917         (m68k_sched_attr_opy_type): Likewise.
5918         (sched_get_reg_operand): Likewise.
5919         (sched_get_mem_operand): Likewise.
5920         (m68k_sched_address_bypass_p): Likewise for both params.
5921         (sched_get_indexed_address_scale): Likewise.
5922         (m68k_sched_indexed_address_bypass_p): Likewise.
5923         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
5924         (m68k_sched_indexed_address_bypass_p): Likewise.
5925         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
5926         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
5927         removing another.
5928         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
5929         params from rtx to rtx_insn *.
5930         (mips_fmadd_bypass): Likewise.
5931         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
5932         (mips_linked_madd_p): Likewise.
5933         (mips_macc_chains_last_hilo): Likewise for this variable.
5934         (mips_macc_chains_record): Likewise for param.
5935         (vr4130_last_insn): Likewise for this variable.
5936         (vr4130_swap_insns_p): Likewise for both params.
5937         (mips_ls2_variable_issue): Likewise for param.
5938         (mips_need_noat_wrapper_p): Likewise for param "insn".
5939         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
5940         in place of "x" after the emit_insn.
5941         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
5942         params from rtx to rtx_insn *.
5943         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
5944         (pa_combine_instructions): Introduce local "par" for result of
5945         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
5946         to make_insn_raw.
5947         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
5948         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
5949         (rl78_alloc_physical_registers_op1): Likewise.
5950         (rl78_alloc_physical_registers_op2): Likewise.
5951         (rl78_alloc_physical_registers_ro1): Likewise.
5952         (rl78_alloc_physical_registers_cmp): Likewise.
5953         (rl78_alloc_physical_registers_umul): Likewise.
5954         (rl78_alloc_address_registers_macax): Likewise.
5955         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
5956         * config/s390/predicates.md (execute_operation): Likewise for
5957         local "insn".
5958         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
5959         params.
5960         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
5961         (addr_generation_dependency_p): Likewise for param "insn".
5962         (s390_agen_dep_p): Likewise for both params.
5963         (s390_fpload_toreg): Likewise for param "insn".
5964         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
5965         * config/sh/sh.c (sh_loop_align): Likewise for param and local
5966         "next".
5967         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
5968         * config/sh/sh_treg_combine.cc
5969         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
5970         and local "i".
5971         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
5972         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
5973         "and_insn", "load", "shift".
5974         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
5975         "insn".
5976         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
5977         for XEXP (note, 0) of the REG_CC_SETTER note.
5978         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
5979         rtx_insn *, eliminating a checked cast made redundant by this.
5980         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
5981         to rtx_insn *.
5982         * genattr.c (main): When writing out the prototype to
5983         const_num_delay_slots, strengthen the param from rtx to
5984         rtx_insn *.
5985         * genattrtab.c (write_const_num_delay_slots): Likewise when
5986         writing out the implementation of const_num_delay_slots.
5987         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
5988         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
5989         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
5990         favor of new rtx locals "src" and "set" and new local rtx_insn *
5991         "insn" and "seq".
5992         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
5993         to rtx_insn *.
5994         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
5995         locals "cond", "if_then_else", "set" and new rtx_insn * locals
5996         "insn" and "seq".
5997         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
5998         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
5999         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
6000         the top-level scope, replacing with new more tightly-scoped rtx
6001         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6002         "new_insn", "copy_of_insn_b", and make local rtx "set" more
6003         tightly-scoped.
6004         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6005         rtx_insn *.
6006         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6007         "move_insn".
6008         (ira_setup_alts): Likewise for param "insn".
6009         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6010         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6011         and an rtx_insn *.
6012         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6013         new more-tightly scoped rtx locals "add3_insn", "insn",
6014         "add2_insn" and rtx_insn * "move_insn".
6015         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6016         checked cast on result of gen_move_insn when invoking
6017         extract_insn.
6018         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6019         rtx_insn *.
6020         (verify_changes): Add a checked cast on "object" when invoking
6021         insn_invalid_p.
6022         (extract_insn_cached): Strengthen param "insn" from rtx to
6023         rtx_insn *.
6024         (extract_constrain_insn_cached): Likewise.
6025         (extract_insn): Likewise.
6026         * recog.h (insn_invalid_p): Likewise for param 1.
6027         (recog_memoized): Likewise for param.
6028         (extract_insn): Likewise.
6029         (extract_constrain_insn_cached): Likewise.
6030         (extract_insn_cached): Likewise.
6031         * reload.c (can_reload_into): Likewise for local "test_insn".
6032         * reload.h (cleanup_subreg_operands): Likewise for param.
6033         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6034         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6035         result of emit_insn.  Remove a checked cast made redundant by this
6036         change.
6037         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6038         rtx to rtx_insn *.
6039         * sel-sched.c (get_reg_class): Likewise.
6040
6041 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6042             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6043
6044         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6045         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6046         Define.
6047         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6048
6049 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6050
6051         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6052         const rtx_insn *, and from rtx to rtx_insn * for the other
6053         overloaded variant.
6054         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6055         INSN_LOCATION, since we know INSN_P holds.
6056         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6057         (insn_file): Likewise.
6058         (insn_scope): Likewise.
6059         (insn_location): Likewise.
6060
6061         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6062         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6063         for the result of gen_load_const_gp.
6064         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6065         param from rtx to rtx_insn *.
6066         * config/rs6000/rs6000.c (output_call): Likewise.
6067         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6068         introducing a checked cast to rtx_sequence * and use of the insn
6069         method.
6070         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6071         from rtx to rtx_insn *.
6072         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6073         (insn_line): Likewise.
6074         (insn_file): Likewise.
6075         (insn_location): Likewise.
6076         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6077         from rtx to rtx_insn *.
6078         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6079         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6080         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6081         via a checked cast.
6082         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6083         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6084
6085 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6086
6087         * combine.c (try_combine): Eliminate checked cast on result of
6088         gen_rtx_INSN.
6089         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6090         autogenerated one by strengthening the return type and params 2 and 3
6091         from rtx to rtx_insn *, and by naming the params.
6092         * gengenrtl.c (special_rtx): Add INSN to those that are
6093         special-cased.
6094         * rtl.h (gen_rtx_INSN): New prototype.
6095
6096 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6097
6098         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6099         than NULL_RTX.
6100         (no_equiv): Likewise.
6101         (update_equiv_regs): Likewise.
6102         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6103         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6104         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6105         clarity.
6106         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6107         from rtx to rtx_insn_list *.
6108         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6109         rtx_insn_list * and use methods for clarity and typesafety.
6110         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6111         "list".
6112         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6113         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6114         an INSN_LIST, not an insn.
6115         (reverse_equiv_p): Strengthen local "insns" from rtx to
6116         rtx_insn_list * and use methods for clarity and typesafety.
6117         (contains_reloaded_insn_p): Likewise for local "list".
6118
6119 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6120
6121         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6122         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6123         (arm_builtin_vectorized_function): Likewise.
6124         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6125         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6126
6127 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6128
6129         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6130         * builtins.h (default_target_builtins): Likewise.
6131         * gcse.h (default_target_gcse): Likewise.
6132         * target-globals.h (target_globals): Add a destructor.  Convert
6133         void-pointer fields back to their real type and change from
6134         GTY((atomic)) to GTY((skip)).
6135         (restore_target_globals): Remove casts accordingly.
6136         * target-globals.c (save_target_globals): Use XCNEW rather than
6137         ggc_internal_cleared_alloc to allocate non-GC structures.
6138         Use ggc_cleared_alloc to allocate the target_globals structure
6139         itself.
6140         (target_globals::~target_globals): Define.
6141
6142 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6143
6144         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6145         mnemonic instead of fldmfdd.
6146         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6147         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6148         Output vpush when address register is SP.
6149         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6150         (vfp_output_vstmd): ... This.
6151         * config/arm/vfp.md (push_multi_vfp): Update call to
6152         vfp_output_vstmd.
6153
6154 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6155
6156         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6157
6158 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6159
6160         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6161         (*sqrtdf2_vfp): Likewise.
6162         (*cmpsf_vfp): Likewise.
6163         (*cmpsf_trap_vfp): Likewise.
6164         (*cmpdf_vfp): Likewise.
6165         (*cmpdf_trap_vfp): Likewise.
6166
6167 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6168
6169         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6170         (*truncdfsf2_vfp): Likewise.
6171         (*truncsisf2_vfp): Likewise.
6172         (*truncsidf2_vfp): Likewise.
6173         (fixuns_truncsfsi2): Likewise.
6174         (fixuns_truncdfsi2): Likewise.
6175         (*floatsisf2_vfp): Likewise.
6176         (*floatsidf2_vfp): Likewise.
6177         (floatunssisf2): Likewise.
6178         (floatunssidf2): Likewise.
6179
6180 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6181
6182         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6183         (*muldf3_vfp): Likewise.
6184         (*mulsf3negsf_vfp): Likewise.
6185         (*muldf3negdf_vfp): Likewise.
6186         (*mulsf3addsf_vfp): Likewise.
6187         (*muldf3adddf_vfp): Likewise.
6188         (*mulsf3subsf_vfp): Likewise.
6189         (*muldf3subdf_vfp): Likewise.
6190         (*mulsf3negsfaddsf_vfp): Likewise.
6191         (*fmuldf3negdfadddf_vfp): Likewise.
6192         (*mulsf3negsfsubsf_vfp): Likewise.
6193         (*muldf3negdfsubdf_vfp): Likewise.
6194
6195 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6196
6197         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6198         (*absdf2_vfp): Likewise.
6199         (*negsf2_vfp): Likewise.
6200         (*negdf2_vfp): Likewise.
6201         (*addsf3_vfp): Likewise.
6202         (*adddf3_vfp): Likewise.
6203         (*subsf3_vfp): Likewise.
6204         (*subdf3_vfp): Likewise.
6205         (*divsf3_vfp): Likewise.
6206         (*divdf3_vfp): Likewise.
6207
6208 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6209
6210         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6211         multiple.
6212         (arm_print_operand): Don't convert real values to decimal
6213         representation in default case.
6214         (fp_immediate_constant): Delete.
6215         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6216         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6217         syntax.
6218         (*thumb2_movsi_vfp): Likewise.
6219         (*movdi_vfp): Likewise.
6220         (*movdi_vfp_cortexa8): Likewise.
6221         (*movhf_vfp_neon): Likewise.
6222         (*movhf_vfp): Likewise.
6223         (*movsf_vfp): Likewise.
6224         (*thumb2_movsf_vfp): Likewise.
6225         (*movdf_vfp): Likewise.
6226         (*thumb2_movdf_vfp): Likewise.
6227         (*movsfcc_vfp): Likewise.
6228         (*thumb2_movsfcc_vfp): Likewise.
6229         (*movdfcc_vfp): Likewise.
6230         (*thumb2_movdfcc_vfp): Likewise.
6231
6232 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6233
6234         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6235         (-mtune): Likewise.
6236         (-mcpu): Likewise.
6237
6238 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6239
6240         PR target/61749
6241         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6242         Use qualifier_immediate for last operand.  Rename to...
6243         (aarch64_types_ternop_lane_qualifiers): ... This.
6244         (TYPES_QUADOP): Rename to...
6245         (TYPES_TERNOP_LANE): ... This.
6246         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6247         error.  Change return of 0 to return of NULL_RTX.
6248         (aarch64_crc32_expand_builtin): Likewise.
6249         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6250         ICE when expanding unknown builtin.
6251         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6252         TERNOP_LANE qualifiers.
6253         (sqdmlsl_lane): Likewise.
6254         (sqdmlal_laneq): Likewise.
6255         (sqdmlsl_laneq): Likewise.
6256         (sqdmlal2_lane): Likewise.
6257         (sqdmlsl2_lane): Likewise.
6258         (sqdmlal2_laneq): Likewise.
6259         (sqdmlsl2_laneq): Likewise.
6260
6261 2014-09-09  Nick Clifton  <nickc@redhat.com>
6262
6263         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6264         end of a line.
6265         (S/390 and zSeries Options): Remove superfluous word from the
6266         description of the -mhotpatch option.
6267
6268 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6269
6270         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6271         * ira.c: #include "shrink-wrap.h"
6272         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6273         * ifcvt.c: #include "shrink-wrap.h"
6274         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6275
6276 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6277
6278         * common/config/picochip/picochip-common.c: Remove.
6279         * config.gcc: Remove support for picochip.
6280         * config/picochip/constraints.md: Remove.
6281         * config/picochip/dfa_space.md: Remove.
6282         * config/picochip/dfa_speed.md: Remove.
6283         * config/picochip/picochip-protos.h: Remove.
6284         * config/picochip/picochip.c: Remove.
6285         * config/picochip/picochip.h: Remove.
6286         * config/picochip/picochip.md: Remove.
6287         * config/picochip/picochip.opt: Remove.
6288         * config/picochip/predicates.md: Remove.
6289         * config/picochip/t-picochip: Remove.
6290         * doc/md.texi: Don't document picochi.
6291
6292 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6293
6294         * basic-block.h (control_flow_insn_p): Strengthen param from
6295         const_rtx to const rtx_insn *.
6296         * cfgbuild.c (control_flow_insn_p): Likewise.
6297
6298 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6299
6300         * gcse.c (modify_mem_list): Strengthen this variable from
6301         vec<rtx> * to vec<rtx_insn *> *.
6302         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6303         vec<rtx_insn *>.
6304         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6305         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6306         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6307         rtx_insn *.
6308         (record_last_set_info): Likewise for local "last_set_insn".
6309
6310 2014-09-08  DJ Delorie  <dj@redhat.com>
6311
6312         * doc/invoke.texi (MSP430 Options): Add -minrt.
6313
6314 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6315
6316         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6317         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6318         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6319         handling SH_SPLAT.
6320         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6321         of extracted lane.
6322         (adjust_splat): New function.
6323         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6324         (dump_swap_insn_table): Add case for SH_SPLAT.
6325
6326 2014-09-08  Richard Biener  <rguenther@suse.de>
6327
6328         PR ipa/63196
6329         * tree-inline.c (copy_loops): The source loop header should
6330         always be non-NULL.
6331         (tree_function_versioning): If loops need fixup after removing
6332         unreachable blocks fix them.
6333         * omp-low.c (simd_clone_adjust): Do not add incr block to
6334         loop under construction.
6335
6336 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6337
6338         * config/aarch64/aarch64-builtins.c
6339         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6340
6341 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6342
6343         * config/i386/cygming.h (TF_SIZE): Remove.
6344         * config/i386/darwin.h (TF_SIZE): Remove.
6345         * config/i386/dragonfly.h (TF_SIZE): Remove.
6346         * config/i386/freebsd.h (TF_SIZE): Remove.
6347         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6348         * config/i386/openbsdelf.h (TF_SIZE): Remove.
6349         * config/i386/sol2.h (TF_SIZE): Remove.
6350         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6351         * config/ia64/linux.h (TF_SIZE): Remove.
6352         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6353         * doc/tm.texi: Regenerate.
6354         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6355
6356 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6357
6358         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6359         Remove.
6360         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6361         Remove.
6362         * doc/tm.texi: Regenerate.
6363         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6364         Poison.
6365         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6366         * config/cris/cris.h (__make_dp): Remove.
6367
6368 2014-09-08  Richard Biener  <rguenther@suse.de>
6369
6370         PR bootstrap/63204
6371         * cfgloop.c (mark_loop_for_removal): Track former header
6372         unconditionally.
6373         * cfgloop.h (struct loop): Add former_header member unconditionally.
6374         * loop-init.c (fix_loop_structure): Enable bogus loop removal
6375         diagnostic unconditionally.
6376
6377 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6378
6379         PR target/63190
6380         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6381         constraint for operand0 and remove write only modifier from operand3.
6382
6383 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
6384
6385         PR rtl-optimization/62208
6386         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6387         rather than const0_rtx in eq/ne-xor simplifications.
6388
6389 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
6390
6391         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6392         (arc_output_mi_thunk): Likewise.
6393
6394         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6395         arguments to silence bogus warning.
6396
6397 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
6398
6399         PR middle-end/63171
6400         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
6401
6402 2014-09-06  Tom de Vries  <tom@codesourcery.com>
6403
6404         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
6405         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
6406         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6407
6408 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
6409
6410         PR target/63188
6411         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
6412         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
6413
6414 2014-09-05  Easwaran Raman  <eraman@google.com>
6415
6416         PR rtl-optimization/62146
6417         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
6418         hoisted instruction unconditional.
6419
6420 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
6421
6422         PR target/63187
6423         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
6424         Do not allow any_mask_operand for operands[2].
6425         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
6426
6427 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6428
6429         * config/arc/arc.c (arc_print_operand): Use insn method of
6430         final_sequence for type-safety.
6431         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
6432         "insn" from rtx to rtx_insn *.
6433         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
6434         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6435         Likewise for locals "branch", "label".
6436         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
6437         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
6438         (same_cmp_following_p): Likewise for locals "i2", "i3".
6439         * config/sh/sh_optimize_sett_clrt.cc
6440         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
6441         param "cbranch_insn".
6442         * function.c (convert_jumps_to_returns): Likewis for local "jump".
6443         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
6444         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
6445         const rtx_insn *.
6446         (condjump_p): Likewise.
6447         (condjump_in_parallel_p): Likewise.
6448         (pc_set): Likewise.
6449         (any_uncondjump_p): Likewise.
6450         (any_condjump_p): Likewise.
6451         (condjump_label): Likewise.
6452         (returnjump_p): Strengthen param "insn" from rtx to
6453         const rtx_insn *.
6454         (onlyjump_p): Strengthen param "insn" from const_rtx to
6455         const rtx_insn *.
6456         (jump_to_label_p): Likewise.
6457         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
6458         (invert_jump): Likewise.
6459         * reorg.c (simplejump_or_return_p): Add checked cast when calling
6460         simplejump_p.
6461         (get_jump_flags): Strengthen param "insn" from rtx to
6462         const rtx_insn *.
6463         (get_branch_condition): Likewise.
6464         (condition_dominates_p): Likewise.
6465         (make_return_insns): Move declaration of local "pat" earlier, to
6466         after we've handled NONJUMP_INSN_P and non-sequences, using its
6467         methods to simplify the code and for type-safety.
6468         * rtl.h (find_constant_src): Strengthen param from const_rtx to
6469         const rtx_insn *.
6470         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
6471         (condjump_p): Strengthen param from const_rtx to
6472         const rtx_insn *.
6473         (any_condjump_p): Likewise.
6474         (any_uncondjump_p): Likewise.
6475         (pc_set): Likewise.
6476         (condjump_label): Likewise.
6477         (simplejump_p): Likewise.
6478         (returnjump_p): Likewise.
6479         (onlyjump_p): Likewise.
6480         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
6481         (invert_jump): Likewise.
6482         (condjump_in_parallel_p): Strengthen param from const_rtx to
6483         const rtx_insn *.
6484         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
6485         to const rtx_insn *.
6486         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
6487         to const rtx_insn *.
6488         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
6489
6490 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6491
6492         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
6493         above the conditional, and convert the check on GET_CODE to a
6494         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
6495         the conditional.  Simplify the conditional by using methods of
6496         "trial_seq".
6497
6498 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6499
6500         * haifa-sched.c (check_clobbered_conditions): Strengthen local
6501         "link" from rtx to rtx_insn_list *, and use its methods for
6502         clarity and type-safety.
6503         (toggle_cancelled_flags): Likewise.
6504         (restore_last_backtrack_point): Likewise.
6505         (queue_to_ready): Use insn method of "link" in one place.
6506         (schedule_block): Strengthen local "link" from rtx to
6507         rtx_insn_list *, and use its methods for clarity and type-safety.
6508
6509 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6510
6511         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
6512         param "insn" from const_rtx to const rtx_insn *.
6513         (sched_get_reverse_condition_uncached): Likewise.
6514         (sched_get_condition_with_rev): Likewise.
6515         (sched_has_condition_p): Likewise.
6516         (sched_insns_conditions_mutex_p): Likewise for both params.
6517         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
6518         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
6519         (setup_insn_reg_uses): Move local "list" to be more tightly
6520         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
6521         its methods for clarity and type-safety.
6522         (sched_analyze_1): Strengthen local "pending" from rtx to
6523         rtx_insn_list *, and local "pending_mem" from rtx to
6524         rtx_expr_list *.  Use methods of each for clarity and type-safety.
6525         (sched_analyze_2): Likewise.
6526         (sched_analyze_insn): Likewise.
6527
6528         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
6529         param from const_rtx to const rtx_insn *.
6530         (sched_insns_conditions_mutex_p): Likewise for both params.
6531         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
6532         param.
6533
6534         * system.h (CONST_CAST_RTX_INSN): New macro.
6535
6536 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6537
6538         * recog.c (peep2_attempt): Strengthen return type from rtx to
6539         rtx_insn *.
6540         (peep2_update_life): Likewise for params "last", "prev", removing
6541         a checked cast made redundant by this.
6542         (peephole2_optimize): Likewise for local "last".
6543
6544 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6545
6546         * basic-block.h (set_block_for_insn): Eliminate this macro in
6547         favor of...
6548         * rtl.h (set_block_for_insn): New inline function, imposing the
6549         requirement that the "insn" param is an rtx_insn *.
6550
6551 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6552
6553         * caller-save.c (setup_save_areas): Strengthen local "insn" from
6554         rtx to rtx_insn *.
6555         * final.c (get_call_reg_set_usage): Likewise for first param,
6556         eliminating a checked cast.
6557         * regs.h (get_call_reg_set_usage): Likewise for first param.
6558         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
6559         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
6560         cast, replacing references to "x" with "call_insn" where
6561         appropriate.
6562         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
6563         rtx_insn *, adding a checked cast.
6564
6565 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6566
6567         * output.h (final_scan_insn): Strengthen first param from rtx to
6568         rtx_insn *.
6569
6570         * final.c (final_scan_insn): Likewise, renaming it back from
6571         "uncast_insn" to "insn", eliminating the checked cast.
6572
6573         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
6574         "vec" with an rtx_sequence * "seq", taking a copy of
6575         "final_sequence", and using methods of "seq" for clarity, and for
6576         type-safety in the calls to final_scan_insn.
6577         * config/mips/mips.c (mips_output_conditional_branch): Use methods
6578         of "final_sequence" for clarity, and for type-safety in the call to
6579         final_scan_insn.
6580         * config/sh/sh.c (print_slot): Strengthen param from rtx to
6581         rtx_sequence * and rename from "insn" to "seq".
6582
6583 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6584
6585         * jump.c (delete_related_insns): Introduce a new local "table" by
6586         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
6587         get_labels method of "table" to simplify access to the labels in
6588         the jump table.
6589
6590 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6591
6592         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
6593         f_minmaxs, f_minmaxd types.
6594
6595 2014-09-05  Richard Biener  <rguenther@suse.de>
6596
6597         * cfgloop.c (mark_loop_for_removal): Record former header
6598         when ENABLE_CHECKING.
6599         * cfgloop.h (strut loop): Add former_header member when
6600         ENABLE_CHECKING.
6601         * loop-init.c (fix_loop_structure): Sanity check loops
6602         marked for removal if they re-appeared.
6603
6604 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6605
6606         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
6607         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
6608
6609         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
6610         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
6611         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
6612         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
6613         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
6614         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
6615         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
6616         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
6617         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
6618         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
6619         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
6620         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
6621         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
6622         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
6623         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
6624         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
6625         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
6626         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
6627         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
6628         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
6629         with int{32,16,8}_t.
6630
6631 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6632
6633         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
6634         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
6635         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
6636         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
6637         Remove temporary __asm__ and reimplement.
6638
6639 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6640
6641         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
6642         handling cmge, cmgt, cmeq, cmtst.
6643
6644         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
6645         cmlt, cmgeu, cmgtu, cmtst): Remove.
6646
6647         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
6648         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
6649         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
6650         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
6651
6652 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6653
6654         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
6655         TYPES_TST): Define.
6656         (aarch64_fold_builtin): Update pattern for cmtst.
6657
6658         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
6659         Declare.
6660
6661         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
6662
6663         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
6664         Switch operands, separate out more cases, refactor.
6665
6666         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
6667
6668         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
6669         argument; rename old version to...
6670         (aarch64_const_vec_all_same_in_range_p): ...this.
6671         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
6672
6673         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
6674
6675 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6676
6677         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
6678         Remove qualifier_const_pointer, update comment.
6679
6680 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6681
6682         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
6683
6684 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6685
6686         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
6687         varargs with pointer parameter.
6688         (aarch64_simd_expand_builtin): pass pointer into previous.
6689
6690 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6691
6692         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
6693         alus_ext.
6694
6695 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6696
6697         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
6698         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
6699         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
6700         Replace temporary asm with call to builtin.
6701         (vrbit_p8, vrbitq_p8): New functions.
6702
6703 2014-09-05  Richard Biener  <rguenther@suse.de>
6704
6705         * cfgloop.c (mark_loop_for_removal): New function.
6706         * cfgloop.h (mark_loop_for_removal): Declare.
6707         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
6708         (merge_blocks): Likewise.
6709         (duplicate_block): Likewise.
6710         * except.c (sjlj_emit_dispatch_table): Likewise.
6711         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
6712         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
6713         (thread_through_loop_header): Likewise.
6714
6715 2014-09-05  Richard Biener  <rguenther@suse.de>
6716
6717         PR middle-end/63148
6718         * fold-const.c (try_move_mult_to_index): Remove.
6719         (fold_binary_loc): Do not call it.
6720         * tree-data-ref.c (dr_analyze_indices): Strip conversions
6721         from the base object again.
6722
6723 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
6724
6725         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
6726         DImode.
6727
6728 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6729
6730         PR target/55701
6731         * config/arm/arm.md (setmem): New pattern.
6732         * config/arm/arm-protos.h (struct tune_params): New fields.
6733         (arm_gen_setmem): New prototype.
6734         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
6735         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
6736         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
6737         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
6738         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
6739         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
6740         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
6741         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
6742         (arm_const_inline_cost): New function.
6743         (arm_block_set_max_insns): New function.
6744         (arm_block_set_non_vect_profit_p): New function.
6745         (arm_block_set_vect_profit_p): New function.
6746         (arm_block_set_unaligned_vect): New function.
6747         (arm_block_set_aligned_vect): New function.
6748         (arm_block_set_unaligned_non_vect): New function.
6749         (arm_block_set_aligned_non_vect): New function.
6750         (arm_block_set_vect, arm_gen_setmem): New functions.
6751
6752 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6753
6754         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
6755
6756 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6757
6758         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
6759
6760 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6761
6762         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
6763         an rtx.
6764         * valtrack.h: Adjust.
6765
6766 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6767
6768         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
6769         an rtx.
6770         (emit_jump_insn_before_noloc): Likewise.
6771         (emit_call_insn_before_noloc): Likewise.
6772         (emit_label_before): Likewise.
6773         (emit_label_after): Likewise.
6774         (emit_insn_before_setloc): Likewise.
6775         (emit_jump_insn_before_setloc): Likewise.
6776         (emit_call_insn_before_setloc): Likewise.
6777         (emit_call_insn_before): Likewise.
6778         * rtl.h: Adjust.
6779
6780 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6781
6782         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
6783         rtx_insn *, eliminating a checked cast.
6784
6785 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6786
6787         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
6788         const_rtx to const rtx_insn *.
6789         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
6790         cast.
6791
6792 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6793
6794         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
6795         fixup_args_size_notes.
6796         * expr.c (fixup_args_size_notes): Strengthen first two params from
6797         rtx to rtx_insn *, eliminating a checked cast.
6798         * rtl.h (fixup_args_size_notes): Strengthen first two params from
6799         rtx to rtx_insn *.
6800
6801 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6802
6803         * haifa-sched.c (get_ready_element): Strengthen return type from
6804         rtx to rtx_insn *.
6805         * sched-int.h (get_ready_element): Likewise.
6806
6807 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
6808
6809         PR target/63165
6810         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
6811         indexed_or_indirect_operand instead of memory_operand.
6812         (floatsi<mode>2_lfiwzx_mem): Ditto.
6813
6814 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6815
6816         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
6817         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
6818         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
6819
6820 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6821
6822         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
6823         rtx.
6824         (get_last_nonnote_insn): Likewise.
6825         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
6826         * resource.c (find_basic_block): Likewise.
6827         * rtl.h: Adjust.
6828         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
6829         const_rtx.
6830
6831 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6832
6833         * genattr.c (main): Within the prototype of insn_latency written
6834         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
6835         * genautomata.c (output_internal_maximal_insn_latency_func):
6836         Within the implementation of insn_latency written out to
6837         insn-automata.c, strengthen both params from rtx to rtx_insn *,
6838         eliminating a pair of checked casts.
6839
6840 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6841
6842         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
6843         rtx_insn *.
6844
6845         * rtl.h (eh_returnjump_p): Likewise.
6846
6847 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
6848
6849         * Makefile.in (TAGS): Handle constructs in timevar.def.
6850
6851 2014-09-04  Guozhi Wei  <carrot@google.com>
6852
6853         PR target/62040
6854         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
6855         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
6856         it into two patterns.
6857         (move_lo_quad_internal_be_<mode>): Likewise.
6858
6859 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6860
6861         * doc/options.texi: Document that Var and Init are required if CPP
6862         is given.
6863         * optc-gen.awk: Require Var and Init if CPP is given.
6864         * common.opt (Wpedantic): Use Init.
6865
6866 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6867
6868         * config/rs6000/rs6000.c (special_handling_values): Add
6869         SH_EXTRACT.
6870         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
6871         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
6872         as swappable with special handling SH_EXTRACT.  Remove
6873         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
6874         optimization.
6875         (adjust_extract): New function.
6876         (handle_special_swappables): Add default to case statement; add
6877         case for SH_EXTRACT that calls adjust_extract.
6878         (dump_swap_insn_table): Handle SH_EXTRACT.
6879
6880 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6881
6882         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
6883         selection of 0th memory doubleword, regardless of endianness.
6884
6885 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6886
6887         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
6888
6889 2014-09-04  Alan Modra  <amodra@gmail.com>
6890
6891         PR debug/60655
6892         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
6893         can't be output.
6894
6895 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
6896
6897         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
6898         * targhooks.c (default_dwarf_frame_reg_mode): New function.
6899         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
6900         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
6901         * doc/tm.texi: Regenerate.
6902         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
6903         selection logic to default_dwarf_frame_reg_mode.
6904
6905 2014-09-03  Marek Polacek  <polacek@redhat.com>
6906
6907         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
6908         by -Wall.
6909
6910 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
6911
6912         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
6913         the automodified register.
6914
6915 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
6916
6917         * output.h (get_some_local_dynamic_name): Declare.
6918         * final.c (some_local_dynamic_name): New variable.
6919         (get_some_local_dynamic_name): New function.
6920         (final_end_function): Clear some_local_dynamic_name.
6921         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
6922         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6923         (print_operand): Report an error if '%&' is used inappropriately.
6924         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
6925         (get_some_local_dynamic_name_1): Delete.
6926         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
6927         (rs6000_get_some_local_dynamic_name): Delete.
6928         (rs6000_get_some_local_dynamic_name_1): Delete.
6929         (print_operand): Report an error if '%&' is used inappropriately.
6930         * config/s390/s390.c (machine_function): Remove some_ld_name.
6931         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6932         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
6933         * config/sparc/sparc.c: Include rtl-iter.h.
6934         (machine_function): Remove some_ld_name.
6935         (sparc_print_operand): Report an error if '%&' is used inappropriately.
6936         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6937
6938 2014-09-03  Richard Henderson  <rth@redhat.com>
6939
6940         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
6941         (aarch64_popwb_pair_reg): Remove.
6942         (aarch64_set_frame_expr): Remove.
6943         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
6944         the restore ops performed by the insns generated.
6945         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
6946         insn.  Perform the calls_eh_return addition later; do not attempt to
6947         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
6948         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
6949         special markup at all.  Load cfun->machine->frame.hard_fp_offset
6950         into a local variable.
6951         (aarch64_frame_pointer_required): Don't check calls_alloca.
6952
6953 2014-09-03  Richard Biener  <rguenther@suse.de>
6954
6955         * opts.c (default_options_optimization): Adjust
6956         max-combine-insns to 2 for -Og.
6957
6958 2014-09-03  Martin Jambor  <mjambor@suse.cz>
6959
6960         PR ipa/62015
6961         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
6962         pass-trough jump functions correctly.
6963
6964 2014-09-03  Martin Jambor  <mjambor@suse.cz>
6965
6966         PR ipa/61986
6967         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
6968         created replacements in ascending order of offsets.
6969         (known_aggs_to_agg_replacement_list): Likewise.
6970
6971 2014-09-03  Martin Liska  <mliska@suse.cz>
6972
6973         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
6974         is set to set uninitialized value for vnresult.
6975
6976 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6977
6978         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
6979         for TARGET_MUST_PASS_IN_STACK.
6980
6981 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6982
6983         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
6984         for TARGET_ARG_PARTIAL_BYTES.
6985
6986 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6987
6988         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
6989         instructions for varargs implementation.
6990         (nds32_expand_epilogue): Emit stack adjustment instructions for
6991         varargs implementation.
6992
6993 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6994
6995         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
6996         optimization detection.
6997
6998 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6999
7000         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7001         arguments.
7002         (nds32_function_arg_advance): Deal with nameless arguments.
7003         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7004         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7005         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7006
7007 2014-09-03  Richard Biener  <rguenther@suse.de>
7008
7009         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7010         (struct bb_bitmap_sets): Remove deferred member.
7011         (BB_DEFERRED): Remove.
7012         (defer_or_phi_translate_block): Remove.
7013         (compute_antic_aux): Remove deferring of blocks, assert
7014         proper iteration order.
7015         (compute_antic): Do not set BB_DEFERRED.
7016         (eliminate): Allocate el_avail of proper size initially.
7017
7018 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7019
7020         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7021         according to the value of crtl->args.pretend_args_size.
7022
7023 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7024
7025         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7026         varargs information.
7027
7028 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7029
7030         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7031         implementation for TARGET_SETUP_INCOMING_VARARGS.
7032         (nds32_strict_argument_naming): Refine comment.
7033         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7034         Define for future implementation.
7035
7036 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7037
7038         * config/i386/adxintrin.h (_subborrow_u32): New.
7039         (_addcarry_u32): Ditto.
7040         (_subborrow_u64): Ditto.
7041         (_addcarry_u64): Ditto.
7042         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7043         IX86_BUILTIN_SBB64.
7044         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7045         __builtin_ia32_sbb_u64
7046
7047 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7048
7049         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7050         GPR-specific stuff.
7051         (nds32_function_arg_advance): Likewise.
7052         (nds32_init_cumulative_args): Likewise.
7053         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7054         (NDS32_FIRST_GPR_REGNUM): Define.
7055         (NDS32_LAST_GPR_REGNUM): Define.
7056         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7057         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7058         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7059         (machine_function): Use GRP-specific stuff.
7060
7061 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7062
7063         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7064         (nds32_expand_epilogue): Likewise.
7065         (nds32_expand_prologue_v3push): Likewise.
7066         (nds32_expand_epilogue_v3pop): Likewise.
7067
7068 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7069
7070         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7071         v3push/v3pop for variadic function.
7072         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7073
7074 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7075
7076         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7077         Check rtx for varargs implementation.
7078         (nds32_output_stack_pop): Likewise.
7079         * config/nds32/nds32-protos.h: Have a rtx argument for
7080         nds32_output_stack_push and nds32_output_stack_pop.
7081         * config/nds32/nds32.md: Likewise.
7082
7083 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7084
7085         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7086         to check if FUNC is an interrupt service routine.
7087         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7088
7089 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7090
7091         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7092         arguments implementation.
7093
7094 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7095
7096         * config/nds32/nds32-predicates.c
7097         (nds32_valid_stack_push_pop): Rename to ...
7098         (nds32_valid_stack_push_pop_p): ... this.
7099         * config/nds32/nds32-protos.h: Likewise.
7100         * config/nds32/predicates.md: Likewise.
7101
7102 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7103
7104         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7105         (nds32_emit_stack_v3push): ... this.
7106         (nds32_gen_stack_v3pop): Rename to ...
7107         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7108         information.
7109
7110 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7111
7112         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7113         (nds32_emit_stack_push_multiple): ... this.
7114         (nds32_gen_stack_pop_multiple): Rename to ...
7115         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7116         information.
7117
7118 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7119
7120         PR target/61078
7121         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7122         and add a second splitter to handle the remaining cases.
7123
7124 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7125
7126         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7127
7128 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7129
7130         * cfgexpand.c (label_rtx_for_bb): Change type to
7131         hash_map<basic_block, rtx_code_label *> *.
7132         (expand_gimple_basic_block): Adjust.
7133         (pass_expand::execute): Likewise.
7134
7135 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7136
7137         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7138         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7139         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7140         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7141         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7142         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7143         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7144         of rtx.
7145
7146 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7147
7148         * alloc-pool.c: Include coretypes.h.
7149         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7150         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7151         hash_set instead of htab.
7152         * ggc-page.c (in_gc): New variable.
7153         (ggc_free): Do nothing if a collection is taking place.
7154         (ggc_collect): Set in_gc appropriately.
7155         * ggc.h (gt_ggc_mx(const char *)): New function.
7156         (gt_pch_nx(const char *)): Likewise.
7157         (gt_ggc_mx(int)): Likewise.
7158         (gt_pch_nx(int)): Likewise.
7159         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7160         (hash_map::hash_entry::pch_nx): Likewise.
7161         (hash_map::hash_entry::pch_nx_helper): Likewise.
7162 (hash_map::hash_map): Adjust.
7163 (hash_map::create_ggc): New function.
7164 (gt_ggc_mx): Likewise.
7165 (gt_pch_nx): Likewise.
7166         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7167 (default_hashset_traits::pch_nx): Likewise.
7168 (hash_set::hash_entry::ggc_mx): Likewise.
7169 (hash_set::hash_entry::pch_nx): Likewise.
7170 (hash_set::hash_entry::pch_nx_helper): Likewise.
7171 (hash_set::hash_set): Adjust.
7172 (hash_set::create_ggc): New function.
7173 (hash_set::elements): Likewise.
7174 (gt_ggc_mx): Likewise.
7175 (gt_pch_nx): Likewise.
7176         * hash-table.h (hash_table::hash_table): Adjust.
7177 (hash_table::m_ggc): New member.
7178         (hash_table::~hash_table): Adjust.
7179         (hash_table::expand): Likewise.
7180         (hash_table::empty): Likewise.
7181 (gt_ggc_mx): New function.
7182         (hashtab_entry_note_pointers): Likewise.
7183 (gt_pch_nx): Likewise.
7184
7185 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7186
7187         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7188         built-in definition.
7189         (XVCVUXDDP_SCALE): Likewise.
7190         (XVCVDPSXDS_SCALE): Likewise.
7191         (XVCVDPUXDS_SCALE): Likewise.
7192         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7193         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7194         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7195         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7196         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7197         prototype.
7198         * config/rs6000/rs6000.c (real.h): New include.
7199         (rs6000_scale_v2df): New function.
7200         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7201         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7202         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7203         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7204         (vsx_xvcvsxddp_scale): New define_expand.
7205         (vsx_xvcvsxddp): New define_insn.
7206         (vsx_xvcvuxddp_scale): New define_expand.
7207         (vsx_xvcvuxddp): New define_insn.
7208         (vsx_xvcvdpsxds_scale): New define_expand.
7209         (vsx_xvcvdpsxds): New define_insn.
7210         (vsx_xvcvdpuxds_scale): New define_expand.
7211         (vsx_xvcvdpuxds): New define_insn.
7212         * doc/extend.texi (vec_ctf): Add new prototypes.
7213         (vec_cts): Likewise.
7214         (vec_ctu): Likewise.
7215         (vec_splat): Likewise.
7216         (vec_div): Likewise.
7217         (vec_mul): Likewise.
7218
7219 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7220
7221         PR target/62275
7222         * config/arm/neon.md
7223         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7224         <v_cmp_result>): New pattern.
7225         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7226         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7227         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7228         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7229         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7230         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7231
7232 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7233
7234         PR target/62275
7235         * config/arm/iterators.md (FIXUORS): New code iterator.
7236         (VCVT): New int iterator.
7237         (su_optab): New code attribute.
7238         (su): Likewise.
7239         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7240
7241 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7242
7243         * config/aarch64/predicates.md (aarch64_comparison_operation):
7244         New special predicate.
7245         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7246         aarch64_comparison_operation instead of matching an operator.
7247         Update operand numbers.
7248         (csinc3<mode>_insn): Likewise.
7249         (*csinv3<mode>_insn): Likewise.
7250         (*csneg3<mode>_insn): Likewise.
7251         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7252         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7253         Return -1 instead of aborting on invalid condition codes.
7254         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7255         to assert that the returned condition code is valid.
7256         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7257
7258 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7259
7260         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7261         tree.def, and gimple.def
7262
7263 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7264             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7265             Igor Zamyatin  <igor.zamyatin@intel.com>
7266
7267         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7268         (__cilkrts_cilk_for_64): Likewise.
7269         * cilk-common.c (declare_cilk_for_builtin): New function.
7270         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7271         __cilkrts_cilk_for_64 bultins.
7272         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7273         CILK_TI_F_LOOP_64.
7274         (cilk_for_32_fndecl): New define.
7275         (cilk_for_64_fndecl): Likewise.
7276         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7277         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7278         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7279         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7280         GF_OMP_FOR_COMBINED_INTO.
7281         * gimplify.c (gimplify_scan_omp_clauses): Added
7282         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7283         (gimplify_adjust_omp_clauses): Ditto.
7284         (gimplify_omp_for): Added CILK_FOR case.
7285         (gimplify_expr): Ditto.
7286         * omp-low.c: Include cilk.h.
7287         (extract_omp_for_data): Set appropriate kind for
7288         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7289         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7290         (create_omp_child_function_name): Added second argument to handle
7291         cilk_for case.
7292         (cilk_for_check_loop_diff_type): New function.
7293         (expand_cilk_for_call): Likewise.
7294         (expand_cilk_for): Likewise.
7295         (create_omp_child_function): Set cilk_for_count; handle the cases when
7296         it is true; call create_omp_child_function_name with second argument.
7297         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7298         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7299         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7300         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7301         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7302         (convert_local_omp_clauses): Ditto.
7303         * tree-pretty-print.c (dump_omp_clause): Added
7304         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7305         (dump_generic_node): Added CILK_FOR case.
7306         * tree.c (omp_clause_num_ops): New element
7307         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7308         (omp_clause_code_name): New element _Cilk_for_count_.
7309         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7310         * tree.def: Add tree code for CILK_FOR.
7311
7312 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7313
7314         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7315         (ppc403-compare): Add "exts with dot" case.
7316         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7317         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7318         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7319         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7320         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7321         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7322         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7323         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7324         cell-cmp-microcoded): Similarly.
7325         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7326         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7327         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7328         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7329         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7330         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7331         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7332         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7333         (power6-compare): Add "exts with dot" case.
7334         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7335         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7336         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7337
7338         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7339         if avoiding Cell microcode.
7340         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7341         (is_cracked_insn): Ditto.
7342         (insn_must_be_first_in_group): Ditto.
7343         * config/rs6000/rs6000.md (dot): Adjust comment.
7344         (cell_micro): Handle exts+dot.
7345         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7346         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7347         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7348         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7349         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7350         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7351         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7352
7353 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7354
7355         * config/rs6000/rs6000.md (QHSI): Delete.
7356         (EXTQI, EXTHI, EXTSI): New mode iterators.
7357         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7358         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7359         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7360         9 anonymous instructions, and 8 splitters): Delete.
7361         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7362         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7363         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7364         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7365         *zero_extendsi<mode>2_dot2): New.
7366
7367 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7368
7369         * config/rs6000/rs6000.md (any_extend): New code iterator.
7370         (u, su): New code attributes.
7371         (dmode, DMODE): New mode attributes.
7372         (<su>mul<mode>3_highpart): New.
7373         (*<su>mul<mode>3_highpart): New.
7374         (<su>mulsi3_highpart_le): New.
7375         (<su>muldi3_highpart_le): New.
7376         (<su>mulsi3_highpart_64): New.
7377         (<u>mul<mode><dmode>3): New.
7378         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7379         splitters): Delete.
7380         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7381         splitters): Delete.
7382
7383 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7384
7385         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7386         *mulsi3_internal2, and two splitters): Delete.
7387         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7388         Delete.
7389         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7390
7391 2014-09-02  Richard Biener  <rguenther@suse.de>
7392
7393         PR tree-optimization/62695
7394         * tree-ssa-structalias.c (find_func_clobbers): Add missing
7395         vector truncate.
7396
7397 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
7398
7399         PR target/62312
7400         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
7401
7402 2014-09-01  Andi Kleen  <ak@linux.intel.com>
7403
7404         * file-find.c (add_prefix_begin): Add.
7405         (do_add_prefix): Rename from add_prefix with first argument.
7406         (add_prefix): Add new wrapper.
7407         * file-find.h (add_prefix_begin): Add.
7408         * gcc-ar.c (main): Support -B option.
7409
7410 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
7411
7412         * genemit.c: Include dumpfile.h.
7413         (gen_split): Print name of splitter function to dump file.
7414
7415 2014-09-01  Richard Biener  <rguenther@suse.de>
7416
7417         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
7418         Use stack auto_vecs for constraint expressions.
7419         (find_func_aliases_for_call): Likewise.
7420         (find_func_aliases): Likewise.
7421         (find_func_clobbers): Likewise.
7422
7423 2014-09-01  Richard Biener  <rguenther@suse.de>
7424
7425         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
7426         operands vector in most cases.  Remove redundant code.
7427
7428 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7429
7430         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
7431         $WIND_BASE instead of designating a harcoded arbitrary home dir.
7432         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
7433
7434 2014-09-01  Richard Biener  <rguenther@suse.de>
7435
7436         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
7437         copy_reference_ops_from_call, vn_nary_op_compute_hash,
7438         vn_reference_compute_hash, vn_reference_insert): Remove.
7439         (vn_reference_lookup_call): New function.
7440         * tree-ssa-sccvn.c (vn_reference_compute_hash,
7441         copy_reference_ops_from_ref, copy_reference_ops_from_call,
7442         vn_reference_insert, vn_nary_op_compute_hash): Make static.
7443         (create_reference_ops_from_call): Remove.
7444         (vn_reference_lookup_3): Properly update shared_lookup_references.
7445         (vn_reference_lookup_pieces): Assert that we updated
7446         shared_lookup_references properly.
7447         (vn_reference_lookup): Likewise.
7448         (vn_reference_lookup_call): New function.
7449         (visit_reference_op_call): Use it.  Avoid re-building the
7450         reference ops.
7451         (visit_reference_op_load): Remove redundant lookup.
7452         (visit_reference_op_store): Perform special tail-merging work
7453         only when possibly doing tail-merging.
7454         (visit_use): Likewise.
7455         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
7456
7457 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7458
7459         PR target/62025
7460         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
7461         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
7462         (find_inc): Revert 2014-08-13 change.
7463
7464 2014-09-01  Marek Polacek  <polacek@redhat.com>
7465
7466         PR middle-end/61903
7467         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
7468         Change the type of V to unsigned HOST_WIDE_INT.
7469
7470 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7471
7472         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
7473         the size of byte markers.
7474         (do_shift_rotate): Fix confusion between host, target and marker byte
7475         size.
7476         (verify_symbolic_number_p): Likewise.
7477         (find_bswap_or_nop_1): Likewise.
7478         (find_bswap_or_nop): Likewise.
7479
7480 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7481
7482         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
7483         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
7484
7485 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7486
7487         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
7488         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
7489         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
7490
7491 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
7492
7493         PR sanitizer/61897
7494         PR sanitizer/62140
7495         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
7496         (build_check_stmt): Likewise.
7497         (instrument_strlen_call): Likewise.
7498         (asan_expand_check_ifn): Likewise and fix types.
7499         (maybe_cast_to_ptrmode): New function.
7500
7501 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7502
7503         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
7504
7505 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
7506
7507         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
7508
7509 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
7510
7511         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
7512         prefix to function labels when generating fast indirect calls.
7513
7514 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
7515
7516         PR bootstrap/62304
7517
7518         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
7519         param back from rtx_insn * to rtx.  Rename param from "label" to
7520         "label_or_return", reintroducing "label" as an rtx_insn * after
7521         we've ensured it's not a RETURN.
7522         (first_active_target_insn): Likewise for return type and param;
7523         add a checked cast to rtx_insn * once we've ensured "insn" is not
7524         a RETURN.
7525         (steal_delay_list_from_target): Convert param "pnew_thread" back
7526         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
7527         with JUMP_LABEL.
7528         (own_thread_p): Convert param "thread" back from an rtx_insn * to
7529         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
7530         cast once we've established we're not dealing with a RETURN,
7531         renaming subsequent uses of "thread" to "thread_insn".
7532         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
7533         to JUMP_LABEL.
7534         (follow_jumps): Convert return type and param "label" from
7535         rtx_insn * back to rtx.  Move initialization of "value" to after
7536         the handling for ANY_RETURN_P, adding a checked cast there to
7537         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
7538         rename to "this_label_or_return", reintroducing "this_label" as
7539         an rtx_insn * once we've handled the case where it could be an
7540         ANY_RETURN_P.
7541         (fill_slots_from_thread): Rename param "thread" to
7542         "thread_or_return", converting from an rtx_insn * back to an rtx.
7543         Reintroduce name "thread" as an rtx_insn * local with a checked
7544         cast once we've handled the case of it being an ANY_RETURN_P.
7545         Convert local "new_thread" from an rtx_insn * back to an rtx.
7546         Add a checked cast when assigning to "trial" from "new_thread".
7547         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
7548         checked cast to rtx_insn * from "new_thread" when invoking
7549         get_label_before.
7550         (fill_eager_delay_slots): Convert locals "target_label",
7551         "insn_at_target" from rtx_insn * back to rtx.
7552         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
7553         (relax_delay_slots): Convert locals "trial", "target_label" from
7554         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
7555         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
7556         invoking update_block.
7557         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
7558         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
7559
7560         * resource.h (mark_target_live_regs): Undo erroneous conversion
7561         of second param of r214693, converting it back from rtx_insn * to
7562         rtx, since it could be a RETURN.
7563
7564         * resource.c (find_dead_or_set_registers): Similarly, convert
7565         param "jump_target" back from an rtx_insn ** to an rtx *, as we
7566         could be writing back a RETURN.  Rename local rtx_insn * "next" to
7567         "next_insn", and introduce "lab_or_return" as a local rtx,
7568         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
7569         (mark_target_live_regs): Undo erroneous conversion
7570         of second param of r214693, converting it back from rtx_insn * to
7571         rtx, since it could be a RETURN.  Rename it from "target" to
7572         "target_maybe_return", reintroducing the name "target" as a local
7573         rtx_insn * with a checked cast, after we've handled the case of
7574         ANY_RETURN_P.
7575
7576 2014-08-29  DJ Delorie  <dj@redhat.com>
7577
7578         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
7579         pointer size up to a power of two.
7580         * defaults.h (DWARF2_ADDR_SIZE): Round up.
7581         (POINTER_SIZE_UNITS): New, rounded up value.
7582         * dwarf2asm.c (size_of_encoded_value): Use it.
7583         (dw2_output_indirect_constant_1): Likewise.
7584         * expmed.c (init_expmed_one_conv): We now know the sizes of
7585         partial int modes.
7586         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
7587         * optabs.c (expand_float): Use precision, not size.
7588         (expand_fix): Likewise.
7589         * simplify-rtx (simplify_unary_operation_1): Likewise.
7590         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7591         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
7592         (default_assemble_integer) Likewise.
7593         (dump_tm_clone_pairs): Likewise.
7594         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
7595         * var-tracking.c (adjust_mems): Allow partial-int modes also.
7596         (prepare_call_arguments): Likewise.
7597         * stor-layout.c (finalize_type_size): Preserve precision.
7598         (layout_type): Use precision, not size.
7599
7600         * expr.c (convert_move): If the target has an explicit converter,
7601         use it.
7602
7603 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7604
7605         * gdbinit.in: Skip various inline functions in rtl.h when
7606         stepping.
7607
7608 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
7609
7610         PR bootstrap/62301
7611         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
7612
7613 2014-08-29  Richard Biener  <rguenther@suse.de>
7614
7615         PR tree-optimization/62291
7616         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
7617         exactly the vector size needed and use quick_push.
7618         (phi_translate_1): Adjust comment.
7619         (valid_in_sets): Remove block argument and remove pointless
7620         checking of NAMEs.
7621         (dependent_clean): Adjust for removal of block argument.
7622         (clean): Likewise.
7623         (compute_antic_aux): Likewise.
7624         (compute_partial_antic_aux): Likewise.
7625
7626 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7627             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7628             Anna Tikhonova  <anna.tikhonova@intel.com>
7629             Ilya Tocar  <ilya.tocar@intel.com>
7630             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7631             Ilya Verbin  <ilya.verbin@intel.com>
7632             Kirill Yukhin  <kirill.yukhin@intel.com>
7633             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7634
7635         * config/i386/sse.md
7636         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
7637         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
7638         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
7639         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
7640
7641 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7642             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7643             Anna Tikhonova  <anna.tikhonova@intel.com>
7644             Ilya Tocar  <ilya.tocar@intel.com>
7645             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7646             Ilya Verbin  <ilya.verbin@intel.com>
7647             Kirill Yukhin  <kirill.yukhin@intel.com>
7648             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7649
7650         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
7651         * config/i386/sse.md
7652         (define_mode_iterator VI4_128_8_256): New.
7653         (define_mode_iterator VI2_128_4_256): Ditto.
7654         (define_mode_iterator PMOV_DST_MODE): Rename into
7655         (define_mode_iterator PMOV_DST_MODE_1): this.
7656         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
7657         Use PMOV_DST_MODE_1 mode iterator.
7658         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7659         Ditto.
7660         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7661         Ditto.
7662         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
7663         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
7664         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
7665         (define_mode_iterator PMOV_DST_MODE_2): New.
7666         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
7667         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
7668         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
7669         Ditto.
7670         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
7671         (define_mode_attr pmov_dst_3): Ditto.
7672         (define_mode_attr pmov_dst_zeroed_3): Ditto.
7673         (define_mode_attr pmov_suff_3): Ditto.
7674         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
7675         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
7676         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
7677         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
7678         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
7679         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
7680         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
7681         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
7682         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
7683         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
7684         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
7685         (define_mode_attr pmov_dst_4): Ditto.
7686         (define_mode_attr pmov_dst_zeroed_4): Ditto.
7687         (define_mode_attr pmov_suff_4): Ditto.
7688         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
7689         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
7690         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
7691         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
7692         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
7693         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
7694         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
7695         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
7696         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
7697         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
7698         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
7699
7700 2014-08-29  Richard Biener  <rguenther@suse.de>
7701
7702         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
7703         NON_LVALUE_EXPR in gimple.
7704
7705 2014-08-29  Richard Biener  <rguenther@suse.de>
7706
7707         PR middle-end/62292
7708         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
7709         from previous refactoring.
7710         (gimple_fold_builtin_strncpy): Likewise.
7711
7712 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7713
7714         PR bootstrap/62300
7715         * function.c (assign_parm_setup_reg): Remove erroneous checked
7716         cast to rtx_insn * on result of gen_extend_insn in favor of
7717         introducing a new local rtx "pat".
7718
7719 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7720
7721         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
7722         to silence warning.
7723         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
7724
7725 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7726
7727         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
7728         (next_insn): Likewise.
7729         * emit-rtl.c (next_insn): Likewise.
7730         (previous_insn): Likewise.
7731         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
7732         "insn" and "next" from rtx to rtx_insn *.
7733         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
7734         "insn", "insn1", "vliw_start",  "prologue_end_note",
7735         "last_insn_in_packet".
7736
7737 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7738
7739         * shrink-wrap.h (active_insn_between): Strengthen both params from
7740         rtx to rtx_insn *.
7741         * function.c (active_insn_between): Likewise.
7742
7743 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7744
7745         * genattr.c (main): When writing out insn-attr.h, strengthen param
7746         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
7747         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
7748         writing out the definition of dfa_clear_single_insn_cache to the
7749         generated insn-automata.c
7750
7751 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7752
7753         * resource.h (clear_hashed_info_for_insn): Strengthen param from
7754         rtx to rtx_insn *.
7755         (incr_ticks_for_insn): Likewise.
7756         (init_resource_info): Likewise.
7757
7758         * resource.c (init_resource_info): Likewise.
7759         (clear_hashed_info_for_insn): Likewise.
7760         (incr_ticks_for_insn): Likewise.
7761
7762         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
7763         rtx to rtx_insn *.
7764         (steal_delay_list_from_target): Use methods of "seq".
7765         (try_merge_delay_insns): Use methods of "merged_insns".
7766         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
7767         (reorg_redirect_jump): Likewise for param "jump".
7768
7769 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7770
7771         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
7772         rtx to rtx_insn *.
7773         * config/s390/s390.c (s390_split_branches): Eliminate top-level
7774         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
7775         "set_insn".
7776         (s390_mainpool_finish): In three places, split out a local rtx
7777         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
7778         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
7779         and split another local rtx "insn" out into rtx "pat" and
7780         rtx_insn * "insn".
7781         * config/sh/sh.c (output_branchy_insn): Rather than working
7782         directly on operands[9], introduce local rtx_code_label *
7783         variables named "lab" in two places, working on them, and then
7784         assigning them to operands[9], so that the intervening operations
7785         are known by the type system to be on insns.
7786
7787 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7788
7789         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
7790         const rtx_insn *.
7791
7792         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
7793         in invocation of INSN_HAS_LOCATION.
7794
7795 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7796
7797         * config/rs6000/altivec.h (vec_xl): New #define.
7798         (vec_xst): Likewise.
7799         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
7800         (XXSPLTD_V2DI): Likewise.
7801         (DIV_V2DI): Likewise.
7802         (UDIV_V2DI): Likewise.
7803         (MUL_V2DI): Likewise.
7804         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7805         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
7806         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
7807         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
7808         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
7809         (UNSPEC_VSX_DIVSD): Likewise.
7810         (UNSPEC_VSX_DIVUD): Likewise.
7811         (UNSPEC_VSX_MULSD): Likewise.
7812         (vsx_mul_v2di): New insn-and-split.
7813         (vsx_div_v2di): Likewise.
7814         (vsx_udiv_v2di): Likewise.
7815         (vsx_xxspltd_<mode>): New insn.
7816
7817 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7818
7819         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
7820         NEXT_INSN.
7821         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
7822         (NEXT_INSN): Likewise.
7823         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
7824         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
7825         const rtx_insn *.
7826         (no_labels_between_p): Likewise for both params.
7827
7828         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
7829         cast when using NEXT_INSN on operands[2].
7830         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
7831         "insn" from rtx to rtx_insn *, adding a checked cast.
7832         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
7833         rtx_insn *.
7834         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
7835         for third param.
7836         (arc_text_label): Likewise for param "insn".
7837         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
7838         "insn".
7839         (arc_ccfsm_record_condition): Likewise for param "jump".
7840         (arc_text_label): Likewise for local "label".
7841         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
7842         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
7843         a method for typesafety.  Add a checked cast.
7844         * config/arc/constraints.md (Clb): Add a checked cast when getting
7845         the CODE_LABEL from a LABEL_REF.
7846         * config/arm/arm.c (require_pic_register): Strengthen locals
7847         "seq", "insn" from rtx to rtx_insn *.
7848         (create_fix_barrier): Likewise for locals "selected", "next".
7849         (thumb1_reorg): Likewise for locals "prev", "insn".
7850         (arm_expand_prologue): Likewise for local "last".
7851         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
7852         operands[0].
7853         (thumb2_output_casesi): Likewise for operands[2].
7854         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
7855         strengthen local "insn" from rtx to rtx_insn *.
7856         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
7857         type and param "insn".
7858         (find_prev_insn_start): Likewise.
7859         (hwloop_optimize): Likewise for locals "insn", "last_insn",
7860         "prev".
7861         (gen_one_bundle): Likewise for loal "t".
7862         (find_load): Likewise for param "insn".
7863         (workaround_speculation): Likewise for locals "insn", "next",
7864         "target", "next_tgt".
7865         * config/c6x/c6x.c (assign_reservations): Likewise for both params
7866         and for locals "insn", "within", "last".
7867         (count_unit_reqs): Likewise for params "head", "tail" and local
7868         "insn".
7869         (try_rename_operands): Likewise for params "head", "tail".
7870         (reshuffle_units): Likewise for locals "head", "tail", "insn".
7871         (struct c6x_sched_context): Likewise for fields
7872         "last_scheduled_insn", "last_scheduled_iter0".
7873         (init_sched_state): Replace NULL_RTX with NULL.
7874         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
7875         to rtx_insn *.
7876         (undo_split_delayed_nonbranch): Likewise for param and for local
7877         "prev".
7878         (conditionalize_after_sched): Likewise for local "insn".
7879         (bb_earliest_end_cycle): Likewise.
7880         (filter_insns_above): Likewise for locals "insn", "next".
7881         (hwloop_optimize): Remove redundant checked cast.
7882         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
7883         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
7884         NULL_RTX with NULL.
7885         (cris_simple_epilogue): Likewise.
7886         (cris_expand_prologue): Likewise.
7887         (cris_expand_epilogue): Likewise.
7888         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
7889         local "insn" from rtx to rtx_insn *.
7890         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
7891         (struct frv_packet_group): Likewise for the elements within array
7892         fields "insns", "sorted", and for field "nop".
7893         (frv_packet): Likewise for the elements within array field
7894         "insns".
7895         (frv_add_insn_to_packet): Likewise for param "insn".
7896         (frv_insert_nop_in_packet): Likewise for param "insn" and local
7897         "last".
7898         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
7899         (frv_sort_insn_group_1): Likewise for local "insn".
7900         (frv_optimize_membar_local): Likewise.
7901         (frv_align_label): Likewise for locals "x", "last", "barrier",
7902         "label".
7903         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
7904         local.
7905         (ia64_sched_init): Likewise for local "insn".
7906         (scheduled_good_insn): Likewise for param "last".
7907         (struct _ia64_sched_context): Likewise for field
7908         "last_scheduled_insn".
7909         (ia64_init_sched_context): Replace NULL_RTX with NULL.
7910         (struct bundle_state): Likewise for field "insn".
7911         (issue_nops_and_insn): Likewise for param "insn".
7912         (get_next_important_insn): Likewise for return type and both
7913         params.
7914         (ia64_add_bundle_selector_before): Likewise for param "insn".
7915         (bundling): Likewise for params "prev_head_insn", "tail" and
7916         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
7917         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
7918         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
7919         Strengthen final param from rtx to rtx_insn *.
7920         (iq2000_move_1word): Likewise for second param.
7921         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
7922         param "cur_insn" and local "next_insn".
7923         (iq2000_move_1word): Likewise for param "insn".
7924         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
7925         casts when using NEXT_INSN on operands[1].
7926         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
7927         "insn" from rtx to rtx_insn *.
7928         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
7929         "x", introducing local rtx_insn * "insn" for when working with the
7930         CODE_LABEL of the LABEL_REF.
7931         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
7932         rtx_insn *.
7933         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
7934         param.
7935         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
7936         type.
7937         (conditionalize_block): Likewise for return type and param.
7938         (mcore_is_dead): Likewise for param "first" and local "insn".
7939         (emit_new_cond_insn): Likewise for return type.
7940         (conditionalize_block): Likewise for return type, param, and
7941         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
7942         "newinsn".
7943         (conditionalize_optimization): Likewise for local "insn".
7944         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
7945         using NEXT_INSN.
7946         * config/microblaze/microblaze.md: Add checked casts when using
7947         NEXT_INSN.
7948         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
7949         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
7950         and rtx_insn * "insn".
7951         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
7952         checked cast when using NEXT_INSN on operands[2].
7953         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
7954         local "insn" from rtx to rtx_insn *.
7955         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
7956         Likewise.
7957         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
7958         Add a checked cast when using NEXT_INSN on operands[1].
7959         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
7960         rtx to rtx_insn *.
7961         (pa_output_cbranch): Likewise for final param.
7962         (pa_output_lbranch): Likewise for second param.
7963         (pa_output_bb): Likewise for third param.
7964         (pa_output_bvb): Likewise.
7965         (pa_output_dbra): Likewise for second param.
7966         (pa_output_movb): Likewise.
7967         (pa_output_parallel_movb): Likewise.
7968         (pa_output_parallel_addb): Likewise.
7969         (pa_output_millicode_call): Likewise for first param.
7970         (pa_output_mul_insn): Likewise for second param.
7971         (pa_output_div_insn): Likewise for third param.
7972         (pa_output_mod_insn): Likewise for second param.
7973         (pa_jump_in_call_delay): Likewise for param.
7974         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
7975         (pa_output_div_insn): Likewise.
7976         (pa_output_mod_insn): Likewise.
7977         (pa_output_cbranch): Likewise.
7978         (pa_output_lbranch): Likewise.
7979         (pa_output_bb): Likewise.
7980         (pa_output_bvb): Likewise.
7981         (pa_output_dbra): Likewise.
7982         (pa_output_movb): Likewise.
7983         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
7984         to simplify and for typesafety.
7985         (pa_output_call): Use method of rtx_sequence *.
7986         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
7987         (pa_jump_in_call_delay): Likewise.
7988         (pa_output_parallel_movb): Likewise.
7989         (pa_output_parallel_addb): Likewise.
7990         (pa_following_call): Likewise.
7991         (pa_combine_instructions): Likewise for locals "anchor",
7992         "floater".
7993         (pa_can_combine_p): Likewise for params "anchor", "floater" and
7994         locals "start", "end".
7995         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
7996         param "insn" and local "local_insn".
7997         (picochip_final_prescan_insn): Likewise for local "local_insn".
7998         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
7999         local "insn".
8000         (uses_TOC): Likewise.
8001         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8002         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8003         splitting out to more tightly-scoped locals, 3 as rtx and one as
8004         rtx_insn *.
8005         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8006         to rtx_insn *.
8007         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8008         where needed.
8009         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8010         to rtx_insn *.
8011         (fixup_addr_diff_vecs): Likewise.
8012         (reg_unused_after): Likewise for param 2.
8013         (sh_can_redirect_branch): Likewise for both params.
8014         (check_use_sfunc_addr): Likewise for param 1.
8015         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8016         (find_barrier): Likewise for local "last_got".
8017         (gen_block_redirect): Likewise for return type, param "jump" and
8018         locals "prev", "scan", "next", "insn".
8019         (struct far_branch): Likewise for fields "near_label",
8020         "insert_place", "far_label".
8021         (gen_far_branch): Likewise for local "jump".
8022         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8023         "insn", "prev".
8024         (barrier_align): Likewise for param and for locals "prev", "x".
8025         Introduce local rtx_sequence * "prev_seq" and use insn method for
8026         typesafety and clarity.
8027         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8028         (get_dest_uid): Likewise for local "dest".
8029         (split_branches): Likewise for locals "next", "beyond", "label",
8030         "block", "far_label".  Add checked casts when assigning to
8031         bp->far_label and "far_label".
8032         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8033         (sequence_insn_p): Likewise.
8034         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8035         more loop-scoped rtx "insn" when walking LABEL_REFS.
8036         (sh_can_redirect_branch): Strengthen both params from rtx to
8037         rtx_insn *.
8038         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8039         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8040         for clarity and typesafety.
8041         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8042         "insn" from rtx to rtx_insn *.
8043         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8044         when using NEXT_INSN on the CODE_LABEL in operands[2].
8045         (define_insn "casesi_worker_2"): Likewise.
8046         (define_insn "casesi_shift_media"): Likewise.
8047         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8048         operands[3].
8049         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8050         Strengthen field "insn" from rtx to rtx_insn *.
8051         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8052         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8053         param "start_insn" and local "start_insn".
8054         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8055         field "insn".
8056         (find_set_of_reg_bb): Likewise for param "insn".
8057         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8058         (trace_reg_uses): Likewise for param "start_insn".
8059         (sh_treg_combine::cbranch_trace): Likewise for field
8060         "cbranch_insn".
8061         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8062         param "insn".
8063         (sh_treg_combine::record_set_of_reg): Likewise for param
8064         "start_insn" and local "i".
8065         (sh_treg_combine::can_remove_cstore): Likewise for local
8066         "prev_insn".
8067         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8068         "insn".
8069         (sh_treg_combine::execute): Likewise for local "i".
8070         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8071         param.
8072         (sparc_check_64): Likewise for second param.
8073         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8074         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8075         dyn_cast, using its insn method for typesafety and clarity.
8076         (empty_delay_slot): Strengthen param "insn" from rtx to
8077         rtx_insn *.
8078         (set_extends): Likewise.
8079         (sparc_check_64): Likewise.
8080         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8081         for locals "seq", "last_insn".
8082         (combine_bnp): Likewise for param "insn".
8083         (xstormy16_reorg): Likewise for local "insn".
8084         * config/v850/v850.c (substitute_ep_register): Likewise for params
8085         "first_insn", "last_insn" and local "insn".
8086         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8087         elements of "regs" array, and local "insn".
8088         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8089         * final.c (final_sequence): Strengthen this global from rtx to
8090         rtx_sequence *.
8091         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8092         rtx_insn *.
8093         (final_scan_insn): Update assignment to "final_sequence" to be
8094         from "seq", the cast version of "body", for type-safety.
8095         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8096         "insns" from rtx to rtx_insn *.
8097         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8098         * genattr.c (main): When writing out generated insn-attr.h,
8099         strengthen params 1 and 3 of eligible_for_delay,
8100         eligible_for_annul_true, eligible_for_annul_false from rtx to
8101         rtx_insn *.
8102         * genattrtab.c (write_eligible_delay): Likewise when writing out
8103         generated insn-attrtab.c; also local "insn" the generated
8104         functions.
8105         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8106         to rtx_insn *.
8107         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8108         "start_label" from rtx to rtx_insn *.
8109         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8110         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8111         "insns" and local "insn".
8112         (validate_equiv_mem): Likewise for param "start" and local "insn".
8113         (memref_used_between_p): Likewise for params "start", "end" and
8114         local "insn".
8115         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8116         final param.
8117         * loop-doloop.c (doloop_optimize): Within region guarded by
8118         INSN_P (doloop_pat), introduce a new local rtx_insn *
8119         "doloop_insn" via a checked cast, and use it for typesafety,
8120         eventually writing the value back into doloop_pat.
8121         * output.h (final_sequence): Strengthen this global from rtx to
8122         rtx_sequence *.
8123         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8124         reintroducing "insn" as an rtx_insn * via a checked cast.
8125         Strengthen param "attempt" and local "new_insn"from rtx to
8126         rtx_insn *.
8127         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8128         to rtx_insn *.
8129         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8130         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8131         "p" in favor of more tightly-scoped replacements, sometimes rtx
8132         and sometimes rtx_insn *, as appropriate.
8133         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8134         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8135         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8136         local "trial" from rtx to rtx_insn *.
8137         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8138         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8139         rtx_sequence * and use methods for clarity and typesafety.
8140         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8141         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8142         rtx_insn_list * and use its methods for clarity and typesafety.
8143         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8144         to rtx_insn *.
8145         (steal_delay_list_from_fallthrough): Likewise.
8146         (try_merge_delay_insns): Likewise for param "thread" and locals
8147         "trial", "next_trial", "delay_insn".
8148         (redundant_insn): Likewise for param "target" and local "trial".
8149         (own_thread_p): Likewise for param "thread" and locals
8150         "active_insn", "insn".
8151         (get_label_before): Likewise for param "insn".
8152         (fill_simple_delay_slots): Likewise for local "new_label"; use
8153         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8154         (label_before_next_insn): Strengthen return type and local "insn"
8155         from rtx to rtx_insn *.
8156         (relax_delay_slots): Likewise for locals "other", "tmp".
8157         (make_return_insns): Likewise for param "first" and locals "insn",
8158         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8159         and strengthen from rtx to rtx_sequence *.  Use its methods for
8160         clarity and typesafety.
8161         * rtlanal.c (no_labels_between_p): Strengthen params from
8162         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8163         rtx_insn *.
8164         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8165         from const_rtx to const rtx_insn *.
8166         (reg_set_between_p): Rename param "from_insn" to
8167         "uncast_from_insn", and reintroduce "from_insn" as a
8168         const rtx_insn * via a checked cast.
8169         (modified_between_p): Likewise for param "start" as "uncast_start".
8170         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8171         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8172         "tmp", head" from rtx to rtx_insn *.
8173         (recompute_rev_top_order): Likewise for local "insn".
8174         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8175         * store-motion.c (build_store_vectors): Likewise for local "insn".
8176         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8177         for clarity and typesafety.
8178         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8179         rtx to rtx_insn *.
8180         (computation_cost): Likewise for local "seq".
8181         (get_address_cost): Likewise.
8182
8183 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8184
8185         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8186         const rtx_insn *.
8187         (label_is_jump_target_p): Likewise for second param.
8188
8189         * rtlanal.c (tablejump_p): Likewise for param "insn".
8190         (label_is_jump_target_p): Likewise for param "jump_insn".
8191
8192 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8193
8194         * rtl.h (find_first_parameter_load): Strengthen return type and
8195         both params from rtx to rtx_insn *.
8196         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8197         both params and locals "before", "first_set" from rtx to
8198         rtx_insn *.  Remove now-redundant cast.
8199         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8200
8201 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8202
8203         * rtl.h (find_last_value): Delete.
8204         * rtlanal.c (find_last_value): Delete.
8205
8206 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8207
8208         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8209         from rtx to rtx_insn *.
8210         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8211         rtx "note" with new local rtx_insn * "new_head" when calculating
8212         head insn of new basic block.
8213         * combine.c (combine_split_insns): Strengthen return type and local
8214         "ret" from rtx to rtx_insn *.
8215         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8216         (try_combine): Eliminate local "m_split", splitting into new
8217         locals "m_split_insn" and "m_split_pat".
8218         (find_split_point): Strengthen local "seq" from rtx into
8219         rtx_insn *.
8220         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8221         locals "label", "branch".
8222         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8223         for local "insn".
8224         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8225         * dse.c (note_add_store_info): Likewise for fields "first",
8226         "current".
8227         (note_add_store): Likewise for local "insn".
8228         (emit_inc_dec_insn_before): Likewise for locals "insn",
8229         "new_insn", "cur".
8230         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8231         (replace_read): Likewise for locals "insns", "this_insn".
8232         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8233         (notice_eh_throw): Likewise for param "insn".
8234         (before_next_cfi_note): Likewise for return type, param, and local
8235         "prev".
8236         (connect_traces): Likewise for local "note".
8237         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8238         (verify_rtl_sharing): Likewise.
8239         (unshare_all_rtl_in_chain): Likewise for param "insn".
8240         (get_first_nonnote_insn): Likewise for local "insn".
8241         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8242         "seq" and use its methods to clarify things.
8243         (next_insn): Strengthen return type from rtx to rtx_insn *.
8244         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8245         local rtx_insn * using a checked cast, dropping a checked cast
8246         made redundant by this change.  Use a cast to and method of
8247         rtx_sequence to clarify the code.
8248         (previous_insn): Rename param "insn" to "uncast_insn" and
8249         reintroduce "insn" as a local rtx_insn * using a checked cast,
8250         dropping a checked cast made redundant by this change.  Use a cast
8251         to and method of rtx_sequence to clarify the code.
8252         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8253         reintroduce "insn" as a local rtx_insn * using a checked cast,
8254         dropping a checked cast made redundant by this change.
8255         (next_nonnote_insn_bb): Likewise.
8256         (prev_nonnote_insn): Likewise.
8257         (prev_nonnote_insn_bb): Likewise.
8258         (next_nondebug_insn): Likewise.
8259         (prev_nondebug_insn): Likewise.
8260         (next_nonnote_nondebug_insn): Likewise.
8261         (prev_nonnote_nondebug_insn): Likewise.
8262         (next_real_insn): Likewise.
8263         (prev_real_insn): Likewise.
8264         (next_active_insn): Likewise.
8265         (prev_active_insn): Likewise.
8266         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8267         clarity.
8268         (prev_cc0_setter): Likewise.
8269         (try_split): Rename param "trial" to "uncast_trial" and
8270         reintroduce "insn" as a local rtx_insn * using a checked cast,
8271         dropping checked casts made redundant by this change.
8272         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8273         rtx to rtx_insn *.
8274         (remove_insn): Rename param "insn" to "uncast_insn" and
8275         reintroduce "insn" as a local rtx_insn * using a checked cast.
8276         (emit_pattern_after_setloc): Likewise for param "after", as
8277         "uncast_after".
8278         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8279         rtx to rtx_insn *.
8280         (emit_pattern_before_setloc): Rename param "before" to
8281         "uncast_before" and reintroduce "before" as a local rtx_insn *
8282         using a checked cast.  Strengthen locals "first", "last" from
8283         rtx to rtx_insn *.
8284         (emit_pattern_before): Likewise rename/cast param "before" to
8285         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8286         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8287         "first" and local "insn" from rtx to rtx_insn *.
8288         (copy_reg_eh_region_note_backward): Likewise for param "last"
8289         and local "insn".
8290         * expr.c (fixup_args_size_notes): Rename param "last" to
8291         "uncast_last" and reintroduce "last" as a local rtx_insn *
8292         using a checked cast.  Strengthen local "insn" from rtx to
8293         rtx_insn *.
8294         * function.c (set_insn_locations): Strengthen param "insn" from
8295         rtx to rtx_insn *.
8296         (record_insns): Likewise for param "insns" and local "tmp".
8297         (active_insn_between): Rename param "tail" to
8298         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8299         using a checked cast.
8300         (thread_prologue_and_epilogue_insns): Split out top-level local
8301         rtx "seq" into three different rtx_insn * locals.  Strengthen
8302         local "prologue_seq" from rtx to rtx_insn *.
8303         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8304         from rtx to rtx_insn *.
8305         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8306         (priority): Likewise for locals "prev_first", "twin".
8307         (setup_insn_max_reg_pressure): Likewise for param "after".
8308         (sched_setup_bb_reg_pressure_info): Likewise.
8309         (no_real_insns_p): Strengthen params from const_rtx to
8310         const rtx_insn *.
8311         (schedule_block): Strengthen local "next_tail" from rtx to
8312         rtx_insn *.
8313         * ifcvt.c (find_active_insn_before): Strengthen return type and
8314         param "insn" from rtx to rtx_insn *.
8315         (find_active_insn_after): Likewise.
8316         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8317         (cond_exec_process_if_block): Likewise for locals "then_start",
8318         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8319         (noce_process_if_block): Likewise for local "jump".
8320         (merge_if_block): Likewise for two locals named "end".
8321         (cond_exec_find_if_block): Likewise for local "last_insn".
8322         * jump.c (delete_related_insns): Rename param "insn" to
8323         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8324         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8325         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8326         NULL.
8327         (split_reg): Likewise.
8328         * lra.c (lra_process_new_insns): Likewise.
8329         * modulo-sched.c (permute_partial_schedule): Strengthen param
8330         "last" from rtx to rtx_insn *.
8331         * optabs.c (add_equal_note): Likewise for param "insns" and local
8332         "last_insn".
8333         (expand_binop_directly): Add checked casts to rtx_insn * within
8334         NEXT_INSN (pat) uses.
8335         (expand_unop_direct): Likewise.
8336         (maybe_emit_unop_insn): Likewise.
8337         * recog.c (peep2_attempt): Strengthen locals "last",
8338         "before_try", "x" from rtx to rtx_insn *.
8339         * reorg.c (optimize_skip): Strengthen return type and local
8340         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8341         and locals "trial", "next_trial" from rtx to rtx_insn *.
8342         * resource.c (next_insn_no_annul): Strengthen return type and
8343         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8344         rtx_sequence to clarify the code.
8345         (mark_referenced_resources): Add a checked cast to rtx_insn *
8346         within PREV_INSN (x).
8347         (find_dead_or_set_registers): Strengthen return type, param
8348         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8349         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
8350         to rtx_insn **.
8351         (mark_target_live_regs): Strengthen params "insns" and "target",
8352         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8353         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
8354         the code.
8355         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8356         from rtx to rtx_insn *.
8357         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8358         from rtx to rtx_insn *.
8359         (copy_reg_eh_region_note_backward): Likewise.
8360         (unshare_all_rtl_in_chain): Likewise for sole param.
8361         (dump_rtl_slim): Strengthen second and third params from const_rtx
8362         to const rtx_insn *.
8363         * sched-deps.c (sched_free_deps): Strengthen params "head" and
8364         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8365         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8366         "next_tail" from rtx to rtx_insn *.
8367         (begin_move_insn): Likewise for local "next".
8368         * sched-int.h (sched_free_deps): Likewise for first and second
8369         params.
8370         (no_real_insns_p): Strengthen both params from const_rtx to
8371         const rtx_insn *.
8372         (sched_setup_bb_reg_pressure_info): Strengthen second params from
8373         rtx to rtx_insn *.
8374         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8375         "next_tail".
8376         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8377         and locals "insn", "tail" from const_rtx to const rtx_insn *.
8378         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8379         rtx_insn *.
8380         (debug_rtl_slim): Strengthen params "first" and "last" from
8381         const_rtx to const rtx_insn *.
8382         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8383         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8384         (convert_to_simple_return): Likewise for param "returnjump".
8385         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8386         "prologue_seq".
8387         (convert_to_simple_return): Likewise for param "returnjump".
8388         * valtrack.c (propagate_for_debug): Likewise for params
8389         "insn", "last".
8390         * valtrack.h (propagate_for_debug): Likewise for second param.
8391
8392 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8393
8394         * output.h (insn_current_reference_address): Strengthen param
8395         from rtx to rtx_insn *.
8396         * final.c (insn_current_reference_address): Likewise.
8397
8398 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8399
8400         * basic-block.h (inside_basic_block_p): Strengthen param from
8401         const_rtx to const rtx_insn *.
8402         * cfgbuild.c (inside_basic_block_p): Likewise.
8403
8404 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8405
8406         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
8407         rtx_insn *.
8408         (get_trace_info): Likewise for param "insn".
8409         (save_point_p): Likewise.
8410         (maybe_record_trace_start): Likewise for both params.
8411         (maybe_record_trace_start_abnormal): Likewise.
8412         (create_trace_edges): Likewise for sole param and for three of the
8413         locals named "lab".
8414         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
8415         to rtx_insn *, and update a call to pat->element to pat->insn.
8416
8417 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8418
8419         * function.h (struct expr_status): Convert field "x_forced_labels"
8420         from rtx_expr_list * to rtx_insn_list *.
8421
8422         * cfgbuild.c (make_edges): Convert local "x" from an
8423         rtx_expr_list * to an rtx_insn_list *, replacing use of
8424         "element" method with "insn" method.
8425         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8426         * except.c (sjlj_emit_dispatch_table): Replace use of
8427         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
8428         forced_labels.
8429         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
8430         rtx_expr_list * to an rtx_insn_list *, replacing use of
8431         "element" method with "insn" method.
8432         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8433         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
8434         rtx_insn *, adding a checked cast.  Replace use of
8435         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
8436         forced_labels.
8437         (expand_label): Likewise for local "label_r".
8438
8439 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8440
8441         * function.h (struct rtl_data): Convert field
8442         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
8443         rtx_insn_list *.
8444         * rtl.h (remove_node_from_insn_list): New prototype.
8445
8446         * builtins.c (expand_builtin): When prepending to
8447         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8448         gen_rtx_EXPR_LIST.
8449         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
8450         to rtx_insn_list *, and use its "insn" method rather than
8451         "element" method.
8452         * cfgrtl.c (delete_insn): Use new function
8453         remove_node_from_insn_list rather than
8454         remove_node_from_expr_list.
8455         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
8456         to rtx_insn_list *, and use its "insn" method rather than
8457         "element" method.
8458         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8459         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8460         * rtlanal.c (remove_node_from_insn_list): New function, adapted
8461         from remove_node_from_expr_list.
8462         * stmt.c (expand_label): When prepending to
8463         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8464         gen_rtx_EXPR_LIST.
8465
8466 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8467
8468         * function.h (struct rtl_data): Strengthen fields "x_return_label"
8469         and "x_naked_return_label" from rtx to rtx_code_label *.
8470
8471 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8472
8473         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
8474         (SET_NEXT_INSN): Likewise.
8475         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
8476
8477         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
8478         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
8479         to split out the SEQUENCE from local "bundle", strengthening the
8480         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
8481         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
8482         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
8483         and the type of the elements of the "slot" array from rtx to
8484         rtx_insn *.
8485         (reorg_split_calls): Likewise for locals "insn" and "next", and
8486         the type of the elements of the "slot" array.
8487
8488         * config/frv/frv.c (frv_nops): Likewise for the elements of this
8489         array.
8490         (frv_function_prologue): Likewise for locals "insn", "next",
8491         "last_call".
8492         (frv_register_nop): Introduce a local "nop_insn" to be the
8493         rtx_insn * containing rtx "nop".
8494
8495         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
8496         used as an insn and sometimes as a pattern, so rename it to
8497         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
8498         using it where dealing with the core insn.
8499
8500         * config/picochip/picochip.c (reorder_var_tracking_notes):
8501         Strengthen locals "insn", "next", "last_insn", "queue",
8502         "next_queue", "prev" from rtx to rtx_insn *.
8503
8504         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
8505         the second param is an rtx_insn ** rather than an rtx **.
8506         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
8507         from rtx to rtx_sequence *, and introduce local named "sequence",
8508         using methods of rtx_sequence to clarify the code.
8509         (remove_insn): Introduce local rtx_sequence * named "sequence" and
8510         use its methods.
8511         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
8512         Rename param "after" to "uncast_after", reintroducing "after" as a
8513         local rtx_insn * with a checked cast.
8514         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
8515         reintroducing "after" as a local rtx_insn * with a checked cast.
8516         Strengthen local "last" from rtx to rtx_insn * and remove the
8517         now-redundant checked casts.
8518         (copy_delay_slot_insn): Strengthen return type and param from rtx
8519         to rtx_insn *.
8520
8521         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
8522         "last" from rtx to rtx_insn *.
8523
8524 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8525
8526         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
8527         param from rtx to rtx_insn *.
8528
8529         * emit-rtl.c (copy_delay_slot_insn): Likewise.
8530
8531         * reorg.c (skip_consecutive_labels): Strengthen return type, param
8532         and local "insn" from rtx to rtx_insn *.
8533         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
8534         (unfilled_slots_next): Likewise.
8535         (function_return_label): Strengthen from rtx to rtx_code_label *.
8536         (function_simple_return_label): Likewise.
8537         (first_active_target_insn): Strengthen return type and param from
8538         rtx to rtx_insn *.
8539         (find_end_label): Strengthen return type from rtx to
8540         rtx_code_label *; strengthen locals as appropriate.
8541         (emit_delay_sequence): Strengthen return type, param "insn" and
8542         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
8543         and local "li" from rtx to rtx_insn_list *, using methods of
8544         rtx_insn_list for clarity and typesafety.
8545         (add_to_delay_list): Strengthen return type and param "insn" from
8546         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
8547         rtx_insn_list * and use methods of rtx_insn_list.
8548         (delete_from_delay_slot): Strengthen return type, param "insn",
8549         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
8550         Strengthen local "seq" from rtx to rtx_sequence *, and local
8551         "delay_list" from rtx to rtx_insn_list *, using methods of
8552         rtx_sequence for clarity and type-safety.
8553         (delete_scheduled_jump): Add checked cast when invoking
8554         delete_from_delay_slot.  Strengthen local "trial" from rtx to
8555         rtx_insn *.
8556         (optimize_skip): Strengthen return type and local "delay_list"
8557         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
8558         rtx_insn *.
8559         (steal_delay_list_from_target): Strengthen return type, param
8560         "delay_list" and local "new_delay_list" from rtx to
8561         rtx_insn_list *.  Strengthen param "seq" from rtx to
8562         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
8563         rtx_insn **.
8564         Split out local "temp" into multiple more-tightly scoped locals:
8565         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
8566         of rtx_insn_list and rtx_sequence for clarity and typesafety.
8567         Strengthen locals named "trial" from rtx to rtx_insn *.
8568         (steal_delay_list_from_fallthrough): Strengthen return type and
8569         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
8570         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
8571         Strengthen local "trial" from rtx to rtx_insn *.
8572         (try_merge_delay_insns): Strength local "merged_insns" from rtx
8573         to rtx_insn_list * and use its methods.  Strengthen local "pat"
8574         from rtx to rtx_sequence * and use its methods.  Strengthen locals
8575         "dtrial" and "new_rtx" from rtx to rtx_insn *.
8576         (get_label_before): Strengthen return type and local "label" from
8577         rtx to rtx_insn *.
8578         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
8579         "next_trial", "next", prev".  Strengthen local "delay_list" from
8580         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
8581         rtx_insn **.
8582         (follow_jumps): Strengthen return type, param "label" and locals
8583         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
8584         (fill_slots_from_thread): Strengthen return type, param
8585         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
8586         "insn", "thread", "opposite_thread" and locals "new_thread",
8587         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
8588         "sequence" from a checked cast to rtx_sequence so that we can call
8589         steal_delay_list_from_target and steal_delay_list_from_fallthrough
8590         with an rtx_sequence *.
8591         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
8592         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
8593         Strengthen local "delay_list" from rtx to rtx_insn_list *.
8594         (relax_delay_slots): Strengthen param "first" and locals "insn",
8595         "next", "trial", "delay_insn", "target_label" from rtx to
8596         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
8597         Introduce a local "trial_seq" for PATTERN (trial) of type
8598         rtx_sequence *, in both cases using methods of rtx_sequence.
8599         (dbr_schedule): Strengthen param "first" and locals "insn",
8600         "next", "epilogue_insn" from rtx to rtx_insn *.
8601
8602 2014-08-28  Richard Biener  <rguenther@suse.de>
8603
8604         PR tree-optimization/62283
8605         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8606         Do not peel loops for alignment where the vector loop likely
8607         doesn't run at least VF times.
8608
8609 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
8610
8611         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
8612         important_candidates.  Consider all important candidates if
8613         IVS doesn't give any result.  Remove check on ivs->upto.
8614         (try_add_cand_for): Call iv_ca_add_use only once.
8615
8616 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8617             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8618             Anna Tikhonova  <anna.tikhonova@intel.com>
8619             Ilya Tocar  <ilya.tocar@intel.com>
8620             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8621             Ilya Verbin  <ilya.verbin@intel.com>
8622             Kirill Yukhin  <kirill.yukhin@intel.com>
8623             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8624
8625         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
8626         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
8627         masking.
8628         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
8629         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8630         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8631         (define_insn "*mul<mode>3"): Add EVEX version.
8632
8633 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8634             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8635             Anna Tikhonova  <anna.tikhonova@intel.com>
8636             Ilya Tocar  <ilya.tocar@intel.com>
8637             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8638             Ilya Verbin  <ilya.verbin@intel.com>
8639             Kirill Yukhin  <kirill.yukhin@intel.com>
8640             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8641
8642         * config/i386/sse.md
8643         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
8644         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
8645         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
8646         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
8647         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
8648         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
8649         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
8650         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
8651         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
8652         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
8653         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
8654         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
8655         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
8656         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
8657         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
8658         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
8659
8660 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8661             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8662             Anna Tikhonova  <anna.tikhonova@intel.com>
8663             Ilya Tocar  <ilya.tocar@intel.com>
8664             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8665             Ilya Verbin  <ilya.verbin@intel.com>
8666             Kirill Yukhin  <kirill.yukhin@intel.com>
8667             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8668
8669         * config/i386/sse.md
8670         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
8671         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
8672         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
8673
8674 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8675             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8676             Anna Tikhonova  <anna.tikhonova@intel.com>
8677             Ilya Tocar  <ilya.tocar@intel.com>
8678             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8679             Ilya Verbin  <ilya.verbin@intel.com>
8680             Kirill Yukhin  <kirill.yukhin@intel.com>
8681             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8682
8683         * config/i386/sse.md
8684         (define_mode_iterator VI128_256): New.
8685         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
8686
8687 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8688             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8689             Anna Tikhonova  <anna.tikhonova@intel.com>
8690             Ilya Tocar  <ilya.tocar@intel.com>
8691             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8692             Ilya Verbin  <ilya.verbin@intel.com>
8693             Kirill Yukhin  <kirill.yukhin@intel.com>
8694             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8695
8696         * config/i386/sse.md
8697         (define_mode_iterator VI8_256_512): New.
8698         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
8699         Ditto.
8700         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
8701         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
8702         Ditto.
8703         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
8704
8705 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8706
8707         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
8708         pointer to the cumulative reloc value and return the value for
8709         this reloc instead.
8710         (compute_reloc_for_rtx): Take a const_rtx.  Call
8711         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
8712         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
8713         for_each_rtx for the CONST case.
8714
8715 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8716
8717         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
8718         (mark_constants_in_pattern): ...this new function to iterate over
8719         all the subrtxes.
8720         (mark_constants): Update accordingly.
8721
8722 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8723
8724         * varasm.c: Include rtl-iter.h.
8725         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
8726         Remove the pointer to the cumulative hashval_t and just return
8727         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
8728         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8729         Accumulate the hashval_ts here instead of const_rtx_hash_1.
8730
8731 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8732
8733         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
8734         Give real type of data parameter.  Remove return value.
8735         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
8736         to iterate over subrtxes.
8737
8738 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8739
8740         * var-tracking.c (use_narrower_mode_test): Turn from being a
8741         for_each_rtx callback to being a function that examines each
8742         subrtx itself.
8743         (adjust_mems): Update accordingly.
8744
8745 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8746
8747         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
8748         callback to being a function that examines each subrtx itself.
8749         Remove handling of null rtxes.
8750         (add_uses): Update accordingly.
8751
8752 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8753
8754         * var-tracking.c: Include rtl-iter.h.
8755         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
8756         to being a function that examines each subrtx itself.
8757         (use_type): Update accordingly.
8758
8759 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8760
8761         * store-motion.c: Include rtl-iter.h.
8762         (extract_mentioned_regs_1): Delete.
8763         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
8764         for_each_rtx to iterate over subrtxes.
8765
8766 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8767
8768         * sel-sched.c: Include rtl-iter.h
8769         (count_occurrences_1): Delete.
8770         (count_occurrences_equiv): Turn rtxes into const_rtxes.
8771         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8772
8773 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8774
8775         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
8776         * rtlanal.c (tls_referenced_p_1): Delete.
8777         (tls_referenced_p): Take a const_rtx rather than an rtx.
8778         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8779
8780 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8781
8782         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
8783         (for_each_inc_dec): Take an rtx rather than an rtx *.
8784         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
8785         (cselib_record_sets): Likewise.
8786         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
8787         (check_for_inc_dec): Likewise.
8788         * rtlanal.c (for_each_inc_dec_ops): Delete.
8789         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
8790         rather than a pointer to the memory address.  Replace
8791         for_each_inc_dec_ops argument with separate function and data
8792         arguments.  Abort on non-autoinc addresses.
8793         (for_each_inc_dec_find_mem): Delete.
8794         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
8795         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
8796
8797 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8798
8799         * rtl.h (find_all_hard_regs): Declare.
8800         * rtlanal.c (find_all_hard_regs): New function.
8801         (record_hard_reg_uses_1): Delete.
8802         (record_hard_reg_uses): Use find_all_hard_regs.
8803
8804 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8805
8806         * rtl.h (replace_label_data): Delete.
8807         (replace_label): Take the old label, new label and update-nuses flag
8808         as direct arguments.  Return void.
8809         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
8810         * rtlanal.c (replace_label): Update interface as above.  Handle
8811         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
8812         iterator.  Use FOR_EACH_SUBRTX_PTR.
8813
8814 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8815
8816         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
8817         with const_rtx parameters.
8818         * varasm.c (get_pool_constant): Likewise.
8819         * rtlanal.c (rtx_referenced_p_1): Delete.
8820         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8821         Assert that the rtx we're looking for is nonnull.  Allow searches
8822         for constant pool SYMBOL_REFs.
8823
8824 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8825
8826         * reload1.c: Include rtl-iter.h.
8827         (note_reg_elim_costly): Turn from being a for_each_rtx callback
8828         to being a function that examines each subrtx itself.
8829         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
8830
8831 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8832
8833         * regcprop.c (cprop_find_used_regs_1): Delete.
8834         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8835
8836 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8837
8838         * regcprop.c: Include rtl-iter.h.
8839         (kill_value): Take a const_rtx.
8840         (kill_autoinc_value): Turn from being a for_each_rtx callback
8841         to being a function that examines each subrtx itself.
8842         (copyprop_hardreg_forward_1): Update accordingly.
8843
8844 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8845
8846         * reg-stack.c: Include rtl-iter.h.
8847         (subst_stack_regs_in_debug_insn): Delete.
8848         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
8849         instead of for_each_rtx.
8850
8851 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8852
8853         * lower-subreg.c (find_decomposable_subregs): Turn from being
8854         a for_each_rtx callback to being a function that examines each
8855         subrtx itself.  Remove handling of null rtxes.
8856         (decompose_multiword_subregs): Update accordingly.
8857
8858 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8859
8860         * lower-subreg.c (adjust_decomposed_uses): Delete.
8861         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
8862         Remove handling of null rtxes.
8863
8864 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8865
8866         * lower-subreg.c: Include rtl-iter.h.
8867         (resolve_subreg_use): Turn from being a for_each_rtx callback
8868         to being a function that examines each subrtx itself.  Remove
8869         handling of null rtxes.
8870         (resolve_reg_notes, resolve_simple_move): Update accordingly.
8871         (decompose_multiword_subregs): Likewise.
8872
8873 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8874
8875         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
8876         to being a function that examines each subrtx itself.
8877         (simplify_using_condition, simplify_using_initial_values): Update
8878         accordingly.
8879
8880 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8881
8882         * loop-iv.c: Include rtl-iter.h.
8883         (find_single_def_src): New function.
8884         (replace_single_def_regs): Turn from being a for_each_rtx callback
8885         to being a function that examines each subrtx itself.
8886         (replace_in_expr, simplify_using_initial_values): Update accordingly.
8887
8888 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8889
8890         * jump.c (eh_returnjump_p_1): Delete.
8891         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8892         Remove handling of null rtxes.
8893
8894 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8895
8896         * jump.c: Include rtl-iter.h.
8897         (returnjump_p_1): Delete.
8898         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8899         Remove handling of null rtxes.
8900
8901 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8902
8903         * ira.c: Include rtl-iter.h.
8904         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
8905         to being a function that examines each subrtx itself.  Remove
8906         handling of null rtxes.
8907         (update_equiv_regs): Update call accordingly.
8908
8909 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8910
8911         * fwprop.c: Include rtl-iter.h.
8912         (varying_mem_p): Turn from being a for_each_rtx callback to being
8913         a function that examines each subrtx itself.
8914         (propagate_rtx): Update accordingly.
8915
8916 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8917
8918         * function.c: Include rtl-iter.h
8919         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
8920         callback to being a function that examines each subrtx itself.
8921         Return the changed flag.
8922         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
8923         (instantiate_virtual_regs): Update calls accordingly.
8924
8925 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8926
8927         * final.c: Include rtl-iter.h.
8928         (mark_symbol_ref_as_used): Delete.
8929         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
8930         for_each_rtx.
8931
8932 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8933
8934         * emit-rtl.c: Include rtl-iter.h.
8935         (find_auto_inc): Turn from being a for_each_rtx callback to being
8936         a function that examines each subrtx itself.  Assume the first operand
8937         to an RTX_AUTOINC is the automodified register.
8938         (try_split): Update call accordingly.
8939
8940 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8941
8942         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
8943         Return a bool, inverting the result so that 0/false means "not ok".
8944         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
8945         subrtxes of a CONST.
8946         (mem_loc_descriptor, add_const_value_attribute)
8947         (resolve_addr_in_expr): Update calls accordingly.
8948
8949 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8950
8951         * dwarf2out.c: Include rtl-iter.h.
8952         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
8953         Remove unused data parameter.  Return a bool, inverting the result
8954         so that 0/false means "not ok".
8955         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
8956         instead of for_each_rtx.
8957
8958 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8959
8960         * dse.c: Include rtl-iter.h.
8961         (check_mem_read_rtx): Change void * parameter to real type.
8962         Remove return value.
8963         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
8964         for_each_rtx.  Don't handle null rtxes.
8965
8966 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8967
8968         * df-problems.c: Include rtl-iter.h.
8969         (find_memory): Turn from being a for_each_rtx callback to being
8970         a function that examines each subrtx itself.  Continue to look for
8971         volatile references even after a nonvolatile one has been found.
8972         (can_move_insns_across): Update calls accordingly.
8973
8974 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8975
8976         * ddg.c (walk_mems_2, walk_mems_1): Delete.
8977         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
8978         to iterate over subrtxes.  Return a bool rather than an int.
8979
8980 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8981
8982         * ddg.c: Include rtl-iter.h.
8983         (mark_mem_use_1): Rename to...
8984         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
8985         instead of for_each_rtx.
8986         (mem_read_insn_p): Update accordingly.
8987
8988 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8989
8990         * cse.c (change_cc_mode_args): Delete.
8991         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
8992         a function that examines each subrtx itself.  Take the fields of
8993         change_cc_mode_args as argument and return void.
8994         (cse_change_cc_mode_insn): Update calls accordingly.
8995
8996 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8997
8998         * cse.c (is_dead_reg): Change argument to const_rtx.
8999         (dead_debug_insn_data): Delete.
9000         (is_dead_debug_insn): Expand commentary.  Turn from being a
9001         for_each_rtx callback to being a function that examines
9002         each subrtx itself.  Take the fields of dead_debug_insn_data
9003         as argument.
9004         (delete_trivially_dead_insns): Update call accordingly.
9005
9006 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9007
9008         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9009         being a for_each_rtx callback to being a function that examines
9010         each subrtx itself.
9011         (cse_extended_basic_block): Update call accordingly.
9012
9013 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9014
9015         * cse.c (check_dependence_data): Delete.
9016         (check_dependence): Change from being a for_each_rtx callback to being
9017         a function that examines all subrtxes itself.  Don't handle null rtxes.
9018         (invalidate): Update call accordingly.
9019
9020 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9021
9022         * cse.c: Include rtl-iter.h.
9023         (approx_reg_cost_1): Delete.
9024         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9025         Don't handle null rtxes.
9026
9027 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9028
9029         * cfgcleanup.c: Include rtl-iter.h.
9030         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9031         to being a function that examines each subrtx itself.
9032         (thread_jump): Update accordingly.
9033
9034 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9035
9036         * combine-stack-adj.c: Include rtl-iter.h.
9037         (record_stack_refs_data): Delete.
9038         (record_stack_refs): Turn from being a for_each_rtx callback
9039         to being a function that examines each subrtx itself.
9040         Take a pointer to the reflist.  Invert sense of return value
9041         so that true means success and false means failure.  Don't
9042         handle null rtxes.
9043         (combine_stack_adjustments_for_block): Update accordingly.
9044
9045 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9046
9047         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9048         callback to a function that takes an rtx and returns a bool
9049         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9050         for_each_rtx.
9051
9052 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9053
9054         * combine.c: Include rtl-iter.h.
9055         (unmentioned_reg_p_1): Delete.
9056         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9057         Don't handle null rtxes.
9058
9059 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9060
9061         * calls.c: Include rtl-iter.h.
9062         (internal_arg_pointer_based_exp_1): Delete.
9063         (internal_arg_pointer_based_exp): Take a const_rtx.
9064         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9065
9066 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9067
9068         * caller-save.c: Include rtl-iter.h.
9069         (add_used_regs_1): Delete.
9070         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9071         to iterate over subrtxes.  Assert that any remaining pseudos
9072         have been spilled.
9073
9074 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9075
9076         * bt-load.c: Include rtl-iter.h.
9077         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9078         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9079         to iterate over subrtxes.
9080         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9081         find_btr_use rather than btr_referenced_p.
9082
9083 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9084
9085         * alias.c: Include rtl-iter.h.
9086         (refs_newer_value_cb): Delete.
9087         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9088
9089 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9090
9091         * rtl-iter.h: New file.
9092         * rtlanal.c: Include it.
9093         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9094         (generic_subrtx_iterator <T>::add_single_to_queue)
9095         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9096         (generic_subrtx_iterator <T>::free_array): New functions.
9097         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9098         (generic_subrtx_iterator <const_rtx_accessor>)
9099         (generic_subrtx_iterator <rtx_var_accessor>
9100         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9101         (setup_reg_subrtx_bounds): New function.
9102         (init_rtlanal): Call it.
9103
9104 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9105
9106         PR target/62261
9107         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9108         TARGET_SHMEDIA.
9109         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9110
9111 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9112
9113         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9114
9115 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9116
9117         * rtl.h (JUMP_LABEL_AS_INSN): New.
9118
9119 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9120
9121         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9122         rtx_expr_list **.
9123         (alloc_EXPR_LIST): Strengthen return type from rtx to
9124         rtx_expr_list *.
9125         (remove_free_EXPR_LIST_node): Likewise for param.
9126         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9127         from rtx to rtx_expr_list *.
9128         * sched-int.h (struct deps_desc): Strengthen fields
9129         "pending_read_mems" and "pending_write_mems" from rtx to
9130         rtx_expr_list *.
9131
9132         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9133         rtx to rtx_expr_list *.
9134         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9135         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9136         rtx_expr_list **.
9137         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9138         from rtx to rtx_expr_list *.
9139         * loop-iv.c (simplify_using_initial_values): Strengthen local
9140         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9141         "pnote_next" from rtx * to rtx_expr_list **.
9142         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9143         param "exprp" from rtx * to rtx_expr_list **.
9144         (add_insn_mem_dependence): Strengthen local "mem_list" from
9145         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9146         to rtx_expr_list *.
9147         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9148         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9149         param "old_mems_p" from rtx * to rtx_expr_list **.
9150         * var-tracking.c (struct adjust_mem_data): Strengthen field
9151         "side_effects" from rtx to rtx_expr_list *.
9152         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9153         rtx_expr_list *.
9154         (prepare_call_arguments): Likewise.
9155
9156 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9157
9158         * function.h (struct rtl_data): Strengthen field
9159         "x_stack_slot_list" from rtx to rtx_expr_list *.
9160
9161         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9162         when assigning to stack_slot_list.
9163
9164 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9165
9166         * function.h (struct rtl_data): Strengthen field
9167         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9168         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9169         rtx * to rtx_expr_list **.
9170
9171         * cfgbuild.c (make_edges): In loop over
9172         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9173         rtx_expr_list *, and use methods of the latter class to clarify
9174         the code.
9175         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9176         rtx_expr_list *, and use methods of the latter class to clarify
9177         the code.
9178         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9179         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9180         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9181         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9182         to rtx_expr_list *.  Use methods of the latter class to clarify
9183         the code.
9184
9185 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9186
9187         * function.h (struct expr_status): Strengthen field
9188         "x_forced_labels" from rtx to rtx_expr_list *.
9189
9190         * cfgbuild.c (make_edges): Split local "x" into two locals,
9191         strengthening one from rtx to rtx_expr_list *, and using methods
9192         of said class.
9193         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9194         loop over forced_labels, introduce strengthen it from rtx to
9195         rtx_expr_list *, using methods to clarify the code.
9196         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9197         to rtx_expr_list *, using methods of said class to clarify the
9198         code.
9199         * reload1.c (set_initial_label_offsets): Split local "x" into two
9200         per-loop variables, strengthening the first from rtx to
9201         rtx_expr_list * and using methods.
9202
9203 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9204
9205         * coretypes.h (class rtx_expr_list): Add forward declaration.
9206         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9207         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9208         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9209         invariant: GET_CODE (X) == EXPR_LIST.
9210         (is_a_helper <rtx_expr_list *>::test): New.
9211         (rtx_expr_list::next): New.
9212         (rtx_expr_list::element): New.
9213         (gen_rtx_EXPR_LIST): New.
9214
9215 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9216
9217         * varasm.c (mark_constants): Convert a GET_CODE check into a
9218         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9219         Use methods of rtx_sequence to clarify the code.
9220
9221 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9222
9223         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9224         local "seq" via a checked cast, and use methods of rtx_sequence
9225         to simplify the code.
9226
9227 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9228
9229         * resource.c (mark_referenced_resources): Strengthen local
9230         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9231         using methods of rtx_sequence to clarify the code.
9232         (find_dead_or_set_registers): Within the switch statement, convert
9233         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9234         the JUMP_P handling, introduce another local "seq", adding a
9235         checked cast to rtx_sequence *.  In both cases, use methods of
9236         rtx_sequence to clarify the code.
9237         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9238         via a checked cast, and use methods of rtx_sequence to simplify
9239         the code.
9240
9241 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9242
9243         * reorg.c (redundant_insn): In two places in the function, replace
9244         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9245         usings methods of rtx_sequence to clarify the code.
9246
9247 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9248
9249         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9250         local "seq" with a checked cast, and use methods of rtx_sequence
9251         to clarify the code.
9252
9253 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9254
9255         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9256         with a checked cast, in the region for where we know it's a
9257         SEQUENCE.  Use methods of rtx_sequence.
9258
9259 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9260
9261         * final.c (get_attr_length_1): Replace GET_CODE check with a
9262         dyn_cast, introducing local "seq" and the use of methods of
9263         rtx_sequence.
9264         (shorten_branches): Likewise, introducing local "body_seq".
9265         Strengthen local "inner_insn" from rtx to rtx_insn *.
9266         (reemit_insn_block_notes): Replace GET_CODE check with a
9267         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9268         Use methods of rtx_sequence.
9269         (final_scan_insn): Likewise, introducing local "seq" for when
9270         "body" is known to be a SEQUENCE, using its methods.
9271
9272 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9273
9274         * except.c (can_throw_external): Strengthen local "seq" from rtx
9275         to rtx_sequence *.  Use methods of rtx_sequence.
9276         (insn_nothrow_p): Likewise.
9277
9278 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9279
9280         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9281         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9282         Use methods of rtx_sequence.
9283         (scan_trace): Likewise for local "pat".
9284
9285 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9286
9287         * coretypes.h (class rtx_sequence): Add forward declaration.
9288         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9289         invariant: GET_CODE (X) == SEQUENCE.
9290         (is_a_helper <rtx_sequence *>::test): New.
9291         (is_a_helper <const rtx_sequence *>::test): New.
9292         (rtx_sequence::len): New.
9293         (rtx_sequence::element): New.
9294         (rtx_sequence::insn): New.
9295
9296 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9297
9298         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9299         rtx_insn_list **.
9300         (alloc_INSN_LIST): Strengthen return type from rtx to
9301         rtx_insn_list *.
9302         (copy_INSN_LIST): Likewise for return type and param.
9303         (concat_INSN_LIST): Likewise for both params and return type.
9304         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9305         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9306         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9307         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9308
9309         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9310         "implicit_sets", "control_uses", "clobbers" from rtx to
9311         rtx_insn_list *.
9312         (struct deps_desc): Likewise for fields "pending_read_insns",
9313         "pending_write_insns", "pending_jump_insns",
9314         "last_pending_memory_flush", "last_function_call",
9315         "last_function_call_may_noreturn", "sched_before_next_call",
9316         "sched_before_next_jump".
9317         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9318         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9319
9320         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9321         from rtx to rtx_insn_list *.
9322         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9323         rtx_insn_list *.
9324
9325         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9326         to rtx_insn_list **.
9327         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9328         rtx_insn_list *.
9329         (queue_insn): Likewise for local "link".
9330         (struct haifa_saved_data): Strengthen field "insn_queue" from
9331         rtx * to rtx_insn_list **.
9332         (save_backtrack_point): Update allocation of save->insn_queue to
9333         reflect the strengthening of elements from rtx to rtx_insn_list *.
9334         (queue_to_ready): Strengthen local "link" from rtx to
9335         rtx_insn_list *; use methods "next" and "insn" when traversing the
9336         list.
9337         (early_queue_to_ready): Likewise for locals "link", "next_link",
9338         "prev_link".
9339         (schedule_block): Update allocation of insn_queue to reflect the
9340         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9341         local "link" from rtx to rtx_insn_list *, and use methods when
9342         working it.
9343         (add_to_speculative_block): Strengthen locals "twins" and
9344         "next_node" from rtx to rtx_insn_list *, and use methods when
9345         working with them.  Strengthen local "twin" from rtx to
9346         rtx_insn *, eliminating a checked cast.
9347         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9348         from rtx to rtx_insn_list *, and use methods when working with
9349         them.
9350
9351         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9352         from rtx to rtx_insn_list *, adding a checked cast.
9353         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9354         rtx_insn_list **.
9355         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9356         "newlink" from rtx to rtx_insn_list *.  Strengthen local
9357         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
9358         from rtx to rtx_insn *.
9359         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9360         from rtx to rtx_insn_list *.  Use methods of the latter class.
9361         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9362         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9363         (remove_free_INSN_LIST_node): Strengthen return type and local
9364         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
9365         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
9366         rtx_insn_list *, using "insn" method.
9367
9368         * sched-deps.c (add_dependence_list):  Strengthen param "list"
9369         from rtx to rtx_insn_list *, and use methods when working with it.
9370         (add_dependence_list_and_free):  Strengthen param "listp" from
9371         rtx * to rtx_insn_list **.
9372         (remove_from_dependence_list): Strenghten param "listp" from rtx *
9373         to rtx_insn_list **, and use methods when working with *listp.
9374         (remove_from_both_dependence_lists): Strengthen param "listp" from
9375         rtx * to rtx_insn_list **
9376         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9377         to rtx_insn_list **.  Eliminate local "link", in favor of two new
9378         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9379         respectively.
9380         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9381         by introducing local "cond_deps".
9382         (remove_from_deps): Strengthen param "insn" from rtx to
9383         rtx_insn *.
9384
9385         * sched-rgn.c (concat_insn_mem_list): Strengthen param
9386         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9387         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9388         Use methods of rtx_insn_list.
9389
9390         * store-motion.c (struct st_expr): Strengthen fields
9391         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9392         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9393         rtx_insn_list *.
9394         (find_moveable_store): Split out "tmp" into multiple more-tightly
9395         scoped locals.  Use methods of rtx_insn_list *.
9396         (compute_store_table): Strengthen local "tmp" from rtx to
9397         rtx_insn *.  Use methods of rtx_insn_list *.
9398
9399 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9400
9401         * coretypes.h (class rtx_insn_list): Add forward declaration.
9402         * rtl.h (class rtx_insn_list): New subclass of rtx_def
9403         (is_a_helper <rtx_insn_list *>::test): New.
9404         (rtx_insn_list::next): New.
9405         (rtx_insn_list::insn): New.
9406         (gen_rtx_INSN_LIST): Add prototype.
9407         * emit-rtl.c (gen_rtx_INSN_LIST): New.
9408         * gengenrtl.c (special_rtx): Add INSN_LIST.
9409
9410 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9411
9412         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
9413         "prev" from rtx to rtx_insn *.
9414
9415 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9416
9417         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
9418         functions.  Require merely an rtx for now, not an rtx_insn *.
9419         (BLOCK_FOR_INSN): Likewise.
9420         (INSN_LOCATION): Likewise.
9421         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
9422
9423 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9424
9425         * rtl.h (PATTERN): Convert this macro into a pair of inline
9426         functions, for now, requiring const_rtx and rtx.
9427
9428 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9429
9430         * target.def (unwind_emit): Strengthen param "insn" from rtx to
9431         rtx_insn *.
9432         (final_postscan_insn): Likewise.
9433         (adjust_cost): Likewise.
9434         (adjust_priority): Likewise.
9435         (variable_issue): Likewise.
9436         (macro_fusion_pair_p): Likewise.
9437         (dfa_post_cycle_insn): Likewise.
9438         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
9439         (first_cycle_multipass_issue): Likewise.
9440         (dfa_new_cycle): Likewise.
9441         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
9442         (speculate_insn): Likewise for param "insn".
9443         (gen_spec_check): Likewise for params "insn" and "label".
9444         (get_insn_spec_ds): Likewise for param "insn".
9445         (get_insn_checked_ds): Likewise.
9446         (dispatch_do): Likewise.
9447         (dispatch): Likewise.
9448         (cannot_copy_insn_p): Likewise.
9449         (invalid_within_doloop): Likewise.
9450         (legitimate_combined_insn): Likewise.
9451         (needed): Likewise.
9452         (after): Likewise.
9453
9454         * doc/tm.texi: Automatically updated to reflect changes to
9455         target.def.
9456
9457         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
9458         working with insn.
9459         (schedule_block): Likewise.
9460         (sched_init): Likewise.
9461         (sched_speculate_insn): Strengthen param "insn" from rtx to
9462         rtx_insn *.
9463         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
9464         working with insn.
9465         * hooks.c (hook_bool_rtx_true): Rename to...
9466         hook_bool_rtx_insn_true): ...this, and strengthen first param from
9467         rtx to rtx_insn *.
9468         (hook_constcharptr_const_rtx_null): Rename to...
9469         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9470         first param from const_rtx to const rtx_insn *.
9471         (hook_bool_rtx_int_false): Rename to...
9472         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9473         param from rtx to rtx_insn *.
9474         (hook_void_rtx_int): Rename to...
9475         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9476         rtx to rtx_insn *.
9477
9478         * hooks.h (hook_bool_rtx_true): Rename to...
9479         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
9480         rtx to rtx_insn *.
9481         (hook_bool_rtx_int_false): Rename to...
9482         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9483         param from rtx to rtx_insn *.
9484         (hook_void_rtx_int): Rename to...
9485         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9486         rtx to rtx_insn *.
9487         (hook_constcharptr_const_rtx_null): Rename to...
9488         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9489         first param from const_rtx to const rtx_insn *.
9490
9491         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
9492         and local "prev" from rtx to rtx_insn *.
9493
9494         * sched-int.h (sched_speculate_insn): Strengthen first param from
9495         rtx to rtx_insn *.
9496
9497         * sel-sched.c (create_speculation_check): Likewise for local "label".
9498         * targhooks.c (default_invalid_within_doloop): Strengthen param
9499         "insn" from const_rtx to const rtx_insn *.
9500         * targhooks.h (default_invalid_within_doloop): Strengthen param
9501         from const_rtx to const rtx_insn *.
9502
9503         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
9504         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
9505
9506         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
9507         "insn".
9508         (arc_invalid_within_doloop): Likewise, with const.
9509
9510         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
9511         (arm_cannot_copy_insn_p): Likewise for param "insn".
9512         (arm_unwind_emit): Likewise.
9513
9514         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
9515         "dep_insn".
9516
9517         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
9518         (c6x_variable_issue): Likewise.  Removed now-redundant checked
9519         cast.
9520         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
9521
9522         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
9523         Likewise for param "insn".
9524         (epiphany_mode_after): Likewise.
9525         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
9526         params "insn", "dep_insn".
9527         (epiphany_mode_needed): Likewise for param "insn".
9528         (epiphany_mode_after): Likewise.
9529
9530         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
9531         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
9532         (ix86_avx_u128_mode_needed): Likewise.
9533         (ix86_i387_mode_needed): Likewise.
9534         (ix86_mode_needed): Likewise.
9535         (ix86_avx_u128_mode_after): Likewise.
9536         (ix86_mode_after): Likewise.
9537         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
9538         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
9539         (ix86_adjust_priority): Likewise for param "insn".
9540         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
9541         (do_dispatch): Likewise.
9542         (has_dispatch): Likewise.
9543         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
9544
9545         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
9546         reflect renaming of default hook implementation from
9547         hook_constcharptr_const_rtx_null to
9548         hook_constcharptr_const_rtx_insn_null.
9549         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
9550         rtx to rtx_insn *.
9551         (ia64_variable_issue): Likewise for param "insn".
9552         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
9553         (ia64_dfa_new_cycle): Likewise.
9554         (ia64_get_insn_spec_ds): Likewise.
9555         (ia64_get_insn_checked_ds): Likewise.
9556         (ia64_speculate_insn): Likewise.
9557         (ia64_gen_spec_check): Likewise for params "insn", "label".
9558         (ia64_asm_unwind_emit): Likewise for param "insn".
9559
9560         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
9561
9562         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
9563         "insn", "def_insn".
9564         (m68k_sched_variable_issue): Likewise for param "insn".
9565
9566         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
9567         "def_insn".
9568
9569         * config/microblaze/microblaze.c (microblaze_adjust_cost):
9570         Likewise for params "insn", "dep".
9571
9572         * config/mips/mips.c (mips_adjust_cost): Likewise.
9573         (mips_variable_issue): Likewise for param "insn".
9574         (mips_final_postscan_insn): Likewise.
9575
9576         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
9577         for params "insn", "dep".
9578
9579         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
9580         "dep_insn".
9581         (pa_adjust_priority): Likewise for param "insn".
9582
9583         * config/picochip/picochip.c (picochip_sched_adjust_cost):
9584         Likewise for params "insn", "dep_insn".
9585
9586         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
9587         param "insn".
9588         (rs6000_variable_issue): Likewise.
9589         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
9590         (rs6000_debug_adjust_cost): Likewise.
9591         (rs6000_adjust_priority): Likewise for param "insn".
9592         (rs6000_use_sched_lookahead_guard): Likewise.
9593         (get_next_active_insn): Likewise for return type and both params.
9594         (redefine_groups): Likewise for params "prev_head_insn", "tail"
9595         and locals "insn", "next_insn".
9596         (pad_groups): Likewise.
9597
9598         * config/s390/s390.c (s390_adjust_priority): Likewise for param
9599         "insn".
9600         (s390_cannot_copy_insn_p): Likewise.
9601         (s390_sched_variable_issue): Likewise for third param, eliminating
9602         checked cast.
9603         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
9604         default hook implementation from hook_constcharptr_const_rtx_null
9605         to hook_constcharptr_const_rtx_insn_null.
9606
9607         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
9608         from rtx to rtx_insn *.
9609         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
9610         (sh_variable_issue): Likewise for param "insn".
9611         (sh_dfa_new_cycle): Likewise.
9612         (sh_mode_needed): Likewise.
9613         (sh_mode_after): Likewise.
9614
9615         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
9616         params "insn", "dep_insn".
9617         (hypersparc_adjust_cost): Likewise.
9618         (sparc_adjust_cost): Likewise.
9619
9620         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
9621         param, eliminated checked cast.
9622         (spu_sched_adjust_cost): Likewise for first and third params.
9623
9624         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
9625         params "insn" and "dep_insn" from rtx to rtx_insn *.
9626
9627         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
9628
9629 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9630
9631         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
9632         (set_is_load_p): ...this, updating to work on a SET pattern rather
9633         than an insn.
9634         (is_store_insn): Rename to...
9635         (set_is_store_p): ...this, updating to work on a SET pattern
9636         rather than an insn.
9637         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
9638         top of function to where it is needed.  Rewrite the bogus
9639         condition that checks for "insn" and "dep" being PARALLEL to
9640         instead use single_set, introducing locals "insn_set" and
9641         "dep_set".  Given that we only ever returned "cost" for a non-pair
9642         of SETs, bail out early if we don't have a pair of SET.
9643         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
9644         use the new locals "insn_set" and "dep_set", and update calls to
9645         is_load_insn and is_store_insn to be calls to set_is_load_p and
9646         set_is_store_p.
9647
9648 2014-08-27  Guozhi Wei  <carrot@google.com>
9649
9650         PR target/62262
9651         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
9652         amount before using it.
9653
9654 2014-08-27  Richard Biener  <rguenther@suse.de>
9655
9656         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
9657         get_maxval_strlen inside a more useful API.
9658         (gimple_fold_builtin_with_strlen): Remove and fold into ...
9659         (gimple_fold_builtin): ... caller.
9660         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
9661         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
9662         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
9663         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
9664         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
9665         gimple_fold_builtin_sprintf): Adjust to compute maxval
9666         themselves.
9667
9668 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
9669
9670         PR other/62248
9671         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
9672
9673 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9674             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9675             Anna Tikhonova  <anna.tikhonova@intel.com>
9676             Ilya Tocar  <ilya.tocar@intel.com>
9677             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9678             Ilya Verbin  <ilya.verbin@intel.com>
9679             Kirill Yukhin  <kirill.yukhin@intel.com>
9680             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9681
9682         * config/i386/sse.md
9683         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
9684         Use `concat_tg_mode' attribute to determine asm register size.
9685
9686 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9687             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9688             Anna Tikhonova  <anna.tikhonova@intel.com>
9689             Ilya Tocar  <ilya.tocar@intel.com>
9690             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9691             Ilya Verbin  <ilya.verbin@intel.com>
9692             Kirill Yukhin  <kirill.yukhin@intel.com>
9693             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9694
9695         * config/i386/sse.md
9696         (define_mode_iterator VI48_AVX512VL): New.
9697         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
9698         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
9699         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
9700         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9701         with VI1): Change mode iterator.
9702         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9703         with VI_ULOADSTORE_BW_AVX512VL): New.
9704         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9705         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9706         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9707         with VI1): Change mode iterator.
9708         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9709         with VI_ULOADSTORE_BW_AVX512VL): New.
9710         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9711         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9712         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9713         with VI1): Change mode iterator.
9714         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9715         with VI_ULOADSTORE_BW_AVX512VL): New.
9716         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9717         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
9718         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
9719         (define_insn "<avx512>_storedqu<mode>_mask" with
9720         VI48_AVX512VL): New.
9721         (define_insn "<avx512>_storedqu<mode>_mask" with
9722         VI12_AVX512VL): Ditto.
9723
9724 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9725             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9726             Anna Tikhonova  <anna.tikhonova@intel.com>
9727             Ilya Tocar  <ilya.tocar@intel.com>
9728             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9729             Ilya Verbin  <ilya.verbin@intel.com>
9730             Kirill Yukhin  <kirill.yukhin@intel.com>
9731             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9732
9733         * config/i386/sse.md
9734         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
9735         (define_mode_iterator VI48_AVX512BW): New.
9736         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
9737         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9738         with VI48_AVX2_48_AVX512F): New.
9739         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9740         with VI2_AVX512VL): Ditto.
9741
9742 2014-08-27  Richard Biener  <rguenther@suse.de>
9743
9744         PR middle-end/62239
9745         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
9746         (fold_builtin_3): Do not fold strcat_chk here.
9747         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
9748         from builtins.c.
9749         (gimple_fold_builtin): Fold strcat_chk here.
9750
9751 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
9752
9753         * dwarf2out.h (dwarf2out_decl): Remove prototype.
9754         * dwarf2out.c (dwarf2out_decl): Make static.
9755
9756 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
9757
9758         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
9759
9760 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9761
9762         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
9763         from rtx to rtx_insn *.
9764         (cselib_lookup_from_insn): Likewise for final param.
9765         (cselib_subst_to_values_from_insn): Likewise.
9766         (cselib_add_permanent_equiv): Likewise.
9767
9768         * cselib.c (cselib_current_insn): Likewise for this variable.
9769         (cselib_subst_to_values_from_insn): Likewise for param "insn".
9770         (cselib_lookup_from_insn): Likewise.
9771         (cselib_add_permanent_equiv): Likewise for param "insn" and local
9772         "save_cselib_current_insn".
9773         (cselib_process_insn): Replace use of NULL_RTX with NULL.
9774
9775         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
9776         from rtx to rtx_insn *.
9777
9778 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9779
9780         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
9781         rtx_insn *.
9782
9783 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9784
9785         * df.h (df_dump_insn_problem_function): Strengthen first param of
9786         this callback from const_rtx to const rtx_insn *.
9787         (struct df_insn_info): Strengthen field "insn" from rtx to
9788         rtx_insn *.
9789         (DF_REF_INSN): Eliminate this function, reinstating the older
9790         macro definition.
9791         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
9792         (df_reg_defined): Likewise.
9793         (df_find_use): Likewise.
9794         (df_reg_used): Likewise.
9795         (df_dump_insn_top): Strengthen param 1 from const_rtx to
9796         const rtx_insn *.
9797         (df_dump_insn_bottom): Likewise.
9798         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
9799         (df_insn_debug_regno): Likewise.
9800         (debug_df_insn): Likewise.
9801         (df_rd_simulate_one_insn): Likewise for param 2.
9802         (df_word_lr_simulate_defs): Likewise for param 1.
9803         (df_word_lr_simulate_uses): Likewise.
9804         (df_md_simulate_one_insn): Likewise for param 2.
9805         (df_simulate_find_noclobber_defs): Likewise for param 1.
9806         (df_simulate_find_defs): Likewise.
9807         (df_simulate_defs): Likewise.
9808         (df_simulate_uses): Likewise.
9809         (df_simulate_one_insn_backwards): Likewise for param 2.
9810         (df_simulate_one_insn_forwards): Likewise.
9811         (df_uses_create): Likewise for param 2.
9812         (df_insn_create_insn_record): Likewise for param 1.
9813         (df_insn_delete): Likewise.
9814         (df_insn_rescan): Likewise.
9815         (df_insn_rescan_debug_internal): Likewise.
9816         (df_insn_change_bb): Likewise.
9817         (df_notes_rescan): Likewise.
9818         * rtl.h (remove_death): Likewise for param 2.
9819         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
9820         const rtx_insn *.
9821         * sched-int.h (reemit_notes): Strengthen param from rtx to
9822         rtx_insn *.
9823         * valtrack.h (propagate_for_debug): Likewise for param 1.
9824
9825         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
9826         local "tmp_rtx" from const_rtx to const rtx_insn *.
9827         * combine.c (remove_death): Strengthen param "insn" from rtx to
9828         rtx_insn *.
9829         (move_deaths): Likewise for local "where_dead".
9830         * cse.c (delete_trivially_dead_insns): Introduce local
9831         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
9832         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
9833         rtx_insn *.
9834         (df_reg_defined): Likewise.
9835         (df_find_use): Likewise.
9836         (df_reg_used): Likewise.
9837         (df_dump_insn_problem_data): Strengthen param "insn" from
9838         const_rtx to const rtx_insn *.
9839         (df_dump_insn_top): Likewise.
9840         (df_dump_insn_bottom): Likewise.
9841         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
9842         (df_insn_debug_regno): Likewise.
9843         (debug_df_insn): Likewise.
9844         (DF_REF_INSN): Delete.
9845         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
9846         from rtx to rtx_insn *.
9847         (df_chain_insn_top_dump): Strengthen param "insn" from
9848         const_rtx to const rtx_insn *.
9849         (df_chain_insn_bottom_dump): Likewise.
9850         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
9851         rtx_insn *.
9852         (df_word_lr_simulate_uses): Likewise.
9853         (df_print_note): Likewise.
9854         (df_remove_dead_and_unused_notes): Likewise.
9855         (df_set_unused_notes_for_mw): Likewise.
9856         (df_set_dead_notes_for_mw): Likewise.
9857         (df_create_unused_note): Likewise.
9858         (df_simulate_find_defs): Likewise.
9859         (df_simulate_find_uses): Likewise.
9860         (df_simulate_find_noclobber_defs): Likewise.
9861         (df_simulate_defs): Likewise.
9862         (df_simulate_uses): Likewise.
9863         (df_simulate_one_insn_backwards): Likewise.
9864         (df_simulate_one_insn_forwards): Likewise.
9865         (df_md_simulate_one_insn): Likewise.
9866         * df-scan.c (df_uses_create): Likewise.
9867         (df_insn_create_insn_record): Likewise.
9868         (df_insn_delete): Likewise.
9869         (df_insn_rescan): Likewise.
9870         (df_insn_rescan_debug_internal): Likewise.
9871         (df_insn_change_bb): Likewise.
9872         (df_notes_rescan): Likewise.
9873         (df_refs_add_to_chains): Likewise.
9874         (df_insn_refs_verify): Likewise.
9875         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
9876         when invoking df_insn_delete.
9877         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
9878         (set_unique_reg_note): Add checked cast.
9879         * final.c (cleanup_subreg_operands): Likewise.
9880         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
9881         "insn" from rtx to rtx_insn *.
9882         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
9883         "last" from rtx to rtx_insn *.
9884         * ira-emit.c (change_regs_in_insn): New function.
9885         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
9886         Invoke change_regs_in_insn rather than change_regs.
9887         * ira.c (update_equiv_regs): Strengthen locals "insn",
9888         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
9889         for_each_rtx_in_insn rather than for_each_rtx.
9890         * recog.c (confirm_change_group): Add checked casts.
9891         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
9892         Add checked cast.
9893         (peep2_fill_buffer): Add checked cast.
9894         * rtlanal.c (remove_note): Likewise.
9895         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
9896         locals "next" "end" from rtx to rtx_insn *.
9897
9898 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9899
9900         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
9901         to rtx_insn *.
9902         (struct reg_use_data): Likewise for field "insn".
9903         (insn_cost): Likewise for param.
9904         (real_insn_for_shadow): Likewise for return type and param.
9905         (increase_insn_priority): Likewise for param 1.
9906         (debug_dependencies): Likewise for both params.
9907
9908         * haifa-sched.c (insn_delay): Likewise for param "insn".
9909         (real_insn_for_shadow): Likewise for return type and param "insn".
9910         (update_insn_after_change): Likewise for param "insn".
9911         (recompute_todo_spec): Likewise for param "next" and locals "pro",
9912         "other".
9913         (insn_cost): Likewise for param "insn".
9914         (increase_insn_priority): Likewise.
9915         (calculate_reg_deaths): Likewise.
9916         (setup_insn_reg_pressure_info): Likewise.
9917         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
9918         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
9919         (model_recompute): Likewise.
9920         (must_restore_pattern_p): Likewise for param "next".
9921         (model_excess_cost): Likewise for param "insn".
9922         (queue_remove): Likewise.
9923         (adjust_priority): Likewise for param "prev".
9924         (update_register_pressure): Likewise for param "insn".
9925         (setup_insn_max_reg_pressure): Likewise for local "insn".
9926         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
9927         (model_add_to_schedule): Likewise.
9928         (model_reset_queue_indices): Likewise for local "insn".
9929         (unschedule_insns_until): Strengthen local "recompute_vec" from
9930         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
9931         "con" from rtx to rtx_insn *.
9932         (restore_last_backtrack_point): Likewise for both locals "x". Add
9933         checked casts.
9934         (estimate_insn_tick): Likewise for param "insn".
9935         (commit_schedule): Likewise for params "prev_head", "tail" and
9936         local "x".
9937         (verify_shadows): Likewise for locals "i1", "i2".
9938         (dump_insn_stream): Likewise for params "head", "tail" and locals
9939         "next_tail", "insn".
9940         (schedule_block): Likewise for locals "insn", "x".  Add a checked
9941         cast.
9942         (fix_inter_tick): Likewise for params "head", "tail".
9943         (create_check_block_twin): Likewise for local "jump".
9944         (haifa_change_pattern): Likewise for param "insn".
9945         (haifa_speculate_insn): Likewise.
9946         (dump_new_block_header): Likewise for params "head", "tail".
9947         (fix_jump_move): Likewise for param "jump".
9948         (move_block_after_check): Likewise.
9949         (sched_init_insn_luid): Likewise for param "insn".
9950         (sched_init_luids): Likewise for local "insn".
9951         (insn_luid): Likewise for param "insn".
9952         (init_h_i_d): Likewise.
9953         (haifa_init_h_i_d): Likewise for local "insn".
9954         (haifa_init_insn): Likewise for param "insn".
9955         * sched-deps.c (add_dependence): Likewise for local "real_pro",
9956         "other".
9957         (create_insn_reg_use): Likewise for param "insn".
9958         (setup_insn_reg_uses): Likewise.  Add a checked cast.
9959         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
9960         "tail" from rtx to rtx_insn *.
9961         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
9962         "insn", "next_tail".
9963
9964 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9965
9966         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
9967         from rtx to rtx_insn *.
9968         (model_add_to_schedule): Likewise for locals "start", "end",
9969         "iter".
9970
9971 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9972
9973         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
9974         rtx_insn *.
9975         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
9976         "to" and locals "insn", "next", "copy".  Remove now-redundant
9977         checked cast.
9978
9979 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9980
9981         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
9982         rtx_insn * and param 4 from rtx * to rtx_insn **.
9983         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
9984         param 2 from rtx * to rtx_insn **.
9985
9986         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
9987         rtx_insn * and final param from rtx * to rtx_insn **.
9988
9989         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
9990         from rtx to rtx_insn *.
9991         (try_head_merge_bb): Likewise for both locals named "move_upto".
9992         * df-problems.c (can_move_insns_across): Likewise for params
9993         "from", "to", "across_from", "across_to" and locals "insn",
9994         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
9995         rtx_insn **.
9996         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
9997         from rtx to rtx_insn *.
9998         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
9999         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10000         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10001         rtx_insn *.
10002         (noce_try_abs): Likewise.
10003         (noce_get_condition): Likewise for param "jump".  Strengthen param
10004         "earliest" from rtx * to rtx_insn **.
10005         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10006         rtx_insn *.
10007         (find_cond_trap): Likewise.
10008         (dead_or_predicable): Likewise for local "earliest".
10009         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10010         checked cast.
10011         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10012         and local "prev".  Strengthen param "earliest" from rtx * to
10013         rtx_insn **.
10014         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10015         Strengthen param "earliest" from rtx * to rtx_insn **.
10016
10017 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10018
10019         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10020         "to" and local "insn" from rtx to rtx_insn *.
10021
10022 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10023
10024         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10025         from rtx to rtx_insn *.
10026         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10027         (code_motion_path_driver): Likewise for local "last_insn".
10028         (simplify_changed_insns): Likewise for local "insn".
10029
10030 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10031
10032         * rtl.h (push_to_sequence): Strengthen param from rtx to
10033         rtx_insn *.
10034         (push_to_sequence2): Likewise for both params.
10035         (delete_insns_since): Likewise for param.
10036         (reorder_insns_nobb): Likewise for all three params.
10037         (set_new_first_and_last_insn): Likewise for both params.
10038
10039         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10040         rtx_insn *.  Remove now-redundant cast.
10041         (set_last_insn): Likewise.
10042
10043         * builtins.c (expand_builtin_return): Strengthen local
10044         "call_fusage" from rtx to rtx_insn *.
10045         * cfgrtl.c (create_basic_block_structure): Likewise for local
10046         "after".
10047         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10048         "first", "last" and local "insn".
10049         (delete_insns_since): Likewise for param "from".
10050         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10051         and local "x".
10052         (push_to_sequence): Likewise for param "first" and local "last".
10053         (push_to_sequence2): Likewise for params "first" and "last".
10054         * lra.c (emit_add3_insn): Likewise for local "last".
10055         (lra_emit_add): Likewise.
10056         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10057         "last_insn".
10058         (process_address_1): Likewise for locals "insn", last".
10059         * modulo-sched.c (ps_first_note): Likewise for return type.
10060         * optabs.c (expand_binop_directly): Likewise for param "last".
10061
10062 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10063
10064         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10065         to rtx_insn*.
10066         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10067
10068 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10069
10070         * function.h (struct sequence_stack): Strengthen fields "first"
10071         and "last" from rtx to rtx_insn *.
10072         (struct emit_status): Likewise for fields "x_first_insn" and
10073         "x_last_insn".
10074
10075         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10076         (set_first_insn): Add checked cast.
10077         (get_last_insn): Remove now-redundant checked cast.
10078         (set_last_insn): Add checked cast.
10079
10080         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10081         "saved_first" and "saved_last" from rtx to rtx_insn *.
10082
10083 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10084
10085         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10086         (unlink_insn_chain): Strengthen both params from rtx to
10087         rtx_insn *.
10088
10089         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10090         variable.
10091         (unlink_insn_chain): Likewise for params "first" and "last".
10092         Remove now-redundant checked cast.
10093         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10094         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10095         rtx_insn *.
10096         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10097         params.
10098         (add_insn): Likewise for param "insn" and local "prev".
10099         (add_insn_after_nobb): Likewise for both params and local "next".
10100         (add_insn_before_nobb): Likewise for both params and local "prev".
10101         (add_insn_after): Rename param "after" to "uncast_after",
10102         introducing local "after" with another checked cast.
10103         (add_insn_before): Rename params "insn" and "before", giving them
10104         "uncast_" prefixes, adding the old names back using checked casts.
10105         (emit_note_after): Likewise for param "after".
10106         (emit_note_before): Likewise for param "before".
10107         (emit_label): Add a checked cast.
10108
10109 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10110
10111         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10112         "insn" from rtx to rtx_insn *.
10113
10114         * cselib.c (cselib_record_sets_hook): Likewise.
10115
10116         * var-tracking.c (add_with_sets): Likewise, renaming back from
10117         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10118         to rtx_insn *.
10119
10120 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10121
10122         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10123         and "header_" from rtx to rtx_insn *.
10124         (struct basic_block_d): Likewise for field "head_" within "x"
10125         field of union basic_block_il_dependent.
10126         (BB_HEAD): Drop function...
10127         (SET_BB_HEAD): ...and this function in favor of...
10128         (BB_HEAD): ...reinstate macro.
10129         (BB_END): Drop function...
10130         (SET_BB_END): ...and this function in favor of...
10131         (BB_END): ...reinstate macro.
10132         (BB_HEADER): Drop function...
10133         (SET_BB_HEADER): ...and this function in favor of...
10134         (BB_HEADER): ...reinstate macro.
10135
10136         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10137         (fix_crossing_unconditional_branches): Likewise.
10138         * caller-save.c (save_call_clobbered_regs): Likewise.
10139         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10140         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10141         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10142         (merge_blocks_move_successor_nojumps): Likewise.
10143         (outgoing_edges_match): Update use of for_each_rtx to
10144         for_each_rtx_in_insn.
10145         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10146         (expand_gimple_cond): Likewise.
10147         (expand_gimple_tailcall): Likewise.
10148         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10149         SET_BB_END.
10150         (construct_exit_block): Drop use of SET_BB_END.
10151         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10152         rtx_insn *.
10153         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10154         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10155         SET_BB_HEAD and SET_BB_END.
10156         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10157         SET_BB_END.
10158         (rtl_delete_block): Drop use of SET_BB_HEAD.
10159         (rtl_split_block): Drop use of SET_BB_END.
10160         (emit_nop_for_unique_locus_between): Likewise.
10161         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10162         (block_label): Drop use of SET_BB_HEAD.
10163         (fixup_abnormal_edges): Drop use of SET_BB_END.
10164         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10165         (relink_block_chain): Likewise.
10166         (fixup_reorder_chain): Drop use of SET_BB_END.
10167         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10168         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10169         rtx_insn **.  Drop use of SET_BB_HEADER.
10170         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10171         SET_BB_HEAD.
10172         (BB_HEAD): Delete this function.
10173         (SET_BB_HEAD): Likewise.
10174         (BB_END): Likewise.
10175         (SET_BB_END): Likewise.
10176         (BB_HEADER): Likewise.
10177         (SET_BB_HEADER): Likewise.
10178         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10179         "uncast_insn", adding a new local "insn" and a checked cast to
10180         rtx_insn *.  Drop use of SET_BB_END.
10181         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10182         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10183         (reorder_insns): Drop use of SET_BB_END.
10184         (emit_insn_after_1): Strengthen param "first" and locals "last",
10185         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10186         (emit_pattern_after_noloc): Add checked cast.
10187         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10188         (restore_other_notes): Likewise.
10189         (move_insn): Likewise.
10190         (sched_extend_bb): Likewise.
10191         (fix_jump_move): Likewise.
10192         * ifcvt.c (noce_process_if_block): Likewise.
10193         (dead_or_predicable): Likewise.
10194         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10195         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10196         * sel-sched-ir.c (sel_move_insn): Likewise.
10197         * sel-sched.c (move_nop_to_previous_block): Likewise.
10198
10199         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10200         SET_BB_END.
10201         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10202
10203 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10204
10205         * basic-block.h (create_basic_block_structure): Strengthen params
10206         1 "head" and 2 "end" from rtx to rtx_insn *.
10207         * cfgrtl.c (create_basic_block_structure): Likewise.
10208         (rtl_create_basic_block): Update casts from void * to rtx to
10209         rtx_insn *, so that we can pass them as rtx_insn * to
10210         create_basic_block_structure.
10211         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10212
10213 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10214
10215         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10216         rtx_insn **.
10217         (check_for_inc_dec): Strengthen param "insn" from rtx to
10218         rtx_insn *.
10219
10220         * cselib.h (cselib_process_insn): Likewise.
10221
10222         * cselib.c (cselib_record_sets): Likewise.
10223         (cselib_process_insn): Likewise.
10224
10225         * dse.c (struct insn_info): Likewise for field "insn".
10226         (check_for_inc_dec_1): Likewise for local "insn".
10227         (check_for_inc_dec): Likewise for param "insn".
10228         (scan_insn): Likewise.
10229         (dse_step1): Likewise for local "insn".
10230
10231         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10232         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10233
10234 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10235
10236         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10237         from rtx to rtx_insn *.
10238         (DEP_PRO): Delete this function and...
10239         (SET_DEP_PRO): ...this function in favor of...
10240         (DEP_PRO): ...reinstate this macro.
10241         (DEP_CON): Delete this function and...
10242         (SET_DEP_CON): ...this function in favor of...
10243         (DEP_CON): ...reinstate this old macro.
10244         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10245         (init_dep): Likewise.
10246         (set_priorities): Likewise for both params.
10247         (sd_copy_back_deps): Likewise for params 1 and 2.
10248
10249         * haifa-sched.c (priority): Likewise for param "insn" and local
10250         "next".
10251         (set_priorities): Likewise for params "head" and "tail" and local
10252         "insn".
10253         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10254         local "consumer".
10255         (add_to_speculative_block): Add a checked cast.
10256         (create_check_block_twin): Drop use of SET_DEP_CON.
10257         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10258         rtx to rtx_insn *.
10259
10260         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10261         Drop use of SET_DEP_PRO
10262         (init_dep): Strengthen params "pro" and "con" from rtx to
10263         rtx_insn *.
10264         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10265         use of SET_DEP_CON.
10266         (DEP_PRO): Delete.
10267         (DEP_CON): Delete.
10268         (SET_DEP_PRO): Delete.
10269         (SET_DEP_CON): Delete.
10270
10271 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10272
10273         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10274         from rtx to rtx_insn *.
10275         (VINSN_INSN_RTX): Eliminate rvalue function and...
10276         (SET_VINSN_INSN): ...lvalue function in favor of...
10277         (VINSN_INSN_RTX): reinstate this old macro.
10278
10279         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10280         in favor of VINSN_INSN_RTX.
10281         (VINSN_INSN_RTX): Delete this function.
10282         (SET_VINSN_INSN_RTX): Likewise.
10283
10284 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10285
10286         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10287         (BND_TO): Delete this function and...
10288         (SET_BND_TO): ...this functions in favor of...
10289         (BND_TO): ...reinstating this macro.
10290         (struct _fence): Strengthen field "executing_insns" from
10291         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10292         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10293         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10294         and param "insn" from rtx to insn_t.
10295         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10296         rtx_insn *.
10297
10298         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10299         vec<rtx_insn *> .
10300         (rtx_vec_t): Likewise.
10301         (struct sched_deps_info_def): Strengthen param of "start_insn"
10302         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10303         "note_mem_dep" callback and first param of "note_dep" callback.
10304
10305         * haifa-sched.c (add_to_speculative_block): Strengthen param
10306         "insn" from rtx to rtx_insn *.
10307         (clear_priorities): Likewise.
10308         (calc_priorities): Likewise for local "insn".
10309
10310         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10311         Remove redundant checked cast.
10312         (haifa_note_mem_dep): Likewise for param "pending_insn".
10313         (haifa_note_dep): Likewise for param "elem".
10314         (note_mem_dep): Likewise for param "e".
10315         (sched_analyze_1): Add checked casts.
10316         (sched_analyze_2): Likewise.
10317
10318         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10319         from rtx to rtx_insn *.
10320         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10321         from vec<rtx> * to vec<rtx_insn *> *.
10322
10323         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10324         scaffolding.
10325         (flist_add): Strengthen param "executing_insns" from
10326         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10327         (advance_deps_context): Remove now-redundant checked cast.
10328         (init_fences): Replace uses of NULL_RTX with NULL.
10329         (merge_fences): Strengthen params "last_scheduled_insn" and
10330         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10331         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10332         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10333         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10334         an instruction, rather than doing double-duty as a pattern.
10335         (return_nop_to_pool): Update for change of insn_t.
10336         (deps_init_id): Remove now-redundant checked cast.
10337         (struct sched_scan_info_def): Strengthen param of "init_insn"
10338         callback from rtx to insn_t.
10339         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10340         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10341         NULL.
10342         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10343         "end" from rtx to rtx_insn *.
10344         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10345         (rtx insn_rtx, bool force_unique_p)
10346         (BND_TO): Delete function.
10347         (SET_BND_TO): Delete function.
10348
10349         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10350         rtx to rtx_insn *.
10351         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10352         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10353         rtx to rtx_insn *.
10354         (undo_transformations): Likewise for param "insn".
10355         (update_liveness_on_insn): Likewise.
10356         (compute_live_below_insn): Likewise for param "insn" and local
10357         "succ".
10358         (update_data_sets): Likewise for param "insn".
10359         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10360         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10361         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10362         rtx_insn *.
10363         (move_cond_jump): Likewise for param "insn".
10364         (move_cond_jump): Drop use of SET_BND_TO.
10365         (compute_av_set_on_boundaries): Likewise.
10366         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10367         (update_and_record_unavailable_insns): Strengthen local "bb_end"
10368         from rtx to rtx_insn *.
10369         (maybe_emit_renaming_copy): Likewise for param "insn".
10370         (maybe_emit_speculative_check): Likewise.
10371         (handle_emitting_transformations): Likewise.
10372         (remove_insn_from_stream): Likewise.
10373         (code_motion_process_successors): Strengthen local "succ" from rtx
10374         to insn_t.
10375
10376 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10377
10378         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10379         ilist_t, not _xlist_t;
10380         (ILIST_INSN): Define in terms of new union field "insn".
10381         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10382         _XLIST_NEXT.
10383         (struct _list_node): Add new field "insn" to the union, of type
10384         insn_t.
10385         (ilist_add): Replace macro with an inline function, requiring an
10386         insn_t.
10387         (ilist_remove): Define this macro directly in terms of
10388         _list_remove, rather than indirectly via _xlist_remove.
10389         (ilist_clear): Likewise, in terms of _list_clear rather than
10390         _xlist_clear.
10391         (ilist_is_in_p): Replace macro with an inline function, requiring
10392         an insn_t.
10393         (_list_iter_cond_insn): New function.
10394         (ilist_iter_remove): Define this macro directly in terms of
10395         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10396         (ilist_iterator): Define directly in terms of _list_iterator
10397         rather than indirectly through _xlist_iterator.
10398         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
10399         than in terms of _FOR_EACH_X.
10400         (FOR_EACH_INSN_1): Likewise.
10401
10402 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
10403
10404         PR target/60606
10405         PR target/61330
10406         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
10407         DECL_HARD_REGISTER and return for invalid register specifications.
10408         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
10409         DECL_HARD_REGISTER, call expand_one_error_var.
10410         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
10411         CC_REGNUM with non-MODE_CC modes.
10412         (arm_regno_class): Return NO_REGS for PC_REGNUM.
10413
10414 2014-08-26  Marek Polacek  <polacek@redhat.com>
10415
10416         PR c/61271
10417         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
10418
10419 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
10420
10421         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
10422         qi cost; add di cost.
10423         (cortexa57_addrcost_table): Likewise.
10424
10425 2014-08-26  Marek Polacek  <polacek@redhat.com>
10426
10427         PR c/61271
10428         * expr.c (is_aligning_offset): Remove logical not.
10429
10430 2014-08-26  Marek Polacek  <polacek@redhat.com>
10431
10432         PR c/61271
10433         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
10434         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
10435
10436 2014-08-26  Richard Biener  <rguenther@suse.de>
10437
10438         PR tree-optimization/62175
10439         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10440         expand possibly trapping operations.
10441
10442 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10443
10444         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
10445         "insn" from rtx to rtx_insn *.
10446         (permute_load): Likewise for param "insn".
10447         (permute_store): Likewise.
10448         (handle_special_swappables): Likewise for local "insn".
10449         (replace_swap_with_copy): Likewise for locals "insn" and
10450         "new_insn".
10451         (rs6000_analyze_swaps): Likewise for local "insn".
10452
10453 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10454
10455         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
10456         to rtx_insn *.
10457
10458 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10459
10460         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
10461         "note_list" from rtx to rtx_insn *.
10462         (BB_NOTE_LIST): Replace this function and...
10463         (SET_BB_NOTE_LIST): ...this function with...
10464         (BB_NOTE_LIST): ...the former macro implementation.
10465
10466         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
10467         local "from_start" from rtx to rtx_insn *.  Strengthen param
10468         "to_endp" from rtx * to rtx_insn **.
10469
10470         * haifa-sched.c (concat_note_lists): Likewise.
10471         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
10472         BB_NOTE_LIST.
10473         (sel_restore_notes): Likewise.
10474         (move_bb_info): Likewise.
10475         (BB_NOTE_LIST): Delete this function.
10476         (SET_BB_NOTE_LIST): Delete this function.
10477         * sel-sched.c (create_block_for_bookkeeping): Eliminate
10478         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
10479
10480 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10481
10482         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
10483         from rtx * to rtx_insn **.
10484         (reorder2): Likewise.
10485         (dependencies_evaluation_hook): Strengthen params "head", "tail"
10486         from rtx to rtx_insn *.
10487
10488         * doc/tm.texi: Update mechanically for above change to target.def.
10489
10490         * sched-int.h (note_list): Strengthen this variable from rtx to
10491         rtx_insn *.
10492         (remove_notes): Likewise for both params.
10493         (restore_other_notes): Likewise for return type and first param.
10494         (struct ready_list): Strengthen field "vec" from rtx * to
10495         rtx_insn **.
10496         (struct dep_replacement): Strenghten field "insn" from rtx to
10497         rtx_insn *.
10498         (struct deps_desc): Likewise for fields "last_debug_insn",
10499         "last_args_size".
10500         (struct haifa_sched_info): Likewise for callback field
10501         "can_schedule_ready_p"'s param, for first param of "new_ready"
10502         callback field, for both params of "rank" callback field, for
10503         first field of "print_insn" callback field (with a const), for
10504         both params of "contributes_to_priority" callback, for param
10505         of "insn_finishes_block_p" callback, for fields "prev_head",
10506         "next_tail", "head", "tail", for first param of "add_remove_insn"
10507         callback, for first param of "begin_schedule_ready" callback, for
10508         both params of "begin_move_insn" callback, and for second param
10509         of "advance_target_bb" callback.
10510         (add_dependence): Likewise for params 1 and 2.
10511         (sched_analyze): Likewise for params 2 and 3.
10512         (deps_analyze_insn): Likewise for param 2.
10513         (ready_element): Likewise for return type.
10514         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10515         (try_ready): Strenghten param from rtx to rtx_insn *.
10516         (sched_emit_insn): Likewise for return type.
10517         (record_delay_slot_pair): Likewise for params 1 and 2.
10518         (add_delay_dependencies): Likewise for param.
10519         (contributes_to_priority): Likewise for both params.
10520         (find_modifiable_mems): Likewise.
10521
10522         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
10523         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
10524         "first_older_only_insn" from rtx to rtx_insn *.
10525         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
10526         rtx_insn **.
10527
10528         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
10529         "last_scheduled_iter0" from rtx to rtx_insn *.
10530         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
10531         (c6x_sched_reorder_1): Strengthen param "ready" and locals
10532         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
10533         "insn" from rtx to rtx_insn *.
10534         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
10535         rtx_insn **.
10536         (c6x_sched_reorder2): Strengthen param "ready" and locals
10537         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
10538         "insn" from rtx to rtx_insn *.
10539         (c6x_variable_issue):  Add a checked cast when assigning from insn
10540         to ss.last_scheduled_iter0.
10541         (split_delayed_branch): Strengthen param "insn" and local "i1"
10542         from rtx to rtx_insn *.
10543         (split_delayed_nonbranch): Likewise.
10544         (undo_split_delayed_nonbranch): Likewise for local "insn".
10545         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
10546         "entry_after", "end_packet", "head_insn", "tail_insn",
10547         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
10548         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
10549         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
10550         but add a checked cast on loop->start_label.  Consolidate calls to
10551         avoid assigning result of gen_spkernel to "insn", now an
10552         rtx_insn *.
10553
10554         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
10555         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
10556         rtx to rtx_insn *.
10557         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
10558         rtx_insn **.  Strengthen locals "top", "next" from rtx to
10559         rtx_insn *.
10560         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
10561         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10562         (add_parameter_dependencies): Strengthen params "call", "head" and
10563         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
10564         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
10565         (add_dependee_for_func_arg): Likewise for param "arg" and local
10566         "insn".
10567         (ix86_dependencies_evaluation_hook): Likewise for params "head",
10568         "tail" and locals "insn", "first_arg".
10569
10570         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
10571         for params "head", "tail" and locals "insn", "next", "next_tail".
10572         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
10573         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
10574         "insn", "lowest", "highest" from rtx to rtx_insn *.
10575         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
10576         rtx_insn **.
10577         (ia64_sched_reorder2): Likewise.
10578
10579         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
10580         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
10581         from rtx * to rtx_insn **.
10582         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
10583         rtx_insn **.
10584         (mep_print_sched_insn): Strengthen param "insn" from rtx to
10585         rtx_insn *.
10586         (mep_sched_reorder): Strengthen param "ready" from rtx * to
10587         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
10588         to rtx_insn *.
10589
10590         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
10591         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
10592         to rtx_insn *.
10593         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
10594         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
10595         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
10596         rtx_insn **.
10597         (vr4130_reorder): Likewise.
10598         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
10599         rtx to rtx_insn *.
10600         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
10601         rtx_insn **.
10602         (mips_sched_reorder): Likewise.
10603         (mips_sched_reorder2): Likewise.
10604
10605         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
10606
10607         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
10608         Strengthen local "tmp" from rtx to rtx_insn *.
10609         (rs6000_sched_reorder2): Likewise.
10610
10611         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
10612         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
10613         (s390_sched_reorder): Strengthen param "ready" from rtx * to
10614         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
10615
10616         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
10617         "tmp2" from rtx to rtx_insn *.
10618         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
10619         Strengthen local "insn" from rtx to rtx_insn *.
10620         (ready_reorder): Strengthen param "ready" from rtx * to
10621         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
10622         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
10623         (sh_reorder2): Likewise.
10624
10625         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
10626         local "insn" from rtx to rtx_insn *.
10627
10628         * haifa-sched.c (note_list): Strengthen this variable from rtx to
10629         rtx_insn *.
10630         (scheduled_insns): Strengthen this variable from vec<rtx> to
10631         vec<rtx_insn *>.
10632         (set_modulo_params): Likewise for locals "i1", "i2".
10633         (record_delay_slot_pair): Likewise for params "i1", "i2".
10634         (add_delay_dependencies): Likewise for param "insn".
10635         (cond_clobbered_p): Likewise.
10636         (recompute_todo_spec): Likewise for local "prev".
10637         (last_scheduled_insn): Likewise for this variable.
10638         (nonscheduled_insns_begin): Likewise.
10639         (model_set_excess_costs): Strengthen param "insns" from rtx * to
10640         rtx_insn **.
10641         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
10642         rtx_insn *.
10643         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
10644         Strengthen local "insn" from rtx to rtx_insn *.
10645         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
10646         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10647         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
10648         (ready_remove_first): Likewise for return type and local "t".
10649         (ready_element): Likewise for return type.
10650         (ready_remove): Likewise for return type and local "t".
10651         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
10652         (check_clobbered_conditions): Strengthen local "x" from rtx to
10653         rtx_insn *, adding a checked cast.
10654         (schedule_insn): Likewise for param "insn".
10655         (remove_notes): Likewise for params "head", "tail" and locals
10656         "next_tail", "insn", "next".
10657         (struct haifa_saved_data): Likewise for fields
10658         "last_scheduled_insn", "nonscheduled_insns_begin".
10659         (save_backtrack_point): Update for change to field "vec" of
10660         struct ready_list.
10661         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
10662         rtx_insn **.
10663         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
10664         from rtx to rtx_insn *
10665         (resolve_dependencies): Strengthen param "insn" from rtx to
10666         rtx_insn *
10667         (restore_other_notes): Likewise for return type, for param "head"
10668         and local "note_head".
10669         (undo_all_replacements): Likewise for local "insn".
10670         (first_nonscheduled_insn): Likewise for return type and local "insn".
10671         (queue_to_ready): Likewise for local "insn", adding checked casts.
10672         (early_queue_to_ready): Likewise for local "insn".
10673         (debug_ready_list_1): Strengthen local "p" from rtx * to
10674         rtx_insn **.
10675         (move_insn): Strengthen param "insn" and local "note" from rtx to
10676         rtx_insn *
10677         (insn_finishes_cycle_p): Likewise for param "insn".
10678         (max_issue): Likewise for local "insn".
10679         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
10680         to rtx_insn **.
10681         (commit_schedule): Strengthen param "prev_head" and local "insn"
10682         from rtx to rtx_insn *
10683         (prune_ready_list): Likewise for local "insn".
10684         (schedule_block): Likewise for locals "prev_head", "head", "tail",
10685         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
10686         (set_priorities): Likewise for local "prev_head".
10687         (try_ready): Likewise for param "next".
10688         (fix_tick_ready): Likewise.
10689         (change_queue_index): Likewise.
10690         (sched_extend_ready_list): Update for change to field "vec" of
10691         struct ready_list.
10692         (generate_recovery_code): Strengthen param "insn" from rtx to
10693         rtx_insn *.
10694         (begin_speculative_block): Likewise.
10695         (create_check_block_twin): Likewise for param "insn" and locals
10696         "label", "check", "twin".  Introduce local "check_pat" to avoid
10697         "check" being used as a plain rtx before being used as an insn.
10698         (fix_recovery_deps): Add a checked cast to rtx_insn * when
10699         extracting elements from ready_list.
10700         (sched_remove_insn): Strengthen param "insn" from rtx to
10701         rtx_insn *.
10702         (sched_emit_insn): Likewise for return type.
10703         (ready_remove_first_dispatch): Likewise for return type and local
10704         "insn".
10705
10706         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
10707
10708         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
10709         const rtx_insn *.
10710
10711         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
10712         from rtx to rtx_insn *.
10713         (add_dependence_list): Likewise for param "insn".  Add a checked
10714         cast.
10715         (add_dependence_list_and_free): Strengthen param "insn" from rtx
10716         to rtx_insn *.  Strengthen param "list_p" from rtx * to
10717         rtx_insn **.
10718         (chain_to_prev_insn): Strengthen param "insn" and locals
10719         "prec_nonnote", "i" from rtx to rtx_insn *.
10720         (flush_pending_lists): Likewise for param "insn".
10721         (cur_insn): Likewise for this variable.
10722         (haifa_start_insn): Add a checked cast.
10723         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
10724         (sched_analyze_reg): Likewise for param "insn".
10725         (sched_analyze_1): Likewise.
10726         (sched_analyze_2): Likewise.  Add checked casts.
10727         (sched_analyze_insn): Likewise.  Also for local "prev".
10728         (deps_analyze_insn): Likewise for param "insn".
10729         (sched_analyze): Likewise for params "head", "tail" and local "insn".
10730         (add_dependence_1): Likewise for params "insn", "elem".
10731         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
10732         (parse_add_or_inc): Likewise for param "insn".
10733         (find_inc): Likewise for local "inc_cand".
10734         (find_modifiable_mems): Likewise for params "head", "tail" and
10735         locals "insn", "next_tail".
10736
10737         * sched-ebb.c (init_ready_list): Likewise for local "insn".
10738         (begin_schedule_ready): Likewise for param "insn".
10739         (begin_move_insn): Likewise for params "insn" and "last".
10740         (ebb_print_insn): Strengthen param "insn" from const_rtx to
10741         const rtx_insn *.
10742         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
10743         (ebb_contributes_to_priority): Likewise for params "next", "insn".
10744         (ebb_add_remove_insn): Likewise for param "insn".
10745         (advance_target_bb): Likewise.
10746
10747         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
10748         "insn".
10749         (check_live): Likewise for param "insn".
10750         (init_ready_list): Likewise for local "insn".
10751         (can_schedule_ready_p): Likewise for param "insn".
10752         (begin_schedule_ready): Likewise.
10753         (new_ready): Likewise for param "next".
10754         (rgn_print_insn): Likewise for param "insn".
10755         (rgn_rank): Likewise for params "insn1", "insn2".
10756         (contributes_to_priority): Likewise for params "next", "insn".
10757         (rgn_insn_finishes_block_p): Likewise for param "insn".
10758         (add_branch_dependences): Likewise for params "head", "tail" and
10759         locals "insn", "last".
10760         (rgn_add_remove_insn): Likewise for param "insn".
10761         (advance_target_bb): Likewise.
10762
10763         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
10764         const_rtx to const rtx_insn *.
10765
10766         * sel-sched-dump.h (sel_print_insn): Likewise.
10767
10768         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
10769         (deps_init_id): Likewise.
10770
10771         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
10772         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
10773         rtx_insn **.
10774
10775 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10776
10777         * output.h (final_start_function): Strengthen param 1 from rtx to
10778         rtx_insn *.
10779
10780         * final.c (final_start_function): Likewise, renaming back from
10781         "uncast_first" to "first", and dropping the checked cast from rtx
10782         to rtx_insn *.
10783
10784 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10785
10786         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
10787         * final.c (final): Likewise.  Rename param back from
10788         "uncast_first" to "first" and eliminate the checked cast from rtx
10789         to rtx_insn *.
10790
10791 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10792
10793         * output.h (shorten_branches): Strengthen param from rtx to
10794         rtx_insn *.
10795
10796         * final.c (shorten_branches): Likewise, renaming param back from
10797         "uncast_first" to "first", and dropping the checked cast from rtx
10798         to rtx_insn *.
10799
10800         * genattr.c (gen_attr): Likewise when writing out the prototype of
10801         shorten_branches.
10802
10803 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10804
10805         * sched-int.h (struct haifa_sched_info): Strengthen fields
10806         "prev_head" and "next_tail" from rtx to rtx_insn *.
10807
10808 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10809
10810         * rtl.h (rtx_jump_table_data::get_labels): New method.
10811         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
10812         with use of the new rtx_jump_table_data::get_labels method.
10813         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
10814         to rtx_jump_table_data *.  Simplify by using get_labels method.
10815         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
10816         a dyn_cast, introducing local "table", using it to replace
10817         label-lookup logic with a get_labels method call.
10818         (patch_jump_insn): Simplify using get_labels method.
10819         * dwarf2cfi.c (create_trace_edges): Likewise.
10820         * rtlanal.c (label_is_jump_target_p): Likewise.
10821
10822 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10823
10824         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
10825         to rtx_insn *.
10826
10827         * emit-rtl.c (unshare_all_rtl_1): Likewise.
10828         (unshare_all_rtl_again): Likewise, also for local "p".
10829
10830 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10831
10832         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
10833         to rtx_insn *.
10834         * cfgrtl.c (delete_insn_and_edges): Likewise.
10835
10836 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10837
10838         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
10839         from rtx to rtx_insn *.
10840
10841         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
10842
10843 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10844
10845         * function.c (thread_prologue_and_epilogue_insns): Likewise for
10846         locals "returnjump", "epilogue_end", "insn", "next".
10847
10848         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
10849         "returnjump" from rtx * to rtx_insn **.
10850         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
10851
10852 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10853
10854         * basic-block.h (struct edge_def). Strengthen "r" within
10855         union edge_def_insns from rtx to rtx_insn *.
10856
10857         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
10858         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
10859         rtx_insn *.
10860         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
10861         from rtx to rtx_insn *.
10862         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
10863         rtx_insn *.
10864         * postreload-gcse.c (reg_killed_on_edge): Likewise.
10865         (reg_used_on_edge): Likewise.
10866         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
10867         (gt_pch_nx): New overload for rtx_insn *&.
10868         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
10869         from rtx to rtx_insn *.
10870
10871 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10872
10873         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
10874         from rtx to rtx_insn *.
10875         (BB_FOOTER): Replace function with access macro.
10876         (SET_BB_FOOTER): Delete.
10877
10878         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
10879         with BB_FOOTER.
10880         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10881         (emit_barrier_after_bb): Likewise.
10882         (record_effective_endpoints): Likewise.
10883         (relink_block_chain): Likewise.
10884         (fixup_fallthru_exit_predecessor): Likewise.
10885         (cfg_layout_duplicate_bb): Likewise.
10886         (cfg_layout_split_block): Likewise.
10887         (cfg_layout_delete_block): Likewise.
10888         (cfg_layout_merge_blocks): Likewise.
10889         (BB_FOOTER): Delete function.
10890         (SET_BB_FOOTER): Delete function.
10891         * combine.c (update_cfg_for_uncondjump): Replace uses of
10892         SET_BB_FOOTER with BB_FOOTER.
10893
10894 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10895
10896         * except.h (struct eh_landing_pad_d): Strengthen field
10897         "landing_pad" from rtx to rtx_code_label *.
10898
10899         * except.c (sjlj_emit_dispatch_table): Likewise for param
10900         "dispatch_label"
10901         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
10902
10903 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10904
10905         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
10906         first param from rtx to rtx_insn *.
10907         * config/xtensa/xtensa.c (struct machine_function): Likewise for
10908         field "set_frame_ptr_insn".
10909         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
10910         "csend" from rtx to rtx_code_label *.
10911         (xtensa_expand_atomic): Likewise for local "csloop".
10912         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
10913         rtx_insn *.
10914         (xtensa_call_tls_desc): Likewise for return type and locals
10915         "call_insn", "insns".
10916         (xtensa_legitimize_tls_address): Likewise for local "insns".
10917         (xtensa_expand_prologue): Likewise for locals "insn", "first".
10918
10919 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10920
10921         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
10922         first param from rtx to rtx_insn *.
10923         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
10924         "insn".
10925
10926 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10927
10928         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
10929         Strengthen param 1 from rtx to rtx_insn *.
10930         (tilepro_output_cbranch): Likewise.
10931         (tilepro_adjust_insn_length): Likewise.
10932         (tilepro_final_prescan_insn): Likewise for sole param.
10933
10934         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
10935         Likewise for local "last".
10936         (cbranch_predicted_p): Likewise for param "insn".
10937         (tilepro_output_simple_cbranch_with_opcode): Likewise.
10938         (tilepro_output_cbranch_with_opcode): Likewise.
10939         (tilepro_output_cbranch): Likewise.
10940         (frame_emit_load): Likewise for return type and locals "seq",
10941         "insn".
10942         (emit_sp_adjust): Likewise for return type and local "insn".
10943         (tilepro_expand_epilogue): Likewise for locals "last_insn",
10944         "insn".
10945         (tilepro_adjust_insn_length): Likewise for param "insn".
10946         (next_insn_to_bundle): Likewise for return type and params
10947         "r", "end".
10948         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
10949         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
10950         local "new_insns".
10951         (match_addli_pcrel): Likewise for param "insn".
10952         (replace_addli_pcrel): Likewise.
10953         (match_auli_pcrel): Likewise.
10954         (replace_auli_pcrel): Likewise.
10955         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
10956         "next_insn".
10957         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10958         "queue", "next_queue", "prev".
10959         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
10960         (tilepro_final_prescan_insn): Likewise for param "insn".
10961
10962 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10963
10964         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
10965         Strengthen param 1 from rtx to rtx_insn *.
10966         (tilegx_output_cbranch): Likewise.
10967         (tilegx_adjust_insn_length): Likewise.
10968         (tilegx_final_prescan_insn): Likewise for sole param.
10969
10970         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
10971         or local "last".
10972         (cbranch_predicted_p): Likewise for param "insn".
10973         (tilegx_output_simple_cbranch_with_opcode): Likewise.
10974         (tilegx_output_cbranch_with_opcode): Likewise.
10975         (tilegx_output_cbranch): Likewise.
10976         (frame_emit_load): Likewise for return type.
10977         (set_frame_related_p): Likewise for locals "seq", "insn".
10978         (emit_sp_adjust): Likewise for return type, and for local "insn".
10979         Introduce local "pat" for use in place of "insn" where the latter
10980         isn't an instruction.
10981         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
10982         from rtx to rtx_insn *.
10983         (tilegx_adjust_insn_length): Likewise for param "insn".
10984         (next_insn_to_bundle): Likewise for return type and params "r" and
10985         "end".
10986         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
10987         "end".
10988         (replace_insns): Likewise for params "old_insn", "new_insns".
10989         (replace_mov_pcrel_step1): Likewise for param "insn" and local
10990         "new_insns".
10991         (replace_mov_pcrel_step2): Likewise.
10992         (replace_mov_pcrel_step3): Likewise.
10993         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
10994         "next_insn".
10995         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10996         "queue", "next_queue", "prev".
10997         (tilegx_output_mi_thunk): Likewise for local "insn".
10998         (tilegx_final_prescan_insn): Likewise for param "insn".
10999
11000 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11001
11002         * config/spu/spu.c (frame_emit_store): Strengthen return type from
11003         rtx to rtx_insn *.
11004         (frame_emit_load): Likewise.
11005         (frame_emit_add_imm): Likewise, also for local "insn".
11006         (spu_expand_prologue): Likewise for local "insn".
11007         (struct spu_bb_info): Likewise for field "prop_jump".
11008         (emit_nop_for_insn): Likewise for param "insn" and local
11009         "new_insn".
11010         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11011         "hbr_insn".
11012         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11013         locals "hint", "insn".
11014         (get_branch_target): Likewise for param "branch".
11015         (insn_clobbers_hbr): Likewise for param "insn".
11016         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11017         locals "insn", "before_4", "before_16".
11018         (insert_hbrp): Likewise for local "insn".
11019         (spu_machine_dependent_reorg): Likewise for locals "branch",
11020         "insn", "next", "bbend".
11021         (uses_ls_unit): Likewise for param "insn".
11022         (get_pipe): Likewise.
11023         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11024         introducing a checked cast.
11025         (spu_sched_adjust_cost): Likewise for params "insn" and
11026         "dep_insn".
11027         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11028         (spu_sms_res_mii): Likewise.
11029
11030 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11031
11032         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11033         from rtx to rtx_insn *.
11034         (output_cbranch): Likewise for param 6.
11035         (output_return): Likewise for param 1.
11036         (output_sibcall): Likewise.
11037         (output_v8plus_shift): Likewise.
11038         (output_v8plus_mult): Likewise.
11039         (output_v9branch): Likewise for param 7.
11040         (output_cbcond):  Likewise for param 3.
11041
11042         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11043         for local "insn".
11044         (sparc_legitimize_pic_address): Likewise.
11045         (sparc_emit_call_insn): Likewise.
11046         (emit_save_or_restore_regs): Likewise.
11047         (emit_window_save): Likewise for return type and local "insn".
11048         (sparc_expand_prologue): Likewise for local "insn".
11049         (sparc_flat_expand_prologue): Likewise.
11050         (output_return): Likewise for param "insn".
11051         (output_sibcall): Likewise for param "insn" and local "delay".
11052         (output_ubranch): Likewise for param "insn".
11053         (output_cbranch): Likewise.
11054         (output_cbcond): Likewise.
11055         (output_v9branch): Likewise.
11056         (output_v8plus_shift): Likewise.
11057         (sparc_output_mi_thunk): Likewise for local "insn".
11058         (get_some_local_dynamic_name): Likewise.
11059         (output_v8plus_mult): Likewise for param "insn".
11060
11061 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11062
11063         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11064         from rtx to rtx_insn *.
11065         (output_branchy_insn): Likewise for param 3.
11066         (output_far_jump): Likewise for param 1.
11067         (final_prescan_insn): Likewise.
11068         (sh_insn_length_adjustment): Likewise for sole param.
11069
11070         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11071         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11072         rtx_code_label *.
11073         (sh_emit_compare_and_set): Likewise for local "lab".
11074         (output_far_jump): Strengthen param "insn" and local "prev" from
11075         rtx to rtx_insn *.
11076         (output_branchy_insn): Likewise for param "insn" and local
11077         "next_insn".
11078         (output_ieee_ccmpeq): Likewise for param "insn".
11079         (struct label_ref_list_d): Strengthen field "label" from rtx to
11080         rtx_code_label *.
11081         (pool_node): Likewise.
11082         (pool_window_label): Likewise for this global.
11083         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11084         (dump_table): Strengthen params "start", "barrier" and local
11085         "scan" from rtx to rtx_insn *.
11086         (broken_move): Likewise for param "insn".
11087         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11088         Strengthen param "first_mova" from rtx * to rtx_insn **.
11089         (mova_p): Likewise for param "insn".
11090         (fixup_mova): Likewise for param "mova".
11091         (find_barrier): Likewise for return type, params "mova" and
11092         "from", and locals "barrier_before_mova", "found_barrier",
11093         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11094         "label" from rtx to rtx_code_label *.
11095         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11096         rtx to rtx_insn *.
11097         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11098         (split_branches): Likewise for param "first" and local "insn".
11099         (final_prescan_insn): Likewise for param "insn".
11100         (sequence_insn_p): Likewise for locals "prev", "next".
11101         (sh_insn_length_adjustment): Likewise for param "insn".
11102         (sh_can_redirect_branch): Likewise for local "insn".
11103         (find_r0_life_regions): Likewise for locals "end", "insn".
11104         (sh_output_mi_thunk): Likewise for local "insns".
11105
11106 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11107
11108         * config/score/score.c (score_output_mi_thunk): Strengthen local
11109         "insn" from rtx to rtx_insn *.
11110         (score_prologue): Likewise.
11111
11112 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11113
11114         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11115         1 from rtx to rtx_insn *.
11116         (s390_emit_jump): Likewise for return type.
11117         (s390_emit_call): Likewise.
11118         (s390_load_got): Likewise.
11119
11120         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11121         variable.
11122         (s390_match_ccmode): Likewise for param "insn".
11123         (s390_emit_jump): Likewise for return type.
11124         (s390_split_branches): Likewise for local "label".
11125         (struct constant): Strengthen field "label" from rtx to
11126         rtx_code_label *.
11127         (struct constant_pool): Likewise for field "label".  Strengthen
11128         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11129         rtx_insn *.
11130         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11131         insns.
11132         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11133         (s390_end_pool): Likewise.
11134         (s390_dump_pool): Likewise for local "insn".
11135         (s390_mainpool_start): Likewise.
11136         (s390_chunkify_start): Likewise.
11137         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11138         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11139         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11140         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11141         rtx_insn *.
11142         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11143         "jump", "label", "next_insn".
11144         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11145         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11146         "tbegin_insn".
11147         (s390_load_got): Likewise for return type and local "insns".
11148         (s390_save_gprs_to_fprs): Likewise for local "insn".
11149         (s390_restore_gprs_from_fprs): Likewise.
11150         (pass_s390_early_mach::execute): Likewise.
11151         (s390_emit_prologue): Likewise for local "insns".
11152         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11153         rtx_code_label *.
11154         (s390_emit_call): Strengthen return type and local "insn" from
11155         rtx to rtx_insn *.
11156         (s390_emit_tpf_eh_return): Likewise for local "insn".
11157         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11158         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11159         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11160         local "cur_insn".
11161         (s390_non_addr_reg_read_p): Likewise for param "insn".
11162         (find_cond_jump): Likewise for return type and param "insn".
11163         (s390_swap_cmp): Likewise for param "insn".
11164         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11165         "prev_insn", "next_insn".
11166         (s390_reorg): Likewise for locals "insn", "target".
11167         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11168         (s390_sched_variable_issue): For now, rename param "insn" to
11169         "uncast_insn", introducing a checked cast.
11170         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11171         insn.
11172         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11173         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11174
11175 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11176
11177         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11178         param from rtx to rtx_insn *.
11179         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11180
11181 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11182
11183         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11184         4 from rtx to rtx_insn *.
11185         (rs6000_final_prescan_insn): Likewise for first param.
11186         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11187         local "insn".
11188         (rs6000_get_some_local_dynamic_name): Likewise.
11189         (output_cbranch): Likewise for param "insn".
11190         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11191         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11192         (rs6000_emit_allocate_stack): Likewise for local "insn".
11193         (load_cr_save): Likewise.
11194         (restore_saved_cr): Likewise.
11195         (restore_saved_lr): Likewise.
11196         (emit_cfa_restores): Likewise.
11197         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11198         "deleted_debug_label".
11199         (rs6000_output_mi_thunk): Likewise for local "insn".
11200         (rs6000_final_prescan_insn): Likewise for param "insn".
11201
11202 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11203
11204         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11205         Strengthen param "insn" from rtx to rtx_insn *.
11206         * config/picochip/picochip.c (picochip_current_prescan_insn):
11207         Likewise for this variable.
11208         (picochip_final_prescan_insn): Likewise for param "insn".
11209
11210 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11211
11212         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11213         from rtx to rtx_insn *.
11214         (pa_output_indirect_call): Likewise.
11215         (pa_adjust_insn_length): Likewise.
11216         (pa_attr_length_millicode_call): Likewise.
11217         (pa_attr_length_call): Likewise.
11218         (pa_attr_length_indirect_call): Likewise.
11219
11220         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11221         "insn".
11222         (pa_attr_length_millicode_call): Likewise.
11223         (pa_attr_length_call): Likewise.
11224         (pa_output_call): Likewise.
11225         (pa_attr_length_indirect_call): Likewise.
11226         (pa_output_indirect_call): Likewise.
11227
11228 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11229
11230         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11231         Strengthen first param from rtx to rtx_insn *.
11232         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11233         param "insn".
11234
11235 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11236
11237         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11238         type from rtx to rtx_insn *.
11239         (mips_expand_call): Likewise.
11240         (mips_adjust_insn_length): Likewise for first param.
11241         (mips_output_conditional_branch): Likewise.
11242         (mips_output_order_conditional_branch): Likewise.
11243         (mips_final_prescan_insn): Likewise.
11244
11245         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11246         rtx_insn * for the SEQUENCE case.
11247         (SEQ_END): Likewise.
11248         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11249         (mips_emit_call_insn): Likewise, also for local "insn".
11250         (mips16_gp_pseudo_reg): Likewise for local "scan".
11251         (mips16_build_call_stub): Likewise for return type and for local
11252         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11253         be an insn.
11254         (mips_expand_call): Strengthen return type and local "insn" from
11255         rtx to rtx_insn *.
11256         (mips_block_move_loop): Strengthen local "label" from rtx to
11257         rtx_code_label *.
11258         (mips_expand_synci_loop): Likewise for locals "label",
11259         "end_label".
11260         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11261         rtx_insn *.
11262         (mips16e_collect_argument_saves): Likewise for locals "insn",
11263         "next".
11264         (mips_find_gp_ref): Likewise for param of callback for "pred"
11265         param, and for local "insn".
11266         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11267         (mips_insn_has_flexible_gp_ref_p): Likewise.
11268         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11269         local "insn".
11270         (mips_epilogue_set_cfa): Likewise for local "insn".
11271         (mips_expand_epilogue): Likewise.
11272         (mips_adjust_insn_length): Likewise for param "insn".
11273         (mips_output_conditional_branch): Likewise.
11274         (mips_output_order_conditional_branch): Likewise.
11275         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11276         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11277         "falu2_turn_enabled_insn".
11278         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11279         "done_label" from rtx to rtx_code_label *.
11280         (struct mips16_constant): Likewise for field "label".
11281         (mips16_add_constant): Likewise for return type.
11282         (mips16_emit_constants_1): Strengthen return type and param "insn"
11283         from rtx to rtx_insn *.
11284         (mips16_emit_constants): Likewise for param "insn".
11285         (mips16_insn_length): Likewise.
11286         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11287         to rtx_code_label *.
11288         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11289         from rtx to rtx_insn *.
11290         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11291         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11292         (r10k_simplify_address): Strengthen param "insn" and local
11293         "def_insn" from rtx to rtx_insn *.
11294         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11295         rtx_insn *.
11296         (r10k_needs_protection_p_1): Update target type of cast of data
11297         from to rtx to rtx_insn *.
11298         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11299         rtx * to rtx_insn **.
11300         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11301         rtx_insn *.
11302         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11303         (mips_call_expr_from_insn): Likewise for param "insn".
11304         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11305         (mips_find_pic_call_symbol): Likewise for param "insn".
11306         (mips_annotate_pic_calls): Likewise for local "insn".
11307         (mips_sim_insn): Likewise for this variable.
11308         (struct mips_sim): Likewise for field "insn" within elements of
11309         last_set array.
11310         (mips_sim_wait_reg): Likewise for param "insn".
11311         (mips_sim_wait_regs): Likewise.
11312         (mips_sim_wait_units): Likewise.
11313         (mips_sim_wait_insn): Likewise.
11314         (mips_sim_issue_insn): Likewise.
11315         (mips_sim_finish_insn): Likewise.
11316         (mips_seq_time): Likewise for param "seq" and local "insn".
11317         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11318         locals "first", "second".
11319         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11320         "last", "last2", "next".
11321         (mips_avoid_hazard): Likewise for params "after", "insn".
11322         (mips_reorg_process_insns): Likewise for locals "insn",
11323         "last_insn", "subinsn", "next_insn".
11324         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11325         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11326         "jump_sequence".
11327         (mips_output_mi_thunk): Likewise for local "insn".
11328         (mips_final_prescan_insn): Likewise for param "insn".
11329
11330 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11331
11332         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11333         Strengthen return type and local "insns" from rtx to rtx_insn *.
11334         (microblaze_legitimize_tls_address): Likewise for local "insns".
11335         (microblaze_block_move_loop): Strengthen local "label" from rtx
11336         to rtx_code_label *.
11337         (microblaze_expand_prologue): Strengthen two locals named "insn"
11338         from rtx to rtx_insn *.
11339         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11340         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11341         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11342         to rtx_code_label *.
11343
11344 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11345
11346         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11347         param from rtx to rtx_insn *.
11348         (mep_reuse_lo): Likewise for third param.
11349         (mep_use_post_modify_p): Likewise for first param.
11350         (mep_core_address_length): Likewise.
11351         (mep_cop_address_length): Likewise.
11352         (mep_final_prescan_insn): Likewise.
11353         (mep_store_data_bypass_p): Likewise for both params.
11354         (mep_mul_hilo_bypass_p): Likewise.
11355         (mep_ipipe_ldc_p): Likewise for param.
11356
11357         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11358         (mep_rewrite_mult): Likewise.
11359         (mep_rewrite_mulsi3): Likewise.
11360         (mep_rewrite_maddsi3): Likewise.
11361         (mep_reuse_lo_p_1): Likewise.
11362         (mep_reuse_lo_p): Likewise.
11363         (mep_frame_expr): Likewise.
11364         (mep_make_parallel): Likewise for both params.
11365         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11366         local "insn".
11367         (mep_use_post_modify_p): Likewise for param "insn".
11368         (mep_core_address_length): Likewise.
11369         (mep_cop_address_length): Likewise.
11370         (mep_reg_set_in_function): Likewise for local "insn".
11371         (mep_asm_without_operands_p): Likewise.
11372         (F): Likewise for return type and param "x".
11373         (add_constant): Likewise for local "insn".
11374         (maybe_dead_move): Likewise for return type and local "insn".
11375         (mep_expand_prologue): Likewise for local "insn".
11376         (mep_final_prescan_insn): Likewise for param "insn".
11377         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11378         "next", "follow", "x".
11379         (mep_insert_repeat_label_last): Likewise for return type, param
11380         "last_insn", and locals "next", "prev".  Strengthen param "label"
11381         from rtx to rtx_code_label *.
11382         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11383         rtx_insn *.
11384         (struct mep_doloop_end): Likewise for fields "insn" and
11385         "fallthrough".
11386         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11387         Strengthen local "repeat_label" from rtx to rtx_code_label *.
11388         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11389         rtx_insn *.
11390         (mep_invert_branch): Likewise for params "insn" and "after".
11391         (mep_reorg_erepeat): Likewise for param "insns" and locals
11392         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
11393         "l" from rtx to rtx_code_label *.
11394         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11395         from rtx to rtx_insn *.
11396         (mep_reorg_addcombine): Likewise for param "insns" and locals
11397         "i", "n".
11398         (add_sp_insn_p): Likewise for param "insn".
11399         (mep_reorg_noframe): Likewise for param "insns" and locals
11400         "start_frame_insn", "end_frame_insn", "next".
11401         (mep_reorg): Likewise for local "insns".
11402         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
11403         cast.
11404         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
11405         (mep_mul_hilo_bypass_p): Likewise.
11406         (mep_ipipe_ldc_p): Likewise for param "insn".
11407         (mep_make_bundle): Likewise for return type, param "cop" and local
11408         "insn", splitting out the latter into a new local "seq" for when it
11409         is a SEQUENCE rather than an insn.
11410         (core_insn_p): Likewise for param "insn".
11411         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
11412         "last", "first", "note", "prev", "core_insn".
11413
11414 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11415
11416         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
11417         rtx to rtx_insn *.
11418         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
11419         (m68k_final_prescan_insn): Likewise for first param.
11420
11421         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
11422         (m68k_set_frame_related): Likewise for param "insn".
11423         (output_btst): Likewise for param "insn".
11424         (m68k_final_prescan_insn): Likewise.
11425         (m68k_move_to_reg): Likewise for local "insn".
11426         (m68k_call_tls_get_addr): Likewise for local "insns".
11427         (m68k_call_m68k_read_tp): Likewise.
11428         (strict_low_part_peephole_ok): Likewise for param "first_insn".
11429         (m68k_output_mi_thunk): Likewise for local "insn".
11430
11431 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11432
11433         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
11434         first param from rtx to rtx_insn *.
11435         (iq2000_adjust_insn_length): Likewise.
11436         (iq2000_output_conditional_branch): Likewise.
11437         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
11438         "insn" and local "nop_insn".
11439         (iq2000_annotate_frame_insn): Likewise for param "insn".
11440         (iq2000_expand_prologue): Likewise for both locals "insn".
11441         (iq2000_adjust_insn_length): Likewise for param "insn".
11442         (iq2000_output_conditional_branch): Likewise.
11443
11444 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11445
11446         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
11447         "insns" from rtx to rtx_insn *.
11448         (ia64_emit_cond_move): Likewise for locals "insn", "first".
11449         (struct spill_fill_data): Likewise for field "init_after" and for
11450         elements of array field "prev_insn".
11451         (spill_restore_mem): Likewise for locals "insn", "first".
11452         (do_spill): Likewise for local "insn".
11453         (do_restore): Likewise.
11454         (ia64_expand_prologue): Likewise.
11455         (ia64_expand_epilogue): Likewise.
11456         (emit_insn_group_barriers): Likewise for locals "insn",
11457         "last_label".
11458         (emit_all_insn_group_barriers): Likewise for locals "insn",
11459         "last".
11460         (dfa_stop_insn): Likewise for this global.
11461         (dfa_pre_cycle_insn): Likewise.
11462         (ia64_nop): Likewise.
11463         (final_emit_insn_group_barriers): Likewise for locals "insn",
11464         "last".
11465         (emit_predicate_relation_info): Likewise for locals "head", "n",
11466         "insn", "b", "a".
11467         (ia64_reorg): Likewise for local "insn".
11468         (ia64_output_mi_thunk): Likewise.
11469         (expand_vec_perm_interleave_2): Likewise for local "seq".
11470
11471 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11472
11473         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
11474         param 1 "insn" from rtx to rtx_insn *.
11475         (ix86_use_lea_for_mov): Likewise.
11476         (ix86_avoid_lea_for_addr): Likewise.
11477         (ix86_split_lea_for_addr): Likewise.
11478         (ix86_lea_for_add_ok): Likewise.
11479         (ix86_output_call_insn): Likewise.
11480
11481         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
11482         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
11483         (ix86_output_function_epilogue): Likewise for locals "insn",
11484         "deleted_debug_label".
11485         (legitimize_tls_address): Likewise for local "insn".
11486         (get_some_local_dynamic_name): Likewise.
11487         (increase_distance): Likewise for params "prev", "next".
11488         (distance_non_agu_define_in_bb): Likewise for params "insn",
11489         "start" and locals "prev", "next".
11490         (distance_non_agu_define): Likewise for param "insn".
11491         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
11492         locals "next", "prev".
11493         (distance_agu_use): Likewise for param "insn".
11494         (ix86_lea_outperforms): Likewise.
11495         (ix86_ok_to_clobber_flags): Likewise.
11496         (ix86_avoid_lea_for_add): Likewise.
11497         (ix86_use_lea_for_mov): Likewise.
11498         (ix86_avoid_lea_for_addr): Likewise.
11499         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
11500         (ix86_split_lea_for_addr): Likewise for param "insn".
11501         (ix86_lea_for_add_ok): Likewise for param "insn".
11502         (ix86_expand_carry_flag_compare): Likewise for local
11503         "compare_seq".
11504         (ix86_expand_int_movcc): Likewise.
11505         (ix86_output_call_insn): Likewise for param "insn".
11506         (ix86_output_call_insn): Likewise for local "i".
11507         (x86_output_mi_thunk): Introduce local "insn", using it in place
11508         of "tmp" when dealing with insns.
11509         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
11510         "start".
11511         (ix86_pad_returns): Likewise for locals "ret", "prev".
11512         (ix86_count_insn_bb): Likewise for local "insn".
11513         (ix86_pad_short_function): Likewise for locals "ret", "insn".
11514         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
11515         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
11516         (expand_vec_perm_interleave2): Likewise for local "seq".
11517         (expand_vec_perm_vperm2f128_vblend): Likewise.
11518         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
11519         call to for_each_rtx with for_each_rtx_in_insn.
11520
11521 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11522
11523         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
11524         "label" from rtx to rtx_code_label *.
11525         (ix86_expand_prologue): Likewise.
11526         (ix86_expand_split_stack_prologue): Likewise for locals "label",
11527         "varargs_label".
11528         (ix86_split_idivmod): Likewise for locals "end_label" and
11529         "qimode_label".
11530         (ix86_expand_branch): Likewise for local "label2".
11531         (ix86_expand_aligntest): Likewise for return type and local "label".
11532         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
11533         "top_label".
11534         (expand_movmem_epilogue): Likewise for the various locals named
11535         "label".
11536         (expand_setmem_epilogue): Likewise.
11537         (expand_small_movmem_or_setmem): Likewise for local "label".
11538         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11539         Strengthen param "done_label" from rtx * to rtx_code_label **.
11540         Strengthen locals "loop_label" and "label" from rtx to
11541         rtx_code_label *.
11542         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11543         Likewise for locals "loop_label", "label".
11544         (ix86_expand_set_or_movmem): Likewise for locals "label",
11545         "jump_around_label", "hot_label".
11546         (ix86_expand_strlensi_unroll_1): Likewise for locals
11547         "align_2_label", align_3_label", "align_4_label", "end_0_label",
11548         "end_2_label".
11549         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
11550         (void ix86_emit_i387_log1p): Likewise for locals "label1",
11551         "label2", "jump_label".
11552         (ix86_expand_sse_compare_and_jump): Likewise for return type and
11553         local "label".
11554         (ix86_expand_lfloorceil): Likewise for local "label".
11555         (ix86_expand_rint): Likewise.
11556         (ix86_expand_floorceildf_32): Likewise.
11557         (ix86_expand_floorceil): Likewise.
11558         (ix86_expand_rounddf_32): Likewise.
11559         (ix86_expand_trunc): Likewise.
11560         (ix86_expand_truncdf_32): Likewise.
11561         (ix86_expand_round): Likewise.
11562
11563 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11564
11565         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
11566         first param from rtx to rtx_insn *.
11567         (h8300_insn_length_from_table): Likewise.
11568         * config/h8300/h8300.c (F): Likewise for return type and param
11569         "x".
11570         (Fpa): Add a checked cast to rtx_insn *.
11571         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
11572         rtx_insn *.
11573         (final_prescan_insn): Likewise for param "insn".
11574         (h8300_binary_length): Likewise.
11575         (h8300_insn_length_from_table): Likewise.
11576
11577 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11578
11579         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
11580         Strengthen first param "insn" from rtx to rtx_insn *.
11581
11582         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
11583         Likewise.
11584         (frame_insn): Likewise for return type.  Introduce local "insn"
11585         for use in place of local "x" for use as an rtx_insn *.
11586         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
11587         (epiphany_expand_prologue): Likewise for local "insn".
11588         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
11589         * config/epiphany/resolve-sw-modes.c
11590         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
11591         "seq".
11592
11593 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11594
11595         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
11596         param from rtx to rtx_insn *.
11597         (c6x_final_prescan_insn): Likewise for first param.
11598
11599         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
11600         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
11601         (c6x_expand_compare): Strengthen local "insns" from rtx to
11602         rtx_insn *.
11603         (c6x_get_unit_specifier): Likewise for param "insn".
11604         (c6x_print_unit_specifier_field): Likewise.
11605         (c6x_final_prescan_insn): Likewise.
11606         (emit_add_sp_const): Likewise for local "insn".
11607         (c6x_expand_prologue): Likewise.
11608
11609 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11610
11611         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
11612         param 1 from rtx to rtx_insn *.
11613         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
11614         the various locals named "insn".
11615         (expand_epilogue_reg_restore): Likewise.
11616         (frame_related_constant_load): Likewise.
11617         (add_to_reg): Likewise.
11618         (emit_link_insn): Likewise.
11619         (do_link): Likewise.
11620         (expand_interrupt_handler_prologue): Likewise.
11621         (branch_dest): Likewise for param "branch".
11622         (asm_conditional_branch): Likewise for param "insn".
11623         (gen_one_bundle): Likewise for elements of param "slot" and local
11624         "t".
11625         (bfin_gen_bundles): Likewise for locals "insn", "next" and
11626         elements of local "slot".
11627         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11628         "queue", "next_queue", "prev".
11629         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
11630         (add_sched_insns_for_speculation): Likewise for local "insn".
11631
11632 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11633
11634         * config/avr/avr-protos.h (output_movqi): Strengthen first param
11635         from rtx to rtx_insn *.
11636         (output_movhi): Likewise.
11637         (output_movsisf): Likewise.
11638         (avr_out_tstsi): Likewise.
11639         (avr_out_tsthi): Likewise.
11640         (avr_out_tstpsi): Likewise.
11641         (avr_out_compare): Likewise.
11642         (avr_out_compare64): Likewise.
11643         (avr_out_movpsi): Likewise.
11644         (ashlqi3_out): Likewise.
11645         (ashlhi3_out): Likewise.
11646         (ashlsi3_out): Likewise.
11647         (ashrqi3_out): Likewise.
11648         (ashrhi3_out): Likewise.
11649         (ashrsi3_out): Likewise.
11650         (lshrqi3_out): Likewise.
11651         (lshrhi3_out): Likewise.
11652         (lshrsi3_out): Likewise.
11653         (avr_out_ashlpsi3): Likewise.
11654         (avr_out_ashrpsi3): Likewise.
11655         (avr_out_lshrpsi3): Likewise.
11656         (avr_out_fract): Likewise.
11657         (avr_out_sbxx_branch): Likewise.
11658         (avr_out_round): Likewise.
11659         (avr_out_xload): Likewise.
11660         (avr_out_movmem): Likewise.
11661         (adjust_insn_length): Likewise.
11662         (avr_out_lpm): Likewise.
11663         (reg_unused_after): Likewise.
11664         (_reg_unused_after): Likewise.
11665         (avr_jump_mode): Likewise for second param.
11666         (jump_over_one_insn): Likewise for first param.
11667         (avr_final_prescan_insn): Likewise.
11668         (out_shift_with_cnt): Likewise for second param.
11669
11670         * config/avr/avr.c (get_sequence_length): Likewise for param
11671         "insns" and local "insn".
11672         (emit_push_byte): Likewise for local "insn".
11673         (emit_push_sfr): Likewise.
11674         (avr_prologue_setup_frame): Likewise for locals "insn",
11675         "fp_plus_insns", "sp_plus_insns".
11676         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
11677         "sp_plus_insns".
11678         (avr_jump_mode): Likewise for param "insn".
11679         (avr_final_prescan_insn): Likewise.
11680         (avr_find_unused_d_reg): Likewise.
11681         (avr_out_lpm_no_lpmx): Likewise.
11682         (avr_out_lpm): Likewise.
11683         (avr_out_xload): Likewise.
11684         (output_movqi): Likewise.
11685         (output_movhi): Likewise.
11686         (out_movqi_r_mr): Likewise.
11687         (out_movhi_r_mr): Likewise.
11688         (out_movsi_r_mr): Likewise.
11689         (out_movsi_mr_r): Likewise.
11690         (output_movsisf): Likewise.
11691         (avr_out_load_psi): Likewise.
11692         (avr_out_store_psi): Likewise.
11693         (avr_out_movpsi): Likewise.
11694         (out_movqi_mr_r): Likewise.
11695         (avr_out_movhi_mr_r_xmega): Likewise.
11696         (out_movhi_mr_r): Likewise.
11697         (compare_condition): Likewise for param "insn" and local "next".
11698         (compare_sign_p): Likewise for param "insn".
11699         (compare_diff_p): Likewise.
11700         (compare_eq_p): Likewise.
11701         (avr_out_compare): Likewise.
11702         (avr_out_compare64): Likewise.
11703         (avr_out_tsthi): Likewise.
11704         (avr_out_tstpsi): Likewise.
11705         (avr_out_tstsi): Likewise.
11706         (out_shift_with_cnt): Likewise.
11707         (ashlqi3_out): Likewise.
11708         (ashlhi3_out): Likewise.
11709         (avr_out_ashlpsi3): Likewise.
11710         (ashlsi3_out): Likewise.
11711         (ashrqi3_out): Likewise.
11712         (ashrhi3_out): Likewise.
11713         (avr_out_ashrpsi3): Likewise.
11714         (ashrsi3_out): Likewise.
11715         (lshrqi3_out): Likewise.
11716         (lshrhi3_out): Likewise.
11717         (avr_out_lshrpsi3): Likewise.
11718         (lshrsi3_out): Likewise.
11719         (avr_out_fract): Likewise.
11720         (avr_out_round): Likewise.
11721         (avr_adjust_insn_length): Likewise.
11722         (reg_unused_after): Likewise.
11723         (_reg_unused_after): Likewise.
11724         (avr_compare_pattern): Likewise.
11725         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
11726         and locals "branch1", "branch2", "insn2", "jump".
11727         (avr_reorg): Likewise for local "insn".
11728         (avr_2word_insn_p): Likewise for param "insn".
11729         (jump_over_one_insn_p): Likewise.
11730         (avr_out_sbxx_branch): Likewise.
11731         (avr_out_movmem): Likewise.
11732
11733 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11734
11735         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
11736         param from rtx to rtx_insn *.
11737         (thumb1_final_prescan_insn): Likewise.
11738         (thumb2_final_prescan_insn): Likewise.
11739
11740         * config/arm/arm.c (emit_set_insn): Strengthen return type from
11741         rtx to rtx_insn *.
11742         (struct minipool_node): Likewise for field "insn".
11743         (dump_minipool): Likewise for param "scan".
11744         (create_fix_barrier): Likewise for local "from".  Strengthen local
11745         "label" from rtx to rtx_code_label *.
11746         (push_minipool_barrier): Strengthen param "insn" from rtx to
11747         rtx_insn *.
11748         (push_minipool_fix): Likewise.
11749         (note_invalid_constants): Likewise.
11750         (thumb2_reorg): Likewise for local "insn".
11751         (arm_reorg): Likewise.
11752         (thumb2_final_prescan_insn): Likewise for param
11753         "insn" and local "first_insn".
11754         (arm_final_prescan_insn): Likewise for param "insn" and locals
11755         "start_insn", "this_insn".
11756         (arm_debugger_arg_offset): Likewise for param "insn".
11757         (thumb1_emit_multi_reg_push): Likewise for return type and local
11758         "insn".
11759         (thumb1_final_prescan_insn): Likewise for param "insn".
11760         (thumb_far_jump_used_p): Likewise for local "insn".
11761         (thumb1_expand_prologue): Likewise.
11762         (arm_expand_epilogue_apcs_frame): Likewise.
11763         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
11764         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
11765         from rtx to rtx_code_label *.
11766         (arm_split_atomic_op): Likewise for local "label".
11767         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
11768
11769 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11770
11771         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
11772         first param from rtx to rtx_insn *.
11773         (arc_verify_short): Likewise.
11774         (arc_short_long): Likewise.
11775         (arc_need_delay): Likewise.
11776
11777         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
11778         "target_insn".
11779         (arc_ccfsm_advance): Likewise for param "insn" and locals
11780         "start_insn", "this_insn".
11781         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
11782         (arc_ccfsm_post_advance): Likewise for param "insn".
11783         (arc_next_active_insn): Likewise for return type and param "insn".
11784         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
11785         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
11786         (output_short_suffix): Likewise for local "insn".
11787         (arc_final_prescan_insn): Likewise for param "insn".  Remove
11788         now-redundant checked cast.
11789         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
11790         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
11791         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
11792         for use where lc_set became an insn.
11793         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
11794         rtx to rtx_insn *.
11795         (arc_get_insn_variants): Likewise for local "prev".
11796         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
11797         "next".
11798         (arc_predicate_delay_insns): Likewise for local "insn".
11799         (arc_pad_return): Likewise for local "prev".  For now, add a
11800         checked cast when extracting the insn from "final_sequence".
11801         (arc_short_long): Likewise for param "insn".
11802         (arc_need_delay): Likewise for param "insn" and local "next".
11803         (arc_label_align): Likewise for locals "prev", "next".
11804
11805 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11806
11807         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
11808         "insn" from rtx to rtx_insn *.
11809         (alpha_gp_save_rtx): Likewise for local "seq".
11810         (alpha_instantiate_decls): Likewise for local "top".
11811         (get_some_local_dynamic_name): Likewise for local "insn".
11812         (alpha_does_function_need_gp): Likewise.
11813         (set_frame_related_p): Likewise for return type and for locals
11814         "seq" and "insn".
11815         (emit_frame_store_1): Likewise for local "insn".
11816         (alpha_expand_prologue): Likewise for locals "insn", "seq".
11817         (alpha_end_function): Likewise for local "insn".
11818         (alpha_output_mi_thunk_osf): Likewise.
11819         (alphaev4_insn_pipe): Likewise for param "insn".
11820         (alphaev5_insn_pipe): Likewise.
11821         (alphaev4_next_group): Likewise for return type and param 1
11822         "insn".
11823         (alphaev5_next_group): Likewise.
11824         (alpha_align_insns_1): Likewise for return type and param 1 of
11825         callback param "next_group", and for locals "i", "next", "prev",
11826         "where", "where2", "insn".
11827
11828 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11829
11830         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
11831         rather than modifying the stmt.
11832
11833 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11834
11835         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
11836         cgraph_state conversion.
11837
11838 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11839
11840         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11841         Strengthen local "insns" from rtx to rtx_insn *.
11842         (aarch64_set_frame_expr): Likewise for local "insn".
11843         (aarch64_save_or_restore_fprs): Likewise.
11844         (aarch64_save_or_restore_callee_save_registers): Likewise.
11845         (aarch64_expand_prologue): Likewise.
11846         (aarch64_expand_epilogue): Likewise.
11847         (aarch64_output_mi_thunk): Likewise.
11848         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
11849         "label2" from rtx to rtx_code_label *.
11850         (aarch64_split_atomic_op): Likewise for local "label".
11851
11852 2014-08-25  Martin Liska  <mliska@suse.cz>
11853
11854         * cgraph.h (symtab_node):
11855         (bool needed_p (void)): created from decide_is_symbol_needed
11856         (bool referred_to_p (void)): created from referred_to_p
11857         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
11858         * cgraph.h (cgraph_node):
11859         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
11860         (void expand (void)): created from expand_function
11861         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
11862         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
11863         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
11864         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
11865         * cgraph.h (varpool_node):
11866         (static void add (tree decl): created from varpool_add_new_variable
11867         * cgraph.h (cgraph_edge):
11868         void remove (void);
11869         (void remove_caller (void)): created from cgraph_edge_remove_caller
11870         (void remove_callee (void)): created from cgraph_edge_remove_callee
11871         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
11872           created from cgraph_set_call_stmt
11873         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
11874         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
11875         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
11876           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
11877         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
11878           created from cgraph_speculative_call_info
11879         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
11880           int freq_scale, bool update_original)): created from cgraph_clone_edge
11881         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
11882         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
11883         (bool recursive_p (void)): created from cgraph_edge_recursive_p
11884         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
11885         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
11886         (static void rebuild_references (void)): created from cgraph_rebuild_references
11887         * cgraph.h (symbol_table):
11888         (create_reference): renamed from add_reference
11889         (maybe_create_reference): renamed from maybe_add_reference
11890         (void register_symbol (symtab_node *node)): new function
11891         (void clear_asm_symbols (void)): new function
11892         (void unregister (symtab_node *node)): new function
11893         (void release_symbol (cgraph_node *node, int uid)): new function
11894         (cgraph_node * allocate_cgraph_symbol (void)): new function
11895         (void initialize (void)): created from cgraph_init
11896         (symtab_node *first_symbol (void)):new function
11897         (asm_node *first_asm_symbol (void)):new function
11898         (symtab_node *first_defined_symbol (void)):new function
11899         (varpool_node *first_variable (void)):new function
11900         (varpool_node *next_variable (varpool_node *node)):new function
11901         (varpool_node *first_static_initializer (void)):new function
11902         (varpool_node *next_static_initializer (varpool_node *node)):new function
11903         (varpool_node *first_defined_variable (void)):new function
11904         (varpool_node *next_defined_variable (varpool_node *node)):new function
11905         (cgraph_node *first_defined_function (void)):new function
11906         (cgraph_node *next_defined_function (cgraph_node *node)):new function
11907         (cgraph_node *first_function (void)):new function
11908         (cgraph_node *next_function (cgraph_node *node)):new function
11909         (cgraph_node *first_function_with_gimple_body (void)):new function
11910         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
11911         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
11912           created from symtab_remove_unreachable_nodes
11913         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
11914         (void process_new_functions (void)): created from cgraph_process_new_functions
11915         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
11916         (bool output_variables (void)): created from varpool_node::output_variables
11917         (void output_asm_statements (void)): created from output_asm_statements
11918         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
11919         (void compile (void)): created from compile
11920         (void output_weakrefs (void)): created from output_weakrefs
11921         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
11922         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
11923           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
11924         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
11925         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
11926           created from cgraph_next_function_with_gimple_body
11927         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
11928           created from cgraph_remove_edge_removal_hook
11929         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
11930           created from cgraph_add_node_removal_hook
11931         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
11932           created from cgraph_remove_node_removal_hook
11933         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
11934           created from varpool_add_node_removal_hook
11935         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
11936           created from varpool_remove_node_removal_hook
11937         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
11938           created from cgraph_add_function_insertion_hook
11939         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
11940           created from cgraph_remove_function_insertion_hook
11941         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
11942           created from varpool_add_variable_insertion_hook
11943         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
11944           created from varpool_remove_variable_insertion_hook
11945         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
11946           created from cgraph_add_edge_duplication_hook
11947         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
11948           created from cgraph_remove_edge_duplication_hook
11949         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
11950           created from cgraph_add_node_duplication_hook
11951         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
11952           created from cgraph_remove_node_duplication_hook
11953         (void call_edge_removal_hooks (cgraph_edge *e)):
11954           created from cgraph_call_edge_removal_hooks
11955         (void call_cgraph_insertion_hooks (cgraph_node *node)):
11956           created from call_function_insertion_hooks
11957         (void call_cgraph_removal_hooks (cgraph_node *node)):
11958           created from cgraph_call_node_removal_hooks
11959         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
11960           created from cgraph_node::call_duplication_hooks
11961         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
11962           created from cgraph_call_edge_duplication_hooks
11963         (void call_varpool_removal_hooks (varpool_node *node)):
11964           created from varpool_call_node_removal_hooks
11965         (void call_varpool_insertion_hooks (varpool_node *node)):
11966           created from varpool_call_variable_insertion_hooks
11967         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
11968           created from insert_to_assembler_name_hash
11969         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
11970           created from unlink_from_assembler_name_hash
11971         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
11972           created from symtab_prevail_in_asm_name_hash
11973         (void symtab_initialize_asm_name_hash (void)):
11974           created from symtab_initialize_asm_name_hash
11975         (void change_decl_assembler_name (tree decl, tree name)):
11976           created from change_decl_assembler_name
11977         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
11978         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
11979           created from decl_assembler_name_hash
11980         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
11981           created from decl_assembler_name_equal
11982         (static hashval_t hash_node_by_assembler_name (const void *p)):
11983           created from hash_node_by_assembler_name
11984         (static int eq_assembler_name (const void *p1, const void *p2)):
11985           created from eq_assembler_name
11986
11987 2014-08-25  Marek Polacek  <polacek@redhat.com>
11988
11989         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
11990
11991 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
11992
11993         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
11994         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
11995         SWI1248_AVX512BW mode iterator.
11996
11997 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11998
11999         PR target/62111
12000         * config/sh/predicates.md (general_extend_operand): Disable
12001         TRUNCATE before reload completes.
12002
12003 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
12004
12005         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12006
12007 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12008
12009         PR target/61996
12010         * config/sh/sh.opt (musermode): Allow negative form.
12011         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12012         targets that don't support it.
12013         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12014         Document -mno-usermode option.
12015
12016 2014-08-24  Kito Cheng  <kito@0xlab.org>
12017
12018         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12019         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12020         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12021         * doc/tm.texi: Regenerate.
12022
12023 2014-08-24  Kito Cheng  <kito@0xlab.org>
12024
12025         * ira.c: Fix typo in comment.
12026
12027 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12028
12029         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12030         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12031
12032 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12033
12034         PR target/62038
12035         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12036         last_address when the current function is a thunk.
12037         (pa_asm_output_mi_thunk): When we don't have named sections or they
12038         are not being used, check that thunk can reach the stub table with a
12039         short branch.
12040
12041 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12042
12043         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12044         rtx_insn *.
12045         (pass_web::execute): Likewise for local "insn".
12046
12047 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12048
12049         * var-tracking.c (struct micro_operation_def): Strengthen field
12050         "insn" from rtx to rtx_insn *.
12051         (struct emit_note_data_def): Likewise.
12052         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12053         (vt_stack_adjustments): Likewise for local "insn".
12054         (adjust_insn): Likewise for param "insn".
12055         (val_store): Likewise.
12056         (val_resolve): Likewise.
12057         (struct count_use_info): Likewise for field "insn".
12058         (log_op_type): Likewise for param "insn".
12059         (reverse_op): Likewise.
12060         (prepare_call_arguments): Likewise.
12061         (add_with_sets):  The initial param takes an insn, but we can't
12062         yet strengthen it from rtx to rtx_insn * since it's used as a
12063         cselib_record_sets_hook callback.  For now rename initial param
12064         from "insn" to "uncast_insn", and introduce a local "insn" of
12065         the stronger rtx_insn * type, with a checked cast.
12066         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12067         rtx_insn *.
12068         (emit_note_insn_var_location): Likewise.
12069         (emit_notes_for_changes): Likewise.
12070         (emit_notes_for_differences): Likewise.
12071         (next_non_note_insn_var_location): Likewise for return type and
12072         for param "insn".
12073         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12074         (vt_initialize): Likewise for local "insn".
12075         (delete_debug_insns): Likewise for locals "insn" and "next".
12076
12077 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12078
12079         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12080         rtx_insn *.
12081         (mark_constant_pool): Likewise for local "insn".
12082
12083 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12084
12085         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12086         rtx to rtx_insn *.
12087         (dead_debug_promote_uses): Likewise.
12088         (dead_debug_insert_temp): Likewise.
12089
12090 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12091
12092         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12093         from const_rtx to const rtx_insn *.
12094         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12095         from rtx to rtx_insn *.
12096         (store_killed_before): Strengthen param "insn" from const_rtx to
12097         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12098         (find_moveable_store): Strengthen param "insn" from rtx to
12099         rtx_insn *.
12100         (compute_store_table): Likewise for local "insn".
12101         (insert_insn_start_basic_block): Likewise for param "insn" and
12102         locals "prev", "before", "insn".
12103         (insert_store): For now, add a checked cast to rtx_insn * on the
12104         result of gen_move_insn.
12105         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12106         to rtx_insn *.
12107         (replace_store_insn): Likewise.  For now, add a checked cast to
12108         rtx_insn * on the result of gen_move_insn.
12109
12110 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12111
12112         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12113         rtx_insn *.
12114         (expand_sjlj_dispatch_table): Likewise.
12115
12116 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12117
12118         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12119         "insn" from rtx to rtx_insn *.
12120
12121 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12122
12123         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12124         "insn" from rtx to rtx_insn *.
12125         (dup_block_and_redirect): Likewise for param 3 "before".
12126
12127         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12128         from rtx to rtx_insn *.
12129         (move_insn_for_shrink_wrap): Likewise.
12130         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12131         (dup_block_and_redirect): Likewise for param "before" and local
12132         "insn".
12133         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12134         "end".
12135         (convert_to_simple_return): Likewise for local "start".
12136
12137         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12138         Strengthen local "insn" from rtx to rtx_insn *, for use when
12139         invoking requires_stack_frame_p.
12140
12141 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12142
12143         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12144         rtx_insn *.
12145         (speculate_expr): Likewise for locals "orig_insn_rtx",
12146         "spec_insn_rtx".
12147         (eq_transformed_insns): Likewise for locals "i1", "i2".
12148         (check_for_new_jump): Likewise for return type and local "end".
12149         (find_new_jump): Likewise for return type and local "jump".
12150         (sel_split_edge): Likewise for local "jump".
12151         (sel_create_recovery_block): Likewise.
12152         (sel_redirect_edge_and_branch_force): Likewise.
12153         (sel_redirect_edge_and_branch): Likewise.
12154
12155 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12156
12157         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12158         "new_insn" from rtx to rtx_insn *.
12159         (create_insn_rtx_with_rhs): Likewise for return type and for local
12160         "insn_rtx".
12161         (create_insn_rtx_with_lhs): Likewise.
12162         (create_speculation_check): Likewise for local "insn_rtx".
12163         (implicit_clobber_conflict_p): Likewise for local "insn".
12164         (get_expr_cost): Likewise.
12165         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12166         (move_cond_jump): Likewise for locals "next", "prev", "link",
12167         "head", "from", "to".
12168
12169 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12170
12171         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12172         "next" from rtx to rtx_insn *.
12173         (find_conditional_protection): Likewise for local "next".
12174         (is_conditionally_protected): Likewise for local "insn1".
12175         (is_pfree): Likewise for locals "insn1", "insn2".
12176
12177 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12178
12179         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12180         from rtx to rtx_insn *.
12181
12182         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12183         locals "insn1", "insn2" from rtx to rtx_insn *.
12184         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12185         locals "insn", "prev", "last_jump", "next_tail".
12186         (schedule_ebb): Likewise for params "head", "tail".
12187         (schedule_ebbs): Likewise for locals "tail", "head".
12188
12189         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12190         to rtx_insn on "last_insn" in one of the invocations of
12191         schedule_ebb.
12192
12193 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12194
12195         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12196         "elem", "insn" from rtx to rtx_insn *.
12197         (change_spec_dep_to_hard): Likewise.
12198         (get_back_and_forw_lists): Likewise for local "con".
12199         (sd_add_dep): Likewise for locals "elem", "insn".
12200         (sd_resolve_dep): Likewise for locals "pro", "con".
12201         (sd_unresolve_dep): Likewise.
12202         (sd_delete_dep): Likewise.
12203         (chain_to_prev_insn): Likewise for local "pro".
12204         (find_inc): Likewise for locals "pro", "con".
12205
12206 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12207
12208         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12209         to rtx_insn *.
12210         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12211         const rtx_insn *.
12212         (modified_between_p): Strengthen local "insn" from rtx to
12213         rtx_insn *.
12214         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12215         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12216         const rtx_insn *.
12217
12218 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12219
12220         * resource.c (next_insn_no_annul): Strengthen local "next" from
12221         rtx to rtx_insn *.
12222         (mark_referenced_resources): Likewise for local "insn".
12223
12224 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12225
12226         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12227         to rtx_insn *.
12228         (find_reloads): Likewise for param 1.
12229         (subst_reloads): Likewise for sole param.
12230         (find_equiv_reg): Likwise for param 2.
12231         (regno_clobbered_p): Likwise for param 2.
12232         (reload): Likewise for param 1.
12233
12234         * caller-save.c (save_call_clobbered_regs): Strengthen local
12235         "insn" from rtx to rtx_insn *.
12236         (insert_one_insn): Likewise for local "insn".
12237
12238         * reload.c (this_insn): Likewise for this global.
12239         (find_reloads): Likewise for param "insn".
12240         (find_reloads_toplev): Likewise.
12241         (find_reloads_address): Likewise.
12242         (subst_reg_equivs): Likewise.
12243         (update_auto_inc_notes): Likewise.
12244         (find_reloads_address_1): Likewise.
12245         (find_reloads_subreg_address): Likewise.
12246         (subst_reloads): Likewise.
12247         (find_equiv_reg): Likewise, also for local "p".
12248         (regno_clobbered_p): Likewise for param "insn".
12249
12250         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12251         array.
12252         (spill_reg_store): Likewise for the elements of this array.
12253         (remove_init_insns): Likewise for local "equiv_insn".
12254         (will_delete_init_insn_p): Likewise for param "insn".
12255         (reload): Likewise for param ""first" and local "insn".
12256         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12257         rtx_insn *.
12258         (calculate_elim_costs_all_insns): Likewise.
12259         (delete_caller_save_insns): Likewise.
12260         (spill_failure): Likewise for param "insn".
12261         (delete_dead_insn): Likewise.
12262         (set_label_offsets): Likewise.
12263         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12264         "prev_insn".
12265         (elimination_costs_in_insn): Likewise for param "insn".
12266         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12267         when referring to an insn.
12268         (set_initial_label_offsets): Likewise.
12269         (set_offsets_for_label): Strengthen param "insn" from rtx to
12270         rtx_insn *.
12271         (init_eliminable_invariants): Likewise for param "first" and local
12272         "insn".
12273         (fixup_eh_region_note): Likewise for param "insn".
12274         (reload_as_needed): Likewise for locals "prev", "insn",
12275         "old_next", "old_prev", "next".
12276         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12277         "last".
12278         (reload_inheritance_insn): Strengthen elements of this array from
12279         rtx to rtx_insn *.
12280         (failed_reload): Likewise for param "insn".
12281         (choose_reload_regs): Likewise for local "insn".  Replace use of
12282         NULL_RTX with NULL when referring to an insn.
12283         (input_reload_insns): Strengthen elements of this array from rtx
12284         to rtx_insn *.
12285         (other_input_address_reload_insns): Likewise for this global.
12286         (other_input_reload_insns): Likewise for this global.
12287         (input_address_reload_insns): Likwise for the elements of this
12288         array.
12289         (inpaddr_address_reload_insns): Likwise for the elements of this
12290         array.
12291         (output_reload_insns): Likewise for the elements of this array.
12292         (output_address_reload_insns): Likewise for the elements of this
12293         array.
12294         (outaddr_address_reload_insns): Likewise for the elements of this
12295         array.
12296         (operand_reload_insns): Likewise for this global.
12297         (other_operand_reload_insns): Likewise for this global.
12298         (other_output_reload_insns): Likewise for the elements of this
12299         array.
12300         (new_spill_reg_store): Likewise for the elements of this
12301         array.
12302         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12303         Strengthen local "where" from rtx * to rtx_insn **.
12304         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12305         from rtx to rtx_insn *.
12306         (do_input_reload): Likewise for local "insn".
12307         (do_output_reload): Likewise for local "insn".
12308         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12309         (emit_insn_if_valid_for_reload): Likewise for return type and local
12310         "last".  Add checked cast to rtx_insn when returning "insn" since
12311         this has been through emit_insn.
12312         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12313         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12314         returning "insn" since it's been through
12315         emit_insn_if_valid_for_reload at this point.
12316         (delete_output_reload): Strengthen param "insn" and locals
12317         "output_reload_insn", "i2" from rtx to rtx_insn *.
12318         (delete_address_reloads): Likewise for params "dead_insn",
12319         "current_insn" and locals "prev", "next".
12320         (delete_address_reloads_1): Likewise for params "dead_insn",
12321         "current_insn" and locals "prev", "i2".
12322         (inc_for_reload): Likewise for locals "last", "add_insn".
12323         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12324         rtx_insn *.
12325
12326         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12327         param of this duplicate of the prototype from reload.h
12328
12329 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12330
12331         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12332         rtx to rtx_insn *.
12333         (regstat_bb_compute_calls_crossed): Likewise.
12334
12335 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12336
12337         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12338         to rtx_insn *.
12339         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12340         with an insn.
12341         (regrename_analyze): Strengthen local "insn" from rtx to
12342         rtx_insn *.
12343         (scan_rtx_reg): Likewise for param "insn".
12344         (scan_rtx_address): Likewise.
12345         (scan_rtx): Likewise.
12346         (restore_operands): Likewise.
12347         (record_out_operands): Likewise.
12348         (build_def_use): Likewise for local "insn".  Replace use of
12349         NULL_RTX with NULL when dealing with an insn.
12350
12351 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12352
12353         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12354         * reginfo.c (reg_scan): Likewise, also for local "insn".
12355         (reg_scan_mark_refs): Likewise for param "insn".
12356         (init_subregs_of_mode): Likewise for local "insn".
12357
12358 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12359
12360         * regcprop.c (struct queued_debug_insn_change): Strengthen field
12361         "insn" from rtx to rtx_insn *.
12362         (replace_oldest_value_reg): Likewise for param "insn".
12363         (replace_oldest_value_addr): Likewise.
12364         (replace_oldest_value_mem): Likewise.
12365         (apply_debug_insn_changes): Likewise for local "last_insn".
12366         (copyprop_hardreg_forward_1): Likewise for local "insn".
12367
12368 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12369
12370         * reg-stack.c (next_flags_user): Strengthen return type and param
12371         "insn" from rtx to rtx_insn *.
12372         (straighten_stack): Likewise for param "insn".
12373         (check_asm_stack_operands): Likewise.
12374         (remove_regno_note): Likewise.
12375         (emit_pop_insn): Likewise for return type, param "insn", local
12376         "pop_insn".
12377         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
12378         "limit" from rtx to rtx_insn *.
12379         (swap_to_top): Likewise for param "insn".
12380         (move_for_stack_reg): Likewise.
12381         (move_nan_for_stack_reg): Likewise.
12382         (swap_rtx_condition): Likewise.
12383         (compare_for_stack_reg): Likewise.
12384         (subst_all_stack_regs_in_debug_insn): Likewise.
12385         (subst_stack_regs_pat): Likewise, and local "insn2".
12386         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12387         rtx_insn *.
12388         (subst_stack_regs): Likewise.
12389         (change_stack): Likewise.
12390         (convert_regs_1): Likewise for locals "insn", "next".
12391
12392 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12393
12394         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12395         rtx_insn *.
12396         (combine_set_extension): Likewise for param "curr_insn".
12397         (transform_ifelse): Likewise for param "def_insn".
12398         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
12399         from vec<rtx> * to vec<rtx_insn *> *.
12400         (is_cond_copy_insn): Likewise for param "insn".
12401         (struct ext_state): Strengthen the four vec fields from vec<rtx>
12402         to vec<rtx_insn *>.
12403         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
12404         local "def_insn" from rtx to rtx_insn *.
12405         (get_sub_rtx): Likewise for param "def_insn".
12406         (merge_def_and_ext): Likewise.
12407         (combine_reaching_defs): Likewise.
12408         (add_removable_extension): Likewise for param "insn".
12409         (find_removable_extensions): Likewise for local "insn".
12410         (find_and_remove_re): Likewise for locals "curr_insn" and
12411         "def_insn".  Strengthen locals "reinsn_del_list" and
12412         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
12413
12414 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12415
12416         * recog.c (split_insn): Strengthen param "insn" and locals
12417         "first", "last" from rtx to rtx_insn *.
12418         (split_all_insns): Likewise for locals "insn", "next".
12419         (split_all_insns_noflow): Likewise.
12420
12421 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12422
12423         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
12424         const rtx_insn *.
12425         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12426         (debug_rtx_find): Likewise for param 1 "x".
12427
12428         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
12429         const_rtx to const rtx_insn *.  Likewise for local "insn".
12430         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12431         (debug_rtx_find): Likewise for param 1 "x".
12432         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
12433         from const_rtx to const rtx_insn * within the appropriate cases of
12434         the switch statement.
12435
12436         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
12437         Strengthen local "insns" from rtx to rtx_insn * since this is
12438         passed to a call to debug_rtx_list.
12439
12440 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12441
12442         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
12443         to rtx_insn *.
12444
12445         * function.c (stack_protect_epilogue): Add checked cast to
12446         rtx_insn for now when invoking predict_insn_def.
12447
12448         * predict.c (predict_insn): Strengthen param "insn" from rtx to
12449         rtx_insn *.
12450         (predict_insn_def): Likewise.
12451         (rtl_predict_edge): Likewise for local "last_insn".
12452         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
12453         const rtx_insn *.
12454         (combine_predictions_for_insn): Strengthen param "insn" from rtx
12455         to rtx_insn *.
12456         (bb_estimate_probability_locally): Likewise for local "last_insn".
12457         (expensive_function_p): Likewise for local "insn".
12458
12459         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
12460         local "jmp", since this is used when invoking predict_insn_def.
12461
12462 2014-08-22  Marek Polacek  <polacek@redhat.com>
12463
12464         PR c++/62199
12465         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
12466
12467 2014-08-22  Marek Polacek  <polacek@redhat.com>
12468
12469         PR c/61271
12470         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
12471         a comparison in parens.
12472         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
12473         in parens.
12474
12475 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12476
12477         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
12478         rtx_insn *.
12479
12480         * cprop.c (fis_get_condition): Likewise.
12481
12482         * postreload.c (reload_cse_regs): Likewise for param "first".
12483         (reload_cse_simplify): Likewise for param "insn".
12484         (reload_cse_regs_1): Likewise for local "insn".
12485         (reload_cse_simplify_set): Likewise for param "insn".
12486         (reload_cse_simplify_operands): Likewise.
12487         (struct reg_use): Likewise for field "insn".
12488         (reload_combine_purge_insn_uses): Likewise for param "insn".
12489         (fixup_debug_insns): Likewise for params "from", "to" and local
12490         "insn".
12491         (try_replace_in_use): Likewise for local "use_insn".
12492         (reload_combine_recognize_const_pattern): Likewise for param
12493         "insn" and locals "add_moved_after_insn", "use_insn".
12494         (reload_combine_recognize_pattern): Likewise for param "insn" and
12495         local "prev".
12496         (reload_combine): Likewise for locals "insn", "prev".
12497         (reload_combine_note_use): Likewise for param "insn".
12498         (move2add_use_add2_insn): Likewise.
12499         (move2add_use_add3_insn): Likewise.
12500         (reload_cse_move2add): Likewise, also for local "next".
12501         (move2add_note_store): Likewise for local "insn".
12502
12503 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12504
12505         * postreload-gcse.c (struct occr): Strengthen field "insn" from
12506         rtx to rtx_insn *.
12507         (struct unoccr): Likewise.
12508         (struct modifies_mem): Likewise.
12509         (alloc_mem): Likewise for local "insn".
12510         (insert_expr_in_table): Likewise for param "insn".
12511         (dump_expr_hash_table_entry): Likewise for local "insn".
12512         (oprs_unchanged_p): Likewise for param "insn".
12513         (load_killed_in_block_p): Likewise for local "setter".
12514         (record_last_reg_set_info): Likewise for param "insn".
12515         (record_last_reg_set_info_regno): Likewise.
12516         (record_last_mem_set_info): Likewise.
12517         (record_last_set_info): Likewise for local "last_set_insn".
12518         (record_opr_changes): Likewise for param "insn".
12519         (hash_scan_set): Likewise.
12520         (compute_hash_table): Likewise for local "insn".
12521         (get_avail_load_store_reg): Likewise for param "insn".
12522         (eliminate_partially_redundant_load): Likewise, also for locals
12523         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
12524         RTX for insns.
12525         (eliminate_partially_redundant_loads): Likewise for local "insn".
12526
12527 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12528
12529         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
12530         rtx to rtx_insn *.
12531         (expand_binop): Likewise for locals "entry_last", "last", "insns"
12532         (expand_twoval_unop): Likewise for locals entry_last", "last".
12533         (expand_twoval_binop): Likewise.
12534         (expand_twoval_binop_libfunc): Likewise for local "insns".
12535         (widen_leading): Likewise for local "last".
12536         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
12537         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
12538         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
12539         (expand_parity): Likewise for locals "last" and "seq".
12540         (expand_ffs): Likewise for local "seq".  Strengthen local
12541         "nonzero_label" from rtx to rtx_code_label *.
12542         (expand_absneg_bit): Strengthen local "insns" from rtx to
12543         rtx_insn *.
12544         (expand_unop_direct): Likewise for local "last".
12545         (expand_unop): Likewise for locals "last", "insns".
12546         (expand_abs_nojump): Likewise for local "last".
12547         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
12548         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
12549         rtx_insn *.
12550         (expand_copysign_absneg): Strengthen local "label" from rtx to
12551         rtx_code_label *.
12552         (expand_copysign_bit): Strengthen local "insns" from rtx to
12553         rtx_insn *.
12554         (struct no_conflict_data): Likewise for fields "first", "insn".
12555         (emit_libcall_block_1): Likewise for param "insns" and locals
12556         "next", "last", "insn".
12557         (emit_libcall_block): For now, add a checked cast to rtx_insn *
12558         on "insns" when invoking emit_libcall_block_1.  Ultimately we
12559         want to strengthen insns itself.
12560         (prepare_cmp_insn): Strengthen local "last" from rtx to
12561         rtx_insn *.
12562         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
12563         (prepare_float_lib_cmp): Likewise for local "insns".
12564         (emit_conditional_move): Likewise for local "last".
12565         (emit_conditional_add): Likewise.
12566         (have_sub2_insn): Likewise for local "seq".
12567         (expand_float): Likewise for local "insns".  Strengthen locals
12568         "label", "neglabel" from rtx to rtx_code_label *.
12569         (expand_fix): Likewise for locals "last", "insn", "insns" (to
12570         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
12571         (expand_fixed_convert): Likewise for local "insns" (to
12572         rtx_insn *).
12573         (expand_sfix_optab): Likewise for local "last".
12574         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
12575         to rtx_code_label *.
12576         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
12577         from rtx to rtx_insn *.
12578         (expand_atomic_fetch_op): Likewise for local "insn".
12579         (maybe_legitimize_operand_same_code): Likewise for local "last".
12580         (maybe_legitimize_operands): Likewise.
12581
12582 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12583
12584         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
12585         "insn" from rtx to rtx_insn *.
12586         (ps_rtl_insn): Likewise for return type.
12587         (doloop_register_get): Likewise for params "head", "tail" and
12588         locals "insn", "first_insn_not_to_check".
12589         (schedule_reg_move): Likewise for local "this_insn".
12590         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
12591         of gen_move_insn for now.
12592         (reset_sched_times): Strengthen local "insn" from rtx to
12593         rtx_insn *.
12594         (permute_partial_schedule): Likewise.
12595         (duplicate_insns_of_cycles): Likewise for local "u_insn".
12596         (dump_insn_location): Likewise for param "insn".
12597         (loop_canon_p): Likewise for local "insn".
12598         (sms_schedule): Likewise.
12599         (print_partial_schedule): Likewise.
12600         (ps_has_conflicts): Likewise.
12601
12602 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12603
12604         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
12605         "tailp" from rtx * to rtx_insn **.
12606
12607         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
12608         from rtx to rtx_insn *.
12609         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
12610         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
12611         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
12612         rtx to rtx_insn *.
12613         * modulo-sched.c (const_iteration_count): Strengthen return type
12614         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
12615         use of NULL_RTX with NULL when working with insns.
12616         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
12617         to rtx_insn *.
12618         (sms_schedule): Likewise.
12619         * sched-rgn.c (init_ready_list): Likewise, also for locals
12620         "src_head" and "src_next_tail".
12621         (compute_block_dependences): Likewise.
12622         (free_block_dependencies): Likewise.
12623         (debug_rgn_dependencies): Likewise.
12624         (free_rgn_deps): Likewise.
12625         (compute_priorities): Likewise.
12626         (schedule_region): Likewise.
12627         * sel-sched.c (find_ebb_boundaries): Likewise.
12628
12629         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
12630         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
12631
12632 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12633
12634         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
12635         from rtx to rtx_insn *.
12636         (new_seginfo): Likewise for param "insn".
12637         (create_pre_exit): Likewise for locals "last_insn",
12638         "before_return_copy", "return_copy".
12639         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
12640         "mode_set".
12641
12642 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12643
12644         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
12645         from rtx to rtx_insn *.
12646         (lra_push_insn): Likewise for 1st param.
12647         (lra_push_insn_and_update_insn_regno_info): Likewise.
12648         (lra_pop_insn): Likewise for return type.
12649         (lra_invalidate_insn_data): Likewise for 1st param.
12650         (lra_set_insn_deleted): Likewise.
12651         (lra_delete_dead_insn): Likewise.
12652         (lra_process_new_insns): Likewise for first 3 params.
12653         (lra_set_insn_recog_data): Likewise for 1st param.
12654         (lra_update_insn_recog_data): Likewise.
12655         (lra_set_used_insn_alternative): Likewise.
12656         (lra_invalidate_insn_regno_info): Likewise.
12657         (lra_update_insn_regno_info): Likewise.
12658         (lra_former_scratch_operand_p): Likewise.
12659         (lra_eliminate_regs_1): Likewise.
12660         (lra_get_insn_recog_data): Likewise.
12661
12662         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
12663         rtx to rtx_insn *.
12664
12665         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
12666         "mv1" and "mv2".
12667         (substitute_within_insn): New.
12668         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
12669         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
12670         Replace call to "substitute" with call to substitute_within_insn.
12671
12672         * lra-constraints.c (curr_insn): Strengthen from rtx to
12673         rtx_insn *.
12674         (get_equiv_with_elimination): Likewise for param "insn".
12675         (match_reload): Strengthen params "before" and "after" from rtx *
12676         to rtx_insn **.
12677         (emit_spill_move): Likewise for return type.  Add a checked cast
12678         to rtx_insn * on result of gen_move_insn for now.
12679         (check_and_process_move): Likewise for local "before".  Replace
12680         NULL_RTX with NULL when referring to insns.
12681         (process_addr_reg): Strengthen params "before" and "after" from
12682         rtx * to rtx_insn **.
12683         (insert_move_for_subreg): Likewise.
12684         (simplify_operand_subreg): Strengthen locals "before" and "after"
12685         from rtx to rtx_insn *.
12686         (process_address_1): Strengthen params "before" and "after" from
12687         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
12688         rtx to rtx_insn *.
12689         (process_address): Strengthen params "before" and "after" from
12690         rtx * to rtx_insn **.
12691         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
12692         (curr_insn_transform): Strengthen locals "before" and "after"
12693         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
12694         to insns.
12695         (loc_equivalence_callback): Update cast of "data", changing
12696         resulting type from rtx to rtx_insn *.
12697         (substitute_pseudo_within_insn): New.
12698         (inherit_reload_reg): Strengthen param "insn" from rtx to
12699         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
12700         NULL when referring to insns.  Add a checked cast to rtx_insn *
12701         when using usage_insn to invoke lra_update_insn_regno_info.
12702         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
12703         likewise for locals "restore", "save".  Add checked casts to
12704         rtx_insn * when using usage_insn to invoke
12705         lra_update_insn_regno_info and lra_process_new_insns.  Replace
12706         NULL_RTX with NULL when referring to insns.
12707         (split_if_necessary): Strengthen param "insn" from rtx to
12708         rtx_insn *.
12709         (update_ebb_live_info): Likewise for params "head", "tail" and local
12710         "prev_insn".
12711         (get_last_insertion_point): Likewise for return type and local "insn".
12712         (get_live_on_other_edges): Likewise for local "last".
12713         (inherit_in_ebb): Likewise for params "head", "tail" and locals
12714         "prev_insn", "next_insn", "restore".
12715         (remove_inheritance_pseudos): Likewise for local "prev_insn".
12716         (undo_optional_reloads): Likewise for local "insn".
12717
12718         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
12719         "insn".
12720         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
12721         insns.
12722         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
12723         rtx_insn *.
12724         (spill_pseudos): Likewise for local "insn".
12725         (init_elimination): Likewise.
12726         (process_insn_for_elimination): Likewise for param "insn".
12727
12728         * lra-lives.c (curr_insn): Likewise.;
12729
12730         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
12731         (remove_pseudos): Likewise for param "insn".
12732         (spill_pseudos): Likewise for local "insn".
12733         (lra_final_code_change): Likewise for locals "insn", "curr".
12734
12735         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
12736         (lra_set_insn_deleted): Likewise.
12737         (lra_delete_dead_insn): Likewise, and for local "prev".
12738         (new_insn_reg): Likewise for param "insn".
12739         (lra_set_insn_recog_data): Likewise.
12740         (lra_update_insn_recog_data): Likewise.
12741         (lra_set_used_insn_alternative): Likewise.
12742         (get_insn_freq): Likewise.
12743         (invalidate_insn_data_regno_info): Likewise.
12744         (lra_invalidate_insn_regno_info): Likewise.
12745         (lra_update_insn_regno_info): Likewise.
12746         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
12747         vec<rtx_insn *>.
12748         (lra_push_insn_1): Strengthen param "insn" from rtx to
12749         rtx_insn *.
12750         (lra_push_insn): Likewise.
12751         (lra_push_insn_and_update_insn_regno_info): Likewise.
12752         (lra_pop_insn): Likewise for return type and local "insn".
12753         (push_insns): Likewise for params "from", "to", and local "insn".
12754         (setup_sp_offset): Likewise for params "from", "last" and locals
12755         "before", "insn".
12756         (lra_process_new_insns): Likewise for params "insn", "before",
12757         "after" and local "last".
12758         (struct sloc): Likewise for field "insn".
12759         (lra_former_scratch_operand_p): Likewise for param "insn".
12760         (remove_scratches): Likewise for locals "insn", "last".
12761         (check_rtl): Likewise for local "insn".
12762         (add_auto_inc_notes): Likewise for param "insn".
12763         (update_inc_notes): Likewise for local "insn".
12764         (lra): Replace NULL_RTX with NULL when referring to insn.
12765
12766 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12767
12768         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
12769         to rtx_insn *.
12770         (resolve_reg_notes): Likewise.
12771         (resolve_simple_move): Likewise for return type, param "insn", and
12772         locals "insns", "minsn".
12773         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
12774         (resolve_use): Likewise.
12775         (resolve_debug): Likewise.
12776         (find_decomposable_shift_zext): Likewise.
12777         (resolve_shift_zext): Likewise for return type, param "insn", and
12778         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
12779         (decompose_multiword_subregs): Likewise for local "insn",
12780         "orig_insn", "decomposed_shift", "end".
12781
12782 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12783
12784         * basic-block.h (basic_block split_edge_and_insert): Strengthen
12785         param "insns" from rtx to rtx_insn *.
12786
12787         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
12788         rtx to rtx_insn *.
12789         (struct iv_to_split): Likewise.
12790         (loop_exit_at_end_p): Likewise for local "insn".
12791         (split_edge_and_insert): Likewise for param "insns".
12792         (compare_and_jump_seq): Likewise for return type, param "cinsn",
12793         and locals "seq", "jump".
12794         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
12795         "branch_code"; update invocations of compare_and_jump_seq to
12796         eliminate NULL_RTX in favor of NULL.
12797         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
12798         rtx to rtx_insn *.
12799         (reset_debug_uses_in_loop): Likewise.
12800         (analyze_insn_to_expand_var): Likewise for param "insn".
12801         (analyze_iv_to_split_insn): Likewise.
12802         (analyze_insns_in_loop): Likewise for local "insn".
12803         (insert_base_initialization): Likewise for param
12804         "insn" and local "seq".
12805         (split_iv): Likewise for param "insn" and local "seq".
12806         (expand_var_during_unrolling): Likewise for param "insn".
12807         (insert_var_expansion_initialization): Likewise for local "seq".
12808         (combine_var_copies_in_loop_exit): Likewise.
12809         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
12810         "insn".
12811         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
12812         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
12813         "next".
12814
12815 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12816
12817         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
12818         rtx_insn *.
12819         (iv_analyze_result): Likewise.
12820         (iv_analyze_expr): Likewise.
12821         (biv_p): Likewise.
12822
12823         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
12824         local "def_insn" from rtx to rtx_insn *.
12825         (get_biv_step_1): Likewise for local "insn".
12826         (iv_analyze_expr): Likewise for param "insn".
12827         (iv_analyze_def): Likewise for local "insn".
12828         (iv_analyze_op): Likewise for param "insn".
12829         (iv_analyze): Likewise.
12830         (iv_analyze_result): Likewise.
12831         (biv_p): Likewise.
12832         (suitable_set_for_replacement): Likewise.
12833         (simplify_using_initial_values): Likewise for local "insn".
12834         (iv_number_of_iterations): Likewise for param "insn".
12835         (check_simple_exit): Add checked cast to rtx_insn when invoking
12836         iv_number_of_iterations for now (until get_condition is
12837         strengthened).
12838
12839         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
12840         "insn" from rtx to rtx_insn *.
12841         (analyze_insns_in_loop): Likewise for local "insn".
12842
12843 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12844
12845         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
12846         to rtx_insn *.
12847         (struct invariant): Likewise.
12848         (hash_invariant_expr_1): Likewise for param "insn".
12849         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
12850         (find_exits): Likewise for local "insn".
12851         (create_new_invariant): Likewise for param "insn".
12852         (check_dependencies): Likewise.
12853         (find_invariant_insn): Likewise.
12854         (record_uses): Likewise.
12855         (find_invariants_insn): Likewise.
12856         (find_invariants_bb): Likewise for local "insn".
12857         (get_pressure_class_and_nregs): Likewise for param "insn".
12858         (calculate_loop_reg_pressure): Likewise for local "insn".
12859
12860 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12861
12862         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
12863         to rtx_insn *.
12864         (add_test): Likewise for locals "seq", "jump".
12865         (doloop_modify): Likewise for locals "sequence", "jump_insn".
12866
12867 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12868
12869         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
12870         rtx_insn *.
12871         (rebuild_jump_labels_chain): Likewise for param "chain".
12872
12873         * cfgexpand.c (pass_expand::execute): Add checked cast to
12874         rtx_insn * when calling rebuild_jump_labels_chain in region where
12875         we know e->insns.r is non-NULL.
12876
12877         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
12878         rtx_insn *.
12879         (rebuild_jump_labels): Likewise.
12880         (rebuild_jump_labels_chain): Likewise for param "chain".
12881         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
12882         (init_label_info): Likewise for param "f".
12883         (maybe_propagate_label_ref): Likewise for params "jump_insn",
12884         "prev_nonjump_insn".
12885         (mark_all_labels): Likewise for param "f" and locals "insn",
12886         "prev_nonjump_insn".
12887
12888 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12889
12890         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
12891         from rtx to rtx_insn *insn.
12892         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
12893         (ira_add_allocno_copy): Likewise.
12894         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
12895         rtx to rtx_insn *.
12896         (ira_create_copy): Likewise.
12897         (ira_add_allocno_copy): Likewise.
12898         (create_bb_allocnos): Likewise for local "insn".
12899         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
12900         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
12901         process_regs_for_copy for rtx_insn * param.
12902         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
12903         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
12904         process_regs_for_copy for rtx_insn * param.
12905         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
12906         * ira-costs.c (record_reg_classes): Likewise for param "insn".
12907         (record_operand_costs): Likewise.
12908         (scan_one_insn): Likewise for return type, and for param "insn".
12909         (process_bb_for_costs): Likewise for local "insn".
12910         (process_bb_node_for_hard_reg_moves): Likewise.
12911         * ira-emit.c (struct move): Likewise for field "insn".
12912         (create_move): Eliminate use of NULL_RTX when dealing with an
12913         rtx_insn *.
12914         (emit_move_list): Strengthen return type and locals "result",
12915         "insn" from rtx to rtx_insn *insn.
12916         (emit_moves): Likewise for locals "insns", "tmp".
12917         (ira_emit): Likewise for local "insn".
12918         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
12919         "insn".
12920         (find_call_crossed_cheap_reg): Likewise.
12921         (process_bb_node_lives): Likewise for local "insn".
12922         * ira.c (decrease_live_ranges_number): Likewise.
12923         (compute_regs_asm_clobbered): Likewise.
12924         (build_insn_chain): Likewise.
12925         (find_moveable_pseudos): Likewise, also locals "def_insn",
12926         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
12927         to rtx_insn **.  Add a checked cast when assigning from
12928         "closest_use" into closest_uses array in a region where we know
12929         it's a non-NULL insn.
12930         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
12931         to rtx_insn *.
12932         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
12933         "last_interesting_insn", "uin".
12934         (move_unallocated_pseudos): Likewise for locals "def_insn",
12935         "move_insn", "newinsn".
12936
12937 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12938
12939         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
12940         Strengthen locals "done_label", "do_error" from rtx to
12941         rtx_code_label *.
12942         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
12943         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
12944         rtx_code_label *.
12945         (ubsan_expand_si_overflow_neg_check): Likewise for locals
12946         "done_label", "do_error" to rtx_code_label * and local  "last" to
12947         rtx_insn *.
12948         (ubsan_expand_si_overflow_mul_check): Likewise for locals
12949         "done_label", "do_error", "large_op0", "small_op0_large_op1",
12950         "one_small_one_large", "both_ops_large", "after_hipart_neg",
12951         "after_lopart_neg", "do_overflow", "hipart_different"  to
12952         rtx_code_label * and local  "last" to rtx_insn *.
12953
12954 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12955
12956         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
12957         "insn" and "move_insn" from rtx to rtx_insn *.
12958
12959 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12960
12961         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
12962         rtx_insn *.
12963         (cheap_bb_rtx_cost_p): Likewise.
12964         (first_active_insn): Likewise for return type and local "insn".
12965         (last_active_insn):  Likewise for return type and locals "insn",
12966         "head".
12967         (struct noce_if_info): Likewise for fields "jump", "insn_a",
12968         "insn_b".
12969         (end_ifcvt_sequence): Likewise for return type and locals "insn",
12970         "seq".
12971         (noce_try_move): Likewise for local "seq".
12972         (noce_try_store_flag): Likewise.
12973         (noce_try_store_flag_constants): Likewise.
12974         (noce_try_addcc): Likewise.
12975         (noce_try_store_flag_mask): Likewise.
12976         (noce_try_cmove): Likewise.
12977         (noce_try_minmax): Likewise.
12978         (noce_try_abs): Likewise.
12979         (noce_try_sign_mask): Likewise.
12980         (noce_try_bitop): Likewise.
12981         (noce_can_store_speculate_p): Likewise for local "insn".
12982         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
12983         seq".
12984         (check_cond_move_block): Likewise for local "insn".
12985         (cond_move_convert_if_block): Likewise.
12986         (cond_move_process_if_block): Likewise for locals "seq",
12987         "loc_insn".
12988         (noce_find_if_block): Likewise for local "jump".
12989         (merge_if_block): Likewise for local "last".
12990         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
12991         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
12992         (block_has_only_trap): Likewise for return type and local "trap".
12993         (find_if_case_1): Likewise for local "jump".
12994         (dead_or_predicable): Likewise for locals "head", "end", "jump",
12995         "insn".
12996
12997 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12998
12999         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13000         "last_insn", "loop_end" from rtx to rtx_insn *.
13001
13002         * hw-doloop.c (scan_loop): Likewise for local "insn".
13003         (discover_loop): Likewise for param "tail_insn".
13004         (discover_loops): Likewise for local "tail".
13005
13006         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13007         cast to rtx_insn * when assigning from an rtx local to a
13008         hwloop_info's "last_insn" field.
13009
13010 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13011
13012         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13013         (add_delay_dependencies): Strengthen local "pro" from rtx to
13014         rtx_insn *.
13015         (recompute_todo_spec): Likewise.
13016         (dep_cost_1): Likewise for locals "insn", "used".
13017         (schedule_insn): Likewise for local "dbg".
13018         (schedule_insn): Likewise for locals "pro", "next".
13019         (unschedule_insns_until): Likewise for local "con".
13020         (restore_pattern): Likewise for local "next".
13021         (estimate_insn_tick): Likewise for local "pro".
13022         (resolve_dependencies): Likewise for local "next".
13023         (fix_inter_tick): Likewise.
13024         (fix_tick_ready): Likewise for local "pro".
13025         (add_to_speculative_block): Likewise for locals "check", "twin",
13026         "pro".
13027         (sched_extend_bb): Likewise for locals "end", "insn".
13028         (init_before_recovery): Likewise for local "x".
13029         (sched_create_recovery_block): Likewise for local "barrier".
13030         (create_check_block_twin): Likewise for local "pro".
13031         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13032         "consumer".
13033         (unlink_bb_notes): Update for change to type of bb_header.
13034         Strengthen locals "prev", "label", "note", "next" from rtx to
13035         rtx_insn *.
13036         (clear_priorities): Likewise for local "pro".
13037
13038 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13039
13040         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13041         rtx_insn *.
13042         (test_insn): Likewise for this global.
13043         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13044         const rtx_insn *.
13045         (oprs_anticipatable_p): Likewise.
13046         (oprs_available_p): Likewise.
13047         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13048         rtx_insn *.
13049         (hash_scan_set): Likewise.
13050         (hash_scan_clobber): Likewise.
13051         (hash_scan_call): Likewise.
13052         (hash_scan_insn): Likewise.
13053         (compute_hash_table_work): Likewise for local "insn".
13054         (process_insert_insn): Likewise for return type and local "pat".
13055         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13056         "pat", "pat_end", "maybe_cc0_setter".
13057         (pre_edge_insert): Likewise for local "insn".
13058         (pre_insert_copy_insn): Likewise for param "insn".
13059         (pre_insert_copies): Likewise for local "insn".
13060         (struct set_data): Likewise for field "insn".
13061         (single_set_gcse): Likewise for param "insn".
13062         (gcse_emit_move_after): Likewise.
13063         (pre_delete): Likewise for local "insn".
13064         (update_bb_reg_pressure): Likewise for param "from" and local
13065         "insn".
13066         (should_hoist_expr_to_dom): Likewise for param "from".
13067         (hoist_code): Likewise for local "insn".
13068         (get_pressure_class_and_nregs): Likewise for param "insn".
13069         (calculate_bb_reg_pressure): Likewise for local "insn".
13070         (compute_ld_motion_mems): Likewise.
13071
13072 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13073
13074         * genpeep.c (main): Rename param back from "uncast_ins1" to
13075         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13076         checked cast.
13077
13078         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13079
13080 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13081
13082         PR target/62195
13083         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13084         documentation to state it is only for VSX operations.
13085
13086         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13087         constraint only active if VSX.
13088
13089         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13090         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13091         (lfiwzx): Likewise.
13092
13093 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13094
13095         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13096         Strengthen local "insn" from rtx to rtx_insn *.
13097         (use_killed_between): Likewise for param "target_insn".
13098         (all_uses_available_at): Likewise for param "target_insn" and
13099         local "next".
13100         (update_df_init): Likewise for params "def_insn", "insn".
13101         (update_df): Likewise for param "insn".
13102         (try_fwprop_subst): Likewise for param "def_insn" and local
13103         "insn".
13104         (free_load_extend): Likewise for param "insn".
13105         (forward_propagate_subreg): Likewise for param "def_insn" and
13106         local "use_insn".
13107         (forward_propagate_asm): Likewise for param "def_insn" and local
13108         "use_insn".
13109         (forward_propagate_and_simplify): Likewise for param "def_insn"
13110         and local "use_insn".
13111         (forward_propagate_into): Likewise for locals "def_insn" and
13112         "use_insn".
13113
13114 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13115
13116         * function.c (emit_initial_value_sets): Strengthen local "seq"
13117         from rtx to rtx_insn *.
13118         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13119         local "seq".
13120         (instantiate_virtual_regs): Likewise for local "insn".
13121         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13122         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13123         (expand_function_end): Likewise for locals "insn" and "seq".
13124         (epilogue_done): Likewise for local "insn".
13125         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13126         "last", "trial".
13127         (reposition_prologue_and_epilogue_notes): Likewise for locals
13128         "insn", "last", "note", "first".
13129         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13130         (pass_match_asm_constraints::execute): Likewise for local "insn".
13131
13132 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13133
13134         * output.h (final_scan_insn): Strengthen return type from rtx to
13135         rtx_insn *.
13136         (final_forward_branch_p): Likewise for param.
13137         (current_output_insn): Likewise for this global.
13138
13139         * final.c (rtx debug_insn): Likewise for this variable.
13140         (current_output_insn): Likewise.
13141         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13142         adding "insn" back in as an rtx_insn * with a checked cast, so
13143         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13144         first param.
13145         (compute_alignments): Strengthen local "label" from rtx to
13146         rtx_insn *.
13147         (shorten_branches): Rename param from "first" to "uncast_first",
13148         introducing a new local rtx_insn * "first" using a checked cast to
13149         effectively strengthen "first" from rtx to rtx_insn * without
13150         affecting the type signature.  Strengthen locals "insn", "seq",
13151         "next", "label" from rtx to rtx_insn *.
13152         (change_scope): Strengthen param "orig_insn" and local "insn" from
13153         rtx to rtx_insn *.
13154         (final_start_function): Rename param from "first" to "uncast_first",
13155         introducing a new local rtx_insn * "first" using a checked cast to
13156         effectively strengthen "first" from rtx to rtx_insn * without
13157         affecting the type signature.  Strengthen local "insn" from rtx to
13158         rtx_insn *.
13159         (dump_basic_block_info): Strengthen param "insn" from rtx to
13160         rtx_insn *.
13161         (final): Rename param from "first" to "uncast_first",
13162         introducing a new local rtx_insn * "first" using a checked cast to
13163         effectively strengthen "first" from rtx to rtx_insn * without
13164         affecting the type signature.  Strengthen locals "insn", "next"
13165         from rtx to rtx_insn *.
13166         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13167         rtx_insn *.
13168         (call_from_call_insn): Strengthen param "insn" from rtx to
13169         rtx_call_insn *.
13170         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13171         introducing a new local rtx_insn * "insn" using a checked cast to
13172         effectively strengthen "insn" from rtx to rtx_insn * without
13173         affecting the type signature.  Strengthen return type and locals
13174         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13175         now-redundant checked cast to rtx_insn * from both invocations of
13176         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13177         introducing a local "call_insn" for use when invoking
13178         call_from_call_insn.
13179         (notice_source_line): Strengthen param "insn" from rtx to
13180         rtx_insn *.
13181         (leaf_function_p): Likewise for local "insn".
13182         (final_forward_branch_p): Likewise.
13183         (leaf_renumber_regs): Likewise for param "first".
13184         (rest_of_clean_state): Likewise for locals "insn" and "next".
13185         (self_recursive_call_p): Likewise for param "insn".
13186         (collect_fn_hard_reg_usage): Likewise for local "insn".
13187         (get_call_fndecl): Likewise for param "insn".
13188         (get_call_cgraph_rtl_info): Likewise.
13189         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13190         introducing a new local rtx_insn * "insn" using a checked cast to
13191         effectively strengthen "insn" from rtx to rtx_insn * without
13192         affecting the type signature.
13193
13194         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13195         cast when assigning from param "insn" to current_output_insn.
13196         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13197         so that we can assign it back to current_output_insn.
13198
13199 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13200
13201         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13202         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13203         atmxt540s and atmxt540sreva devices.
13204         * config/avr/avr-tables.opt: Regenerate.
13205         * config/avr/t-multilib: Regenerate.
13206         * doc/avr-mmcu.texi: Regenerate.
13207
13208 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13209
13210         * expr.c (convert_move): Strengthen local "insns" from rtx to
13211         rtx_insn *.
13212         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13213         "top_label" from rtx to rtx_code_label *.
13214         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13215         rtx_insn *.
13216         (emit_single_push_insn): Likewise for locals "prev", "last".
13217         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13218         to rtx_code_label *.
13219         (store_constructor): Likewise for locals "loop_start", "loop_end".
13220         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13221         rtx_insn *.
13222         (expand_expr_real_2): Likewise.
13223         (expand_expr_real_1): Strengthen local "label" from rtx to
13224         rtx_code_label *.
13225
13226 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13227
13228         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13229         from rtx to rtx_insn *.
13230         (store_bit_field_1): Likewise.
13231         (extract_bit_field_1): Likewise.
13232         (expand_mult_const): Likewise for local "insns".
13233         (expmed_mult_highpart): Strengthen local "label" from rtx to
13234         rtx_code_label *.
13235         (expand_smod_pow2): Likewise.
13236         (expand_sdiv_pow2): Likewise.
13237         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13238         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13239         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13240         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13241         (emit_store_flag): Likewise.
13242         (emit_store_flag_force): Strengthen local "label" from rtx to
13243         rtx_code_label *.
13244         (do_cmp_and_jump): Likewise for param "label".
13245
13246 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13247
13248         * explow.c (force_reg): Strengthen local "insn" from rtx to
13249         rtx_insn *.
13250         (adjust_stack_1): Likewise.
13251         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13252         "final_label", "available_label", "space_available" from rtx to
13253         rtx_code_label *.
13254         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13255         (anti_adjust_stack_and_probe): Likewise.
13256
13257 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13258
13259         * except.h (sjlj_emit_function_exit_after): Strengthen param
13260         "after" from rtx to rtx_insn *.  This is only called with
13261         result of get_last_insn (in function.c) so type-change should be
13262         self-contained.
13263
13264         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13265         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13266         to rtx_insn *.  These fields are only used from except.c so this
13267         type-change should be self-contained to this patch.
13268
13269         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13270         local "last" from rtx to rtx_insn *.
13271         (dw2_build_landing_pads): Likewise for local "seq".
13272         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13273         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13274         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13275         rtx to rtx_insn *.
13276         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13277         to rtx_insn *.
13278         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13279         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13280         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13281         referring to an insn.  Strengthen local "dispatch_label" from
13282         rtx to rtx_code_label *.
13283         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13284         rtx_insn *.
13285         (expand_eh_return): Strengthen local "around_label" from
13286         rtx to rtx_code_label *.
13287         (convert_to_eh_region_ranges): Strengthen locals "iter",
13288         "last_action_insn", "first_no_action_insn",
13289         "first_no_action_insn_before_switch",
13290         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13291
13292 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13293
13294         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13295         from rtx to rtx_insn *.
13296         (cached_next_real_insn): Likewise.
13297         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13298         working with insns.
13299         (dwarf2out_var_location): Strengthen locals "next_real",
13300         "next_note", "expected_next_loc_note", "last_start", "insn" from
13301         rtx to rtx_insn *.
13302
13303 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13304
13305         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13306         from rtx to rtx_insn *.
13307         (create_pseudo_cfg): Likewise for local "insn".
13308
13309 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13310
13311         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13312         from rtx to rtx_insn *.
13313         (df_bb_regno_last_def_find): Likewise.
13314
13315         * df-problems.c (df_rd_bb_local_compute): Likewise.
13316         (df_lr_bb_local_compute): Likewise.
13317         (df_live_bb_local_compute): Likewise.
13318         (df_chain_remove_problem): Likewise.
13319         (df_chain_create_bb): Likewise.
13320         (df_word_lr_bb_local_compute): Likewise.
13321         (df_remove_dead_eq_notes): Likewise for param "insn".
13322         (df_note_bb_compute): Likewise for local "insn".
13323         (simulate_backwards_to_point): Likewise.
13324         (df_md_bb_local_compute): Likewise.
13325
13326         * df-scan.c (df_scan_free_bb_info): Likewise.
13327         (df_scan_start_dump): Likewise.
13328         (df_scan_start_block): Likewise.
13329         (df_install_ref_incremental): Likewise for local "insn".
13330         (df_insn_rescan_all): Likewise.
13331         (df_reorganize_refs_by_reg_by_insn): Likewise.
13332         (df_reorganize_refs_by_insn_bb): Likewise.
13333         (df_recompute_luids): Likewise.
13334         (df_bb_refs_record): Likewise.
13335         (df_update_entry_exit_and_calls): Likewise.
13336         (df_bb_verify): Likewise.
13337
13338 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13339
13340         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13341         "first_note" from rtx to rtx_insn *.
13342         (get_node_of_insn): Likewise for param 2 "insn".
13343         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13344
13345         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13346         rtx_insn *.
13347         (mem_write_insn_p): Likewise.
13348         (mem_access_insn_p): Likewise.
13349         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13350         (def_has_ccmode_p): Likewise for param "insn".
13351         (add_cross_iteration_register_deps): Likewise for locals
13352         "def_insn" and "use_insn".
13353         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13354         (build_intra_loop_deps): Likewise for local "src_insn".
13355         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13356         to rtx_insn *.
13357         (get_node_of_insn): Likewise for param "insn".
13358
13359 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13360
13361         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13362         (deletable_insn_p): Strengthen param "insn" from rtx to
13363         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
13364         find_call_stack_args, since this is guarded by CALL_P (insn).
13365         (marked_insn_p): Strengthen param "insn" from rtx to
13366         rtx_insn *.
13367         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
13368         invoking find_call_stack_args, since this is guarded by
13369         CALL_P (insn).
13370         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13371         rtx_insn *; we know this is an insn since this was called by
13372         mark_nonreg_stores.
13373         (mark_nonreg_stores_2): Likewise.
13374         (mark_nonreg_stores): Strengthen param "insn" from rtx to
13375         rtx_insn *.
13376         (find_call_stack_args): Strengthen param "call_insn" from rtx to
13377         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13378         to rtx_insn *.
13379         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13380         from rtx to rtx_insn *.
13381         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13382         "next", "ref_insn".
13383         (delete_unmarked_insns): Likewise for locals "insn", "next".
13384         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13385         (mark_reg_dependencies): Likewise for param "insn".
13386         (rest_of_handle_ud_dce): Likewise for local "insn".
13387         (word_dce_process_block): Likewise.
13388         (dce_process_block): Likewise.
13389
13390 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13391
13392         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13393         from rtx to rtx_insn *.
13394         (struct change_cc_mode_args): Likewise for field "insn".
13395         (this_insn): Strengthen from rtx to rtx_insn *.
13396         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13397         with insn.
13398         (validate_canon_reg): Strengthen param "insn" from rtx to
13399         rtx_insn *.
13400         (canon_reg): Likewise.
13401         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
13402         dealing with insn.
13403         (record_jump_equiv): Strengthen param "insn" from rtx to
13404         rtx_insn *.
13405         (try_back_substitute_reg): Likewise, also for locals "prev",
13406         "bb_head".
13407         (find_sets_in_insn): Likewise for param "insn".
13408         (canonicalize_insn): Likewise.
13409         (cse_insn): Likewise.  Add a checked cast.
13410         (invalidate_from_clobbers): Likewise for param "insn".
13411         (invalidate_from_sets_and_clobbers): Likewise.
13412         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
13413         dealing with insn.
13414         (cse_prescan_path): Strengthen local "insn" from rtx to
13415         rtx_insn *.
13416         (cse_extended_basic_block): Likewise for locals "insn" and
13417         "prev_insn".
13418         (cse_main): Likewise for param "f".
13419         (check_for_label_ref): Likewise for local "insn".
13420         (set_live_p): Likewise for second param ("insn").
13421         (insn_live_p): Likewise for first param ("insn") and for local
13422         "next".
13423         (cse_change_cc_mode_insn): Likewise for first param "insn".
13424         (cse_change_cc_mode_insns): Likewise for first and second params
13425         "start" and "end".
13426         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
13427         and "end".
13428         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
13429         "cc_src_insn".
13430
13431 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13432             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13433             Anna Tikhonova  <anna.tikhonova@intel.com>
13434             Ilya Tocar  <ilya.tocar@intel.com>
13435             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13436             Ilya Verbin  <ilya.verbin@intel.com>
13437             Kirill Yukhin  <kirill.yukhin@intel.com>
13438             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13439
13440         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
13441         New.
13442         * config/i386/sse.md
13443         (define_mode_iterator VI248_AVX2): Delete.
13444         (define_mode_iterator VI2_AVX2_AVX512BW): New.
13445         (define_mode_iterator VI48_AVX2): Ditto.
13446         (define_insn <shift_insn><mode>3): Delete.
13447         (define_insn "<shift_insn><mode>3<mask_name>" with
13448         VI2_AVX2_AVX512BW): New.
13449         (define_insn "<shift_insn><mode>3<mask_name>" with
13450         VI48_AVX2): Ditto.
13451
13452 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13453             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13454             Anna Tikhonova  <anna.tikhonova@intel.com>
13455             Ilya Tocar  <ilya.tocar@intel.com>
13456             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13457             Ilya Verbin  <ilya.verbin@intel.com>
13458             Kirill Yukhin  <kirill.yukhin@intel.com>
13459             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13460
13461         * config/i386/sse.md
13462         (define_mode_iterator VI4F_BRCST32x2): New.
13463         (define_mode_attr 64x2_mode): Ditto.
13464         (define_mode_attr 32x2mode): Ditto.
13465         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
13466         with VI4F_BRCST32x2): Ditto.
13467         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
13468         with V16FI mode iterator): Ditto.
13469         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13470         with V16FI): Ditto.
13471         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13472         with VI8F_BRCST64x2): Ditto.
13473
13474 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13475             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13476             Anna Tikhonova  <anna.tikhonova@intel.com>
13477             Ilya Tocar  <ilya.tocar@intel.com>
13478             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13479             Ilya Verbin  <ilya.verbin@intel.com>
13480             Kirill Yukhin  <kirill.yukhin@intel.com>
13481             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13482
13483         * config/i386/sse.md
13484         (define_mode_iterator VI8_AVX512VL): New.
13485         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
13486
13487 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
13488
13489         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
13490         (define_mode_iterator V48_AVX512VL): New.
13491         (define_mode_iterator V12_AVX512VL): Ditto.
13492         (define_insn <avx512>_load<mode>_mask): Split into two similar
13493         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
13494         Refactor output template.
13495         (define_insn "<avx512>_store<mode>_mask"): Ditto.
13496
13497 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13498
13499         * cprop.c (struct occr): Strengthen field "insn" from rtx to
13500         rtx_insn *.
13501         (reg_available_p): Likewise for param "insn".
13502         (insert_set_in_table): Likewise.
13503         (hash_scan_set): Likewise.
13504         (hash_scan_insn): Likewise.
13505         (make_set_regs_unavailable): Likewise.
13506         (compute_hash_table_work): Likewise for local "insn".
13507         (reg_not_set_p): Strengthen param "insn" from const_rtx to
13508         const rtx_insn *.
13509         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
13510         (try_replace_reg): Likewise.
13511         (find_avail_set): Likewise.
13512         (cprop_jump): Likewise for params "setcc", "jump".
13513         (constprop_register): Likewise for param "insn".
13514         (cprop_insn): Likewise.
13515         (do_local_cprop): Likewise.
13516         (local_cprop_pass): Likewise for local "insn".
13517         (bypass_block): Likewise for params "setcc" and "jump".
13518         (bypass_conditional_jumps): Likewise for locals "setcc" and
13519         "insn".
13520         (one_cprop_pass): Likewise for local "insn".
13521
13522 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13523
13524         * compare-elim.c (struct comparison_use): Strengthen field "insn"
13525         from rtx to rtx_insn *.
13526         (struct comparison): Likewise, also for field "prev_clobber".
13527         (conforming_compare): Likewise for param "insn".
13528         (arithmetic_flags_clobber_p): Likewise.
13529         (find_flags_uses_in_insn): Likewise.
13530         (find_comparison_dom_walker::before_dom_children): Likewise for
13531         locals "insn", "next", "last_clobber".
13532         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
13533
13534 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13535
13536         * combine-stack-adj.c (struct csa_reflist): Strengthen field
13537         "insn" from rtx to rtx_insn *.
13538         (single_set_for_csa): Likewise for param "insn".
13539         (record_one_stack_ref): Likewise.
13540         (try_apply_stack_adjustment): Likewise.
13541         (struct record_stack_refs_data): Likewise for field "insn".
13542         (maybe_move_args_size_note): Likewise for params "last" and "insn".
13543         (prev_active_insn_bb): Likewise for return type and param "insn".
13544         (next_active_insn_bb): Likewise.
13545         (force_move_args_size_note): Likewise for params "prev" and "last"
13546         and locals "test", "next_candidate", "prev_candidate".
13547         (combine_stack_adjustments_for_block): Strengthen locals
13548         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
13549         rtx_insn *.
13550
13551 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13552
13553         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
13554         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
13555         (subst_insn): Likewise for this variable.
13556         (added_links_insn): Likewise.
13557         (struct insn_link): Likewise for field "insn".
13558         (alloc_insn_link): Likewise for param "insn".
13559         (struct undobuf): Likewise for field "other_insn".
13560         (find_single_use): Likewise for param "insn" and local "next".
13561         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
13562         (delete_noop_moves): Likewise for locals "insn", "next".
13563         (create_log_links): Likewise for locals "insn", "use_insn".
13564         Strengthen local "next_use" from rtx * to rtx_insn **.
13565         (insn_a_feeds_b): Likewise for params "a", "b".
13566         (combine_instructions): Likewise for param "f" and locals "insn",
13567         "next", "prev", "first", "last_combined_insn", "link", "link1",
13568         "temp".  Replace use of NULL_RTX with NULL when referring to
13569         insns.
13570         (setup_incoming_promotions): Likewise for param "first"
13571         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
13572         (can_combine_p): Likewise for params "insn", "i3", "pred",
13573         "pred2", "succ", "succ2" and for local "p".
13574         (combinable_i3pat): Likewise for param "i3".
13575         (cant_combine_insn_p): Likewise for param "insn".
13576         (likely_spilled_retval_p): Likewise.
13577         (adjust_for_new_dest): Likewise.
13578         (update_cfg_for_uncondjump): Likewise, also for local "insn".
13579         (try_combine): Likewise for return type and for params "i3", "i2",
13580         "i1", "i0", "last_combined_insn", and for locals "insn",
13581         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
13582         "i0_insn".  Eliminate local "tem" in favor of new locals
13583         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
13584         checked cast for now to rtx_insn * on the return type of
13585         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
13586         insns.
13587         (find_split_point): Strengthen param "insn" from rtx to
13588         rtx_insn *.
13589         (simplify_set): Likewise for local "other_insn".
13590         (recog_for_combine): Likewise for param "insn".
13591         (record_value_for_reg): Likewise.
13592         (record_dead_and_set_regs_1): Likewise for local
13593         "record_dead_insn".
13594         (record_dead_and_set_regs): Likewise for param "insn".
13595         (record_promoted_value): Likewise.
13596         (check_promoted_subreg): Likewise.
13597         (get_last_value_validate): Likewise.
13598         (reg_dead_at_p): Likewise.
13599         (move_deaths): Likewise for param "to_insn".
13600         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
13601         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
13602         in favor of new locals "tem_note" and "tem_insn", the latter being
13603         an rtx_insn *.
13604         (distribute_links): Strengthen locals "place", "insn" from rtx to
13605         rtx_insn *.
13606
13607 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13608
13609         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
13610         than a const_rtx.
13611         (can_delete_label_p): Require a const rtx_code_label * rather than
13612         a const_rtx.
13613         (delete_insn): Add checked cast to rtx_code_label * when we know
13614         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
13615         rtx to rtx_insn *.
13616         (delete_insn_chain): Strengthen locals "prev" and "current" from
13617         rtx to rtx_insn *.  Add a checked cast when assigning from
13618         "finish" (strengthening the params will come later).  Add a
13619         checked cast to rtx_note * in region where we know
13620         NOTE_P (current).
13621         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
13622         rtx_insn *.
13623         (compute_bb_for_insn): Likewise.
13624         (free_bb_for_insn): Likewise for local "insn".
13625         (compute_bb_for_insn): Likewise.
13626         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
13627         local "insn" from rtx to rtx_insn *
13628         (flow_active_insn_p): Require a const rtx_insn * rather than a
13629         const_rtx.
13630         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
13631         rtx_insn *.
13632         (can_fallthru): Likewise for locals "insn" and "insn2".
13633         (bb_note): Likewise for local "note".
13634         (first_insn_after_basic_block_note): Likewise for local "note" and
13635         for return type.
13636         (rtl_split_block): Likewise for locals "insn" and "next".
13637         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
13638         "end".
13639         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
13640         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
13641         "prev", "tmp".
13642         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
13643         them), "kill_from", "barrier", "new_insn".
13644         (patch_jump_insn): Likewise for params "insn", "old_label".
13645         (redirect_branch_edge): Likewise for locals "old_label", "insn".
13646         (force_nonfallthru_and_redirect): Likewise for locals "insn",
13647         "old_label", "new_label".
13648         (rtl_tidy_fallthru_edge): Likewise for local "q".
13649         (rtl_split_edge): Likewise for locals "before", "last".
13650         (commit_one_edge_insertion): Likewise for locals "before",
13651         "after", "insns", "tmp", "last", adding a checked cast where
13652         currently necessary.
13653         (commit_edge_insertions): Likewise.
13654         (rtl_dump_bb): Likewise for locals "insn", "last".
13655         (print_rtl_with_bb): Likewise for local "x".
13656         (rtl_verify_bb_insns): Likewise for local "x".
13657         (rtl_verify_bb_pointers): Likewise for local "insn".
13658         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
13659         "head", "end".
13660         (rtl_verify_fallthru): Likewise for local "insn".
13661         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
13662         (purge_dead_edges): Likewise for local "insn".
13663         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
13664         (skip_insns_after_block): Likewise for return type and for locals
13665         "insn", "last_insn", "next_head", "prev".
13666         (record_effective_endpoints): Likewise for locals "next_insn",
13667         "insn", "end".
13668         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
13669         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
13670         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
13671         (duplicate_insn_chain): For now, add checked cast from rtx to
13672         rtx_insn * when returning insn.
13673         (cfg_layout_duplicate_bb): Likewise for local "insn".
13674         (cfg_layout_delete_block): Likewise for locals "insn", "next",
13675         "prev", "remaints".
13676         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
13677         (rtl_block_empty_p): Likewise.
13678         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
13679         "split_point", "last".
13680         (rtl_block_ends_with_call_p): Likewise for local "insn".
13681         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
13682         const rtx_insn *.
13683         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
13684         "split_at_insn" from rtx to rtx_insn *.
13685         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
13686         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
13687         to const rtx_insn *.
13688         (rtl_account_profile_record): Likewise.
13689
13690 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13691
13692         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
13693         rtx to rtx_insn *.
13694         (average_num_loop_insns): Likewise.
13695         (init_set_costs): Likewise for local "seq".
13696         (seq_cost): Likewise for param "seq", from const_rtx to const
13697         rtx_insn *.
13698
13699 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13700
13701         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
13702         rtx to rtx_insn *.
13703
13704 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13705
13706         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
13707         "f1" and "f2" from rtx * to rtx_insn **.
13708         (flow_find_head_matching_sequence): Likewise.
13709
13710         * cfgcleanup.c (try_simplify_condjump): Strengthen local
13711         "cbranch_insn" from rtx to rtx_insn *.
13712         (thread_jump): Likewise for local "insn".
13713         (try_forward_edges): Likewise for local "last".
13714         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
13715         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
13716         "real_b_end".
13717         (can_replace_by): Likewise for params "i1", "i2".
13718         (old_insns_match_p): Likewise.
13719         (merge_notes): Likewise.
13720         (walk_to_nondebug_insn): Likewise for param "i1".
13721         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
13722         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
13723         "afterlast1", "afterlast2" from rtx to rtx_insn *.
13724         (flow_find_head_matching_sequence): Strengthen params "f1" and
13725         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
13726         "last1", "last2", "beforelast1", "beforelast2" from rtx to
13727         rtx_insn *.
13728         (outgoing_edges_match): Likewise for locals "last1", "last2".
13729         (try_crossjump_to_edge): Likewise for local "insn".
13730         Replace call to for_each_rtx with for_each_rtx_in_insn.
13731
13732         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
13733         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
13734         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
13735         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
13736         (try_optimize_cfg): Strengthen local "last" from rtx to
13737         rtx_insn *.
13738         (delete_dead_jumptables): Likewise for locals "insn", "next",
13739         "label".
13740
13741         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
13742         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
13743         "rtx else_first_tail", to reflect the basic-block.h changes above.
13744
13745 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13746
13747         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
13748         rtx_insn *.
13749         (purge_dead_tablejump_edges): Likewise.
13750         (find_bb_boundaries): Likewise for locals "insn", "end",
13751         "flow_transfer_insn".
13752
13753 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13754
13755         * caller-save.c (save_call_clobbered_regs): Strengthen locals
13756         "ins" and "prev" from rtx to rtx_insn *.
13757
13758 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13759
13760         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
13761         rtx_insn *.
13762         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
13763         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
13764         "scan_start".
13765         (load_register_parameters): Likewise for local "before_arg".
13766         (check_sibcall_argument_overlap): Likewise for param "insn".
13767         (expand_call): Likewise for locals "normal_call_insns",
13768         "tail_call_insns", "insns", "before_call", "after_args",
13769         "before_arg", "last", "prev".  Strengthen one of the "last" from
13770         rtx to rtx_call_insn *.
13771         (fixup_tail_calls): Strengthen local "insn" from rtx to
13772         rtx_insn *.
13773         (emit_library_call_value_1): Likewise for locals "before_call" and
13774         "last".
13775
13776 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13777
13778         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
13779         and "last" from rtx to rtx_insn *.
13780         (expand_builtin_nonlocal_goto): Likewise for local "insn".
13781         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
13782         rtx_call_insn *.
13783         (expand_errno_check): Strengthen local "lab" from rtx to
13784         rtx_code_label *.
13785         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
13786         rtx_insn *.
13787         (expand_builtin_mathfn_2): Likewise.
13788         (expand_builtin_mathfn_ternary): Likewise.
13789         (expand_builtin_mathfn_3): Likewise.
13790         (expand_builtin_interclass_mathfn): Likewise for local "last".
13791         (expand_builtin_int_roundingfn): Likewise for local "insns".
13792         (expand_builtin_int_roundingfn_2): Likewise.
13793         (expand_builtin_strlen): Likewise for local "before_strlen".
13794         (expand_builtin_strncmp): Likewise for local "seq".
13795         (expand_builtin_signbit): Likewise for local "last".
13796         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
13797         from rtx to rtx_code_label *.
13798         (expand_stack_restore):  Strengthen local "prev" from rtx to
13799         rtx_insn *.
13800
13801 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13802
13803         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
13804         to rtx_insn *.
13805         (struct btr_def_s): Likewise.
13806         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
13807         const rtx_insn *.
13808         (add_btr_def): Likewise.
13809         (new_btr_user): Likewise.
13810         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
13811         rtx to rtx_insn *.
13812         (link_btr_uses): Likewise.
13813         (move_btr_def): Likewise for locals "insp", "old_insn",
13814         "new_insn".  Add checked cast to rtx_insn * for now on result of
13815         gen_move_insn.
13816         (can_move_up): Strengthen param "insn" from const_rtx to
13817         const rtx_insn *.
13818
13819 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13820
13821         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
13822         rtx_insn *.
13823         (get_uncond_jump_length): Likewise for locals "label", "jump".
13824         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
13825         "jump", "insn".
13826         (add_labels_and_missing_jumps): Likewise for local "new_jump".
13827         (fix_up_fall_thru_edges): Likewise for local "old_jump".
13828         (find_jump_block): Likewise for local "insn".
13829         (fix_crossing_conditional_branches): Likewise for locals
13830         "old_jump", "new_jump".
13831         (fix_crossing_unconditional_branches): Likewise for locals
13832         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
13833         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
13834
13835 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13836
13837         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
13838         rtx to rtx_insn *.
13839         (struct mem_insn): Likewise for field "insn".
13840         (reg_next_use): Strengthen from rtx * to rtx_insn **.
13841         (reg_next_inc_use): Likewise.
13842         (reg_next_def): Likewise.
13843         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
13844         from rtx to rtx_insn *.
13845         (move_insn_before): Likewise for param "next_insn" and local "insns".
13846         (attempt_change): Likewise for local "mov_insn".
13847         (try_merge): Likewise for param "last_insn".
13848         (get_next_ref): Likewise for return type and local "insn".
13849         Strengthen param "next_array" from rtx * to rtx_insn **.
13850         (parse_add_or_inc): Strengthen param "insn" from rtx to
13851         rtx_insn *.
13852         (find_inc): Likewise for locals "insn" and "other_insn" (three of
13853         the latter).
13854         (merge_in_block): Likewise for locals "insn", "curr",
13855         "other_insn".
13856         (pass_inc_dec::execute): Update allocations of the arrays to
13857         reflect the stronger types.
13858
13859 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13860
13861         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
13862         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
13863         from rtx to rtx_code_label *.
13864
13865 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13866
13867         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
13868         to rtx_insn *.
13869
13870 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
13871
13872         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
13873         generated a warning and prevented bootstrapping the compiler.
13874
13875 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13876
13877         * rtl.h (delete_related_insns): Strengthen return type from rtx to
13878         rtx_insn *.
13879
13880         * jump.c (delete_related_insns): Likewise, also for locals "next"
13881         and "prev".
13882
13883 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13884
13885         * genautomata.c (output_internal_insn_latency_func): When writing
13886         the function "internal_insn_latency" to insn-automata.c,
13887         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
13888         allowing the optional guard function of (define_bypass) clauses to
13889         expect a pair of rtx_insn *, rather than a pair of rtx.
13890         (output_insn_latency_func): When writing the function
13891         "insn_latency", add an "uncast_" prefix to params "insn" and
13892         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
13893         using checked casts from the params, thus enabling the above
13894         change to the generated "internal_insn_latency" function.
13895
13896 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
13897
13898         PR tree-optimization/62091
13899         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
13900         handle correctly arrays.
13901         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
13902         inheritance binfos.
13903         (record_known_type): Walk into inner type.
13904         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
13905         condition on no type changes.
13906
13907 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13908
13909         * genattrtab.c (write_attr_get): Within the generated get_attr_
13910         functions, rename param "insn" to "uncast_insn" and reintroduce
13911         "insn" as an local rtx_insn * using a checked cast, so that "insn"
13912         is an rtx_insn * within insn-attrtab.c
13913
13914 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13915
13916         * output.h (peephole): Strengthen return type from rtx to
13917         rtx_insn *.
13918         * rtl.h (delete_for_peephole): Likewise for both params.
13919         * genpeep.c (main): In generated "peephole" function, strengthen
13920         return type and local "insn" from rtx to rtx_insn *.  For now,
13921         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
13922         rtx_insn *, with a checked cast.
13923         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
13924         locals "insn", "next", "prev" from rtx to rtx_insn *.
13925
13926 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
13927
13928         PR tree-optimization/62112
13929         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
13930         * gimple-iterator.h (gsi_replace): Return bool.
13931         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
13932         moved from ref_may_alias_global_p.
13933         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
13934         New overloads.
13935         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
13936         (stmt_kills_ref_p_1): Rename...
13937         (stmt_kills_ref_p): ... to this.
13938         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
13939         stmt_kills_ref_p): Declare.
13940         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
13941         Move the self-assignment case...
13942         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
13943
13944 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13945
13946         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
13947
13948         * emit-rtl.c (try_split): Likewise, also for locals "before" and
13949         "after".  For now, don't strengthen param "trial", which requires
13950         adding checked casts when returning it.
13951
13952 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13953
13954         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
13955         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
13956         "var_location" hook from rtx to rtx_insn *.
13957         (debug_nothing_rtx): Delete in favor of...
13958         (debug_nothing_rtx_code_label): New prototype.
13959         (debug_nothing_rtx_rtx): Delete unused prototype.
13960         (debug_nothing_rtx_insn): New prototype.
13961
13962         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
13963         invoking debug_hooks->var_location (in two places, one in a NOTE
13964         case of a switch statement, the other guarded by a CALL_P
13965         conditional.  Add checked cast to rtx_code_label * when invoking
13966         debug_hooks->label (within CODE_LABEL case of switch statement).
13967
13968         * dbxout.c (dbx_debug_hooks): Update "label" hook from
13969         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
13970         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
13971         (xcoff_debug_hooks): Likewise.
13972         * debug.c (do_nothing_debug_hooks): Likewise.
13973         (debug_nothing_rtx): Delete in favor of...
13974         (debug_nothing_rtx_insn): New function.
13975         (debug_nothing_rtx_rtx): Delete unused function.
13976         (debug_nothing_rtx_code_label): New function.
13977         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
13978         debug_nothing_rtx to debug_nothing_rtx_code_label.
13979         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
13980         to rtx_insn *.
13981         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
13982         debug_nothing_rtx to debug_nothing_rtx_insn.
13983         (sdbout_label): Strengthen param "insn" from rtx to
13984         rtx_code_label *.
13985         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
13986         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
13987         "var_location" hook from debug_nothing_rtx to
13988         debug_nothing_rtx_insn.
13989
13990 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13991
13992         * recog.h (insn_output_fn): Update this function typedef to match
13993         the changes below to the generated output functions, strengthening
13994         the 2nd param from rtx to rtx_insn *.
13995
13996         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
13997         insn when invoking an output function, to match the new signature
13998         of insn_output_fn with a stronger second param.
13999
14000         * genconditions.c (write_header): In the generated code for
14001         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14002         to match the other changes in this patch.
14003
14004         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14005         the generated "gen_" functions from rtx to rtx_insn * within their
14006         implementations.
14007
14008         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14009         the subfunctions within the generated "recog_", "split", "peephole2"
14010         function trees from rtx to rtx_insn *.  For now, the top-level
14011         generated functions ("recog", "split", "peephole2") continue to
14012         take a plain rtx for "insn", to avoid introducing dependencies on
14013         other patches.  Rename this 2nd param from "insn" to
14014         "uncast_insn", and reintroduce "insn" as a local variable of type
14015         rtx_insn *, initialized at the top of the generated function with
14016         a checked cast on "uncast_insn".
14017         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14018         the generated "gen_" functions from rtx to rtx_insn * within their
14019         prototypes.
14020
14021         * genoutput.c (process_template): Strengthen the 2nd param within
14022         the generated "output_" functions "insn" from rtx to rtx_insn *.
14023
14024 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14025
14026         * tree-profile.c (tree_profiling): Skip external functions
14027         when doing coverage instrumentation.
14028         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14029
14030 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14031
14032         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14033         (vec_mergee): Likewise.
14034         (vec_mergeo): Likewise.
14035         (vec_cntlz): Likewise.
14036         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14037         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14038         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14039         VMRGEW, and VMRGOW.
14040         * doc/extend.texi: Document various forms of vec_cpsgn,
14041         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14042         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14043         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14044         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14045         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14046
14047 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14048
14049         * config/rs6000/rs6000.c (context.h): New include.
14050         (tree-pass.h): Likewise.
14051         (make_pass_analyze_swaps): New decl.
14052         (rs6000_option_override): Register pass_analyze_swaps.
14053         (swap_web_entry): New subsclass of web_entry_base (df.h).
14054         (special_handling_values): New enum.
14055         (union_defs): New function.
14056         (union_uses): Likewise.
14057         (insn_is_load_p): Likewise.
14058         (insn_is_store_p): Likewise.
14059         (insn_is_swap_p): Likewise.
14060         (rtx_is_swappable_p): Likewise.
14061         (insn_is_swappable_p): Likewise.
14062         (chain_purpose): New enum.
14063         (chain_contains_only_swaps): New function.
14064         (mark_swaps_for_removal): Likewise.
14065         (swap_const_vector_halves): Likewise.
14066         (adjust_subreg_index): Likewise.
14067         (permute_load): Likewise.
14068         (permute_store): Likewise.
14069         (handle_special_swappables): Likewise.
14070         (replace_swap_with_copy): Likewise.
14071         (dump_swap_insn_table): Likewise.
14072         (rs6000_analyze_swaps): Likewise.
14073         (pass_data_analyze_swaps): New pass_data.
14074         (pass_analyze_swaps): New rtl_opt_pass.
14075         (make_pass_analyze_swaps): New function.
14076         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14077
14078 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14079
14080         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14081         type from rtx to rtx_insn *.
14082         (create_copy_of_insn_rtx): Likewise.
14083         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14084         (create_copy_of_insn_rtx): Likewise, also for local "res".
14085
14086 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14087
14088         * rtl.h (find_first_parameter_load): Strengthen return type from
14089         rtx to rtx_insn *.
14090         * rtlanal.c (find_first_parameter_load): Strengthen return type
14091         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14092         strengthening the params.
14093
14094 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14095
14096         PR fortran/44054
14097         * diagnostic.c: Set default caret.
14098         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14099         line is needed.
14100         * diagnostic.h (struct diagnostic_context):
14101
14102 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14103
14104         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14105         (sel_bb_head): Strengthen return type insn_t (currently just an
14106         rtx) to rtx_insn *.
14107         (sel_bb_end): Likewise.
14108
14109         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14110         (sel_bb_head): Strengthen return type and local "head" from
14111         insn_t (currently just an rtx) to rtx_insn *.
14112         (sel_bb_end): Likewise for return type.
14113         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14114         working with insn.
14115
14116 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14117
14118         * basic-block.h (get_last_bb_insn): Strengthen return type from
14119         rtx to rtx_insn *.
14120         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14121         end".
14122
14123 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14124
14125         PR fortran/44054
14126         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14127         to here ...
14128         (diagnostic_report_diagnostic): ... from here.
14129         * toplev.c (general_init): Move code to c-family.
14130
14131 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14132
14133         * df.h (web_entry_base): Replace existing struct web_entry with a
14134         new class web_entry_base with only the predecessor member.
14135         (unionfind_root): Remove declaration and move to class member.
14136         (unionfind_union): Remove declaration and move to friend
14137         function.
14138         (union_defs): Remove declaration.
14139         * web.c (web_entry_base::unionfind_root): Modify to be member
14140         function and adjust accessors.
14141         (unionfind_union): Modify to be friend function and adjust
14142         accessors.
14143         (web_entry): New subclass of web_entry_base containing the reg
14144         member.
14145         (union_match_dups): Modify for struct -> class changes.
14146         (union_defs): Likewise.
14147         (entry_register): Likewise.
14148         (pass_web::execute): Likewise.
14149
14150 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14151
14152         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14153         builtin define __VEC_ELEMENT_REG_ORDER__.
14154
14155 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14156             Wei Mi  <wmi@google.com>
14157
14158         PR ipa/60449
14159         PR middle-end/61776
14160         * tree-ssa-operands.c (update_stmt_operands): Remove
14161         MODIFIED_NORETURN_CALLS.
14162         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14163         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14164         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14165         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14166         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14167         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14168         (gimple_call_set_ctrl_altering): New func.
14169         (gimple_call_ctrl_altering_p): Ditto.
14170         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14171         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14172         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14173         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14174         remove MODIFIED_NORETURN_CALLS.
14175
14176 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14177
14178         * coverage.c (coverage_compute_profile_id): Return non-0;
14179         also handle symbols with unique name.
14180         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14181
14182 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14183
14184         PR middle-end/49191
14185         * doc/sourcebuild.texi (non_strict_align): New.
14186
14187 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14188
14189         * cgraphunit.c (ipa_passes, compile): Reshedule
14190         symtab_remove_unreachable_nodes passes; update comments.
14191         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14192         TODO_remove_functions before the pass; the functions ought to be
14193         already removed.
14194         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14195         TODO_remove_functions.
14196         * passes.c (pass_data_early_local_passes): Do not schedule function
14197         removal.
14198         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14199
14200 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14201
14202         PR c/59304
14203         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14204         before setting the option.
14205         * diagnostic.c (diagnostic_classify_diagnostic): Record
14206         command-line status.
14207
14208 2014-08-20  Richard Biener  <rguenther@suse.de>
14209
14210         PR lto/62190
14211         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14212         to build uint{16,32,64}_type_node.
14213
14214 2014-08-20  Terry Guo  <terry.guo@arm.com>
14215
14216         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14217         with immediate_operand.
14218
14219 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14220
14221         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14222         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14223         NULL.
14224
14225 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14226
14227         PR preprocessor/51303
14228         * incpath.c (remove_duplicates): Use cpp_warning.
14229
14230 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14231
14232         PR c/60975
14233         PR c/53063
14234         * doc/options.texi (CPP): Document it.
14235         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14236         * optc-gen.awk: Handle CPP.
14237         * opth-gen.awk: Likewise.
14238
14239 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14240
14241         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14242         rtx_insn *.
14243         (duplicate_insn_chain): Likewise.
14244         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14245         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14246         checked cast for now (until we can strengthen the params in the
14247         same way).
14248         (duplicate_insn_chain): Likewise.
14249
14250 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14251
14252         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14253         rtx_insn *.
14254         (prev_cc0_setter): Likewise.
14255
14256         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14257         rtx_insn *, adding checked casts for now as necessary.
14258         (prev_cc0_setter): Likewise.
14259
14260 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14261
14262         * expr.h (emit_move_insn): Strengthen return type from rtx to
14263         rtx_insn *.
14264         (emit_move_insn_1): Likewise.
14265         (emit_move_complex_push): Likewise.
14266         (emit_move_complex_parts): Likewise.
14267
14268         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14269         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14270         with insns.
14271         (emit_move_complex_push): Strengthen return type from rtx to
14272         rtx_insn *.
14273         (emit_move_complex): Likewise, also for local "ret".
14274         (emit_move_ccmode): Likewise.
14275         (emit_move_multi_word): Likewise for return type and locals
14276         "last_insn", "seq".
14277         (emit_move_insn_1): Likewise for return type and locals "result",
14278         "ret".
14279         (emit_move_insn): Likewise for return type and local "last_insn".
14280         (compress_float_constant): Likewise.
14281
14282 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14283
14284         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14285         from rtx to rtx_insn *.
14286
14287         * rtl.h (emit_insn_before): Likewise.
14288         (emit_insn_before_noloc): Likewise.
14289         (emit_insn_before_setloc): Likewise.
14290         (emit_jump_insn_before): Likewise.
14291         (emit_jump_insn_before_noloc): Likewise.
14292         (emit_jump_insn_before_setloc): Likewise.
14293         (emit_call_insn_before): Likewise.
14294         (emit_call_insn_before_noloc): Likewise.
14295         (emit_call_insn_before_setloc): Likewise.
14296         (emit_debug_insn_before): Likewise.
14297         (emit_debug_insn_before_noloc): Likewise.
14298         (emit_debug_insn_before_setloc): Likewise.
14299         (emit_label_before): Likewise.
14300         (emit_insn_after): Likewise.
14301         (emit_insn_after_noloc): Likewise.
14302         (emit_insn_after_setloc): Likewise.
14303         (emit_jump_insn_after): Likewise.
14304         (emit_jump_insn_after_noloc): Likewise.
14305         (emit_jump_insn_after_setloc): Likewise.
14306         (emit_call_insn_after): Likewise.
14307         (emit_call_insn_after_noloc): Likewise.
14308         (emit_call_insn_after_setloc): Likewise.
14309         (emit_debug_insn_after): Likewise.
14310         (emit_debug_insn_after_noloc): Likewise.
14311         (emit_debug_insn_after_setloc): Likewise.
14312         (emit_label_after): Likewise.
14313         (emit_insn): Likewise.
14314         (emit_debug_insn): Likewise.
14315         (emit_jump_insn): Likewise.
14316         (emit_call_insn): Likewise.
14317         (emit_label): Likewise.
14318         (gen_clobber): Likewise.
14319         (emit_clobber): Likewise.
14320         (gen_use): Likewise.
14321         (emit_use): Likewise.
14322         (emit): Likewise.
14323
14324         (emit_barrier_before): Strengthen return type from rtx to
14325         rtx_barrier *.
14326         (emit_barrier_after): Likewise.
14327         (emit_barrier): Likewise.
14328
14329         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14330         from rtx to rtx_insn *.  Add checked casts for now when converting
14331         "last" from rtx to rtx_insn *.
14332         (emit_insn_before_noloc): Likewise for return type.
14333         (emit_jump_insn_before_noloc): Likewise.
14334         (emit_call_insn_before_noloc): Likewise.
14335         (emit_debug_insn_before_noloc): Likewise.
14336         (emit_barrier_before): Strengthen return type and local "insn"
14337         from rtx to rtx_barrier *.
14338         (emit_label_before): Strengthen return type from rtx to
14339         rtx_insn *.  Add checked cast for now when returning param
14340         (emit_pattern_after_noloc): Strengthen return type from rtx to
14341         rtx_insn *.  Add checked casts for now when converting "last" from
14342         rtx to rtx_insn *.
14343         (emit_insn_after_noloc): Strengthen return type from rtx to
14344         rtx_insn *.
14345         (emit_jump_insn_after_noloc): Likewise.
14346         (emit_call_insn_after_noloc): Likewise.
14347         (emit_debug_insn_after_noloc): Likewise.
14348         (emit_barrier_after): Strengthen return type from rtx to
14349         rtx_barrier *.
14350         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14351         Add checked cast for now when converting "label" from rtx to
14352         rtx_insn *.
14353         (emit_pattern_after_setloc): Strengthen return type from rtx to
14354         rtx_insn *.  Add checked casts for now when converting "last" from
14355         rtx to rtx_insn *.
14356         (emit_pattern_after): Strengthen return type from rtx to
14357         rtx_insn *.
14358         (emit_insn_after_setloc): Likewise.
14359         (emit_insn_after): Likewise.
14360         (emit_jump_insn_after_setloc): Likewise.
14361         (emit_jump_insn_after): Likewise.
14362         (emit_call_insn_after_setloc): Likewise.
14363         (emit_call_insn_after): Likewise.
14364         (emit_debug_insn_after_setloc): Likewise.
14365         (emit_debug_insn_after): Likewise.
14366         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
14367         when converting "last" from rtx to rtx_insn *.
14368         (emit_pattern_before): Strengthen return type from rtx to
14369         rtx_insn *.
14370         (emit_insn_before_setloc): Likewise.
14371         (emit_insn_before): Likewise.
14372         (emit_jump_insn_before_setloc): Likewise.
14373         (emit_jump_insn_before): Likewise.
14374         (emit_call_insn_before_setloc): Likewise.
14375         (emit_call_insn_before): Likewise.
14376         (emit_debug_insn_before_setloc): Likewise.
14377         (emit_debug_insn_before): Likewise.
14378         (emit_insn): Strengthen return type and locals "last", "insn",
14379         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
14380         within cases where we know we have an insn.
14381         (emit_debug_insn): Likewise.
14382         (emit_jump_insn): Likewise.
14383         (emit_call_insn): Strengthen return type and local "insn" from rtx
14384         to rtx_insn *.
14385         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
14386         a checked cast to rtx_insn * for now on "label".
14387         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14388         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14389         (emit_use): Likewise.
14390         (gen_use): Likewise, also for local "seq".
14391         (emit): Likewise for return type and local "insn".
14392         (rtx_insn): Likewise for return type and local "new_rtx".
14393
14394         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14395         from rtx to rtx_barrier *.
14396
14397         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14398         changed return type from rtx to rtx_insn *, we must update
14399         "emit_fn" type, and this in turn means updating...
14400         (frame_insn): ...this.  Strengthen return type from rtx to
14401         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
14402
14403 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14404
14405         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
14406         rtx to rtx_jump_table_data *.  Also for local.
14407         * rtl.h (emit_jump_table_data): Likewise.
14408
14409 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14410
14411         * basic-block.h (create_basic_block_structure): Strengthen third
14412         param "bb_note" from rtx to rtx_note *.
14413         * rtl.h (emit_note_before): Strengthen return type from rtx to
14414         rtx_note *.
14415         (emit_note_after): Likewise.
14416         (emit_note): Likewise.
14417         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14418         * function.h (struct rtl_data): Strengthen field
14419         "x_stack_check_probe_note" from rtx to rtx_note *.
14420
14421         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
14422         from rtx to rtx_note *.
14423         * cfgrtl.c (create_basic_block_structure): Strengthen third param
14424         "bb_note" from rtx to rtx_note *.
14425         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
14426         when calling emit_note_copy.
14427         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
14428         rtx_note *.
14429         (emit_note_after): Likewise.
14430         (emit_note_before): Likewise.
14431         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14432         (emit_note): Likewise.
14433         * except.c (emit_note_eh_region_end): Likewise for return type.
14434         Strengthen local "next" from rtx to rtx_insn *.
14435         (convert_to_eh_region_ranges): Strengthen local "note"
14436         from rtx to rtx_note *.
14437         * final.c (change_scope): Likewise.
14438         (reemit_insn_block_notes): Likewise, for both locals named "note".
14439         Also, strengthen local "insn" from rtx to rtx_insn *.
14440         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
14441         rtx to rtx_note *.
14442         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
14443         strengthen local "seq" from rtx to rtx_insn *.
14444         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
14445         to rtx_note *.
14446         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
14447         vec<rtx_note *>.
14448         (get_bb_note_from_pool): Strengthen return type from rtx to
14449         rtx_note *.
14450         (sel_create_basic_block): Strengthen local "new_bb_note" from
14451         insn_t to rtx_note *.
14452         * var-tracking.c (emit_note_insn_var_location): Strengthen local
14453         "note" from rtx to rtx_note *.
14454         (emit_notes_in_bb): Likewise.
14455
14456 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14457
14458         * function.h (struct rtl_data): Strengthen field
14459         "x_parm_birth_insn" from rtx to rtx_insn *.
14460         * function.c (struct assign_parm_data_all): Strengthen fields
14461         "first_conversion_insn" and "last_conversion_insn" from rtx to
14462         rtx_insn *.
14463
14464 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14465
14466         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
14467         to rtx_insn *; also for local "var_end_seq".
14468         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
14469         (maybe_cleanup_end_of_block): Likewise for param "last" and local
14470         "insn".
14471         (expand_gimple_cond): Likewise for locals "last2" and "last".
14472         (mark_transaction_restart_calls): Likewise for local "insn".
14473         (expand_gimple_stmt): Likewise for return type and locals "last"
14474         and "insn".
14475         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
14476         (avoid_complex_debug_insns): Likewise for param "insn".
14477         (expand_debug_locations): Likewise for locals "insn", "last",
14478         "prev_insn" and "insn2".
14479         (expand_gimple_basic_block): Likewise for local "last".
14480         (construct_exit_block): Likewise for locals "head", "end",
14481         "orig_end".
14482         (pass_expand::execute): Likewise for locals "var_seq",
14483         "var_ret_seq", "next".
14484
14485 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14486
14487         * asan.h (asan_emit_stack_protection): Strengthen return type from
14488         rtx to rtx_insn *.
14489         * asan.c (asan_emit_stack_protection): Likewise.  Add local
14490         "insns" to hold the return value.
14491
14492 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14493
14494         * basic-block.h (bb_note): Strengthen return type from rtx to
14495         rtx_note *.
14496         * sched-int.h (bb_note): Likewise.
14497         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
14498
14499 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14500
14501         * rtl.h (make_insn_raw): Strengthen return type from rtx to
14502         rtx_insn *.
14503
14504         * emit-rtl.c (make_insn_raw): Strengthen return type and local
14505         "insn" from rtx to rtx_insn *.
14506         (make_debug_insn_raw): Strengthen return type from rtx to
14507         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
14508         (make_jump_insn_raw):  Strengthen return type from rtx to
14509         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
14510         (make_call_insn_raw):  Strengthen return type from rtx to
14511         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
14512         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
14513         callback from rtx to rtx_insn *; likewise for local "insn" and
14514         "next", adding a checked cast to rtx_insn in the relevant cases of
14515         the switch statement.
14516         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
14517         callback from rtx to rtx_insn *.
14518         (emit_pattern_after_setloc): Likewise.
14519         (emit_pattern_after): Likewise.
14520         (emit_pattern_before_setloc): Likewise.
14521         (emit_pattern_before): Likewise.
14522
14523 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14524
14525         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
14526         rtx_call_insn *.
14527         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
14528         accepting an rtx_insn *.
14529         (last_call_insn): Strengthen return type from rtx to
14530         rtx_call_insn *.
14531
14532 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14533
14534         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
14535         "insns" from rtx to rtx_insn *.
14536         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
14537         locals "insn" and "prev".
14538
14539 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14540
14541         * rtl.h (tablejump_p): Strengthen third param from rtx * to
14542         rtx_jump_table_data **.
14543
14544         * cfgbuild.c (make_edges): Introduce local "table", using it in
14545         place of "tmp" for jump table data.
14546         (find_bb_boundaries): Strengthen local "table" from rtx to
14547         rtx_jump_table_data *.
14548         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14549         (outgoing_edges_match): Likewise for locals "table1" and "table2".
14550         (try_crossjump_to_edge): Likewise.
14551         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
14552         "table".
14553         (patch_jump_insn): Introduce local "table", using it in place of
14554         "tmp" for jump table data.
14555         (force_nonfallthru_and_redirect): Introduce local "table", so that
14556         call to tablejump_p can receive an rtx_jump_table_data **.  Update
14557         logic around the call to overwrite "note" appropriately if
14558         tablejump_p returns non-zero.
14559         (get_last_bb_insn): Introduce local "table", using it in place of
14560         "tmp" for jump table data.
14561         * dwarf2cfi.c (create_trace_edges): Likewise.
14562
14563         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
14564         from rtx to rtx_jump_table_data *.
14565         (create_fix_barrier): Strengthen local "tmp" from rtx to
14566         rtx_jump_table_data *.
14567         (arm_reorg): Likewise for local "table".
14568
14569         * config/s390/s390.c (s390_chunkify_start): Likewise.
14570
14571         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
14572
14573         * jump.c (delete_related_insns): Strengthen local "lab_next" from
14574         rtx to rtx_jump_table_data *.
14575
14576         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
14577         rtx_jump_table_data **.  Add a checked cast when writing through
14578         the pointer: we know there that local "table" is non-NULL and that
14579         JUMP_TABLE_DATA_P (table) holds.
14580         (label_is_jump_target_p): Introduce local "table", using it in
14581         place of "tmp" for jump table data.
14582
14583 2014-08-19  Marek Polacek  <polacek@redhat.com>
14584
14585         PR c++/62153
14586         * doc/invoke.texi: Document -Wbool-compare.
14587
14588 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14589
14590         * rtl.h (entry_of_function): Strengthen return type from rtx to
14591         rtx_insn *.
14592         * cfgrtl.c (entry_of_function): Likewise.
14593
14594 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14595
14596         * emit-rtl.h (get_insns): Strengthen return type from rtx to
14597         rtx_insn *, adding a checked cast for now.
14598         (get_last_insn): Likewise.
14599
14600 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14601
14602         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
14603         rtx_code_label *.
14604
14605         * emit-rtl.c (gen_label_rtx): Likewise.
14606
14607 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14608
14609         * rtl.h (previous_insn): Strengthen return type from rtx to
14610         rtx_insn *.
14611         (next_insn): Likewise.
14612         (prev_nonnote_insn): Likewise.
14613         (prev_nonnote_insn_bb): Likewise.
14614         (next_nonnote_insn): Likewise.
14615         (next_nonnote_insn_bb): Likewise.
14616         (prev_nondebug_insn): Likewise.
14617         (next_nondebug_insn): Likewise.
14618         (prev_nonnote_nondebug_insn): Likewise.
14619         (next_nonnote_nondebug_insn): Likewise.
14620         (prev_real_insn): Likewise.
14621         (next_real_insn): Likewise.
14622         (prev_active_insn): Likewise.
14623         (next_active_insn): Likewise.
14624
14625         * emit-rtl.c (next_insn): Strengthen return type from rtx to
14626         rtx_insn *, adding a checked cast.
14627         (previous_insn): Likewise.
14628         (next_nonnote_insn): Likewise.
14629         (next_nonnote_insn_bb): Likewise.
14630         (prev_nonnote_insn): Likewise.
14631         (prev_nonnote_insn_bb): Likewise.
14632         (next_nondebug_insn): Likewise.
14633         (prev_nondebug_insn): Likewise.
14634         (next_nonnote_nondebug_insn): Likewise.
14635         (prev_nonnote_nondebug_insn): Likewise.
14636         (next_real_insn): Likewise.
14637         (prev_real_insn): Likewise.
14638         (next_active_insn): Likewise.
14639         (prev_active_insn): Likewise.
14640
14641         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
14642         param "stepfunc" so that it returns an rtx_insn * rather than an
14643         rtx, to track the change to prev_nonnote_insn_bb, which is the
14644         only function this is called with.
14645         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
14646
14647 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
14648
14649         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
14650         assert.
14651
14652 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14653
14654         * coretypes.h (class rtx_debug_insn): Add forward declaration.
14655         (class rtx_nonjump_insn): Likewise.
14656         (class rtx_jump_insn): Likewise.
14657         (class rtx_call_insn): Likewise.
14658         (class rtx_jump_table_data): Likewise.
14659         (class rtx_barrier): Likewise.
14660         (class rtx_code_label): Likewise.
14661         (class rtx_note): Likewise.
14662
14663         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
14664         adding the invariant DEBUG_INSN_P (X).
14665         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
14666         the invariant NONJUMP_INSN_P (X).
14667         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
14668         the invariant JUMP_P (X).
14669         (class rtx_call_insn): New, a subclass of rtx_insn, adding
14670         the invariant CALL_P (X).
14671         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
14672         invariant JUMP_TABLE_DATA_P (X).
14673         (class rtx_barrier): New, a subclass of rtx_insn, adding the
14674         invariant BARRIER_P (X).
14675         (class rtx_code_label): New, a subclass of rtx_insn, adding
14676         the invariant LABEL_P (X).
14677         (class rtx_note): New, a subclass of rtx_insn, adding
14678         the invariant NOTE_P(X).
14679         (is_a_helper <rtx_debug_insn *>::test): New.
14680         (is_a_helper <rtx_nonjump_insn *>::test): New.
14681         (is_a_helper <rtx_jump_insn *>::test): New.
14682         (is_a_helper <rtx_call_insn *>::test): New.
14683         (is_a_helper <rtx_jump_table_data *>::test): New functions,
14684         overloaded for both rtx and rtx_insn *.
14685         (is_a_helper <rtx_barrier *>::test): New.
14686         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
14687         for both rtx and rtx_insn *.
14688         (is_a_helper <rtx_note *>::test): New.
14689
14690 2014-08-19  Marek Polacek  <polacek@redhat.com>
14691
14692         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
14693         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14694         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
14695         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14696
14697 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14698
14699         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
14700         rtx_insn *.  To help with transition, for now, convert from an
14701         access macro into a pair of functions: BND_TO, returning an
14702         rtx_insn *, and...
14703         (SET_BND_TO): New function, for use where BND_TO is used as an
14704         lvalue.
14705
14706         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
14707         SET_BND_TO.
14708         (BND_TO): New function, adding a checked cast.
14709         (SET_BND_TO): New function.
14710
14711         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
14712         SET_BND_TO.
14713         (compute_av_set_on_boundaries): Likewise.
14714
14715 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14716
14717         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
14718         destination if it is used in source.
14719         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
14720         (*popcount<mode>2_falsedep_1): Likewise.
14721
14722 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14723
14724         PR other/62168
14725         * configure.ac: Set install_gold_as_default to no first.
14726         * configure: Regenerated.
14727
14728 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14729
14730         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
14731         "note_list" field will eventually be an rtx_insn *.  To help with
14732         transition, for now, convert from an access macro into a pair of
14733         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
14734         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
14735         used as an lvalue.
14736
14737         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
14738         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
14739
14740         * sel-sched-ir.c (init_bb): Likewise.
14741         (sel_restore_notes): Likewise.
14742         (move_bb_info): Likewise.
14743         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
14744         (SET_BB_NOTE_LIST): New function.
14745
14746 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14747
14748         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
14749         field will eventually be an rtx_insn *.  To help with transition,
14750         for now, convert from an access macro into a pair of functions:
14751         VINSN_INSN_RTX, returning an rtx_insn *, and...
14752         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
14753         is used as an lvalue.
14754
14755         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
14756         SET_VINSN_INSN_RTX where it's used as an lvalue.
14757         (VINSN_INSN_RTX): New function.
14758         (SET_VINSN_INSN_RTX): New function.
14759
14760 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14761
14762         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
14763         eventually be rtx_insn *, but to help with transition, for now,
14764         convert from an access macro into a pair of functions: DEP_PRO
14765         returning an rtx_insn * and...
14766         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
14767         lvalue, returning an rtx&.
14768         (DEP_CON): Analogous changes to DEP_PRO above.
14769         (SET_DEP_CON): Likewise.
14770
14771         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
14772         an lvalue to SET_DEP_CON.
14773         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
14774         (sd_copy_back_deps): Likewise for DEP_CON.
14775         (DEP_PRO): New function, adding a checked cast for now.
14776         (DEP_CON): Likewise.
14777         (SET_DEP_PRO): New function.
14778         (SET_DEP_CON): Likewise.
14779
14780 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14781
14782         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
14783         (extra_options): Add i386/cygwin.opt.
14784         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
14785         (CPP_SPEC): Accept -pthread.
14786         (LINK_SPEC): Ditto.
14787         (GOMP_SELF_SPECS): Update comment.
14788         * config/i386/cygwin.opt: New file for -pthread flag.
14789
14790 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14791
14792         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
14793         * df.h (DF_REF_INSN): Convert from a macro to a function, so
14794         that we can return an rtx_insn *.
14795
14796 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14797
14798         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
14799         when building executables, not DLLs.  Add --large-address-aware
14800         under the same conditions.
14801         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
14802         when building executables, not DLLs.  Add --large-address-aware
14803         under the same conditions when using -m32.
14804
14805         * config/i386/cygwin-stdint.h: Throughout, make type
14806         definitions dependent on target architecture, not host.
14807
14808 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14809
14810         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
14811         the return type from rtx to rtx_insn *,  which will enable various
14812         conversions in followup patches.  For now this is is done by a
14813         checked cast.
14814         (NEXT_INSN): Likewise.
14815         (SET_PREV_INSN): Convert to an inline function.  This is intended
14816         for use as an lvalue, and so returns an rtx& to allow in-place
14817         modification.
14818         (SET_NEXT_INSN): Likewise.
14819
14820 2014-07-08  Mark Wielaard  <mjw@redhat.com>
14821
14822         PR debug/59051
14823         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
14824
14825 2014-08-19  Marek Polacek  <polacek@redhat.com>
14826
14827         PR c/61271
14828         * cgraphunit.c (handle_alias_pairs): Fix condition.
14829
14830 2014-08-19  Richard Biener  <rguenther@suse.de>
14831
14832         * gimple-fold.c (fold_gimple_assign): Properly build a
14833         null-pointer constant when devirtualizing addresses.
14834
14835 2014-07-07  Mark Wielaard  <mjw@redhat.com>
14836
14837         * dwarf2out.c (decl_quals): New function.
14838         (modified_type_die): Take one cv_quals argument instead of two,
14839         one for const and one for volatile.
14840         (add_type_attribute): Likewise.
14841         (generic_parameter_die): Call add_type_attribute with one modifier
14842         argument.
14843         (base_type_for_mode): Likewise.
14844         (add_bounds_info): Likewise.
14845         (add_subscript_info): Likewise.
14846         (gen_array_type_die): Likewise.
14847         (gen_descr_array_type_die): Likewise.
14848         (gen_entry_point_die): Likewise.
14849         (gen_enumeration_type_die): Likewise.
14850         (gen_formal_parameter_die): Likewise.
14851         (gen_subprogram_die): Likewise.
14852         (gen_variable_die): Likewise.
14853         (gen_const_die): Likewise.
14854         (gen_field_die): Likewise.
14855         (gen_pointer_type_die): Likewise.
14856         (gen_reference_type_die): Likewise.
14857         (gen_ptr_to_mbr_type_die): Likewise.
14858         (gen_inheritance_die): Likewise.
14859         (gen_subroutine_type_die): Likewise.
14860         (gen_typedef_die): Likewise.
14861         (force_type_die): Likewise.
14862
14863 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14864
14865         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
14866         if unset.
14867         * configure: Regenerate.
14868
14869 2014-08-19  Richard Biener  <rguenther@suse.de>
14870
14871         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
14872         DECL_EXTERNALs in BLOCKs as non-references.
14873         * tree-streamer-out.c (streamer_write_chain): Likewise.
14874
14875 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14876             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14877             Anna Tikhonova  <anna.tikhonova@intel.com>
14878             Ilya Tocar  <ilya.tocar@intel.com>
14879             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14880             Ilya Verbin  <ilya.verbin@intel.com>
14881             Kirill Yukhin  <kirill.yukhin@intel.com>
14882             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14883
14884         * config/i386/sse.md
14885         (define_mode_iterator VI48_AVX512F): Delete.
14886         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
14887         (define_mode_iterator VI2_AVX512VL): Ditto.
14888         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
14889         Delete.
14890         (define_insn
14891         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
14892         New.
14893         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
14894         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
14895         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14896         with VI48_AVX512F_AVX512VL): New.
14897         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14898         with VI2_AVX512VL): Ditto.
14899
14900 2014-08-19  Marek Polacek  <polacek@redhat.com>
14901
14902         * doc/invoke.texi: Document -Wc99-c11-compat.
14903
14904 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14905
14906         * rtl.h (PREV_INSN): Split macro in two: the existing one,
14907         for rvalues, and...
14908         (SET_PREV_INSN): New macro, for use as an lvalue.
14909         (NEXT_INSN, SET_NEXT_INSN): Likewise.
14910
14911         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
14912         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
14913         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14914         (fixup_abnormal_edges): Likewise.
14915         (unlink_insn_chain): Likewise.
14916         (fixup_reorder_chain): Likewise.
14917         (cfg_layout_delete_block): Likewise.
14918         (cfg_layout_merge_blocks): Likewise.
14919         * combine.c (update_cfg_for_uncondjump): Likewise.
14920         * emit-rtl.c (link_insn_into_chain): Likewise.
14921         (remove_insn): Likewise.
14922         (delete_insns_since): Likewise.
14923         (reorder_insns_nobb): Likewise.
14924         (emit_insn_after_1): Likewise.
14925         * final.c (rest_of_clean_state): Likewise.
14926         (final_scan_insn): Likewise.
14927         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
14928         * haifa-sched.c (concat_note_lists): Likewise.
14929         (remove_notes): Likewise.
14930         (restore_other_notes): Likewise.
14931         (move_insn): Likewise.
14932         (unlink_bb_notes): Likewise.
14933         (restore_bb_notes): Likewise.
14934         * jump.c (delete_for_peephole): Likewise.
14935         * optabs.c (emit_libcall_block_1): Likewise.
14936         * reorg.c (emit_delay_sequence): Likewise.
14937         (fill_simple_delay_slots): Likewise.
14938         * sel-sched-ir.c (sel_move_insn): Likewise.
14939         (sel_remove_insn): Likewise.
14940         (get_bb_note_from_pool): Likewise.
14941         * sel-sched.c (move_nop_to_previous_block): Likewise.
14942
14943         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
14944         * config/c6x/c6x.c (gen_one_bundle): Likewise.
14945         (c6x_gen_bundles): Likewise.
14946         (hwloop_optimize): Likewise.
14947         * config/frv/frv.c (frv_function_prologue): Likewise.
14948         (frv_register_nop): Likewise.
14949         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
14950         (ia64_reorg): Likewise.
14951         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
14952         (mep_make_bundle): Likewise.
14953         (mep_bundle_insns): Likewise.
14954         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
14955         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
14956         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
14957
14958 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14959
14960         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
14961         return type from rtx to rtx_insn *.
14962         (BB_END): Likewise.
14963         (BB_HEADER): Likewise.
14964         (BB_FOOTER): Likewise.
14965         (SET_BB_HEAD): Convert to a function.
14966         (SET_BB_END): Likewise.
14967         (SET_BB_HEADER): Likewise.
14968         (SET_BB_FOOTER): Likewise.
14969
14970         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
14971         Strengthen the return type from rtx to rtx_insn *.  For now, this
14972         is done by adding a checked cast, but this will eventually
14973         become a field lookup.
14974         (BB_END): Likewise.
14975         (BB_HEADER): Likewise.
14976         (BB_FOOTER): Likewise.
14977         (SET_BB_HEAD): New function, from macro of same name.  This is
14978         intended for use as an lvalue, and so returns an rtx& to allow
14979         in-place modification.
14980         (SET_BB_END): Likewise.
14981         (SET_BB_HEADER): Likewise.
14982         (SET_BB_FOOTER): Likewise.
14983
14984 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
14985
14986         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
14987         for rvalues, and...
14988         (SET_BB_HEAD): New macro, for use as a lvalue.
14989         (BB_END, SET_BB_END): Likewise.
14990         (BB_HEADER, SET_BB_HEADER): Likewise.
14991         (BB_FOOTER, SET_BB_FOOTER): Likewise.
14992
14993         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
14994         of BB_* macros into SET_BB_* macros.
14995         (fix_crossing_unconditional_branches): Likewise.
14996         * caller-save.c (save_call_clobbered_regs): Likewise.
14997         (insert_one_insn): Likewise.
14998         * cfgbuild.c (find_bb_boundaries): Likewise.
14999         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15000         (outgoing_edges_match): Likewise.
15001         (try_optimize_cfg): Likewise.
15002         * cfgexpand.c (expand_gimple_cond): Likewise.
15003         (expand_gimple_tailcall): Likewise.
15004         (expand_gimple_basic_block): Likewise.
15005         (construct_exit_block): Likewise.
15006         * cfgrtl.c (delete_insn): Likewise.
15007         (create_basic_block_structure): Likewise.
15008         (rtl_delete_block): Likewise.
15009         (rtl_split_block): Likewise.
15010         (emit_nop_for_unique_locus_between): Likewise.
15011         (rtl_merge_blocks): Likewise.
15012         (block_label): Likewise.
15013         (try_redirect_by_replacing_jump): Likewise.
15014         (emit_barrier_after_bb): Likewise.
15015         (fixup_abnormal_edges): Likewise.
15016         (record_effective_endpoints): Likewise.
15017         (relink_block_chain): Likewise.
15018         (fixup_reorder_chain): Likewise.
15019         (fixup_fallthru_exit_predecessor): Likewise.
15020         (cfg_layout_duplicate_bb): Likewise.
15021         (cfg_layout_split_block): Likewise.
15022         (cfg_layout_delete_block): Likewise.
15023         (cfg_layout_merge_blocks): Likewise.
15024         * combine.c (update_cfg_for_uncondjump): Likewise.
15025         * emit-rtl.c (add_insn_after): Likewise.
15026         (remove_insn): Likewise.
15027         (reorder_insns): Likewise.
15028         (emit_insn_after_1): Likewise.
15029         * haifa-sched.c (get_ebb_head_tail): Likewise.
15030         (restore_other_notes): Likewise.
15031         (move_insn): Likewise.
15032         (sched_extend_bb): Likewise.
15033         (fix_jump_move): Likewise.
15034         * ifcvt.c (noce_process_if_block): Likewise.
15035         (dead_or_predicable): Likewise.
15036         * ira.c (update_equiv_regs): Likewise.
15037         * reg-stack.c (change_stack): Likewise.
15038         * sel-sched-ir.c (sel_move_insn): Likewise.
15039         * sel-sched.c (move_nop_to_previous_block): Likewise.
15040
15041         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15042         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15043
15044 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15045
15046         * rtl.h (for_each_rtx_in_insn): New function.
15047         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15048
15049 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15050
15051         * coretypes.h (class rtx_insn): Add forward declaration.
15052
15053         * rtl.h: Include is-a.h.
15054         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15055         workaround to ensure gengtype knows inheritance is occurring,
15056         whilst continuing to use the pre-existing special-casing for
15057         rtx_def.
15058         (class rtx_insn): New subclass of rtx_def, adding the
15059         invariant that we're dealing with something we can sanely use
15060         INSN_UID, NEXT_INSN, PREV_INSN on.
15061         (is_a_helper <rtx_insn *>::test): New.
15062         (is_a_helper <const rtx_insn *>::test): New.
15063
15064 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15065
15066         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15067
15068 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15069
15070         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15071         comdats as extern.
15072
15073 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15074
15075         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15076         to BUILT_IN_UNREACHABLE.
15077
15078 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15079
15080         PR target/62011
15081         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15082         New tune flag.
15083         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15084         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15085         (ffs<mode>2): Do not expand with tzcnt for
15086         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15087         (ffssi2_no_cmove): Ditto.
15088         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15089         (ctz<mode>2): New expander.
15090         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15091         (*ctz<mode>2_falsedep): New insn.
15092         (*ctz<mode>2): Rename from ctz<mode>2.
15093         (clz<mode>2_lzcnt): New expander.
15094         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15095         (*clz<mode>2_lzcnt_falsedep): New insn.
15096         (*clz<mode>2): Rename from ctz<mode>2.
15097         (popcount<mode>2): New expander.
15098         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15099         (*popcount<mode>2_falsedep): New insn.
15100         (*popcount<mode>2): Rename from ctz<mode>2.
15101         (*popcount<mode>2_cmp): Remove.
15102         (*popcountsi2_cmp_zext): Ditto.
15103
15104 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15105
15106         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15107         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15108         * config/microblaze/microblaze.h
15109         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15110
15111 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15112
15113         PR other/62168
15114         * configure.ac: Set install_gold_as_default to no for
15115         --enable-gold=no.
15116         * configure: Regenerated.
15117
15118 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15119
15120         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15121         * config.in: Add undef of HAVE_isl.
15122         * configure: Regenerate.
15123         * configure.ac: Add definition of HAVE_isl.
15124         * graphite-blocking.c: Add checking of HAVE_isl.
15125         * graphite-dependences.c: Likewise.
15126         * graphite-interchange.c: Likewise.
15127         * graphite-isl-ast-to-gimple.c: Likewise.
15128         * graphite-optimize-isl.c: Likewise.
15129         * graphite-poly.c: Likewise.
15130         * graphite-scop-detection.c: Likewise.
15131         * graphite-sese-to-poly.c: Likewise.
15132         * graphite.c: Likewise.
15133         * toplev.c: Replace the checking of HAVE_cloog with the checking
15134         of HAVE_isl.
15135
15136 2014-08-18  Richard Biener  <rguenther@suse.de>
15137
15138         PR tree-optimization/62090
15139         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15140         (fold_builtin_3): Do not fold snprintf.
15141         (fold_builtin_4): Likewise.
15142         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15143         moved from builtins.c.
15144         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15145         (gimple_fold_builtin): Do not fold sprintf here.
15146
15147 2014-08-18  Richard Biener  <rguenther@suse.de>
15148
15149         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15150         code to ...
15151         (maybe_canonicalize_mem_ref_addr): ... this function.
15152         (fold_stmt_1): Apply it here before all simplification.
15153
15154 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15155
15156         PR ipa/61800
15157         * cgraph.h (cgraph_node::create_indirect_edge): Add
15158         compute_indirect_info param.
15159         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15160         indirect_info only when it is required.
15161         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15162         indirect_info fore cloned indirect edge.
15163
15164 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15165             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15166             Anna Tikhonova  <anna.tikhonova@intel.com>
15167             Ilya Tocar  <ilya.tocar@intel.com>
15168             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15169             Ilya Verbin  <ilya.verbin@intel.com>
15170             Kirill Yukhin  <kirill.yukhin@intel.com>
15171             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15172
15173         * config/i386/sse.md
15174         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15175         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15176
15177 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15178             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15179             Anna Tikhonova  <anna.tikhonova@intel.com>
15180             Ilya Tocar  <ilya.tocar@intel.com>
15181             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15182             Ilya Verbin  <ilya.verbin@intel.com>
15183             Kirill Yukhin  <kirill.yukhin@intel.com>
15184             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15185
15186         * config/i386/sse.md
15187         (define_mode_iterator VF1_AVX512VL): New.
15188         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15189         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15190         New.
15191
15192 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15193             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15194             Anna Tikhonova  <anna.tikhonova@intel.com>
15195             Ilya Tocar  <ilya.tocar@intel.com>
15196             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15197             Ilya Verbin  <ilya.verbin@intel.com>
15198             Kirill Yukhin  <kirill.yukhin@intel.com>
15199             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15200
15201         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15202         * config/i386/i386.md
15203         (define_code_iterator any_float): New.
15204         (define_code_attr floatsuffix): New.
15205         * config/i386/sse.md
15206         (define_mode_iterator VF1_128_256VL): New.
15207         (define_mode_iterator VF2_512_256VL): New.
15208         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15209         TARGET check.
15210         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15211         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15212         New.
15213         (define_mode_attr qq2pssuff): New.
15214         (define_mode_attr sselongvecmode): New.
15215         (define_mode_attr sselongvecmodelower): New.
15216         (define_mode_attr sseintvecmode3): New.
15217         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15218         New.
15219         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15220         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15221         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15222         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15223
15224 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15225             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15226             Anna Tikhonova  <anna.tikhonova@intel.com>
15227             Ilya Tocar  <ilya.tocar@intel.com>
15228             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15229             Ilya Verbin  <ilya.verbin@intel.com>
15230             Kirill Yukhin  <kirill.yukhin@intel.com>
15231             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15232
15233         * config/i386/sse.md
15234         (define_mode_iterator VF2_AVX512VL): New.
15235         (define_mode_attr sseintvecmode2): New.
15236         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15237         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15238         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15239         (define_insn
15240         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15241         Ditto.
15242         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15243         Ditto.
15244         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15245         Ditto.
15246
15247 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15248             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15249             Anna Tikhonova  <anna.tikhonova@intel.com>
15250             Ilya Tocar  <ilya.tocar@intel.com>
15251             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15252             Ilya Verbin  <ilya.verbin@intel.com>
15253             Kirill Yukhin  <kirill.yukhin@intel.com>
15254             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15255
15256         * config/i386/i386.md
15257         (define_insn "*movoi_internal_avx"): Add evex version.
15258         (define_insn "*movti_internal"): Ditto.
15259
15260 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15261             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15262             Anna Tikhonova  <anna.tikhonova@intel.com>
15263             Ilya Tocar  <ilya.tocar@intel.com>
15264             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15265             Ilya Verbin  <ilya.verbin@intel.com>
15266             Kirill Yukhin  <kirill.yukhin@intel.com>
15267             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15268
15269         * config/i386/i386.md
15270         (define_attr "isa"): Add avx512dq, noavx512dq.
15271         (define_attr "enabled"): Ditto.
15272         * config/i386/sse.md
15273         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15274
15275 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15276             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15277             Anna Tikhonova  <anna.tikhonova@intel.com>
15278             Ilya Tocar  <ilya.tocar@intel.com>
15279             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15280             Ilya Verbin  <ilya.verbin@intel.com>
15281             Kirill Yukhin  <kirill.yukhin@intel.com>
15282             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15283
15284         * config/i386/i386.c
15285         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15286         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15287         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15288         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15289         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15290         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15291         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15292         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15293         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15294         * config/i386/sse.md
15295         (define_mode_iterator VMOVE): Allow V4TI mode.
15296         (define_mode_iterator V_AVX512VL): New.
15297         (define_mode_iterator V): New handling for AVX512VL.
15298         (define_insn "avx512f_load<mode>_mask"): Delete.
15299         (define_insn "<avx512>_load<mode>_mask"): New.
15300         (define_insn "avx512f_store<mode>_mask"): Delete.
15301         (define_insn "<avx512>_store<mode>_mask"): New.
15302
15303
15304 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15305
15306         PR sanitizer/62089
15307         * asan.c (instrument_derefs): Fix bitfield check.
15308
15309 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15310
15311         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15312         * config/rs6000/htm.md (ttest): Remove clobber.
15313         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15314         (and_operand): Reformat.
15315         (and_2rld_operand): New predicate.
15316         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15317         parameter.
15318         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15319         parameter.  Handle AND directly.
15320         (rs6000_split_logical_di): Remove last parameter.
15321         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15322         comment.
15323         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15324         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15325         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15326         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15327         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15328         and 5 anonymous splitters):  Delete.
15329         (and<mode>3): New expander.
15330         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15331         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15332         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15333         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15334         (floatdisf2_internal1): Remove clobbers.
15335         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15336         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15337         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15338         (and<mode>3 for BOOL_128): Remove clobber.
15339         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15340         rs6000_split_logical.
15341         (*bool<mode>3_internal for BOOL_128): Adjust call of
15342         rs6000_split_logical.
15343         (*boolc<mode>3_internal1 for BOOL_128,
15344         *boolc<mode>3_internal2 for BOOL_128,
15345         *boolcc<mode>3_internal1 for BOOL_128,
15346         *boolcc<mode>3_internal2 for BOOL_128,
15347         *eqv<mode>3_internal1 for BOOL_128,
15348         *eqv<mode>3_internal2 for BOOL_128,
15349         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15350         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15351         clobber.
15352         (*vec_reload_and_reg_<mptrsize>): Delete.
15353
15354 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15355
15356         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15357         and split, *boolccsi3_internal3 and split): Delete.
15358         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15359         *boolccdi3_internal3 and split): Delete.
15360         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15361         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
15362
15363 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15364
15365         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15366         and split, *boolcsi3_internal3 and split): Delete.
15367         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15368         *boolcdi3_internal3 and split): Delete.
15369         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15370
15371 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15372
15373         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15374         <'u'>: Also support printing the low-order 16 bits.
15375         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15376         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15377         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15378         *booldi3_internal3 and split): Delete.
15379         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15380         *bool<mode>3_dot2): New.
15381         (two anonymous define_splits for non_logical_cint_operand): Merge.
15382
15383 2014-08-17  Marek Polacek  <polacek@redhat.com>
15384             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15385
15386         PR c/62059
15387         * diagnostic.c (adjust_line): Add gcc_checking_assert.
15388         (diagnostic_show_locus): Don't print caret diagnostic
15389         if a column is larger than the line_width.
15390
15391 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
15392
15393         * common.opt: Make the ISL AST generator to be the main code generator
15394         of Graphite.
15395
15396 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
15397
15398         * wide-int.h (generic_wide_int): Declare as class instead of struct.
15399
15400 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
15401
15402         PR target/61641
15403         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
15404         Declare.
15405         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
15406         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
15407         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
15408         Define.
15409         * config/pa/pa.md (begin_brtab): Delete insn.
15410         (end_brtab): Likewise.
15411
15412 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15413
15414         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
15415
15416 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
15417
15418         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15419         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15420         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15421         (get_dynamic_type): Remove.
15422         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15423         (clear_speculation): Bring to ipa-deivrt.h
15424         (get_class_context): Rename to ...
15425         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15426         (contains_type_p): Update.
15427         (get_dynamic_type): Rename to ...
15428         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15429         (possible_polymorphic_call_targets): UPdate.
15430         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15431         * ipa-prop.c (ipa_analyze_call_uses): Update.
15432
15433 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
15434
15435         * doc/invoke.texi (SH options): Document missing processor variant
15436         options.  Remove references to Hitachi.  Undocument deprecated mspace
15437         option.
15438
15439 2014-08-15  Jason Merrill  <jason@redhat.com>
15440
15441         * tree.c (type_hash_canon): Uncomment assert.
15442
15443 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15444
15445         * input.h (in_system_header_at): Add comment.
15446
15447 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15448
15449         PR fortran/44054
15450         * diagnostic.c (build_message_string): Make it extern.
15451         * diagnostic.h (build_message_string): Make it extern.
15452
15453 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
15454
15455         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
15456         load/store from/to non-floating class pseudo.
15457
15458 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15459
15460         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
15461
15462 2014-08-15  Richard Biener  <rguenther@suse.de>
15463
15464         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
15465         (get_constraint_for_ssa_var): Remove dead code.
15466         (get_constraint_for_1): Adjust.
15467         (find_what_var_points_to): Likewise.
15468         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
15469
15470 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
15471
15472         PR target/61878
15473         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
15474         (_mm512_mask_cmpge_epu32_mask): Ditto.
15475         (_mm512_cmpge_epu32_mask): Ditto.
15476         (_mm512_mask_cmpge_epi64_mask): Ditto.
15477         (_mm512_cmpge_epi64_mask): Ditto.
15478         (_mm512_mask_cmpge_epu64_mask): Ditto.
15479         (_mm512_cmpge_epu64_mask): Ditto.
15480         (_mm512_mask_cmple_epi32_mask): Ditto.
15481         (_mm512_cmple_epi32_mask): Ditto.
15482         (_mm512_mask_cmple_epu32_mask): Ditto.
15483         (_mm512_cmple_epu32_mask): Ditto.
15484         (_mm512_mask_cmple_epi64_mask): Ditto.
15485         (_mm512_cmple_epi64_mask): Ditto.
15486         (_mm512_mask_cmple_epu64_mask): Ditto.
15487         (_mm512_cmple_epu64_mask): Ditto.
15488         (_mm512_mask_cmplt_epi32_mask): Ditto.
15489         (_mm512_cmplt_epi32_mask): Ditto.
15490         (_mm512_mask_cmplt_epu32_mask): Ditto.
15491         (_mm512_cmplt_epu32_mask): Ditto.
15492         (_mm512_mask_cmplt_epi64_mask): Ditto.
15493         (_mm512_cmplt_epi64_mask): Ditto.
15494         (_mm512_mask_cmplt_epu64_mask): Ditto.
15495         (_mm512_cmplt_epu64_mask): Ditto.
15496         (_mm512_mask_cmpneq_epi32_mask): Ditto.
15497         (_mm512_mask_cmpneq_epu32_mask): Ditto.
15498         (_mm512_cmpneq_epu32_mask): Ditto.
15499         (_mm512_mask_cmpneq_epi64_mask): Ditto.
15500         (_mm512_cmpneq_epi64_mask): Ditto.
15501         (_mm512_mask_cmpneq_epu64_mask): Ditto.
15502         (_mm512_cmpneq_epu64_mask): Ditto.
15503         (_mm512_castpd_ps): Ditto.
15504         (_mm512_castpd_si512): Ditto.
15505         (_mm512_castps_pd): Ditto.
15506         (_mm512_castps_si512): Ditto.
15507         (_mm512_castsi512_ps): Ditto.
15508         (_mm512_castsi512_pd): Ditto.
15509         (_mm512_castpd512_pd128): Ditto.
15510         (_mm512_castps512_ps128): Ditto.
15511         (_mm512_castsi512_si128): Ditto.
15512         (_mm512_castpd512_pd256): Ditto.
15513         (_mm512_castps512_ps256): Ditto.
15514         (_mm512_castsi512_si256): Ditto.
15515         (_mm512_castpd128_pd512): Ditto.
15516         (_mm512_castps128_ps512): Ditto.
15517         (_mm512_castsi128_si512): Ditto.
15518         (_mm512_castpd256_pd512): Ditto.
15519         (_mm512_castps256_ps512): Ditto.
15520         (_mm512_castsi256_si512): Ditto.
15521         (_mm512_cmpeq_epu32_mask): Ditto.
15522         (_mm512_mask_cmpeq_epu32_mask): Ditto.
15523         (_mm512_mask_cmpeq_epu64_mask): Ditto.
15524         (_mm512_cmpeq_epu64_mask): Ditto.
15525         (_mm512_cmpgt_epu32_mask): Ditto.
15526         (_mm512_mask_cmpgt_epu32_mask): Ditto.
15527         (_mm512_mask_cmpgt_epu64_mask): Ditto.
15528         (_mm512_cmpgt_epu64_mask): Ditto.
15529         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
15530         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
15531         * config/i386/i386.c (enum ix86_builtins): Add
15532         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
15533         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
15534         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
15535         (bdesc_args): Add __builtin_ia32_si512_256si,
15536         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
15537         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
15538         __builtin_ia32_pd512_pd.
15539         (ix86_expand_args_builtin): Handle new FTYPEs.
15540         * config/i386/sse.md (castmode): Add 512-bit modes.
15541         (AVX512MODE2P): New.
15542         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
15543         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
15544
15545 2014-08-15  Richard Biener  <rguenther@suse.de>
15546
15547         * fold-const.c (tree_swap_operands_p): Put all constants
15548         last, also strip sign-changing NOPs when considering further
15549         canonicalization.  Canonicalize also when optimizing for size.
15550
15551 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15552
15553         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
15554         one_match > zero_match case to just before simple_sequence.
15555
15556 2014-08-15  Richard Biener  <rguenther@suse.de>
15557
15558         * data-streamer.h (streamer_string_index, string_for_index):
15559         Remove.
15560         * data-streamer-out.c (streamer_string_index): Make static.
15561         * data-streamer-in.c (string_for_index): Likewise.
15562         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
15563         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
15564
15565 2014-08-15  Richard Biener  <rguenther@suse.de>
15566
15567         PR tree-optimization/62031
15568         * tree-data-ref.c (dr_analyze_indices): Do not set
15569         DR_UNCONSTRAINED_BASE.
15570         (dr_may_alias_p): All indirect accesses have to go the
15571         formerly DR_UNCONSTRAINED_BASE path.
15572         * tree-data-ref.h (struct indices): Remove
15573         unconstrained_base member.
15574         (DR_UNCONSTRAINED_BASE): Remove.
15575
15576 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
15577
15578         PR middle-end/62092
15579         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
15580         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
15581         in OMP_CLAUSE_MAP in some outer target region.
15582
15583 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
15584
15585         * tree-ssa-loop-ivopts.c (ivopts_data): New field
15586         name_expansion_cache.
15587         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
15588         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
15589         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
15590         (difference_cannot_overflow_p): New parameter.  Use affine
15591         expansion for equality check.
15592         (iv_elimination_compare_lt): Pass new argument.
15593
15594 2014-08-14  DJ Delorie  <dj@redhat.com>
15595
15596         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
15597         variables to the accumulator.
15598
15599         * config/rl78/predicates.md (rl78_near_mem_operand): New.
15600         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
15601         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
15602         with far-far moves.
15603
15604         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
15605         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
15606         (umulqihi3_virt): Likewise.
15607         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
15608         (umulqihi3_real): Likewise.
15609
15610         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
15611
15612 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15613
15614         PR tree-optimization/62091
15615         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
15616         function_entry_reached.
15617         (walk_aliased_vdefs): Clear it here.
15618         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
15619
15620 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15621
15622         * ipa-utils.h (compare_virtual_tables): Declare.
15623         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
15624
15625 2014-08-14  Marek Polacek  <polacek@redhat.com>
15626
15627         DR 458
15628         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
15629         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
15630
15631 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15632
15633         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
15634
15635 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15636
15637         PR rtl-optimization/62004
15638         PR rtl-optimization/62030
15639         * ifcvt.c (rtx_interchangeable_p): New function.
15640         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
15641         * emit-rtl.h (mem_attrs_eq_p): Declare.
15642
15643 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
15644
15645         * graphite-scop-detection.c:
15646         Add inclusion of cp-tree.h.
15647         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
15648         in case they are pointers to object types
15649
15650 2014-08-14  Richard Biener  <rguenther@suse.de>
15651
15652         * BASE-VER: Change to 5.0.0
15653
15654 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15655             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15656             Anna Tikhonova  <anna.tikhonova@intel.com>
15657             Ilya Tocar  <ilya.tocar@intel.com>
15658             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15659             Ilya Verbin  <ilya.verbin@intel.com>
15660             Kirill Yukhin  <kirill.yukhin@intel.com>
15661             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15662
15663         * config/i386/sse.md (define_mode_attr avx512): New.
15664         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
15665         V4DI modes.
15666         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
15667         (define_mode_attr ssse3_avx2): Ditto.
15668         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
15669         (define_mode_attr avx2_avx512bw): New.
15670         (define_mode_attr ssedoublemodelower): New.
15671         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
15672         V32HI, V64QI modes.
15673         (define_mode_attr ssebytemode): Allow V8DI modes.
15674         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
15675         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
15676         (define_mode_attr ssePSmode2): New.
15677         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
15678         V16HI, V32HI modes.
15679         (define_mode_attr dbpsadbwmode): New.
15680         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
15681         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
15682         (vi8_sse4_1_avx2_avx512): New.
15683         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
15684         mode attribute.
15685         (define_mode_attr blendbits): Move before its immediate use.
15686
15687 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15688             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15689             Anna Tikhonova  <anna.tikhonova@intel.com>
15690             Ilya Tocar  <ilya.tocar@intel.com>
15691             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15692             Ilya Verbin  <ilya.verbin@intel.com>
15693             Kirill Yukhin  <kirill.yukhin@intel.com>
15694             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15695
15696         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
15697         * config/i386/subst.md
15698         (define_mode_iterator SUBST_V): Update.
15699         (define_mode_iterator SUBST_A): Ditto.
15700         (define_subst_attr "mask_operand7"): New.
15701         (define_subst_attr "mask_operand10"): New.
15702         (define_subst_attr "mask_operand_arg34") : New.
15703         (define_subst_attr "mask_expand_op3"): New.
15704         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
15705         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
15706         (define_subst_attr "mask_avx512vl_condition"): New.
15707         (define_subst_attr "round_mask_operand4"): Ditto.
15708         (define_subst_attr "round_mask_scalar_op3"): Delete.
15709         (define_subst_attr "round_mask_op4"): New.
15710         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
15711         V16SImode.
15712         (define_subst_attr "round_modev8sf_condition"): New.
15713         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
15714         <MODE>mode.
15715         (define_subst_attr "round_saeonly_mask_operand4"): New.
15716         (define_subst_attr "round_saeonly_mask_op4"): New.
15717         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
15718         V8DImode, V16SImode.
15719         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
15720         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
15721         (define_subst_attr "mask_expand4_args"): New.
15722         (define_subst "mask_expand4"): New.
15723
15724 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15725             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15726             Anna Tikhonova  <anna.tikhonova@intel.com>
15727             Ilya Tocar  <ilya.tocar@intel.com>
15728             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15729             Ilya Verbin  <ilya.verbin@intel.com>
15730             Kirill Yukhin  <kirill.yukhin@intel.com>
15731             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15732
15733         * config/i386/i386.md
15734         (define_attr "isa"): Add avx512bw,noavx512bw.
15735         (define_attr "enabled"): Ditto.
15736         (define_split): Add 32/64-bit mask logic.
15737         (define_insn "*k<logic>qi"): New.
15738         (define_insn "*k<logic>hi"): New.
15739         (define_insn "*anddi_1"): Add mask version.
15740         (define_insn "*andsi_1"): Ditto.
15741         (define_insn "*<code><mode>_1"): Ditto.
15742         (define_insn "*<code>hi_1"): Ditto.
15743         (define_insn "kxnor<mode>"): New.
15744         (define_insn "kunpcksi"): New.
15745         (define_insn "kunpckdi"): New.
15746         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
15747         (define_insn "*one_cmplhi2_1"): Ditto.
15748
15749 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15750             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15751             Anna Tikhonova  <anna.tikhonova@intel.com>
15752             Ilya Tocar  <ilya.tocar@intel.com>
15753             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15754             Ilya Verbin  <ilya.verbin@intel.com>
15755             Kirill Yukhin  <kirill.yukhin@intel.com>
15756             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15757
15758         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
15759         V32HImode.
15760
15761 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15762             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15763             Anna Tikhonova  <anna.tikhonova@intel.com>
15764             Ilya Tocar  <ilya.tocar@intel.com>
15765             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15766             Ilya Verbin  <ilya.verbin@intel.com>
15767             Kirill Yukhin  <kirill.yukhin@intel.com>
15768             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15769
15770         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
15771         registers.
15772         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
15773         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
15774         xmm/ymm16+ when availble.
15775         * config/i386/i386.h
15776         (HARD_REGNO_NREGS): Add mask regs.
15777         (VALID_AVX512F_REG_MODE): Ditto.
15778         (VALID_AVX512F_REG_MODE) : Define.
15779         (VALID_MASK_AVX512BW_MODE): Ditto.
15780         (reg_class) (MASK_REG_P(X)): Define.
15781         * config/i386/i386.md: Do not split long moves with mask register,
15782         use kmovb if avx512bw is availible.
15783         (movdi_internal): Handle mask registers.
15784
15785 2014-08-14  Richard Biener  <rguenther@suse.de>
15786
15787         PR tree-optimization/62081
15788         * tree-ssa-loop.c (pass_fix_loops): New pass.
15789         (pass_tree_loop::gate):  Do not fixup loops here.
15790         * tree-pass.h (make_pass_fix_loops): Declare.
15791         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
15792
15793 2014-08-14  Richard Biener  <rguenther@suse.de>
15794
15795         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
15796         (type_hash_canon): ... this and avoid 2nd lookup for the add.
15797
15798 2014-08-14  Richard Biener  <rguenther@suse.de>
15799
15800         PR tree-optimization/62090
15801         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
15802         (fold_builtin_2): Do not fold sprintf.
15803         (fold_builtin_3): Likewise.
15804         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
15805         moved from builtins.c.
15806         (gimple_fold_builtin): Fold sprintf.
15807
15808 2014-08-14  Richard Biener  <rguenther@suse.de>
15809
15810         PR rtl-optimization/62079
15811         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
15812         run cleanup_cfg.
15813
15814 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15815
15816         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
15817         current_function_decl.
15818
15819 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15820
15821         * cgraph.c (cgraph_node::function_symbol): Fix wrong
15822         cgraph_function_node to cgraph_node::function_symbol
15823         refactoring.
15824
15825 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
15826
15827         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
15828         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
15829
15830 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
15831
15832         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
15833         warning.
15834
15835 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
15836
15837         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
15838         generator.
15839
15840 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
15841
15842         PR target/62025
15843         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
15844         any registers that are used in mem_insn.
15845
15846 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15847
15848         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
15849
15850 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15851
15852         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
15853         (MULTILIB_DIRNAMES): Ditto.
15854         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
15855         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
15856         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
15857         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
15858         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
15859         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
15860
15861 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15862
15863         PR target/61413
15864         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
15865         of __ARM_SIZEOF_WCHAR_T.
15866
15867 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15868
15869         PR target/62098
15870         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
15871         Remove unnecessary attributes.
15872
15873 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
15874
15875         * internal-fn.c (init_internal_fns): Fix off-by-one.
15876
15877 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15878             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15879             Anna Tikhonova  <anna.tikhonova@intel.com>
15880             Ilya Tocar  <ilya.tocar@intel.com>
15881             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15882             Ilya Verbin  <ilya.verbin@intel.com>
15883             Kirill Yukhin  <kirill.yukhin@intel.com>
15884             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15885
15886         * config/i386/i386.c (standard_sse_constant_opcode): Use
15887         vpxord/vpternlog if avx512 is availible.
15888
15889 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15890
15891         PR middle-end/62103
15892         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
15893         bitfields, that is when size doesn't match the size of type or the
15894         size of the constructor.
15895
15896 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15897
15898         * config/rs6000/constraints.md (wh constraint): New constraint,
15899         for FP registers if direct move is available.
15900         (wi constraint): New constraint, for VSX/FP registers that can
15901         handle 64-bit integers.
15902         (wj constraint): New constraint for VSX/FP registers that can
15903         handle 64-bit integers for direct moves.
15904         (wk constraint): New constraint for VSX/FP registers that can
15905         handle 64-bit doubles for direct moves.
15906         (wy constraint): Make documentation match implementation.
15907
15908         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
15909         scalar_in_vmx_p field to simplify tests of whether SFmode or
15910         DFmode can go in the Altivec registers.
15911         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
15912         (rs6000_setup_reg_addr_masks): Likewise.
15913         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
15914         field, and wh/wi/wj/wk constraints.
15915         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
15916         the wh/wi/wj/wk constraints.
15917         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
15918         upper registers, prefer VSX registers unless the operation is a
15919         memory operation with REG+OFFSET addressing.
15920
15921         * config/rs6000/vsx.md (VSr mode attribute): Add support for
15922         DImode.  Change SFmode to use ww constraint instead of d to allow
15923         SF registers in the upper registers.
15924         (VSr2): Likewise.
15925         (VSr3): Likewise.
15926         (VSr5): Fix thinko in comment.
15927         (VSa): New mode attribute that is an alternative to wa, that
15928         returns the VSX register class that a mode can go in, but may not
15929         be the preferred register class.
15930         (VS_64dm): New mode attribute for appropriate register classes for
15931         referencing 64-bit elements of vectors for direct moves and normal
15932         moves.
15933         (VS_64reg): Likewise.
15934         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
15935         register allocator to only registers the data type can handle.
15936         (vsx_le_perm_load_<mode>): Likewise.
15937         (vsx_le_perm_store_<mode>): Likewise.
15938         (vsx_xxpermdi2_le_<mode>): Likewise.
15939         (vsx_xxpermdi4_le_<mode>): Likewise.
15940         (vsx_lxvd2x2_le_<mode>): Likewise.
15941         (vsx_lxvd2x4_le_<mode>): Likewise.
15942         (vsx_stxvd2x2_le_<mode>): Likewise.
15943         (vsx_add<mode>3): Likewise.
15944         (vsx_sub<mode>3): Likewise.
15945         (vsx_mul<mode>3): Likewise.
15946         (vsx_div<mode>3): Likewise.
15947         (vsx_tdiv<mode>3_internal): Likewise.
15948         (vsx_fre<mode>2): Likewise.
15949         (vsx_neg<mode>2): Likewise.
15950         (vsx_abs<mode>2): Likewise.
15951         (vsx_nabs<mode>2): Likewise.
15952         (vsx_smax<mode>3): Likewise.
15953         (vsx_smin<mode>3): Likewise.
15954         (vsx_sqrt<mode>2): Likewise.
15955         (vsx_rsqrte<mode>2): Likewise.
15956         (vsx_tsqrt<mode>2_internal): Likewise.
15957         (vsx_fms<mode>4): Likewise.
15958         (vsx_nfma<mode>4): Likewise.
15959         (vsx_eq<mode>): Likewise.
15960         (vsx_gt<mode>): Likewise.
15961         (vsx_ge<mode>): Likewise.
15962         (vsx_eq<mode>_p): Likewise.
15963         (vsx_gt<mode>_p): Likewise.
15964         (vsx_ge<mode>_p): Likewise.
15965         (vsx_xxsel<mode>): Likewise.
15966         (vsx_xxsel<mode>_uns): Likewise.
15967         (vsx_copysign<mode>3): Likewise.
15968         (vsx_float<VSi><mode>2): Likewise.
15969         (vsx_floatuns<VSi><mode>2): Likewise.
15970         (vsx_fix_trunc<mode><VSi>2): Likewise.
15971         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
15972         (vsx_x<VSv>r<VSs>i): Likewise.
15973         (vsx_x<VSv>r<VSs>ic): Likewise.
15974         (vsx_btrunc<mode>2): Likewise.
15975         (vsx_b2trunc<mode>2): Likewise.
15976         (vsx_floor<mode>2): Likewise.
15977         (vsx_ceil<mode>2): Likewise.
15978         (vsx_<VS_spdp_insn>): Likewise.
15979         (vsx_xscvspdp): Likewise.
15980         (vsx_xvcvspuxds): Likewise.
15981         (vsx_float_fix_<mode>2): Likewise.
15982         (vsx_set_<mode>): Likewise.
15983         (vsx_extract_<mode>_internal1): Likewise.
15984         (vsx_extract_<mode>_internal2): Likewise.
15985         (vsx_extract_<mode>_load): Likewise.
15986         (vsx_extract_<mode>_store): Likewise.
15987         (vsx_splat_<mode>): Likewise.
15988         (vsx_xxspltw_<mode>): Likewise.
15989         (vsx_xxspltw_<mode>_direct): Likewise.
15990         (vsx_xxmrghw_<mode>): Likewise.
15991         (vsx_xxmrglw_<mode>): Likewise.
15992         (vsx_xxsldwi_<mode>): Likewise.
15993         (vsx_xscvdpspn): Tighten constraints to only use register classes
15994         the types use.
15995         (vsx_xscvspdpn): Likewise.
15996         (vsx_xscvdpspn_scalar): Likewise.
15997
15998         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
15999         wj, and wk constraints.
16000         (GPR_REG_CLASS_P): New helper macro for register classes targeting
16001         general purpose registers.
16002
16003         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16004         direct moves.
16005         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16006         DImode instead of wm.  Use wk constraint for direct move of DFmode
16007         instead of wm.
16008         (extendsidi2_lfiwax): Likewise.
16009         (lfiwax): Likewise.
16010         (lfiwzx): Likewise.
16011         (movdi_internal64): Likewise.
16012
16013         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16014         wk constraints. Make the wy constraint documentation match them
16015         implementation.
16016
16017 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16018
16019         Replacement of isl_int by isl_val
16020         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16021         (compute_bounds_for_param): use isl_val instead of isl_int
16022         (compute_bounds_for_loop): likewise
16023         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16024         (build_linearized_memory_access): use isl_val instead of isl_int
16025         (pdr_stride_in_loop): likewise
16026         * graphite-optimize-isl.c:
16027         (getPrevectorMap): use isl_val instead of isl_int
16028         * graphite-poly.c:
16029         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16030         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16031         (extern the_isl_ctx): declare
16032         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16033         (extract_affine_gmp): likewise
16034         (wrap): likewise
16035         (build_loop_iteration_domains): likewise
16036         (add_param_constraints): likewise
16037
16038 2014-08-11  Richard Biener  <rguenther@suse.de>
16039
16040         PR tree-optimization/62075
16041         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16042         handle uses in patterns.
16043
16044 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16045             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16046             Anna Tikhonova  <anna.tikhonova@intel.com>
16047             Ilya Tocar  <ilya.tocar@intel.com>
16048             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16049             Ilya Verbin  <ilya.verbin@intel.com>
16050             Kirill Yukhin  <kirill.yukhin@intel.com>
16051             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16052
16053         * common/config/i386/i386-common.c
16054         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16055         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16056         (ix86_handle_option): Handle OPT_mavx512vl.
16057         * config/i386/cpuid.h (bit_AVX512VL): Define.
16058         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16059         set -mavx512vl accordingly.
16060         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16061         OPTION_MASK_ISA_AVX512VL.
16062         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16063         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16064         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16065         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16066         * config/i386/i386.h (TARGET_AVX512VL): Define.
16067         (TARGET_AVX512VL_P(x)): Ditto.
16068         * config/i386/i386.opt: Add mavx512vl.
16069
16070 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16071
16072         PR tree-optimization/62073
16073         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16074         a basic block.
16075
16076 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16077             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16078             Anna Tikhonova  <anna.tikhonova@intel.com>
16079             Ilya Tocar  <ilya.tocar@intel.com>
16080             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16081             Ilya Verbin  <ilya.verbin@intel.com>
16082             Kirill Yukhin  <kirill.yukhin@intel.com>
16083             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16084
16085         * common/config/i386/i386-common.c
16086         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16087         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16088         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16089         (ix86_handle_option): Handle OPT_mavx512bw.
16090         * config/i386/cpuid.h (bit_AVX512BW): Define.
16091         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16092         set -mavx512bw accordingly.
16093         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16094         OPTION_MASK_ISA_AVX512BW.
16095         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16096         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16097         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16098         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16099         * config/i386/i386.h (TARGET_AVX512BW): Define.
16100         (TARGET_AVX512BW_P(x)): Ditto.
16101         * config/i386/i386.opt: Add mavx512bw.
16102
16103 2014-08-11  Richard Biener  <rguenther@suse.de>
16104
16105         PR tree-optimization/62070
16106         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16107         Remove SSA checking.
16108
16109 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16110
16111         * asan.c (asan_check_flags): New enum.
16112         (build_check_stmt_with_calls): Removed function.
16113         (build_check_stmt): Split inlining logic to
16114         asan_expand_check_ifn.
16115         (instrument_derefs): Rename parameter.
16116         (instrument_mem_region_access): Rename parameter.
16117         (instrument_strlen_call): Likewise.
16118         (asan_expand_check_ifn): New function.
16119         (asan_instrument): Remove old code.
16120         (pass_sanopt::execute): Change handling of
16121         asan-instrumentation-with-call-threshold.
16122         (asan_clear_shadow): Fix formatting.
16123         (asan_function_start): Likewise.
16124         (asan_emit_stack_protection): Likewise.
16125         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16126         Update description.
16127         * internal-fn.c (expand_ASAN_CHECK): New function.
16128         * internal-fn.def (ASAN_CHECK): New internal function.
16129         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16130         Update description.
16131         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16132         * tree.c: Small comment fix.
16133
16134 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16135
16136         * gimple.c (gimple_call_fnspec): Support internal functions.
16137         (gimple_call_return_flags): Use const.
16138         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16139         * internal-fn.def: Add fnspec information.
16140         * internal-fn.h (internal_fn_fnspec): New function.
16141         (init_internal_fns): Declare new function.
16142         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16143         (init_internal_fns): New function.
16144         * tree-core.h: Update macro call.
16145         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16146
16147 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16148
16149         * lto-streamer.h (struct output_block::symbol): Change from
16150         struct symtab_node to plain symtab_node.
16151         (referenced_from_this_partition_p): Change first parameter
16152         from struct symtab_node to plain symtab_node.
16153
16154 2014-08-10  Marek Polacek  <polacek@redhat.com>
16155
16156         PR c/51849
16157         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16158
16159 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16160
16161         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16162         DECL correctly; do not give up on types in static storage.
16163
16164 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16165
16166         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16167
16168 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16169
16170         * graphite-isl-ast-to-gimple.c:
16171         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16172
16173         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16174
16175 2014-08-08  Guozhi Wei  <carrot@google.com>
16176
16177         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16178
16179 2014-08-08  Cary Coutant  <ccoutant@google.com>
16180
16181         * dwarf2out.c (get_skeleton_type_unit): Remove.
16182         (output_skeleton_debug_sections): Remove skeleton type units.
16183         (output_comdat_type_unit): Likewise.
16184         (dwarf2out_finish): Likewise.
16185
16186 2014-08-07  Yi Yang  <ahyangyi@google.com>
16187
16188         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16189
16190 2014-08-08  Richard Biener  <rguenther@suse.de>
16191
16192         * lto-streamer.h (struct lto_input_block): Make it a class
16193         with a constructor.
16194         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16195         (struct lto_function_header, struct lto_simple_header,
16196         struct lto_simple_header_with_strings,
16197         struct lto_decl_header, struct lto_function_header): Make
16198         a simple inheritance hieararchy.  Remove unused fields.
16199         (struct lto_asm_header): Remove.
16200         * lto-streamer-out.c (produce_asm): Adjust.
16201         (lto_output_toplevel_asms): Likewise.
16202         (produce_asm_for_decls): Likewise.
16203         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16204         * data-streamer-in.c (string_for_index): Likewise.
16205         * ipa-inline-analysis.c (inline_read_section): Likewise.
16206         * ipa-prop.c (ipa_prop_read_section): Likewise.
16207         (read_replacements_section): Likewise.
16208         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16209         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16210         (lto_destroy_simple_input_block): Likewise.
16211         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16212         (lto_input_toplevel_asms): Likewise.
16213
16214 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16215             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16216             Anna Tikhonova  <anna.tikhonova@intel.com>
16217             Ilya Tocar  <ilya.tocar@intel.com>
16218             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16219             Ilya Verbin  <ilya.verbin@intel.com>
16220             Kirill Yukhin  <kirill.yukhin@intel.com>
16221             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16222
16223         * common/config/i386/i386-common.c
16224         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16225         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16226         (ix86_handle_option): Handle OPT_mavx512dq.
16227         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16228         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16229         set -mavx512dq accordingly.
16230         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16231         OPTION_MASK_ISA_AVX512DQ.
16232         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16233         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16234         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16235         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16236         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16237         (TARGET_AVX512DQ_P(x)): Ditto.
16238         * config/i386/i386.opt: Add mavx512dq.
16239
16240 2014-08-08  Richard Biener  <rguenther@suse.de>
16241
16242         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16243         target_percent, target_percent_s): Export.
16244         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16245         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16246         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16247         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16248         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16249         Move to gimple-fold.c.
16250         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16251         strcat and strcpy.
16252         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16253         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16254         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16255         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16256         (rewrite_call_expr_array): Remove.
16257         (fold_builtin_sprintf_chk): Likewise.
16258         (fold_builtin_snprintf_chk): Likewise.
16259         (fold_builtin_varargs): Remove handling of sprintf_chk,
16260         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16261         (gimple_fold_builtin_sprintf_chk): Remove.
16262         (gimple_fold_builtin_snprintf_chk): Likewise.
16263         (gimple_fold_builtin_varargs): Likewise.
16264         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16265         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16266         * gimple.c (gimple_seq_add_seq_without_update): New function.
16267         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16268         * gimple-fold.c: Include output.h.
16269         (gsi_replace_with_seq_vops): New function, split out from ...
16270         (gimplify_and_update_call_from_tree): ... here.
16271         (replace_call_with_value): New function.
16272         (replace_call_with_call_and_fold): Likewise.
16273         (var_decl_component_p): Moved from builtins.c.
16274         (gimple_fold_builtin_memory_op): Moved from builtins.c
16275         fold_builtin_memory_op and rewritten to GIMPLE.
16276         (gimple_fold_builtin_memset): Likewise.
16277         (gimple_fold_builtin_strcpy): Likewise.
16278         (gimple_fold_builtin_strncpy): Likewise.
16279         (gimple_fold_builtin_strcat): Likewise.
16280         (gimple_fold_builtin_fputs): Likewise.
16281         (gimple_fold_builtin_memory_chk): Likewise.
16282         (gimple_fold_builtin_stxcpy_chk): Likewise.
16283         (gimple_fold_builtin_stxncpy_chk): Likewise.
16284         (gimple_fold_builtin_snprintf_chk): Likewise.
16285         (gimple_fold_builtin_sprintf_chk): Likewise.
16286         (gimple_fold_builtin_strlen): New function.
16287         (gimple_fold_builtin_with_strlen): New function split out from
16288         gimple_fold_builtin.
16289         (gimple_fold_builtin): Change signature and handle
16290         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16291         here.  Call gimple_fold_builtin_with_strlen.
16292         (gimple_fold_call): Adjust.
16293
16294 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16295
16296         * calls.c (precompute_arguments): Check
16297         promoted_for_signed_and_unsigned_p and set the promoted mode.
16298         (promoted_for_signed_and_unsigned_p): New function.
16299         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16300         and set the promoted mode.
16301         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16302         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16303         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16304
16305
16306 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16307
16308         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16309         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16310         (expand_call): Likewise.
16311         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16312         to get promoted mode.
16313         * combine.c (record_promoted_value): Skip > 0 comparison with
16314         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16315         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16316         of SUBREG_PROMOTED_UNSIGNED_P.
16317         (convert_modes): Likewise.
16318         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16319         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16320         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16321         SUBREG_PROMOTED_UNSIGNED_SET.
16322         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16323         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16324         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16325         SUBREG_PROMOTED_SET.
16326         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16327         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16328         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16329         of SUBREG_PROMOTED_UNSIGNED_P.
16330         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16331         (SUBREG_PROMOTED_SET): New define.
16332         (SUBREG_PROMOTED_GET): Likewise.
16333         (SUBREG_PROMOTED_SIGN): Likewise.
16334         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16335         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16336         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16337         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16338         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16339         (nonzero_bits1): Skip > 0 comparison with the results as
16340         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16341         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16342         of !SUBREG_PROMOTED_UNSIGNED_P.
16343         * simplify-rtx.c (simplify_unary_operation_1): Use new
16344         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16345         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16346         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16347         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16348
16349 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
16350
16351         * ipa-devirt.c: Include gimple-pretty-print.h
16352         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16353         further tests.
16354         (decl_maybe_in_construction_p): Fix conditional on cdtor check
16355         (get_polymorphic_call_info): Fix return value
16356         (type_change_info): New sturcture based on ipa-prop
16357         variant.
16358         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16359         based on ipa-prop variant.
16360         (extr_type_from_vtbl_ptr_store): New function
16361         based on ipa-prop variant.
16362         (record_known_type): New function.
16363         (check_stmt_for_type_change): New function.
16364         (get_dynamic_type): New function.
16365         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16366         * tree-ssa-pre.c: ipa-utils.h
16367         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16368         machinery; sanity check with ipa-prop devirtualization.
16369         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16370         polymorphic flag.
16371
16372 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16373
16374         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16375         * alias.c, cfgexpand.c, cgraphbuild.c,
16376         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16377         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16378         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16379         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16380         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16381         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16382         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16383         dse.c, except.c, gengtype.c, gimple-expr.c,
16384         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16385         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16386         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16387         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16388         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16389         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16390         pointer-set.h.
16391         * pointer-set.c: Remove file.
16392         * pointer-set.h: Remove file.
16393
16394 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16395
16396         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16397         * config/arm/types.md (f_sels, f_seld): Delete.
16398
16399 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16400
16401         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
16402         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
16403         (aarch64_movdi_<mode>high): Likewise.
16404         (aarch64_mov<mode>high_di): Likewise.
16405         (aarch64_movdi_<mode>low): Likewise.
16406         (aarch64_mov<mode>low_di): Likewise.
16407         (aarch64_movtilow_tilow): Likewise.
16408         Add comment explaining usage of fp,simd attributes and of
16409         TARGET_FLOAT and TARGET_SIMD.
16410
16411 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
16412             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16413
16414         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
16415         Use MOVN when one of the half-words is 0xffff.
16416
16417 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16418
16419         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
16420
16421 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16422
16423         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
16424         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
16425         (rfs_str): String corresponding to RFS_* constants.
16426         (rank_for_schedule_stats_t): New typedef.
16427         (rank_for_schedule_stats): New static variable.
16428         (rfs_result): New static function.
16429         (rank_for_schedule): Track statistics for deciding heuristics.
16430         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
16431         static functions.
16432         (ready_sort): Use them for debug printouts.
16433         (schedule_block): Init statistics state.  Print statistics on
16434         rank_for_schedule decisions.
16435
16436 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16437
16438         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
16439
16440 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
16441
16442         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
16443         constraint.
16444
16445 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16446
16447         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
16448         function to not conflict.
16449         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
16450         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
16451         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
16452         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
16453         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
16454         of pointer_map.
16455
16456 2014-08-07  Marek Polacek  <polacek@redhat.com>
16457
16458         * fold-const.c (fold_binary_loc): Add folding of
16459         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
16460
16461 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
16462
16463         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
16464         instead of type size.
16465         (ASM_FINISH_DECLARE_OBJECT): Likewise.
16466
16467 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16468
16469         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
16470         (*thumb1_movqi_insn): Likewise.
16471         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
16472
16473 2014-08-07  Tom de Vries  <tom@codesourcery.com>
16474
16475         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16476         (glibc_2_11_or_earlier): Remove effective-target keywords.
16477
16478 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
16479
16480         * config/arm/arm.c (bdesc_2arg): Fix typo.
16481         (arm_atomic_assign_expand_fenv): Remove The default implementation.
16482
16483 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16484
16485         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
16486
16487 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
16488
16489         PR debug/61923
16490         * haifa-sched.c (advance_one_cycle): Fix dump.
16491         (schedule_block): Don't advance cycle if we are already at the
16492         beginning of the cycle.
16493
16494 2014-08-06  Martin Jambor  <mjambor@suse.cz>
16495
16496         PR ipa/61393
16497         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
16498
16499 2014-08-06  Richard Biener  <rguenther@suse.de>
16500
16501         PR lto/62034
16502         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
16503         SCCs here.
16504         (lto_input_tree): Pop SCCs here.
16505
16506 2014-08-06  Richard Biener  <rguenther@suse.de>
16507
16508         PR tree-optimization/61320
16509         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
16510         handle misaligned loads.
16511
16512 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
16513
16514         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
16515         (aarch64_expand_vec_perm_const): Check for dup before zip.
16516
16517 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16518
16519         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
16520         CONST_INT_P instead of GET_CODE and compare.
16521         (aarch64_select_cc_mode): Likewise.
16522         (aarch64_print_operand): Likewise.
16523         (aarch64_rtx_costs): Likewise.
16524         (aarch64_simd_valid_immediate): Likewise.
16525         (aarch64_simd_check_vect_par_cnst_half): Likewise.
16526         (aarch64_simd_emit_pair_result_insn): Likewise.
16527
16528 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
16529
16530         * gdbhooks.py (find_gcc_source_dir): New helper function.
16531         (class PassNames): New class, locating and parsing passes.def.
16532         (class BreakOnPass): New command "break-on-pass".
16533
16534 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
16535
16536         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
16537         getting olde.
16538
16539 2014-08-05  Richard Biener  <rguenther@suse.de>
16540
16541         PR rtl-optimization/61672
16542         * emit-rtl.h (mem_attrs_eq_p): Declare.
16543         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
16544         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
16545         * cfgcleanup.c (merge_memattrs): Likewise.
16546         Include emit-rtl.h.
16547
16548 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16549
16550         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
16551         rather than singleton vectors.
16552         (vqdmlsls_lane_s32): Likewise.
16553
16554 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16555
16556         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
16557         Use VSDQ_HSI mode iterator.
16558         (aarch64_sqrdmulh_laneq<mode>): Likewise.
16559         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
16560         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
16561         Use BUILTIN_VDQHS macro.
16562         (sqrdmulh_laneq): Likewise.
16563         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
16564         (vqdmlals_laneq_s32): Likewise.
16565         (vqdmlslh_laneq_s16): Likewise.
16566         (vqdmlsls_laneq_s32): Likewise.
16567         (vqdmulhh_laneq_s16): Likewise.
16568         (vqdmulhs_laneq_s32): Likewise.
16569         (vqrdmulhh_laneq_s16): Likewise.
16570         (vqrdmulhs_laneq_s32): Likewise.
16571
16572 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16573
16574         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
16575         (vmuld_laneq_f64): Likewise.
16576         (vmuls_laneq_f32): Likewise.
16577         (vmul_n_f64): Likewise.
16578         (vmuld_lane_f64): Reimplement in C.
16579         (vmuls_lane_f32): Likewise.
16580
16581 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16582
16583         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
16584         to reservation.
16585         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
16586
16587 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16588
16589         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
16590         (rbitsi2): Likewise.
16591         (*arm_rev): Set predicable and predicable_short_it attributes.
16592
16593 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16594
16595         * convert.c (convert_to_integer): Guard transformation to lrint by
16596         -fno-math-errno.
16597
16598 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
16599
16600         * config/aarch64/aarch64-builtins.c
16601         (aarch64_simd_builtin_type_mode): Delete.
16602         (v8qi_UP): Remap to V8QImode.
16603         (v4hi_UP): Remap to V4HImode.
16604         (v2si_UP): Remap to V2SImode.
16605         (v2sf_UP): Remap to V2SFmode.
16606         (v1df_UP): Remap to V1DFmode.
16607         (di_UP): Remap to DImode.
16608         (df_UP): Remap to DFmode.
16609         (v16qi_UP):V16QImode.
16610         (v8hi_UP): Remap to V8HImode.
16611         (v4si_UP): Remap to V4SImode.
16612         (v4sf_UP): Remap to V4SFmode.
16613         (v2di_UP): Remap to V2DImode.
16614         (v2df_UP): Remap to V2DFmode.
16615         (ti_UP): Remap to TImode.
16616         (ei_UP): Remap to EImode.
16617         (oi_UP): Remap to OImode.
16618         (ci_UP): Map to CImode.
16619         (xi_UP): Remap to XImode.
16620         (si_UP): Remap to SImode.
16621         (sf_UP): Remap to SFmode.
16622         (hi_UP): Remap to HImode.
16623         (qi_UP): Remap to QImode.
16624         (aarch64_simd_builtin_datum): Make mode a machine_mode.
16625         (VAR1): Build builtin name.
16626         (aarch64_init_simd_builtins): Remove dead code.
16627
16628 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16629
16630         * graphite-isl-ast-to-gimple.c:
16631         (set_options): New function.
16632         (scop_to_isl_ast): Add calling of set_options.
16633
16634 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
16635
16636         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
16637         (analyze_iv_to_split_insn): Don't initialize them.
16638         (get_ivts_expr): Removed.
16639         (allocate_basic_variable, insert_base_initialization): Use
16640         SET_SRC instead of *get_ivts_expr.
16641         (split_iv): Use &SET_SRC instead of get_ivts_expr.
16642
16643 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16644
16645         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
16646         (translate_isl_ast_for_loop): Add checking of the
16647         flag_loop_parallelize_all.
16648         (ast_build_before_for): New function.
16649         (scop_to_isl_ast): Add checking of the
16650         flag_loop_parallelize_all.
16651         * graphite-dependences.c: Move the defenition of the
16652         scop_get_dependences from graphite-optimize-isl.c to this file.
16653         (apply_schedule_on_deps): Add checking of the ux's emptiness.
16654         (carries_deps): Add checking of the x's value.
16655         * graphite-optimize-isl.c: Move the defenition of the
16656         scop_get_dependences to graphite-dependences.c.
16657         * graphite-poly.h: Add declarations of scop_get_dependences
16658         and carries_deps.
16659
16660 2014-08-04  Rohit  <rohitarulraj@freescale.com>
16661
16662         PR target/60102
16663         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
16664         names.
16665         (alt_reg_names): Likewise.
16666         (rs6000_dwarf_register_span): For SPE high registers, replace
16667         dwarf register numbers with GCC hard register numbers.
16668         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
16669         (rs6000_dbx_register_number): For SPE high registers, return dwarf
16670         register number for the corresponding GCC hard register number.
16671         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
16672         newly added GCC hard register numbers for SPE high registers.
16673         (DWARF_FRAME_REGISTERS):  Likewise.
16674         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
16675         (DWARF_FRAME_REGNUM): Likewise.
16676         (FIXED_REGISTERS): Likewise.
16677         (CALL_USED_REGISTERS): Likewise.
16678         (CALL_REALLY_USED_REGISTERS): Likewise.
16679         (REG_ALLOC_ORDER): Likewise.
16680         (enum reg_class): Likewise.
16681         (REG_CLASS_NAMES): Likewise.
16682         (REG_CLASS_CONTENTS): Likewise.
16683         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
16684
16685 2014-08-04  Richard Biener  <rguenther@suse.de>
16686
16687         * gimple-fold.h (gimple_fold_builtin): Remove.
16688         * gimple-fold.c (gimple_fold_builtin): Make static.
16689         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
16690         fold_stmt, not gimple_fold_builtin.
16691
16692 2014-08-04  Martin Liska <mliska@suse.cz>
16693
16694         * cgraph.h (csi_end_p): Removed.
16695         (csi_next): Likewise.
16696         (csi_node): Likewise.
16697         (csi_start): Likewise.
16698         (cgraph_node_in_set_p): Likewise.
16699         (cgraph_node_set_size): Likewise.
16700         (vsi_end_p): Likewise.
16701         (vsi_next): Likewise.
16702         (vsi_node): Likewise.
16703         (vsi_start): Likewise.
16704         (varpool_node_set_size): Likewise.
16705         (cgraph_node_set_nonempty_p): Likewise.
16706         (varpool_node_set_nonempty_p): Likewise.
16707         * cgraphunit.c (cgraph_process_new_functions): vec replaces
16708         cgraph_node_set.
16709         * ipa-inline-transform.c: Likewise.
16710         * ipa-utils.c (cgraph_node_set_new): Removed.
16711         (cgraph_node_set_add): Likewise.
16712         (cgraph_node_set_remove): Likewise.
16713         (cgraph_node_set_find): Likewise.
16714         (dump_cgraph_node_set): Likewise.
16715         (debug_cgraph_node_set): Likewise.
16716         (free_cgraph_node_set): Likewise.
16717         (varpool_node_set_new): Likewise.
16718         (varpool_node_set_add): Likewise.
16719         (varpool_node_set_remove): Likewise.
16720         (varpool_node_set_find): Likewise.
16721         (dump_varpool_node_set): Likewise.
16722         (free_varpool_node_set): Likewise.
16723         (debug_varpool_node_set): Likewise.
16724         * tree-emutls.c (struct tls_var_data):
16725         (emutls_index): Removed.
16726         (emutls_decl): Likewise.
16727         (gen_emutls_addr): Function implementation uses newly added
16728         hash_map<varpool_node *, tls_var_data>.
16729         (clear_access_vars): Likewise.
16730         (create_emultls_var): Likewise.
16731         (ipa_lower_emutls): Likewise.
16732         (reset_access): New function.
16733
16734 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16735
16736         * config/i386/i386.c (ix86_option_override_internal): Add
16737         PTA_RDRND and PTA_MOVBE for bdver4.
16738
16739 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16740             James Greenhalgh  <james.greenhalgh@arm.com>
16741
16742         * doc/md.texi (clrsb): Document.
16743         (clz): Change reference to x into operand 1.
16744         (ctz): Likewise.
16745         (popcount): Likewise.
16746
16747 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16748
16749         PR target/61713
16750         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
16751         move to subtarget in serial version if result is ignored.
16752
16753 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16754             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16755
16756         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
16757         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
16758         (sched_analyze_insn): Update use of try_group_insn to
16759         sched_macro_fuse_insns.
16760         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
16761         arguments that are not conditional jumps.
16762
16763 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16764
16765         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
16766         family information. Handle BTVER2 cpu with cpuid family value.
16767
16768 2014-08-04  Tom de Vries  <tom@codesourcery.com>
16769
16770         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16771         (glibc_2_11_or_earlier): Document effective-target keywords.
16772
16773 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16774
16775         * ipa-devirt.c (odr_type_warn_count): Add type.
16776         (possible_polymorphic_call_targets): Set it.
16777         (ipa_devirt): Use it.
16778
16779 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16780
16781         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
16782         Document.
16783         * ipa-devirt.c: Include hash-map.h
16784         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
16785         (clear_speculation): Break out of ...
16786         (get_class_context): ... here; speed up handling obviously useless
16787         speculations.
16788         (odr_type_warn_count, decl_warn_count): New structures.
16789         (final_warning_record): New structure.
16790         (final_warning_records): New static variable.
16791         (possible_polymorphic_call_targets): Cleanup handling of
16792         speculative info; do not build speculation when user do not care;
16793         record info about warnings when asked for.
16794         (add_decl_warning): New function.
16795         (type_warning_cmp): New function.
16796         (decl_warning_cmp): New function.
16797         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
16798         (gate): Enable pass when warnings are requested.
16799         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
16800         options.
16801
16802 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16803
16804         * hash-map.h (default_hashmap_traits::mark_key_deleted):
16805         Fix cast.
16806         (hash_map::remove): New method.
16807         (hash_map::traverse): New method.
16808         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
16809         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
16810         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
16811         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
16812         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
16813         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
16814         pointer_map.
16815
16816 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16817
16818         * hash-set.h: new File.
16819         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
16820         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
16821         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
16822         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
16823         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
16824         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
16825         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
16826         varpool.c: Use hash_set instead of pointer_set.
16827
16828 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
16829
16830         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
16831
16832 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16833
16834         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
16835         for frame access when strict_p is false.
16836
16837 2014-08-01  Renlin Li <renlin.li@arm.com>
16838 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16839
16840         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
16841         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
16842         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
16843         Declaration.
16844         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
16845         predicate.
16846         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
16847         aarch64_mem_pair_offset.
16848
16849 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16850
16851         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
16852         offset.
16853         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
16854         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
16855
16856 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
16857
16858         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
16859
16860 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
16861
16862         PR regression/61510
16863         * cgraphunit.c (analyze_functions): Use get_create rather than get
16864         for decls which are clones of abstract functions.
16865
16866 2014-08-01  Martin Liska  <mliska@suse.cz>
16867
16868         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
16869         * ipa-prop.h (count_formal_params): Global function created from static.
16870         * ipa-prop.c (count_formal_params): Likewise.
16871         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
16872         profiles for semantically equivalent functions.
16873         * passes.c (do_per_function): If we load body of a function
16874         during WPA, this condition should behave same.
16875         * varpool.c (ctor_for_folding): More tolerant assert for variable
16876         aliases created during WPA.
16877
16878 2014-08-01  Martin Liska  <mliska@suse.cz>
16879
16880         * doc/invoke.texi (Options That Control Optimization): Documentation
16881         for -foptimize-strlen introduced. Optimization levels default options
16882         fixed.
16883
16884 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
16885
16886         * opts.c (common_handle_option): Handle -fsanitize=alignment.
16887         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
16888         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
16889         type to bool.
16890         * stor-layout.h (min_align_of_type): New prototype.
16891         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
16892         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
16893         check.
16894         * ubsan.c: Include builtins.h.
16895         (ubsan_expand_bounds_ifn): Change return type to bool,
16896         always return true.
16897         (ubsan_expand_null_ifn): Change return type to bool, change
16898         argument to gimple_stmt_iterator *.  Handle both null and alignment
16899         sanitization, take type from ckind argument's type rather than
16900         first argument.
16901         (instrument_member_call): Removed.
16902         (instrument_mem_ref): Remove t argument, add mem and base arguments.
16903         Handle both null and alignment sanitization, don't say whole
16904         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
16905         call instead of 2 argument.
16906         (instrument_null): Adjust instrument_mem_ref caller.  Don't
16907         instrument calls here.
16908         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
16909         like SANITIZE_NULL.
16910         * stor-layout.c (min_align_of_type): New function.
16911         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
16912         Or it into SANITIZE_UNDEFINED.
16913         * doc/invoke.texi (-fsanitize=alignment): Document.
16914
16915 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16916
16917         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
16918
16919 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16920
16921         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
16922         inchash.
16923         (vn_reference_compute_hash): Dito.
16924         (vn_nary_op_compute_hash): Dito.
16925         (vn_phi_compute_hash): Dito.
16926         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
16927
16928 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16929
16930         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
16931         Rename to inchash:add_expr_commutative. Convert to inchash.
16932         (iterative_hash_hashable_expr): Rename to
16933         inchash:add_hashable_expr. Convert to inchash.
16934         (avail_expr_hash): Dito.
16935
16936 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16937
16938         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
16939         Convert to inchash.
16940
16941 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16942
16943         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
16944
16945 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16946
16947         * Makefile.in (OBJS): Add rtlhash.o
16948         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
16949         (loc_checksum): Dito.
16950         (loc_checksum_ordered): Dito.
16951         (hash_loc_operands): Dito.
16952         (hash_locs): Dito.
16953         (hash_loc_list): Dito.
16954         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
16955         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
16956         * rtlhash.c: New file.
16957         * rtlhash.h: New file.
16958
16959 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16960
16961         * inchash.h (inchash): Change inchash class to namespace.
16962         (class hash): ... Rename from inchash.
16963         (add_object): Move from macro to class template.
16964         * lto-streamer-out.c (hash_tree): Change inchash
16965         to inchash::hash.
16966         * tree.c (build_type_attribute_qual_variant): Dito.
16967         (type_hash_list): Dito.
16968         (attribute_hash_list): Dito.
16969         (iterative_hstate_expr): Rename to inchash::add_expr
16970         (build_range_type_1): Change inchash to inchash::hash
16971         and use hash::add_expr.
16972         (build_array_type_1): Dito.
16973         (build_function_type): Dito
16974         (build_method_type_directly): Dito.
16975         (build_offset_type): Dito.
16976         (build_complex_type): Dito.
16977         (make_vector_type): Dito.
16978         * tree.h (iterative_hash_expr): Dito.
16979
16980 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
16981
16982         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
16983
16984 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
16985
16986         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
16987         correct alphabetical position.
16988         (vpaddd_f64): Rewrite using builtins.
16989         (vpaddd_s64): Move to correct alphabetical position.
16990         (vpaddd_u64): New.
16991
16992 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
16993
16994         PR target/61844
16995         * config/sh/sh.c (sh_legitimate_address_p,
16996         sh_legitimize_reload_address): Handle reg+reg address modes when
16997         ALLOW_INDEXED_ADDRESS is false.
16998         * config/sh/predicates.md (general_movsrc_operand,
16999         general_movdst_operand): Likewise.
17000
17001 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17002
17003         * config/aarch64/aarch64-builtins.c
17004         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17005         BYTES_BIG_ENDIAN.
17006
17007 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17008
17009         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17010         the generated mask based on BYTES_BIG_ENDIAN.
17011         (aarch64_simd_check_vect_par_cnst_half): New.
17012         * config/aarch64/aarch64-protos.h
17013         (aarch64_simd_check_vect_par_cnst_half): New.
17014         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17015         the check out to aarch64_simd_check_vect_par_cnst_half.
17016         (vect_par_cnst_lo_half): Likewise.
17017         * config/aarch64/aarch64-simd.md
17018         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17019         (move_hi_quad_<mode>): Always generate a low mask.
17020
17021 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17022
17023         * doc/invoke.texi (AVR Options): Add documentation about
17024         __AVR_DEVICE_NAME__ built-in macro.
17025
17026 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17027
17028         PR target/61948
17029         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17030         constraints are satisfied.
17031         (<shift>di3_neon): Likewise.
17032
17033 2014-07-31  Richard Biener  <rguenther@suse.de>
17034
17035         PR tree-optimization/61964
17036         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17037         by structural equality.
17038
17039 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17040
17041         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17042         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17043         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17044         New enums.
17045         * gcc.c (sanitize_spec_function): Support new option.
17046         (SANITIZER_SPEC): Remove now redundant check.
17047         * opts.c (common_handle_option): Support new option.
17048         (finish_options): Check for incompatibilities.
17049         * toplev.c (process_options): Split userspace-specific checks.
17050
17051 2014-07-31  Richard Biener  <rguenther@suse.de>
17052
17053         * lto-streamer.h (struct output_block): Remove global.
17054         (struct data_in): Remove labels, num_named_labels and
17055         num_unnamed_labels.
17056         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17057         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17058
17059 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17060
17061         PR c++/60517
17062         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17063         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17064         (isolate_path): New argument to avoid inserting a trap.
17065         (find_implicit_erroneous_behaviour): Handle returning the address
17066         of a local variable.
17067         (find_explicit_erroneous_behaviour): Likewise.
17068
17069 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17070
17071         PR lto/61868
17072         * toplev.c (init_random_seed): Move piece of code never called to
17073         set_random_seed.
17074         (set_random_seed): see above.
17075
17076 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17077
17078         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17079
17080 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17081
17082         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17083         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17084
17085 2014-07-31  Richard Biener  <rguenther@suse.de>
17086
17087         * data-streamer.h (streamer_write_data_stream): Declare here,
17088         renamed from ...
17089         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17090         * lto-cgraph.c (lto_output_node): Adjust.
17091         (lto_output_varpool_node): Likewise.
17092         * data-streamer-out.c (streamer_string_index): Likewise.
17093         (streamer_write_data_stream, lto_append_block): Move from ...
17094         * lto-section-out.c (lto_output_data_stream,
17095         lto_append_block): ... here.
17096
17097 2014-07-30  Mike Stump  <mikestump@comcast.net>
17098
17099         * configure.ac: Also check for popen.
17100         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17101         * configure: Regenerate.
17102         * config.in:  Regenerate.
17103
17104 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17105
17106         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17107         parameter to gimple.
17108
17109 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17110
17111         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17112         address as second parameter to __tpf_eh_return routine.
17113
17114 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17115
17116         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17117         Thumb2.
17118
17119 2014-07-30  Tom Tromey  <tromey@redhat.com>
17120
17121         PR c/59855
17122         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17123         * doc/extend.texi (Type Attributes): Document designated_init
17124         attribute.
17125
17126 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17127
17128         * graphite-isl-ast-to-gimple.c:
17129         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17130         (gcc_expression_from_isl_expression): Pass type to
17131         gcc_expression_from_isl_ast_expr_id.
17132
17133 2014-07-30  Richard Biener  <rguenther@suse.de>
17134
17135         * lto-streamer.h (lto_write_data): New function.
17136         * langhooks.c (lhd_append_data): Do not free block.
17137         * lto-section-out.c (lto_write_data): New function writing
17138         raw data to the current section.
17139         (lto_write_stream): Adjust for langhook semantic change.
17140         (lto_destroy_simple_output_block): Write header directly.
17141         * lto-opts.c (lto_write_options): Write options directly.
17142         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17143         (lto_output_toplevel_asms): Likewise.
17144         (copy_function_or_variable): Copy data directly.
17145         (write_global_references): Output index table directly.
17146         (lto_output_decl_state_refs): Likewise.
17147         (write_symbol): Write data directly.
17148         (produce_symtab): Adjust.
17149         (produce_asm_for_decls): Output header and refs directly.
17150
17151 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17152
17153         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17154         to speculative_targets
17155         (get_class_context): Fix handling of contextes without outer type;
17156         avoid matching non-polymorphic types in LTO.
17157         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17158         parameter to speculative_targetsp; handle speculation.
17159         (dump_possible_polymorphic_call_targets): Update dumping.
17160
17161 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17162
17163         * common.opt (Wodr): Enable by default.
17164
17165 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17166
17167         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17168
17169 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17170
17171         PR bootstrap/61914
17172         * gengtype.c (strtoken): New function.
17173         (create_user_defined_type): Replace strtok with strtoken.
17174
17175 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17176
17177         * gcov-io.c (gcov_var): Make hidden.
17178         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17179         (gcov_do_dump): Declare.
17180         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17181
17182 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17183
17184         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17185         parameter to gimple.
17186         (sra_modify_assign): Likewise.
17187
17188 2014-07-29  Richard Biener  <rguenther@suse.de>
17189
17190         PR middle-end/52478
17191         * expr.c (expand_expr_real_2): Revert last change.
17192
17193 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17194
17195         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17196         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17197         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17198         call.
17199         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17200         (contains_type_p): Forward declare.
17201         (polymorphic_call_target_hasher::hash): Hash speculative info.
17202         (polymorphic_call_target_hasher::equal): Compare speculative info.
17203         (get_class_context): Handle speuclation.
17204         (contains_type_p): Update.
17205         (get_polymorphic_call_info_for_decl): Update.
17206         (walk_ssa_copies): Break out from ...
17207         (get_polymorphic_call_info): ... here; set speculative context
17208         before giving up.
17209         * ipa-prop.c (ipa_write_indirect_edge_info,
17210         ipa_read_indirect_edge_info): Stream speculative context.
17211         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17212         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17213         SPECULATIVE_MAYBE_DERIVED_TYPE).
17214         (possible_polymorphic_call_targets overriders): Update.
17215         (dump_possible_polymorphic_call_targets overriders): Update.
17216         (dump_possible_polymorphic_call_target_p overriders): Update.
17217
17218 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17219
17220         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17221         ipa-devirt path; fix thinko there.
17222
17223 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17224
17225         * config/i386/i386.c (ix86_return_in_memory): Replace one
17226         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17227
17228 2014-07-28  Marek Polacek  <polacek@redhat.com>
17229
17230         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17231
17232 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17233
17234         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17235         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17236         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17237         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17238         (USE_LD_AS_NEEDED): Likewise.
17239         (ASM_APP_ON): Likewise.
17240         (ASM_APP_OFF): Likewise.
17241         (TARGET_POSIX_IO): Likewise.
17242         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17243         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17244         (USE_LD_AS_NEEDED): Likewise.
17245         (ASM_APP_ON): Likewise.
17246         (ASM_APP_OFF): Likewise.
17247         (TARGET_POSIX_IO): Likewise.
17248
17249 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17250
17251         PR middle-end/61734
17252         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17253         operators other than the equality operators.
17254
17255 2014-07-28  Richard Biener  <rguenther@suse.de>
17256
17257         PR middle-end/52478
17258         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17259         sure to register SImode ones, not only >= word_mode ones.
17260         * expr.c (expand_expr_real_2): When expanding -ftrapv
17261         binops do not use OPTAB_LIB_WIDEN.
17262
17263 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17264
17265         PR middle-end/61919
17266         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17267         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17268         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17269         inserting them in the insn stream.
17270
17271 2014-07-28  Marek Polacek  <polacek@redhat.com>
17272
17273         PR middle-end/61913
17274         * common.opt (Wodr): Add Var.
17275
17276 2014-07-28  Richard Biener  <rguenther@suse.de>
17277
17278         PR tree-optimization/61921
17279         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17280         if there is a varpool node before dereferencing it.
17281
17282 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17283
17284         * graphite-sese-to-poly.c:
17285         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17286         id of the pbb), which contains pointer to the pbb1.
17287
17288         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17289
17290 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17291
17292         * graphite-isl-ast-to-gimple.c:
17293         (graphite_create_new_guard): New function.
17294         (translate_isl_ast_node_if): New function.
17295         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17296
17297         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17298
17299 2014-07-27  Anthony Green  <green@moxielogic.com>
17300
17301         * config.gcc: Add moxie-*-moxiebox* configuration.
17302         * config/moxie/moxiebox.h: New file.
17303
17304 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17305
17306         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17307         from the read only register.
17308
17309 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17310
17311         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17312         as the allocation class if it isn't likely to be spilled.
17313
17314 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17315
17316         * rtl.h (tls_referenced_p): Declare.
17317         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17318         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17319         (mips_cannot_force_const_mem): Use tls_referenced_p.
17320         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17321         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17322         instead of pa_tls_referenced_p.
17323         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17324         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17325         (pa_legitimate_constant_p): Likewise.
17326         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17327         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17328         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17329         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17330         rs6000_tls_referenced_p.
17331         (rs6000_tls_symbol_ref_1): Delete.
17332
17333 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17334
17335         PR target/44551
17336         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17337         Optimize inverse of a VEC_CONCAT.
17338
17339 2014-07-25  Xinliang David Li  <davidxl@google.com>
17340
17341         * params.def: New parameter.
17342         * coverage.c (get_coverage_counts): Check new flag.
17343         (coverage_compute_profile_id): Check new flag.
17344         (coverage_begin_function): Check new flag.
17345         (coverage_end_function): Check new flag.
17346         * value-prof.c (coverage_node_map_initialized_p): New function.
17347         (init_node_map): Populate map with all functions.
17348         * doc/invoke.texi: Document new parameter.
17349
17350 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
17351             Richard Biener <rguenther@suse.de>
17352
17353         * lto-streamer-out.c (struct sccs): Turn to ...
17354         (class DFS): ... this one; refactor the DFS walk so it can
17355         be re-done on per-SCC basis.
17356         (DFS::DFS): New constructor.
17357         (DFS::~DFS): New destructor.
17358         (hash_tree): Add new MAP argument holding in-SCC hash values;
17359         remove POINTER_TYPE hashing hack.
17360         (scc_entry_compare): Rename to ...
17361         (DFS::scc_entry_compare): ... this one.
17362         (hash_scc): Rename to ...
17363         (DFS::hash_scc): ... this one; pass output_block instead
17364         of streamer_cache; work harder to get unique and stable SCC
17365         hashes.
17366         (DFS_write_tree): Rename to ...
17367         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17368         (lto_output_tree): Update.
17369
17370 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17371
17372         * lto-streamer-out.c (hash_tree): Convert to inchash.
17373
17374 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17375
17376         * tree.c (build_type_attribute_qual_variant): Use inchash.
17377         (type_hash_list): Dito.
17378         (attribute_hash_list): Dito
17379         (iterative_hstate_expr): Dito.
17380         (iterative_hash_expr): Dito.
17381         (build_range_type_1): Dito.
17382         (build_array_type_1): Dito.
17383         (build_function_type): Dito.
17384         (build_method_type_directly): Dito.
17385         (build_offset_type): Dito.
17386         (build_complex_type): Dito.
17387         (make_vector_type): Dito.
17388         * tree.h (iterative_hash_expr): Add compat wrapper.
17389         (iterative_hstate_expr): Add.
17390
17391 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17392
17393         * Makefile.in (OBJS): Add inchash.o.
17394         (PLUGIN_HEADERS): Add inchash.h.
17395         * ipa-devirt.c: Include inchash.h.
17396         * lto-streamer-out.c: Dito.
17397         * tree-ssa-dom.c: Dito.
17398         * tree-ssa-pre.c: Dito.
17399         * tree-ssa-sccvn.c: Dito.
17400         * tree-ssa-tail-merge.c: Dito.
17401         * asan.c: Dito.
17402         * tree.c (iterative_hash_hashval_t): Move to ...
17403         (iterative_hash_host_wide_int): Move to ...
17404         * inchash.c: Here. New file.
17405         * tree.h (iterative_hash_hashval_t): Move to ...
17406         (iterative_hash_host_wide_int): Move to ...
17407         * inchash.h: Here. New file.
17408
17409 2014-07-25  Richard Biener  <rguenther@suse.de>
17410
17411         PR middle-end/61762
17412         PR middle-end/61894
17413         * fold-const.c (native_encode_int): Add and handle offset
17414         parameter to do partial encodings of expr.
17415         (native_encode_fixed): Likewise.
17416         (native_encode_real): Likewise.
17417         (native_encode_complex): Likewise.
17418         (native_encode_vector): Likewise.
17419         (native_encode_string): Likewise.
17420         (native_encode_expr): Likewise.
17421         * fold-const.c (native_encode_expr): Add offset parameter
17422         defaulting to -1.
17423         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
17424         (fold_ctor_reference): Handle all reads from tcc_constant
17425         ctors.
17426
17427 2014-07-25  Richard Biener  <rguenther@suse.de>
17428
17429         * tree-inline.c (estimate_move_cost): Mark speed_p argument
17430         as possibly unused.
17431
17432 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17433
17434         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
17435
17436 2014-07-24  Kyle McMartin  <kyle@redhat.com>
17437
17438         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
17439
17440 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17441
17442         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
17443         Add prototype.
17444         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
17445         function.
17446         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
17447         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17448         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
17449
17450 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17451
17452         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
17453         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
17454         aggregate types.  Instead, *all* aggregate types, except for single-
17455         element or homogeneous float/vector aggregates, are quadword-aligned
17456         if required by their type alignment.  Issue -Wpsabi note when a type
17457         is now treated differently than before.
17458
17459 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17460
17461         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
17462         does not fit fully into floating-point registers, and there is still
17463         space in the register parameter area, use GPRs to pass those parts
17464         of the argument.  Issue -Wpsabi note if any parameter is now treated
17465         differently than before.
17466         (rs6000_arg_partial_bytes): Update.
17467
17468 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
17469
17470         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
17471
17472 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17473
17474         * rtl.h (target_rtl): Remove lang_dependent_initialized.
17475         * toplev.c (initialize_rtl): Don't use it.  Move previously
17476         "language-dependent" calls to...
17477         (backend_init): ...here.
17478         (lang_dependent_init_target): Don't set lang_dependent_initialized.
17479         Assert that RTL initialization hasn't happend yet.
17480
17481 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17482
17483         PR rtl-optimization/61629
17484         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
17485         they have already been initialized.
17486
17487 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17488
17489         PR middle-end/61268
17490         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
17491         DECL_INCOMING_RTL and entry_parm.
17492         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
17493         * calls.c (load_register_parameters): Likewise argument values.
17494         (emit_library_call_value_1, store_one_arg): Likewise argument
17495         save areas.
17496         * config/i386/i386.c (assign_386_stack_local): Likewise the local
17497         stack slot.
17498         * explow.c (validize_mem): Modify the argument in-place.
17499
17500 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17501
17502         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
17503         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
17504
17505 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17506
17507         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
17508         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
17509
17510 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17511
17512         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
17513         (aarch64_save_callee_saves): New parameter "skip_wb".
17514         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
17515
17516 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17517
17518         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
17519         "wb_candidate2".
17520         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
17521
17522 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17523
17524         * graphite-isl-ast-to-gimple.c:
17525         (graphite_create_new_loop): Add calling of isl_id_free to properly
17526         decrement reference counts.
17527
17528         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
17529
17530 2014-07-24  Martin Liska  <mliska@suse.cz>
17531         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
17532         function used.
17533         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
17534         (rs6000_code_end): Likewise.
17535
17536 2014-07-24  Martin Liska  <mliska@suse.cz>
17537
17538         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
17539         symtab_node funtion used.
17540         (rs6000_xcoff_declare_object_name): Likewise.
17541
17542 2014-07-24  Martin Liska  <mliska@suse.cz>
17543
17544         * cgraphunit.c (compile): Correct function used.
17545
17546 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17547
17548         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
17549         as non-indexable.
17550
17551 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17552
17553         PR lto/61802
17554         * varasm.c (bss_initializer_p): Handle offlined ctors.
17555         (align_variable, get_variable_align): Likewise.
17556         (make_decl_one_only): Likewise.
17557         (default_binds_local_p_1): Likewise.
17558         (decl_binds_to_current_def_p): Likewise.
17559         (get_variable_section): Get constructor if it is offlined.
17560         (assemble_variable_contents): Sanity check that the caller
17561         streamed in the ctor in LTO.
17562
17563 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17564
17565         * graphite-isl-ast-to-gimple.c:
17566         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
17567         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
17568         isl_ast_op_pdiv_r to the different case.
17569
17570         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
17571
17572 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17573
17574         PR middle-end/61876
17575         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
17576         when flag_errno_math is on.
17577
17578 2014-07-24  Martin Liska  <mliska@suse.cz>
17579
17580         * cgraph.h (varpool_node):
17581         (availability get_availability (void)):
17582         created from cgraph_variable_initializer_availability
17583         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
17584         created from: cgraph_variable_initializer_availability
17585         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
17586         (void finalize_named_section_flags (void)):
17587         created from varpool_finalize_named_section_flags
17588         (bool assemble_decl (void)): created from varpool_assemble_decl
17589         (void analyze (void)): created from varpool_analyze_node
17590         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
17591         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
17592         (void remove_initializer (void)): created from varpool_remove_initializer
17593         (tree get_constructor (void)): created from varpool_get_constructor
17594         (bool externally_visible_p (void)): created from varpool_externally_visible_p
17595         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
17596         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
17597         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
17598         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
17599         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
17600         (static bool output_variables (void)): created from varpool_output_variables
17601         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
17602         created from varpool_extra_name_alias
17603         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
17604         (static void dump_varpool (FILE *f)): created from dump_varpool
17605         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
17606         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
17607         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
17608         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
17609         (void assemble_aliases (void)): created from assemble_aliases
17610
17611 2014-07-24  Martin Liska  <mliska@suse.cz>
17612
17613         * cgraph.h (symtab_node):
17614         (void register_symbol (void)): created from symtab_register_node
17615         (void remove (void)): created from symtab_remove_node
17616         (void dump (FILE *f)): created from dump_symtab_node
17617         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
17618         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
17619         (struct ipa_ref *add_reference (symtab_node *referred_node,
17620         enum ipa_ref_use use_type)): created from add_reference
17621         (struct ipa_ref *add_reference (symtab_node *referred_node,
17622         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
17623         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
17624         gimple stmt)): created from maybe_add_reference
17625         (bool semantically_equivalent_p (symtab_node *target)): created from
17626         symtab_semantically_equivalent_p
17627         (void remove_from_same_comdat_group (void)): created from
17628         remove_from_same_comdat_group
17629         (void add_to_same_comdat_group (symtab_node *old_node)): created from
17630         symtab_add_to_same_comdat_group
17631         (void dissolve_same_comdat_group_list (void)): created from
17632         symtab_dissolve_same_comdat_group_list
17633         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
17634         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
17635         created from symtab_alias_ultimate_target
17636         (inline symtab_node *next_defined_symbol (void)): created from
17637         symtab_next_defined_symbol
17638         (bool resolve_alias (symtab_node *target)): created from
17639         symtab_resolve_alias
17640         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
17641         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
17642         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
17643         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
17644         (void set_section (const char *section)): created from set_section_1
17645         (enum availability get_availability (void)): created from symtab_node_availability
17646         (void make_decl_local (void)): created from symtab_make_decl_local
17647         (bool real_symbol_p (void)): created from symtab_read_node
17648         (can_be_discarded_p (void)): created from symtab_can_be_discarded
17649         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
17650         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
17651         symtab_in_same_comdat_p;
17652         (bool address_taken_from_non_vtable_p (void)): created from
17653         address_taken_from_non_vtable_p
17654         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
17655         (static void dump_table (FILE *)): created from dump_symtab
17656         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
17657         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
17658         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
17659         symtab_used_from_object_file_p
17660         (void dump_base (FILE *)): created from dump_symtab_base
17661         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
17662         (void unregister (void)): created from symtab_unregister_node
17663         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
17664         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
17665         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
17666         symtab_nonoverwritable_alias_1
17667         * cgraph.h (cgraph_node):
17668         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
17669         created from cgraph_remove_node_and_inline_clones
17670         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
17671         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
17672         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
17673         (cgraph_node *function_symbol (enum availability *avail = NULL)):
17674         created from cgraph_function_node
17675         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
17676         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
17677         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
17678         created from cgraph_create_clone
17679         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
17680         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
17681         created from cgraph_create_virtual_clone
17682         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
17683         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
17684         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
17685         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
17686         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
17687         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
17688         created from cgraph_function_version_info
17689         (struct cgraph_function_version_info *insert_new_function_version (void)):
17690         created from insert_new_cgraph_node_version
17691         (struct cgraph_function_version_info *function_version (void)): created from
17692         get_cgraph_node_version
17693         (void analyze (void)): created from analyze_function
17694         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
17695         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
17696         tree real_alias) cgraph_add_thunk
17697         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
17698         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
17699         created from cgraph_function_or_thunk_node
17700         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
17701         created from expand_thunk
17702         (void reset (void)): created from cgraph_reset_node
17703         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
17704         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
17705         (void remove (void)): created from cgraph_remove_node
17706         (void dump (FILE *f)): created from dump_cgraph_node
17707         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
17708         (bool get_body (void)): created from cgraph_get_body
17709         (void release_body (void)): created from cgraph_release_function_body
17710         (void unnest (void)): created from cgraph_unnest_node
17711         (void make_local (void)): created from cgraph_make_node_local
17712         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
17713         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
17714         gcov_type count, int freq)): created from cgraph_create_edge
17715         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
17716         gcov_type count, int freq)): created from cgraph_create_indirect_edge
17717         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
17718         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
17719         created from cgraph_create_edge_including_clones
17720         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
17721         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
17722         (void remove_callers (void)): created from cgraph_node_remove_callers
17723         (void remove_callees (void)): created from cgraph_node_remove_callees
17724         (enum availability get_availability (void)): created from cgraph_function_body_availability
17725         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
17726         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
17727         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
17728         (void call_duplication_hooks (cgraph_node *node2)): created from
17729         cgraph_call_node_duplication_hooks
17730         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
17731         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
17732         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
17733         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
17734         (void call_function_insertion_hooks (void)):
17735         created from cgraph_call_function_insertion_hooks
17736         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
17737         (bool local_p (void)): created from cgraph_local_node
17738         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
17739         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
17740         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
17741         (inline bool only_called_directly_or_aliased_p (void)):
17742         created from cgraph_only_called_directly_or_aliased_p
17743         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
17744         created from cgraph_will_be_removed_from_program_if_no_direct_calls
17745         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
17746         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
17747         (bool can_remove_if_no_direct_calls_p (void)):
17748         created from cgraph_can_remove_if_no_direct_calls_p
17749         (inline bool has_gimple_body_p (void)):
17750         created from cgraph_function_with_gimple_body_p
17751         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
17752         (static void dump_cgraph (FILE *f)): created from dump_cgraph
17753         (static inline void debug_cgraph (void)): created from debug_cgraph
17754         (static void record_function_versions (tree decl1, tree decl2)):
17755         created from record_function_versions
17756         (static void delete_function_version (tree decl)):
17757         created from delete_function_version
17758         (static void add_new_function (tree fndecl, bool lowered)):
17759         created from cgraph_add_new_function
17760         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
17761         (static cgraph_node * create (tree decl)): created from cgraph_create_node
17762         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
17763         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
17764         (static cgraph_node *get_for_asmname (tree asmname)):
17765         created from cgraph_node_for_asm
17766         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
17767         created from cgraph_same_body_alias
17768         (static bool used_from_object_file_p_worker (cgraph_node *node,
17769         void *): new function
17770         (static bool non_local_p (cgraph_node *node, void *)):
17771         created from cgraph_non_local_node_p_1
17772         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
17773         created from verify_cgraph
17774         (static bool make_local (cgraph_node *node, void *)):
17775         created from cgraph_make_node_local
17776         (static cgraph_node *create_alias (tree alias, tree target)):
17777         created from cgraph_create_function_alias
17778         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
17779         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
17780         created from cgraph_create_edge_1
17781         * cgraph.h (varpool_node):
17782         (void remove (void)): created from varpool_remove_node
17783         (void dump (FILE *f)): created from dump_varpool_node
17784
17785 2014-07-24  Richard Biener  <rguenther@suse.de>
17786
17787         PR ipa/61823
17788         * tree-ssa-structalias.c (create_variable_info_for_1):
17789         Use varpool_get_constructor.
17790         (create_variable_info_for): Likewise.
17791
17792 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17793
17794         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
17795         subtract outgoing area size when restoring stack_pointer_rtx.
17796
17797 2014-07-24  Nick Clifton  <nickc@redhat.com>
17798
17799         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
17800         that operations are taking place in parallel.
17801         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
17802
17803 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
17804
17805         * omp-low.c (extract_omp_for_data): Add missing break statement.
17806
17807 2014-07-24  Richard Biener  <rguenther@suse.de>
17808
17809         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
17810         * tree-inline.c (estimate_move_cost): Add speed_p parameter
17811         and adjust MOVE_RATIO query accordingly.
17812         (estimate_num_insns): Adjust callers.
17813         * ipa-prop.c (ipa_populate_param_decls): Likewise.
17814         * ipa-cp.c (gather_context_independent_values,
17815         estimate_local_effects): Likewise.
17816         * ipa-split.c (consider_split): Likewise.
17817
17818 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
17819
17820         * config/i386/driver-i386.c: Remove names of unused arguments and
17821         unnecessary unused attributes.
17822         * config/i386/host-mingw32.c: Likewise.
17823         * config/i386/i386.c: Likewise.
17824         * config/i386/winnt-stubs.c: Likewise.
17825         * config/i386/winnt.c: Likewise.
17826
17827 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17828
17829         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
17830         (aarch64_gen_loadwb_pair): New helper function.
17831         (aarch64_expand_epilogue): Simplify code using new helper functions.
17832         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
17833
17834 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17835
17836         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
17837         (aarch64_gen_storewb_pair): New helper function.
17838         (aarch64_expand_prologue): Simplify code using new helper functions.
17839         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
17840
17841 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17842
17843         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
17844         Rename to aarch64_save_callee_saves, remove restore code.
17845         (aarch64_restore_callee_saves): New function.
17846
17847 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17848
17849         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
17850         (aarch64_save_callee_saves): New function to handle reg save
17851         for both core and vectore regs.
17852
17853 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17854
17855         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
17856         (aarch64_gen_store_pair): New helper function.
17857         (aarch64_save_or_restore_callee_save_registers)
17858         (aarch64_save_or_restore_fprs): Use new helper functions.
17859
17860 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17861
17862         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
17863         (aarch64_save_or_restore_callee_save_registers)
17864         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
17865
17866 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17867
17868         * config/aarch64/aarch64.c
17869         (aarch64_save_or_restore_callee_save_registers)
17870         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
17871
17872 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17873
17874         * config/aarch64/aarch64.c
17875         (aarch64_save_or_restore_callee_save_registers)
17876         (aarch64_save_or_restore_fprs): Remove 'increment'.
17877
17878 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17879
17880         * config/aarch64/aarch64.c
17881         (aarch64_save_or_restore_callee_save_registers)
17882         (aarch64_save_or_restore_fprs): Use register offset in
17883         cfun->machine->frame.reg_offset.
17884
17885 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17886
17887         * config/aarch64/aarch64.c
17888         (aarch64_save_or_restore_callee_save_registers)
17889         (aarch64_save_or_restore_fprs): Remove base_rtx.
17890
17891 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17892
17893         * config/aarch64/aarch64.c
17894         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
17895         to 'start_offset'.  Remove local variable 'start_offset'.
17896
17897 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17898
17899         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
17900         type to HOST_WIDE_INT.
17901
17902 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17903
17904         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17905         (aarch64_save_or_restore_fprs)
17906         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
17907
17908 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17909
17910         * config/arm/t-rtems-eabi: Add
17911         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
17912         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
17913         mbig-endian/mthumb/march=armv7-r, and
17914         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
17915         multilibs.
17916
17917 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17918             Chris Johns <chrisj@rtems.org>
17919             Joel Sherrill <joel.sherrill@oarcorp.com>
17920
17921         * config.gcc: Add nios2-*-rtems*.
17922         * config/nios2/rtems.h: New file.
17923         * gcc/config/nios2/t-rtems: New file.
17924
17925 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
17926
17927         PR target/61396
17928         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
17929         constant numbers, not general constants.
17930         (rs6000_expand_vector_init): Ditto.
17931
17932 2014-07-23  Nathan Sidwell  <nathan@acm.org>
17933
17934         * gcov-tool.c (gcov_list): Declare here.
17935         (set_gcov_list): Remove.
17936         (gcov_output_files): Set gcov_list directly.
17937
17938 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
17939
17940         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
17941
17942 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17943
17944         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
17945         callee-saved registers are available for padding purpose
17946         and r3 is not mandatory, then prefer use those callee-saved
17947         instead of r3.
17948
17949 2014-07-23  Richard Biener  <rguenther@suse.de>
17950
17951         * params.def (PARAM_MAX_COMBINE_INSNS): New.
17952         * combine.c: Include statistics.h and params.h.
17953         (combine_instructions): Guard three and four insn combines
17954         with max-combine-insns value.  Record statistics for combines
17955         performed.
17956         * doc/invoke.texi (max-combine-insns): Document new param.
17957
17958 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
17959
17960         * graphite-isl-ast-to-gimple.c:
17961         (translate_isl_ast_node_block): New function.
17962         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
17963
17964         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
17965         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
17966
17967 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
17968
17969         * graphite-isl-ast-to-gimple.c:
17970         (get_max_schedule_dimensions): New function.
17971         (extend_schedule): Likewise.
17972         (generate_isl_schedule): Add calling of extend_schedule and
17973         get_max_schedule_dimensions.
17974
17975 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17976
17977         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
17978         (case UNSPEC): Handle UNSPEC_RBIT.
17979
17980 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17981
17982         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
17983         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
17984
17985 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17986
17987         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
17988
17989 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
17990
17991         * graphite-isl-ast-to-gimple.c:
17992         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
17993         (ivs_params_clear):
17994         (build_iv_mapping): New function.
17995         (translate_isl_ast_node_user): Likewise.
17996         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
17997
17998         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
17999         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18000         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18001
18002 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18003
18004         PR target/55701
18005         * config/arm/arm.md (setmem): New pattern.
18006         * config/arm/arm-protos.h (struct tune_params): New fields.
18007         (arm_gen_setmem): New prototype.
18008         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18009         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18010         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18011         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18012         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18013         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18014         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18015         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18016         (arm_const_inline_cost): New function.
18017         (arm_block_set_max_insns): New function.
18018         (arm_block_set_non_vect_profit_p): New function.
18019         (arm_block_set_vect_profit_p): New function.
18020         (arm_block_set_unaligned_vect): New function.
18021         (arm_block_set_aligned_vect): New function.
18022         (arm_block_set_unaligned_non_vect): New function.
18023         (arm_block_set_aligned_non_vect): New function.
18024         (arm_block_set_vect, arm_gen_setmem): New functions.
18025
18026 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18027
18028         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18029
18030 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18031
18032         PR target/61855
18033         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18034         out of #ifdef __OPTIMIZE__.
18035
18036 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18037
18038         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18039         different trapping status if -fnon-call-exceptions is enabled.
18040
18041 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18042
18043         * expr.c (store_field): Handle VOIDmode for calls that return values
18044         in multiple locations.
18045
18046 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18047
18048         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18049         (altivec_vsldoi_<mode>): Likewise.
18050
18051 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18052
18053         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18054         to the number of characters in the line.
18055
18056 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18057
18058         * graphite-isl-ast-to-gimple.c: Add using of
18059         build_nonstandard_integer_type instead of int128_integer_type_node.
18060
18061 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18062
18063         * toplev.c (output_stack_usage): Adjust the location of the warning.
18064
18065 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18066
18067         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18068         (*membar_storeload): Disable for LEON3.
18069
18070 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18071
18072         PR rtl-optimization/61461
18073         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18074
18075 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18076
18077         PR target/61794
18078         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18079         Fix instruction constraint.
18080         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18081
18082 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18083
18084         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18085
18086 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18087
18088         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18089         GNU coding standards.
18090         (nds32_register_move_cost): Likewise.
18091         (nds32_memory_move_cost): Likewise.
18092         (nds32_address_cost): Likewise.
18093
18094 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18095
18096         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18097
18098 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18099
18100         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18101         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18102         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18103         (HAVE_sync_compare_and_swapqi): Define.
18104         (HAVE_sync_compare_and_swaphi): Likewise.
18105         (HAVE_sync_compare_and_swapsi): Likewise.
18106
18107 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18108
18109         * config/mips/p5600.md: Add missing cpu tests.
18110
18111 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18112
18113         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18114         (vmla_f64): Likewise.
18115         (vfms_f64): Likewise.
18116         (vmls_f64): Likewise.
18117
18118 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18119
18120         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18121         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18122
18123 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18124
18125         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18126         (vmlal_high_lane_s32): Likewise.
18127         (vmlal_high_lane_u16): Likewise.
18128         (vmlal_high_lane_u32): Likewise.
18129         (vmlsl_high_lane_s16): Likewise.
18130         (vmlsl_high_lane_s32): Likewise.
18131         (vmlsl_high_lane_u16): Likewise.
18132         (vmlsl_high_lane_u32): Likewise.
18133
18134 2014-07-17  Terry Guo  <terry.guo@arm.com>
18135
18136         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18137         (alus_reg): Renamed to alus_sreg.
18138         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18139         from alu_reg to alu_sreg.  Change type of dsp instructions from
18140         alu_reg to alu_dsp_reg.
18141         * config/arm/thumb1.md: Likewise.
18142         * config/arm/thumb2.md: Likewise.
18143         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18144         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18145         with alu_sreg and alus_sreg.
18146         * config/arm/arm1026ejs.md (alu_op): Likewise.
18147         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18148         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18149         * config/arm/fa526.md (526_alu_op): Likewise.
18150         * config/arm/fa606te.md (606te_alu_op): Likewise.
18151         * config/arm/fa626te.md (626te_alu_op): Likewise.
18152         * config/arm/fa726te.md (726te_alu_op): Likewise.
18153         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18154         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18155         alu_sreg, alu_dsp_reg and alus_sreg.
18156         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18157         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18158         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18159         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18160         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18161         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18162         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18163         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18164         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18165         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18166         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18167         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18168         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18169         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18170         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18171         alus_reg to alus_sreg.
18172
18173 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18174
18175         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18176         infinity format.
18177
18178 2014-07-17  Richard Biener  <rguenther@suse.de>
18179
18180         PR rtl-optimization/61801
18181         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18182         don't set reg_pending_barrier if it appears in a debug-insn.
18183
18184 2014-07-16  DJ Delorie  <dj@redhat.com>
18185
18186         * config/rx/rx.c (rx_option_override): Fix alignment values.
18187         (rx_align_for_label): Likewise.
18188
18189 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18190
18191         PR target/61737.
18192         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18193         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18194         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18195         functions.
18196         (cris_print_index, cris_print_operand, cris_constant_index_p)
18197         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18198         (cris_address_cost): Ditto last CONSTANT_P.
18199         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18200         callers changed.  Yield cris_offsettable_symbol for non-PIC
18201         constant symbolic expressions including labels.  Yield cris_unspec
18202         for all unspecs.
18203         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18204         target to pic_offset_table_rtx for calls that will likely go
18205         through PLT, const0_rtx when they can't.  All callers changed.
18206         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18207         symbolic expressions to be PICified.  Remove second, redundant,
18208         assert on can_create_pseudo_p returning non-zero.  Use
18209         replace_equiv_address_nv, not replace_equiv_address, for final
18210         operand update.
18211         * config/cris/cris.md ("movsi"): Move variable t to pattern
18212         toplevel. Adjust assert for new cris_symbol_type member.  Use
18213         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18214         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18215         for lapc stricter.
18216         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18217         ("call", "call_value"): Use second incoming operand as a marker
18218         for pic-offset-table-register being used.
18219         ("*expanded_call_non_v32", "*expanded_call_v32")
18220         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18221         second incoming operand to CALL, match cris_call_type_marker.
18222         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18223         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18224         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18225         CONSTANT_P.
18226         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18227         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18228         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18229         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18230         (cris_symbol_type): Rename from cris_pic_symbol_type.
18231         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18232         just CONSTANT_P.
18233         * config/cris/cris-protos.h (cris_symbol_type_of,
18234         cris_expand_pic_call_address): Adjust prototypes.
18235         (cris_legitimate_constant_p): New prototype.
18236
18237         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18238         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18239
18240 2014-07-17  Jason Merrill  <jason@redhat.com>
18241
18242         PR c++/61623
18243         * symtab.c (symtab_remove_from_same_comdat_group): Also
18244         set_comdat_group to NULL_TREE.
18245         (verify_symtab): Fix diagnostic.
18246
18247 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18248
18249         PR target/61662
18250         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18251
18252 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18253
18254         Support location tracking for built-in macro tokens
18255         * input.h (is_location_from_builtin_token): New function declaration.
18256         * input.c (is_location_from_builtin_token): New function definition.
18257         * toplev.c (general_init): Tell libcpp what the pre-defined
18258         spelling location for built-in tokens is.
18259
18260 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18261
18262         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18263         on the FUNCTION_DECL.
18264
18265 2014-07-16  Richard Biener  <rguenther@suse.de>
18266
18267         PR other/61782
18268         * doc/extend.texi (always_inline): Clarify.
18269
18270 2014-07-15  Eric Christopher  <echristo@gmail.com>
18271
18272         * doc/invoke.texi (Link Options): Document -z option.
18273
18274 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18275
18276         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18277         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18278
18279 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18280
18281         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18282
18283 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18284
18285         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18286         varpool_assemble_decl.
18287         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18288         true.
18289
18290 2014-07-15  Michael Matz  <matz@suse.de>
18291
18292         PR rtl-optimization/61772
18293         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18294
18295 2014-07-15  Richard Biener  <rguenther@suse.de>
18296
18297         * opts.c (default_options_table): Disable bit-ccp at -Og.
18298
18299 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18300
18301         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18302
18303 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18304
18305         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18306         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18307         call langhook for unknown declaration.
18308         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18309         * tree.h (DECL_ARGUMENTS): Update.
18310         * print-tree.c (print_node): Update.
18311         * tree-core.h (tree_decl_non_common): Remove arguments.
18312         (tree_function_decl): Add arguments.
18313
18314 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18315
18316         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18317
18318 2014-07-14  Richard Biener  <rguenther@suse.de>
18319
18320         PR tree-optimization/61779
18321         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18322         simplifying a condition.
18323
18324 2014-07-14  Richard Biener  <rguenther@suse.de>
18325
18326         * builtins.c (c_strlen): Make only_value == 2 really only
18327         affect warning generation.
18328
18329 2014-07-14  Richard Biener  <rguenther@suse.de>
18330
18331         PR tree-optimization/61757
18332         PR tree-optimization/61783
18333         PR tree-optimization/61787
18334         * tree-ssa-dom.c (record_equality): Revert canonicalization
18335         change and add comment.
18336         (propagate_rhs_into_lhs): Revert previous fix, removing
18337         loop depth restriction again.
18338
18339 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18340
18341         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18342         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18343         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18344         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18345         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18346         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18347         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18348
18349 2014-07-14  Richard Biener  <rguenther@suse.de>
18350
18351         * cgraph.h (decl_in_symtab_p): Make inline.
18352
18353 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
18354
18355         PR middle-end/61294
18356         * doc/invoke.texi (-Wmemset-transposed-args): Document.
18357
18358         PR target/61656
18359         * config/i386/i386.c (classify_argument): Don't merge classes above
18360         number of words.
18361
18362 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
18363
18364         * cgraph.h (symtab_node): Add nonzero_address.
18365         (decl_in_symtab_p): Break out from ...
18366         (symtab_get_node): ... here.
18367         * fold-const.c: Include cgraph.h
18368         (tree_single_nonzero_warnv_p): Use symtab to determine
18369         if symbol is non-zero.
18370         * symtab.c (symtab_node::nonzero_address): New method.
18371
18372 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18373
18374         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18375         forgotten in previous commit.
18376
18377 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18378
18379         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18380         on builtin types.
18381         * ipa-devirt.c: Include stor-layout.h and intl.h
18382         (odr_subtypes_equivalent_p): New function.
18383         (warn_odr): New function.
18384         (warn_type_mismatch): New function.
18385         (odr_types_equivalent_p): New function.
18386         (add_type_duplicate): Use it.
18387         * common.opt (Wodr): New flag.
18388         * doc/invoke.texi (Wodr): Document new warning.
18389
18390 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18391
18392         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18393         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18394         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18395         (varpool_get_constructor): Push CTORS_IN timevar.
18396         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18397
18398 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
18399
18400         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
18401         Remove VOID_FTYPE_PUSHORT.
18402         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
18403         Change code to USHORT_FTYPE_VOID.
18404         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
18405         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
18406         (ix86_atomic_assign_expand_fenv): Update for
18407         __builtin_ia32_fnstsw changes.
18408         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
18409         (fnstsw): Change operand 0 to nonimmediate operand.
18410
18411 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18412
18413         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
18414         (varpool_get_constructor): New function.
18415         (varpool_ctor_useable_for_folding_p): Break out from ...
18416         (ctor_for_folding): ... here; use varpool_get_constructor.
18417         (varpool_assemble_decl): Likewise.
18418         * lto-streamer.h (struct output_block): Turn cgraph_node
18419         to symbol filed.
18420         (lto_input_variable_constructor): Declare.
18421         * ipa-visibility.c (function_and_variable_visibility): Use
18422         varpool_get_constructor.
18423         * cgraph.h (varpool_get_constructor): Declare.
18424         (varpool_ctor_useable_for_folding_p): New function.
18425         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
18426         parameter; return error_mark_node for non-trivial constructors.
18427         (lto_write_tree_1, DFS_write_tree): Update use of
18428         get_symbol_initial_value.
18429         (output_function): Update initialization of symbol.
18430         (output_constructor): New function.
18431         (copy_function): Rename to ..
18432         (copy_function_or_variable): ... this one; handle vars too.
18433         (lto_output): Output variable sections.
18434         * lto-streamer-in.c (input_constructor): New function.
18435         (lto_read_body): Rename from ...
18436         (lto_read_body_or_constructor): ... this one; handle vars too.
18437         (lto_input_variable_constructor): New function.
18438         * ipa-prop.c (ipa_prop_write_jump_functions,
18439         ipa_prop_write_all_agg_replacement): Update.
18440         * lto-cgraph.c (compute_ltrans_boundary): Use it.
18441         (output_cgraph_opt_summary): Set symbol to NULL.
18442
18443 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18444
18445         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
18446         non-polymorphic types.
18447         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
18448         * ipa-devirt.c (types_same_for_odr): Do not explode when one
18449         of types is not polymorphic.
18450
18451 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
18452
18453         * lra-constraints.c (remove_inheritance_pseudos): Process
18454         destination pseudo too.
18455
18456 2014-07-11  Rong Xu  <xur@google.com>
18457
18458         * gcov-tool.c (gcov_output_files): Fix build error introduced in
18459         commit r212448.
18460
18461 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18462
18463         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
18464         * config/avr/avr-devices.c (AVR_MCU): Same.
18465         (avr_mcu_types): add text start value to end of device list.
18466         * config/avr/avr-mcus.def: Add text section start for all devices.
18467         (ata5782): Add new avr5 device.
18468         (ata5831): Same.
18469         * config/avr/avr-tables.opt: Regenerate.
18470         * config/avr/avr.h: Add declaration for text section start handler.
18471         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
18472         SPEC functions.
18473         (LINK_SPEC): Include text section start handler to linker spec.
18474         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
18475         pass -Ttext option to linker if the text section start for the device
18476         is not zero.
18477         * config/avr/t-multilib: Regenerate.
18478         * doc/avr-mmcu.texi: Regenerate.
18479
18480 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
18481
18482         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
18483         * config/rs6000/aix52.h (LINK_SPEC): Same.
18484         * config/rs6000/aix53.h (LINK_SPEC): Same.
18485         * config/rs6000/aix61.h (LINK_SPEC): Same.
18486         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
18487
18488 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
18489
18490         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
18491         (graphite_verify): New function.
18492         (ivs_params_clear): New function.
18493         (gcc_expression_from_isl_ast_expr_id): New function.
18494         (gcc_expression_from_isl_expr_int): New function.
18495         (binary_op_to_tree): New function.
18496         (ternary_op_to_tree): New function.
18497         (unary_op_to_tree): New function.
18498         (nary_op_to_tree): New function.
18499         (gcc_expression_from_isl_expr_op): New function.
18500         (gcc_expression_from_isl_expression): New function.
18501         (graphite_create_new_loop): New function.
18502         (translate_isl_ast_for_loop): New function.
18503         (get_upper_bound): New function.
18504         (graphite_create_new_loop_guard): New function.
18505         (translate_isl_ast_node_for): New function.
18506         (translate_isl_ast): New function.
18507         (add_parameters_to_ivs_params): New function.
18508         (scop_to_isl_ast): New parameter ip.
18509         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
18510
18511 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18512
18513         * config/xtensa/predicates.md (call expander): Update for
18514         DECL_SECTION_NAME being string.
18515
18516 2014-07-11  Richard Biener  <rguenther@suse.de>
18517
18518         PR middle-end/61473
18519         * builtins.c (fold_builtin_memory_op): Inline memory moves that
18520         can be implemented with a single load followed by a single store.
18521         (c_strlen): Only warn when only_value is not 2.
18522
18523 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
18524
18525         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
18526
18527 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
18528
18529         PR target/61561
18530         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
18531         (*movhi_bytes): Likewise.
18532         (*arm_movqi_insn): Likewise.
18533
18534 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
18535
18536         PR target/56858
18537         * config/alpha/alpha.c: Include tree-pass.h, context.h
18538         and pass_manager.h.
18539         (pass_data_handle_trap_shadows): New pass.
18540         (pass_handle_trap_shadows::gate): New pass gate function.
18541         (make_pass_handle_trap_shadows): New function.
18542         (rest_of_handle_trap_shadows): Ditto.
18543
18544         (alpha_align_insns_1): Rename from alpha_align_insns.
18545         (pass_data_align_insns): New pass.
18546         (pass_align_insns::gate): New pass gate function.
18547         (make_pass_aling_insns): New function.
18548         (rest_of_align_insns): Ditto.
18549         (alpha_align_insns): Ditto.
18550
18551         (alpha_option_override): Declare handle_trap_shadows info
18552         and align_insns_info.  Register handle_trap_shadows and align_insns
18553         passes here.
18554         (alpha_reorg): Do not call alpha_trap_shadows and
18555         alpha_align_insn from here.
18556
18557         (alpha_pad_function_end): Do not skip BARRIERs.
18558
18559 2014-07-10  Rong Xu  <xur@google.com>
18560
18561         Add gcov-tool: an offline gcda profile processing tool support.
18562         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
18563         (gcov_is_error): Ditto.
18564         (gcov_read_string): Ditto.
18565         (gcov_read_sync): Ditto.
18566         * gcov-io.h: Move counter defines to gcov-counter.def.
18567         * gcov-dump.c (tag_counters): Use gcov-counter.def.
18568         * coverage.c: Ditto.
18569         * gcov-tool.c: Offline gcda profile processing tool.
18570         (unlink_gcda_file): Remove one gcda file.
18571         (unlink_profile_dir): Remove gcda files from the profile path.
18572         (gcov_output_files): Output gcda files to an output dir.
18573         (profile_merge): Merge two profiles in directory.
18574         (print_merge_usage_message): Print merge usage.
18575         (merge_usage): Print merge usage and exit.
18576         (do_merge): Driver for profile merge sub-command.
18577         (profile_rewrite): Rewrite profile.
18578         (print_rewrite_usage_message): Print rewrite usage.
18579         (rewrite_usage): Print rewrite usage and exit.
18580         (do_rewrite): Driver for profile rewrite sub-command.
18581         (print_usage): Print gcov-info usage and exit.
18582         (print_version): Print gcov-info version.
18583         (process_args): Process arguments.
18584         (main): Main routine for gcov-tool.
18585         * Makefile.in: Build and install gcov-tool.
18586         * gcov-counter.def: New file split from gcov-io.h.
18587         * doc/gcc.texi: Include gcov-tool.texi.
18588         * doc/gcov-tool.texi: Document for gcov-tool.
18589
18590 2014-07-10  Richard Biener  <rguenther@suse.de>
18591
18592         PR tree-optimization/61757
18593         * tree-ssa-dom.c (loop_depth_of_name): Restore.
18594         (propagate_rhs_into_lhs): Revert part of last change.
18595
18596 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
18597
18598         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
18599         FUNCTION_DECLs.
18600
18601 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
18602
18603         PR middle-end/53590
18604         * function.c (allocate_struct_function): Revert r188667 change.
18605
18606         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
18607
18608 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
18609
18610         * doc/install.texi: Remove links to defunct package providers for
18611         Solaris.
18612
18613 2014-07-09  Tom de Vries  <tom@codesourcery.com>
18614
18615         * final.c (get_call_fndecl): Declare.
18616         (self_recursive_call_p): New function.
18617         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
18618
18619 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18620
18621         * ipa-devirt.c (record_node): Walk through aliases.
18622
18623 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18624
18625         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
18626
18627 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18628
18629         Revert:
18630         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
18631
18632 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18633
18634         * ipa-visibility.c (function_and_variable_visibility): Remove
18635         temporary hack disabling local aliases on AIX.
18636
18637 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18638
18639         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
18640         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
18641
18642 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18643
18644         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
18645         * rs6000/rs6000.c: Inline output of .set instruction.
18646         (declare_alias_data): New struct.
18647         (rs6000_declare_alias): New function.
18648         (rs6000_xcoff_declare_function_name): Use it.
18649         (rs6000_xcoff_declare_object_name): New function.
18650         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
18651         (ASM_OUTPUT_DEF): Turn to empty definition.
18652
18653 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18654
18655         PR bootstrap/61679
18656         * hash-table.h: use hash_table::value_type instead of
18657         Descriptor::value_type in the return types of several methods.
18658
18659 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18660
18661         * tree-pass.h (pass_data): Remove has_execute member.
18662         * passes.c (execute_one_pass): Don't check pass->has_execute.
18663         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
18664         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
18665         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
18666         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
18667         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
18668         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
18669         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
18670         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
18671         gimple-low.c, gimple-ssa-isolate-paths.c,
18672         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
18673         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
18674         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
18675         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
18676         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
18677         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
18678         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
18679         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
18680         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
18681         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
18682         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
18683         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18684         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
18685         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
18686         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
18687         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
18688         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
18689         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
18690         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
18691         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
18692         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
18693         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
18694         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
18695         web.c: Remove initializer for pass_data::has_execute.
18696
18697 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18698
18699         * graphite-htab.h: Use hash_map instead of hash_table.
18700         * graphite-clast-to-gimple.c: Adjust.
18701         * passes.c: Use hash_map instead of hash_table.
18702         * sese.c: Likewise.
18703         * sese.h: Remove now unused code.
18704
18705 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
18706
18707         PR target/61599
18708         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
18709         than zero.
18710
18711 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18712
18713         PR rtl-optimization/61673
18714         * combine.c (simplify_comparison): Test just mode's sign bit
18715         in tmode rather than the sign bit and any bits above it.
18716
18717 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
18718
18719         * graphite-isl-ast-to-gimple.c (generate_isl_context):
18720         Add __isl_give to the declaration.
18721         (generate_isl_schedule): Likewise.
18722         (scop_to_isl_ast): Likewise.
18723
18724 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18725
18726         * config/arm/arm.c (cortexa5_extra_costs): New table.
18727         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
18728
18729 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18730
18731         PR tree-optimization/61725
18732         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
18733         range, use range_includes_zerop_p instead of integer_zerop on
18734         vr0->min, only use log2 of max if min is not negative.
18735
18736 2014-07-08  Richard Biener  <rguenther@suse.de>
18737
18738         * tree-ssa-dom.h (loop_depth_of_name): Remove.
18739         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
18740         restriction on loop depth difference.
18741         (record_equality): Likewise.
18742         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
18743         (loop_depth_of_name): Remove.
18744         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
18745         restriction on loop depth difference.
18746         (init_copy_prop): Likewise.
18747
18748 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18749
18750         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
18751         parameter.
18752         (walk_aliased_vdefs): Likewise.
18753         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
18754         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
18755         (detect_type_change_from_memory_writes): Check if entry was reached.
18756
18757 2014-07-08  Richard Biener  <rguenther@suse.de>
18758
18759         PR tree-optimization/61681
18760         * tree-ssa-structalias.c (find_what_var_points_to): Expand
18761         NONLOCAL inside ESCAPED.
18762
18763 2014-07-08  Richard Biener  <rguenther@suse.de>
18764
18765         PR tree-optimization/61680
18766         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18767         Handle properly all read-write dependences with group accesses.
18768
18769 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
18770
18771         PR tree-optimization/61576
18772         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
18773         block containing reduction statement is predecessor of phi basi block.
18774
18775 2014-07-08  Marek Polacek  <polacek@redhat.com>
18776
18777         PR c/60226
18778         * fold-const.c (round_up_loc): Change the parameter type.
18779         Remove assert.
18780         * fold-const.h (round_up_loc): Adjust declaration.
18781         * stor-layout.c (finalize_record_size): Check for too large types.
18782
18783 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
18784
18785         * symtab.c: Include calls.h.
18786         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
18787
18788 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
18789
18790         * config/rs6000/rs6000.c (output_vec_const_move): Handle
18791         little-endian code generation.
18792         * config/rs6000/spe.md (spe_evmergehi): Rename to...
18793         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
18794         (spe_evmergehilo): Rename to...
18795         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
18796         (spe_evmergelo): Rename to...
18797         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
18798         (spe_evmergelohi): Rename to...
18799         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
18800         (spe_evmergehi, spe_evmergehilo): New expanders.
18801         (spe_evmergelo, spe_evmergelohi): Likewise.
18802         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
18803         (*frob_tf_ti): Likewise.
18804         (*frob_<mode>_di_2): Likewise.
18805         (*frob_tf_di_8_2): Likewise.
18806         (*frob_di_<mode>): Likewise.
18807         (*frob_ti_tf): Likewise.
18808         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
18809         (*frob_ti_<mode>_8_2): Likewise.
18810         (*frob_ti_tf_2): Likewise.
18811         (mov_si<mode>_e500_subreg0): Rename to...
18812         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
18813         endianness only.
18814         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
18815         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
18816         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
18817         the big endianness only.
18818         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
18819         (*mov_si<mode>_e500_subreg0_2): Rename to...
18820         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
18821         big big endianness only.
18822         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
18823         (*mov_si<mode>_e500_subreg4): Rename to...
18824         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
18825         endianness only.
18826         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
18827         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
18828         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
18829         the big endianness only.
18830         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
18831         pattern.
18832         (*mov_si<mode>_e500_subreg4_2): Rename to...
18833         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
18834         endianness only.
18835         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
18836         (*mov_sitf_e500_subreg8): Rename to...
18837         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
18838         endianness only.
18839         (*mov_sitf_e500_subreg8_le): New instruction pattern.
18840         (*mov_sitf_e500_subreg8_2): Rename to...
18841         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
18842         endianness only.
18843         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
18844         (*mov_sitf_e500_subreg12): Rename to...
18845         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
18846         endianness only.
18847         (*mov_sitf_e500_subreg12_le): New instruction pattern.
18848         (*mov_sitf_e500_subreg12_2): Rename to...
18849         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
18850         endianness only.
18851         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
18852
18853 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18854
18855         * asan.c (instrument_strlen_call): Do not instrument first byte
18856         in strlen if already instrumented.
18857
18858 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18859
18860         * config/arm/arm.opt (mwords-little-endian): Delete.
18861         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
18862         of TARGET_LITTLE_WORDS.
18863         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
18864         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
18865         warning.
18866         * doc/invoke.texi: Remove references to -mwords-little-endian.
18867
18868 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
18869
18870         * expmed.c (struct init_expmed_rtl): Change all fields but
18871         pow2 and cint from struct rtx_def to rtx.
18872         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
18873         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
18874         at the end again.
18875
18876 2014-07-06  Marek Polacek  <polacek@redhat.com>
18877
18878         PR c/6940
18879         * doc/invoke.texi: Document -Wsizeof-array-argument.
18880
18881 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
18882
18883         * wide-int.h (wide_int_storage): Change declaration from struct
18884         to class.
18885
18886 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
18887
18888         * cgraph.c (cgraph_create_indirect_edge): Update call of
18889         get_polymorphic_call_info.
18890         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
18891         (possible_polymorphic_call_targets): Add parameter call.
18892         (decl_maybe_in_construction_p): New predicate.
18893         (get_polymorphic_call_info): Add parameter call;
18894         use decl_maybe_in_construction_p.
18895         * gimple-fold.c (fold_gimple_assign): Update use of
18896         possible_polymorphic_call_targets.
18897         (gimple_fold_call): Likewise.
18898         * ipa-prop.c: Inlcude calls.h
18899         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
18900         (param_type_may_change_p): New predicate.
18901         (detect_type_change_from_memory_writes): Break out from ...
18902         (detect_type_change): ... this one; use param_type_may_change_p.
18903         (detect_type_change_ssa): Use param_type_may_change_p.
18904         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
18905
18906 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
18907
18908         PR target/49423
18909         * config/arm/arm-protos.h (arm_legitimate_address_p,
18910         arm_is_constant_pool_ref): Add prototypes.
18911         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
18912         (arm_is_constant_pool_ref) New function.
18913         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
18914         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
18915         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
18916         operand. Remove pool_range and neg_pool_range attributes.
18917         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
18918         pool_range and neg_pool_range attributes.
18919         * config/arm/constraints.md (Uh): New constraint.
18920         (Uq): Don't allow constant pool references.
18921
18922 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
18923
18924         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
18925         (move_lo_quad_internal_be_<mode>): Likewise.
18926         (move_lo_quad_<mode>): Convert to define_expand.
18927         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
18928         (aarch64_simd_move_hi_quad_be_<mode>): New.
18929         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
18930         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
18931         (aarch64_combinez_be<mode>): New.
18932         (aarch64_combine<mode>): Convert to define_expand.
18933         (aarch64_combine_internal<mode>): New.
18934         (aarch64_simd_combine<mode>): Remove bogus RTL description.
18935
18936 2014-07-04  Tom de Vries  <tom@codesourcery.com>
18937
18938         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
18939         combination of earlyclobber and read/write modifiers.
18940
18941 2014-07-04  Tom de Vries  <tom@codesourcery.com>
18942
18943         * config/aarch64/aarch64-simd.md
18944         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
18945
18946 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
18947
18948         PR target/61714
18949         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
18950
18951 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
18952
18953         PR middle-end/61654
18954         * cgraphunit.c (expand_thunk): Call free_dominance_info.
18955
18956         PR tree-optimization/61684
18957         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
18958         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
18959
18960 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18961             Kito Cheng  <kito@0xlab.org>
18962             Monk Chiang  <sh.chiang04@gmail.com>
18963
18964         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
18965         (nds32_symbol_load_store_p): Move to ...
18966         (nds32_fp_as_gp_check_available): Move to ...
18967         * config/nds32/nds32-fp-as-gp.c: ... here.
18968         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
18969         extern declaration.
18970
18971 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18972             Kito Cheng  <kito@0xlab.org>
18973             Monk Chiang  <sh.chiang04@gmail.com>
18974
18975         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
18976         (nds32_expand_store_multiple): Move to ...
18977         (nds32_expand_movmemqi): Move to ...
18978         * config/nds32/nds32-memory-manipulation.c: ... here.
18979
18980 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18981             Kito Cheng  <kito@0xlab.org>
18982             Monk Chiang  <sh.chiang04@gmail.com>
18983
18984         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
18985         (nds32_output_casesi_pc_relative): Move to ...
18986         (nds32_output_casesi): Move to ...
18987         (nds32_mem_format): Move to ...
18988         (nds32_output_16bit_store): Move to ...
18989         (nds32_output_16bit_load): Move to ...
18990         (nds32_output_32bit_store): Move to ...
18991         (nds32_output_32bit_load): Move to ...
18992         (nds32_output_32bit_load_s): Move to ...
18993         (nds32_output_stack_push): Move to ...
18994         (nds32_output_stack_pop): Move to ...
18995         * config/nds32/nds32-md-auxiliary.c: ... here.
18996
18997 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18998             Ling-Hua Tseng  <uranus@tinlans.org>
18999
19000         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19001         the purpose of this file.
19002
19003 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19004             Kito Cheng  <kito@0xlab.org>
19005             Monk Chiang  <sh.chiang04@gmail.com>
19006
19007         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19008         (nds32_address_cost): Move implementation to ...
19009         * config/nds32/nds32-cost.c: ... here.
19010         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19011         (nds32_address_cost_impl): Declare.
19012
19013 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19014             Kito Cheng  <kito@0xlab.org>
19015             Monk Chiang  <sh.chiang04@gmail.com>
19016
19017         * config/nds32/nds32.c
19018         (nds32_consecutive_registers_load_store_p): Move to ...
19019         (nds32_valid_multiple_load_store): Move to ...
19020         (nds32_valid_stack_push_pop): Move to ...
19021         (nds32_can_use_bclr_p): Move to ...
19022         (nds32_can_use_bset_p): Move to ...
19023         (nds32_can_use_btgl_p): Move to ...
19024         (nds32_can_use_bitci_p): Move to ...
19025         * config/nds32/nds32-predicates.c: ... here.
19026
19027 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19028             Kito Cheng  <kito@0xlab.org>
19029             Monk Chiang  <sh.chiang04@gmail.com>
19030
19031         * config/nds32/nds32.c
19032         (nds32_expand_builtin_null_ftype_reg): Move to ...
19033         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19034         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19035         (nds32_init_builtins): Move implementation to ...
19036         (nds32_expand_builtin): Move implementation to ...
19037         * config/nds32/nds32-intrinsic.c: ... here.
19038         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19039         (nds32_expand_builtin_impl): Declare.
19040
19041 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19042             Kito Cheng  <kito@0xlab.org>
19043             Monk Chiang  <sh.chiang04@gmail.com>
19044
19045         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19046         (nds32_emit_section_tail_template): Move to ...
19047         (nds32_emit_isr_jmptbl_section): Move to ...
19048         (nds32_emit_isr_vector_section): Move to ...
19049         (nds32_emit_isr_reset_conten): Move to ...
19050         (nds32_check_isr_attrs_conflict): Move to ...
19051         (nds32_construct_isr_vectors_information): Move to ...
19052         (nds32_asm_file_start): Move implementation to ...
19053         (nds32_asm_file_end): Move implementation to ...
19054         * config/nds32/nds32-isr.c: ... here.
19055         * config/nds32/nds32-protos.h
19056         (nds32_check_isr_attrs_conflict): Declare.
19057         (nds32_construct_isr_vectors_information): Declare.
19058         (nds32_asm_file_start_for_isr): Declare.
19059         (nds32_asm_file_end_for_isr): Declare.
19060
19061 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19062             Kito Cheng  <kito@0xlab.org>
19063             Monk Chiang  <sh.chiang04@gmail.com>
19064
19065         * config.gcc (nds32*): Add new modules to extra_objs.
19066         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19067         (nds32be-*-*): Likewise.
19068         * config/nds32/nds32-cost.c: New file.
19069         * config/nds32/nds32-fp-as-gp.c: New file.
19070         * config/nds32/nds32-intrinsic.c: New file.
19071         * config/nds32/nds32-isr.c: New file.
19072         * config/nds32/nds32-md-auxiliary.c: New file.
19073         * config/nds32/nds32-memory-manipulation.c: New file.
19074         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19075         * config/nds32/nds32-predicates.c: New file.
19076         * config/nds32/t-nds32: New file.
19077
19078 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19079
19080         PR tree-optimization/61682
19081         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19082         using cases and when one of the operands is equal to 1.
19083
19084 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19085
19086         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19087         ashr<mode>3): Correct mode of operands[2].
19088         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19089         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19090         Correct mode of operands[2].  Fix split condition.
19091
19092 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19093
19094         * arm.md (arch): Add armv6_or_vfpv3.
19095         (arch_enabled): Add test for the above.
19096         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19097         on VFP9.
19098         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19099
19100 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19101
19102         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19103         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19104         HWI 1 and negate the unsigned value.
19105         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19106         use AND instead of shift.
19107         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19108
19109 2014-07-03  Marek Polacek  <polacek@redhat.com>
19110
19111         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19112         (-fsanitize=float-divide-by-zero): Move to the table with
19113         -fsanitize=undefined suboptions.
19114         (-fsanitize=float-cast-overflow): Likewise.
19115
19116 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19117
19118         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19119         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19120         endianness.
19121
19122 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19123
19124         * loop-invariant.c (struct invariant): Add a new member: eqno;
19125         (find_identical_invariants): Update eqno;
19126         (create_new_invariant): Init eqno;
19127         (get_inv_cost): Compute comp_cost with eqno;
19128
19129 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19130
19131         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19132         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19133         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19134         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19135         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19136
19137 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19138
19139         PR target/29349
19140         PR target/53513
19141         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19142         (make_preds_opaque): Delete.
19143         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19144         (commit_mode_sets): New function.
19145         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19146         Process all modes at once.
19147         * basic-block.h (pre_edge_lcm_avs): Declare.
19148         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19149         Call clear_aux_for_edges. Fix comments.
19150         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19151         (pre_edge_rev_lcm): Idem.
19152         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19153         parameter.
19154         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19155         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19156         Idem.
19157         * config/i386/i386.c (x96_emit_mode_set): Idem.
19158         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19159         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19160         (fpscr_toggle) Disallow from delay slot.
19161         * target.def (emit_mode_set): Add prev_mode parameter.
19162         * doc/tm.texi: Regenerate.
19163
19164 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19165
19166         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19167         variable i.
19168
19169 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19170
19171         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19172         vtable_pointer_value_to_vtable): Constify.
19173         (contains_polymorphic_type_p): Declare.
19174         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19175         vtable_pointer_value_to_vtable): Constify.
19176         (contains_polymorphic_type_p): New predicate.
19177         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19178         polymorphic types.
19179         (ipa_set_ancestor_jf): Likewise.
19180         (detect_type_change): Return false in easy cases.
19181         (compute_complex_assign_jump_func): Require type to contain
19182         polymorphic type.
19183         (compute_known_type_jump_func): Likewise.
19184
19185 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19186
19187         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19188         Remove.
19189         (type_in_anonymous_namespace_p): Constify argument.
19190         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19191         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19192         (main_odr_variant): New function.
19193         (hash_type_name): Make static; update assert; do not ICE on
19194         non-records.
19195         (types_same_for_odr): Bring here from tree.c; simplify and remove
19196         old structural comparing code that doesn't work for templates.
19197         (odr_hasher::equal): Update assert.
19198         (add_type_duplicate): Return true when bases should be computed;
19199         replace incomplete loader by complete; do not output duplicated
19200         warnings; do not ICE on non-records; set odr_violated flag.
19201         (get_odr_type): Be ready to replace incomplete type by complete
19202         one; work on ODR variants instead of main variants; reorder item
19203         in array so bases have still smaller indexes.
19204         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19205         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19206
19207 2014-07-01  Cary Coutant  <ccoutant@google.com>
19208
19209         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19210         lookup.
19211         (resolve_addr_in_expr): When replacing the rtx in a location list
19212         entry, get a new address table entry.
19213         (dwarf2out_finish): Call index_location_lists even if there are no
19214         addr_index_table entries yet.
19215
19216 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19217
19218         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19219         change for not being obvious.
19220
19221 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19222
19223         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19224         unused argument.
19225
19226 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19227
19228         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19229         (vcagt_f64): Likewise.
19230         (vcale_f64): Likewise.
19231         (vcaled_f64): Likewise.
19232         (vcales_f32): Likewise.
19233         (vcalt_f64): Likewise.
19234         (vcaltd_f64): Likewise.
19235         (vcalts_f32): Likewise.
19236
19237 2014-07-01  Marek Polacek  <polacek@redhat.com>
19238
19239         * doc/invoke.texi: Document -Wint-conversion.
19240
19241 2014-07-01  Marek Polacek  <polacek@redhat.com>
19242
19243         PR c/58286
19244         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19245
19246 2014-07-01  Martin Liska  <mliska@suse.cz>
19247
19248         IPA REF alias refactoring
19249         * cgraph.h (iterate_direct_aliases): New function.
19250         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19251         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19252         FOR_EACH_ALIAS added.
19253         (cgraph_for_node_and_aliases): Likewise.
19254         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19255         * ipa-inline.c (reset_edge_caches): Likewise.
19256         (update_caller_keys): Likewise.
19257         * trans-mem.c (ipa_tm_execute): Likewise.
19258         *varpool.c (varpool_analyze_node): Likewise.
19259         (varpool_for_node_and_aliases): Likewise.
19260         * ipa-ref.h (first_alias): New function.
19261         (last_alias): Likewise.
19262         (has_aliases_p): Likewise.
19263         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19264         is sensitive to IPA_REF_ALIASes.
19265         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19266         are put at the beginning of the list.
19267         (symtab_node::iterate_direct_aliases): New function.
19268
19269 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19270
19271         Revert:
19272         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19273         type is complete.
19274         (write_ts_type_common_tree_pointers): Do not stream fields not set
19275         for incomplete types; do not stream duplicated fields for variants;
19276         sanity check that variant and type match.
19277         (write_ts_type_non_common_tree_pointers): Likewise.
19278         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19279         TYPE_SIZE whether type is complete.
19280         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19281         write_ts_type_common_tree_pointers
19282         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19283
19284 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19285
19286         * var-tracking.c (add_stores): Return instead of asserting if old
19287         and new values for conditional store are the same.
19288
19289 2014-06-30  Richard Henderson  <rth@redhat.com>
19290
19291         PR rtl-opt/61608
19292         PR target/39284
19293         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19294         the cfg if there were any changes.
19295         * passes.def: Revert move of peephole2 after reorder_blocks;
19296         move duplicate_computed_gotos before peephole2.
19297
19298 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19299
19300         * except.c (emit_note_eh_region_end): New helper function.
19301         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19302         emit EH_REGION_END note.
19303         * jump.c (cleanup_barriers): Do not split a call and its
19304         corresponding CALL_ARG_LOCATION note.
19305
19306 2014-06-30  Jeff Law  <law@redhat.com>
19307
19308         PR tree-optimization/61607
19309         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19310         deeper into the SSA_NAME_VALUE chain.
19311
19312 2014-06-30  Marek Polacek  <polacek@redhat.com>
19313
19314         * convert.c (convert_to_integer): Don't instrument conversions if the
19315         function has no_sanitize_undefined attribute.
19316         * ubsan.c: Don't run the ubsan pass if the function has
19317         no_sanitize_undefined attribute.
19318
19319 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19320
19321         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19322         -fsanitize=undefined suboptions.
19323
19324 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19325
19326         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19327         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19328         against bigendian and adjust indices.
19329
19330 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19331
19332         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19333
19334 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19335
19336         PR target/61633
19337         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19338         Add alternative; make early clobber.  Adjust both split patterns
19339         to use operand 0 as the working register.
19340
19341 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19342
19343         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19344         as ira_object_id_map might be NULL, or 1.
19345
19346 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19347
19348         * loop-invariant.c (get_inv_cost): Handle register class.
19349         (gain_for_invariant): Check the register pressure of the inv
19350         and its overlapped register class, other than all.
19351
19352 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19353
19354         * doc/invoke.texi (Optimize Options): Fix descriptions of
19355         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19356
19357 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
19358
19359         * doc/extend.texi (Function Attributes): Update 'naked' attribute
19360         documentation.
19361
19362 2014-06-29  Tobias Grosser <tobias@grosser.es>
19363
19364         PR bootstrap/61650
19365         * graphite-isl-ast-to-gimple.c: Add missing guards.
19366
19367 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19368
19369         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19370         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19371         * flag-types.h: Add new enum fgraphite_generator.
19372         * graphite-isl-ast-to-gimple.c: New.
19373         * graphite-isl-ast-to-gimple.h: New.
19374         * graphite.c (graphite_transform_loops): Add choice of Graphite
19375         code generator, which depends on flag_graphite_code_gen.
19376
19377 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19378
19379         * graphite-dependences.c (subtract_commutative_associative_deps):
19380         Add NULL checking of the following variables: must_raw_no_source,
19381         may_raw_no_source, must_war_no_source, may_war_no_source,
19382         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19383         must_war, may_war, must_waw, may_waw.
19384
19385 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19386
19387         * graphite-clast-to-gimple.c: gloog is renamed to
19388         graphite_regenerate_ast_cloog.  gloog_error is renamed to
19389         graphite_regenerate_error.
19390         * graphite-clast-to-gimple.h: The definition of the struct
19391         bb_pbb_def is moved to graphite-htab.h.
19392         Add inclusion of the hash-table.h.
19393         * graphite-htab.h: The declaration of the function gloog is moved
19394         to graphite-clast-to-gimple.h and renamed to
19395         graphite_regenerate_ast_cloog.
19396         * graphite.c (graphite_transform_loops): gloog is renamed
19397         to graphite_regenerate_ast_cloog.
19398
19399 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19400
19401         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19402         type is complete.
19403         (write_ts_type_common_tree_pointers): Do not stream fields not set
19404         for incomplete types; do not stream duplicated fields for variants;
19405         sanity check that variant and type match.
19406         (write_ts_type_non_common_tree_pointers): Likewise.
19407         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19408         TYPE_SIZE whether type is complete.
19409         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19410         write_ts_type_common_tree_pointers
19411         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19412
19413 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19414
19415         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
19416
19417 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19418
19419         * tree-inline.c (remap_type_1): Do not duplicate fields
19420         that are shared in between type and its main variant.
19421
19422 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19423
19424         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
19425         of the type.
19426         (ipa_set_ancestor_jf) Likewise.
19427         (check_stmt_for_type_change): Check that we work on main variant.
19428         (detect_type_change): Look into main variant.
19429         (compute_known_type_jump_func): Check that main variant has BINFO.
19430
19431 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19432
19433         * ipa-devirt.c (set_type_binfo): New function.
19434         (add_type_duplicate): Use it.
19435         (get_odr_type): Sanity check that binfos points to main variants.
19436         (get_class_context): Be sure the context's outer_type is main variant.
19437         (contains_type_p): Walk main variant.
19438         (get_polymorphic_call_info_for_decl): Set outer_type to be
19439         main variant.
19440         (get_polymorphic_call_info): Likewise.
19441         (possible_polymorphic_call_targets): Sanity check that we operate
19442         on main variant.
19443
19444 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19445
19446         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19447
19448 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19449
19450         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
19451         accidental change due to wide-int branch merge.
19452
19453 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19454
19455         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
19456         compressed debug support.
19457         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
19458         * configure: Regenerate.
19459         * config.in: Regenerate.
19460         * common.opt (compressed_debug_sections): New enum.
19461         (gz, gz=): New options.
19462         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
19463         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
19464         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
19465         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
19466         LINK_COMPRESS_DEBUG_SPEC.
19467         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
19468         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
19469         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
19470         (Debugging Options): Document -gz[=type].
19471
19472 2014-06-27  Martin Jambor  <mjambor@suse.cz>
19473
19474         PR ipa/61160
19475         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
19476         args_to_skip, use those from node instead.  Copy args_to_skip and
19477         combined_args_to_skip from node to the new thunk.
19478         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
19479         (cgraph_create_virtual_clone): Moved computation of
19480         combined_args_to_skip...
19481         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
19482
19483 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
19484
19485         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
19486         redundant diagnostic machinary.
19487
19488 2014-06-27  Richard Biener  <rguenther@suse.de>
19489
19490         * tree-ssa-math-opts.c (bswap_replace): Fix
19491         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
19492
19493 2014-06-27  Martin Liska  <mliska@suse.cz>
19494
19495         * gimple.h (gimple_location_safe): New function introduced.
19496         * cgraphunit.c (walk_polymorphic_call_targets): Usage
19497         of gimple_location_safe replaces gimple_location.
19498         (gimple_fold_call): Likewise.
19499         * ipa-devirt.c (ipa_devirt): Likewise.
19500         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19501         * ipa.c (walk_polymorphic_call_targets): Likewise.
19502         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
19503
19504 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
19505
19506         PR tree-optimization/57233
19507         PR tree-optimization/61299
19508         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
19509         functions.
19510         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
19511         would be lowered to scalar shifts, check if corresponding
19512         shifts and vector BIT_IOR_EXPR are supported and don't lower
19513         or lower just to narrower vector type in that case.
19514         * expmed.c (expand_shift_1): Fix up handling of vector
19515         shifts and rotates.
19516
19517 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
19518
19519         PR target/61586
19520         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
19521
19522 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
19523
19524         * doc/invoke.texi (-fsemantic-interposition): Document.
19525         * common.opt (fsemantic-interposition): New flag.
19526         * varasm.c (decl_replaceable_p): Use it.
19527
19528 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19529
19530         PR target/61542
19531         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
19532         extraction other than index 3.
19533
19534 2014-06-26  Teresa Johnson  <tejohnson@google.com>
19535
19536         * doc/invoke.texi: Fix typo.
19537         * dumpfile.c: Add support for documented -fdump-* options
19538         optimized/missed/note/optall.
19539
19540 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19541
19542         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
19543         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
19544         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
19545         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
19546         * opts.c (default_options_optimization): Set
19547         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
19548         * doc/invoke.texi (allow-load-data-races)
19549         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
19550         (allow-store-data-races): Document the new default.
19551
19552 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19553
19554         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
19555         renamed to ipa_impossible_devirt_target.  Fix typo.
19556         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
19557         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
19558         ipa_impossible_devirt_target.
19559
19560 2014-06-26  Richard Biener  <rguenther@suse.de>
19561
19562         PR tree-optimization/61607
19563         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
19564         explaining why we restrict copies on loop depth.
19565         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19566         on loop depth.
19567         (record_equivalences_from_phis): Instead add it here.
19568
19569 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
19570
19571         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
19572         (LTO_WRAPPER_OBJS): New variable.
19573         (lto-wrapper$(exeext)): Use it.
19574         * collect2.c: Include "collect-utils.h".
19575         (verbose, debug): Remove variables.
19576         (at_file_supplied): No longer static.
19577         (tool_name): New variable.
19578         (do_wait, fork_execute, maybe_unlink): Don't declare.
19579         (tool_cleanup): No longer static.
19580         (notice): Remove function.
19581         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
19582         fork_execute calls.
19583         (collect_wait, do_wait, collect_execute): Remove functions.
19584         (maybe_unlink): No longer static.
19585         * collect2.h (verbose, debug): Don't declare.
19586         (at_file_supplied): Declare.
19587         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
19588         changed.
19589         (collect_execute): Replace with implementation from collect2, plus a
19590         new arg use_atfile.  All callers changed.
19591         (collect_wait): Replace with implementation from collect2.
19592         (maybe_unlink_file): Remove function.
19593         (fork_execute): Replace with implementation from collect2, plus a
19594         new arg use_atfile.  All callers changed.
19595         (do_wait): Add call to utils_cleanup to the error path.
19596         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
19597         (tool_cleanup): Adjust declarations.
19598         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
19599         * tlink.c: Include "collect-utils.h".
19600         (tlink_execute): New arg use_atfile.  All callers changed.
19601         (tlink_init, tlink_execute): Remove declarations.
19602
19603         * collect-utils.c (save_temps): New variable.
19604         (do_wait): Use it instead of debug.  Use fatal_error.
19605         * collect-utils.h (save_temps): Declare.
19606         * collect2.c (verbose): Rename from vflag.  All uses changed.
19607         (tool_cleanup): New function, copied from collect_atexit.
19608         (collect_atexit, handler): Just call it.
19609         * collect2.h (verbose): Declaration renamed from vflag.
19610         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
19611         debug.
19612
19613         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
19614         (lto-wrapper$(exeext)): Link with collect-utils.o.
19615         * collect-utils.c: New file.
19616         * collect-utils.h: New file.
19617         * lto-wrapper.c: Include "collect-utils.h".
19618         (args_name): Delete variable.
19619         (tool_name): New variable.
19620         (tool_cleanup): New function.
19621         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
19622         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
19623         (fork_execute): Remove functions.
19624
19625 2014-06-26  Nick Clifton  <nickc@redhat.com>
19626
19627         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
19628
19629         * doc/extend.texi (Function Attributes): Fix typo in description
19630         of RX vector attribute.
19631
19632 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
19633
19634         * config.gcc (supported_defaults): Error when passing either
19635         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
19636
19637 2014-06-26  Richard Biener  <rguenther@suse.de>
19638
19639         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19640         propagating volatile pointers.
19641
19642 2014-06-26  Richard Biener  <rguenther@suse.de>
19643
19644         PR tree-optimization/61607
19645         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
19646         loop if we redirected its latch edge.
19647         (thread_block_1): Do not cancel loops prematurely.
19648
19649 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
19650
19651         * toplev.c (backend_init_target): Move init_emit_regs and
19652         init_regs to...
19653         (backend_init) ... here; skip ira_init_once and backend_init_target.
19654         (target_reinit) ... and here; clear
19655         this_target_rtl->lang_dependent_initialized.
19656         (lang_dependent_init_target): Clear
19657         this_target_rtl->lang_dependent_initialized;
19658         break out rtl initialization to ...
19659         (initialize_rtl): ... here; call also backend_init_target
19660         and ira_init_once.
19661         * toplev.h (initialize_rtl): New function.
19662         * function.c: Include toplev.h
19663         (init_function_start): Call initialize_rtl.
19664         * rtl.h (target_rtl): Add target_specific_initialized,
19665         lang_dependent_initialized.
19666
19667 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
19668             Jakub Jelinek  <jakub@redhat.com>
19669
19670         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
19671
19672 2014-06-25  Tom de Vries  <tom@codesourcery.com>
19673
19674         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
19675
19676 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19677
19678         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
19679         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
19680         Issue a strict overflow warning if appropriate.
19681
19682 2014-06-25  Martin Liska  <mliska@suse.cz>
19683
19684         IPA REF refactoring
19685         * Makefile.in: Removed header file (ipa-ref-inline.h).
19686         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
19687         called.
19688         (cgraph_speculative_call_info): Likewise.
19689         (cgraph_for_node_thunks_and_aliases): Likewise.
19690         (cgraph_for_node_and_aliases): Likewise.
19691         (verify_cgraph_node): Likewise.
19692         * cgraph.h: Batch of IPA REF functions become member functions of
19693         symtab_node: add_reference, maybe_add_reference, clone_references,
19694         clone_referring, clone_reference, find_reference,
19695         remove_stmt_references, remove_all_references,
19696         remove_all_referring, dump_references, dump_referring,
19697         has_alias_p, iterate_reference, iterate_referring.
19698         * cgraphbuild.c (record_reference): New IPA REF function used.
19699         (record_type_list): Likewise.
19700         (record_eh_tables): Likewise.
19701         (mark_address): Likewise.
19702         (mark_load): Likewise.
19703         (mark_store): Likewise.
19704         (pass_build_cgraph_edges): Likewise.
19705         (rebuild_cgraph_edge): Likewise.
19706         (cgraph_rebuild_references): Likewise.
19707         (pass_remove_cgraph_callee_edges): Likewise.
19708         * cgraphclones.c (cgraph_clone_node): Likewise.
19709         (cgraph_create_virtual_clone): Likewise.
19710         (cgraph_materialize_clone): Likewise.
19711         (cgraph_materialize_all_clones): Likewise.
19712         * cgraphunit.c (cgraph_reset_node): Likewise.
19713         (cgraph_reset_node): Likewise.
19714         (analyze_function): Likewise.
19715         (assemble_thunks_and_aliases): Likewise.
19716         (expand_function): Likewise.
19717         * ipa-comdats.c (propagate_comdat_group): Likewise.
19718         (enqueue_references): Likewise.
19719         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
19720         (create_specialized_node): Likewise.
19721         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
19722         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
19723         * ipa-inline.c (reset_edge_caches): Likewise.
19724         (update_caller_keys): Likewise.
19725         (execute): Likewise.
19726         * ipa-prop.c (remove_described_reference): Likewise.
19727         (propagate_controlled_uses): Likewise.
19728         (ipa_edge_duplication_hook): Likewise.
19729         (ipa_modify_call_arguments): Likewise.
19730         * ipa-pure-const.c (propagate_pure_const): Likewise.
19731         * ipa-ref-inline.h: Header file removed, functions moved
19732         to symtab_node class.
19733         * ipa-ref.c (remove_reference): New class member function.
19734         (cannot_lead_to_return): New class member function.
19735         (referring_ref_list): Likewise.
19736         (referred_ref_list): Likewise.
19737         Rest of functions moved to symtab_node class.
19738         * ipa-ref.h: New member functions remove_reference,
19739         cannot_lead_to_return, referring_ref_list, referred_ref_list added
19740         to ipa_ref class.
19741         ipa_ref_list class has new member functions: first_reference,
19742         first_referring, clear, nreferences.
19743         * ipa-reference.c (analyze_function): New IPA REF function used.
19744         (write_node_summary_p): Likewise.
19745         (ipa_reference_write_optimization_summary): Likewise.
19746         * ipa-split.c (split_function): Likewise.
19747         * ipa-utils.c (ipa_reverse_postorder): Likewise.
19748         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
19749         (function_and_variable_visibility): Likewise.
19750         * ipa.c (has_addr_references_p): Likewise.
19751         (process_references): Argument type changed.
19752         (symtab_remove_unreachable_nodes): New IPA REF function used.
19753         (process_references): Likewise.
19754         (set_writeonly_bit): Likewise.
19755         * lto-cgraph.c: Implementation of new symtab_node member functions
19756         that uses new IPA REF functions.
19757         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
19758         function used.
19759         * lto-streamer-out.c (output_symbol_p): Likewise.
19760         * lto-streamer.h (referenced_from_this_partition_p): Argument type
19761         changed.
19762         * symtab.c: Implementation of new IPA REF API.
19763         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
19764         (ipa_tm_create_version): Likewise.
19765         (ipa_tm_execute): Likewise.
19766         * tree-emutls.c (gen_emutls_addr): Likewise.
19767         * tree-inline.c (copy_bb): Likewise.
19768         (delete_unreachable_blocks_update_callgraph): Likewise.
19769         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
19770         (varpool_for_node_and_aliases): Likewise.
19771
19772 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19773
19774         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
19775
19776 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19777
19778         PR bootstrap/61598
19779         * fold-const.c (fold_checksum_tree): Use a hash_table of const
19780         tree_node * instead of tree_node *.
19781         (fold): Adjust.
19782         (print_fold_checksum): Likewise.
19783         (fold_check_failed): Likewise.
19784         (debug_fold_checksum): Likewise.
19785         (fold_build1_stat_loc): Likewise.
19786         (fold_build2_stat_loc): Likewise.
19787         (fold_build3_stat_loc): Likewise.
19788         (fold_build_call_array_loc): Likewise.
19789
19790 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
19791
19792         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
19793         implementation with call to...
19794         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
19795         function.
19796         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
19797         Declare.
19798
19799 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
19800
19801         PR tree-optimization/57742
19802         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
19803         after replacing the statement.
19804
19805 2014-06-25  Nick Clifton  <nickc@redhat.com>
19806
19807         * config/v850/v850.c (GHS_default_section_names): Change to const
19808         char * type.
19809         (GHS_current_section_names): Likewise.
19810         (v850_insert_attributes): Do not build strings, just assign the
19811         names directly.  Change the type of 'chosen_section' to const
19812         char*.
19813         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
19814         directly to the array entry.
19815         * config/v850/v850.h (GHS_default_section_names): Change to const
19816         char * type.
19817         (GHS_current_section_names): Likewise.
19818
19819 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
19820
19821         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
19822         (LANG_HOOKS_DECLS): Add it.
19823         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
19824         has correct type.
19825         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
19826         * langhooks.h (struct lang_hooks_for_decls): Add
19827         omp_clause_linear_ctor hook.
19828         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
19829         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
19830         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
19831         combined simd loop use omp_clause_linear_ctor hook.
19832
19833 2014-06-24  Cong Hou  <congh@google.com>
19834
19835         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
19836         pattern recognition.
19837         (type_conversion_p): PROMOTION is true if it's a type promotion
19838         conversion, and false otherwise.  Return true if the given expression
19839         is a type conversion one.
19840         * tree-vectorizer.h: Adjust the number of patterns.
19841         * tree.def: Add SAD_EXPR.
19842         * optabs.def: Add sad_optab.
19843         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
19844         * expr.c (expand_expr_real_2): Likewise.
19845         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
19846         * gimple.c (get_gimple_rhs_num_ops): Likewise.
19847         * optabs.c (optab_for_tree_code): Likewise.
19848         * tree-cfg.c (estimate_operator_cost): Likewise.
19849         * tree-ssa-operands.c (get_expr_operands): Likewise.
19850         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
19851         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
19852         * doc/generic.texi: Add document for SAD_EXPR.
19853         * doc/md.texi: Add document for ssad and usad.
19854
19855 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19856
19857         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
19858         qualification in cast.
19859
19860 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
19861
19862         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
19863         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
19864         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
19865         (tree_function_decl): ... here.
19866         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
19867         streaming of vindex to ...
19868         (write_ts_function_decl_tree_pointers): ... here.
19869         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
19870         Do not stream DECL_VINDEX.
19871         (lto_input_ts_function_decl_tree_pointers): Stream it here.
19872
19873 2014-06-24  Catherine Moore  <clm@codesourcery.com>
19874             Sandra Loosemore  <sandra@codesourcery.com>
19875
19876         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
19877         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
19878         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
19879
19880 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19881
19882         * doc/invoke.texi (Warning Options): Remove duplicated
19883         -Wmaybe-uninitialized.
19884
19885 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19886
19887         PR tree-optimization/57742
19888         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
19889         (handle_builtin_malloc, handle_builtin_memset): New functions.
19890         (strlen_optimize_stmt): Call them.
19891         * passes.def: Move strlen after loop+dom but before vrp.
19892
19893 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
19894
19895         PR target/61570
19896         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
19897         model family 6 CPU with has_longmode never use a CPU without
19898         64-bit support.
19899
19900 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
19901
19902         PR target/61570
19903         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
19904         the last change.
19905
19906 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19907
19908         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
19909         * dominance.c (iterate_fix_dominators): Use hash_map instead of
19910         pointer_map.
19911         * hash-map.h: New file.
19912         * ipa-comdats.c: Use hash_map instead of pointer_map.
19913         * ipa.c: Likewise.
19914         * lto-section-out.c: Adjust.
19915         * lto-streamer.h: Replace pointer_map with hash_map.
19916         * symtab.c (verify_symtab): Likewise.
19917         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
19918         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
19919         * tree-streamer.h: Likewise.
19920         * tree-streamer.c: Adjust.
19921         * pointer-set.h: Remove pointer_map.
19922
19923 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19924
19925         * hash-table.h: Add a template arg to choose between storing values
19926         and storing pointers to values, and then provide partial
19927         specializations for both.
19928         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
19929         should store, not the type values should point to.
19930         * tree-into-ssa.c (var_info_hasher): Likewise.
19931         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
19932         * tree-complex.c: Adjust.
19933         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
19934         table instead of int_tree_map *.
19935         * tree-parloops.c: Adjust.
19936         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
19937         type is being stored.
19938         * tree-vectorizer.c: Adjust.
19939
19940 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19941
19942         * hash-table.h: Remove a layer of indirection from hash_table so that
19943         it contains the hash table's data instead of a pointer to the data.
19944         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
19945         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
19946         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
19947         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
19948         fold-const.c, gcse.c, ggc-common.c,
19949         gimple-ssa-strength-reduction.c, gimplify.c,
19950         graphite-clast-to-gimple.c, graphite-dependences.c,
19951         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
19952         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
19953         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
19954         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
19955         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
19956         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
19957         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
19958         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
19959         tree-ssa-live.c, tree-ssa-loop-im.c,
19960         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
19961         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
19962         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
19963         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
19964         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
19965         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
19966         vtable-verify.c, vtable-verify.h: Adjust.
19967
19968 2014-06-24  Richard Biener  <rguenther@suse.de>
19969
19970         PR tree-optimization/61572
19971         * tree-ssa-sink.c (statement_sink_location): Do not sink
19972         loads from hard registers.
19973
19974 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
19975
19976         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
19977         not mentioned in clauses use private clause if the iterator is
19978         declared in #pragma omp for simd, and when adding lastprivate
19979         instead, add it to the outer #pragma omp for too.  Diagnose
19980         if the variable is private in outer context.  For simd collapse > 1
19981         loops, replace all iterators with temporaries.
19982         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
19983         same even in collapse > 1 loops.
19984
19985         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
19986         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
19987         non-NULL.
19988         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
19989         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
19990         non-NULL.
19991         (gimplify_adjust_omp_clauses): Likewise.
19992         * omp-low.c (lower_rec_simd_input_clauses,
19993         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
19994         safelen the same as safelen(1).
19995         * tree-nested.c (convert_nonlocal_omp_clauses,
19996         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
19997         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
19998         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
19999         Fixup handling of GIMPLE_OMP_TARGET.
20000         (convert_tramp_reference_stmt, convert_gimple_call): Handle
20001         GIMPLE_OMP_TARGET.
20002
20003 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
20004
20005         PR tree-optimization/61554
20006         * tree-ssa-propagate.c: Include "bitmap.h".
20007         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20008         properly update constructor/destructor.
20009         (substitute_and_fold_dom_walker::before_dom_children):
20010         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20011         need_eh_cleaup instead.
20012         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20013         need_eh_cleanup.
20014
20015 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20016
20017         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20018         * tree-pass.h (make_pass_ipa_single_use): New pass.
20019         * cgraph.h (used_by_single_function): New flag.
20020         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20021         Stream it.
20022         * passes.def (pass_ipa_single_use): Scedule.
20023         * ipa.c (BOTTOM): New macro.
20024         (meet): New function
20025         (propagate_single_user): New function.
20026         (ipa_single_use): New function.
20027         (pass_data_ipa_single_use): New pass.
20028         (pass_ipa_single_use): New pass.
20029         (pass_ipa_single_use::gate): New gate.
20030         (make_pass_ipa_single_use): New function.
20031
20032 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20033
20034         PR target/39284
20035         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20036         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20037
20038 2014-06-23  Richard Biener  <rguenther@suse.de>
20039
20040         * tree-ssa-loop.c (gate_loop): New function.
20041         (pass_tree_loop::gate): Call it.
20042         (pass_data_tree_no_loop, pass_tree_no_loop,
20043         make_pass_tree_no_loop): New.
20044         * tree-vectorizer.c: Include tree-scalar-evolution.c
20045         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20046         required.
20047         (pass_slp_vectorize::clone): New method.
20048         * timevar.def (TV_TREE_NOLOOP): New.
20049         * tree-pass.h (make_pass_tree_no_loop): Declare.
20050         * passes.def (pass_tree_no_loop): New pass group with
20051         SLP vectorizer.
20052
20053 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20054
20055         PR target/61570
20056         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20057         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20058
20059 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20060
20061         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20062         "yes" where needed.
20063
20064 2014-06-23  Alan Modra  <amodra@gmail.com>
20065
20066         PR bootstrap/61583
20067         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20068         to zero on debug statements.
20069
20070 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20071
20072         PR target/60825
20073         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20074         Ignore third operand if present by marking qualifier_internal.
20075
20076         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20077
20078         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20079         vector extension.
20080         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20081         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20082         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20083         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20084         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20085         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20086         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20087         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20088         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20089         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20090         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20091         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20092         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20093         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20094         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20095         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20096         logic in GCC vector extensions
20097
20098         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20099         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20100         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20101         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20102         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20103         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20104         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20105         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20106         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20107         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20108
20109         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20110
20111         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20112         extensions.
20113
20114         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20115         (vget_low_s64): Use __GET_LOW macro.
20116         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20117         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20118         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20119         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20120         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20121
20122         (vcombine_s64): Use GCC vector extensions; remove cast.
20123         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20124         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20125         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20126         Fix type signature; remove cast.
20127
20128 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20129
20130         PR target/60825
20131         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20132         V1DFmode.
20133         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20134         add V1DFmode
20135         (BUILTIN_VD1): New.
20136         (BUILTIN_VD_RE): Remove.
20137         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20138         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20139         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20140         variant but not df.
20141         (vreinterpretv1df*, vreinterpret*v1df): New.
20142         (vreinterpretdf*, vreinterpret*df): Remove.
20143         * config/aarch64/aarch64-simd.md (aarch64_create,
20144         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20145         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20146         (VD1): New.
20147         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20148         (vcreate_f64): Remove cast, use v1df builtin.
20149         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20150         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20151         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20152         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20153         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20154         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20155         add range check using __builtin_aarch64_im_lane_boundsi.
20156         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20157         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20158         type signature, use gcc vector extensions.
20159         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20160         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20161         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20162         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20163         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20164         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20165         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20166         vreinterpret_u64_f64): Use v1df builtin not df.
20167
20168 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20169
20170         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20171         vector registers.
20172
20173 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20174
20175         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20176         priority directly.
20177
20178 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20179
20180         * loop-invariant.c (pre_check_invariant_p): New function.
20181         (find_invariant_insn): Call pre_check_invariant_p.
20182
20183 2014-06-22  Richard Henderson  <rth@redhat.com>
20184
20185         PR target/61565
20186         * compare-elim.c (struct comparison): Add eh_note.
20187         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20188         a redundant comparison in a different EH region.  Purge EH edges if
20189         necessary.
20190
20191 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20192
20193         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20194         (var_shift): Use it.
20195         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20196         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20197         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20198         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20199         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20200         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20201         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20202         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20203         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20204         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20205         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20206         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20207         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20208         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20209         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20210         *rotldi3_internal15be): Use the new attribute.  Merge register and
20211         integer alternatives.
20212
20213 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20214
20215         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20216         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20217         split, *ashrdi3_internal3 and split): Delete, merge into...
20218         (ashr<mode>3): New expander.
20219         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20220         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20221
20222 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20223
20224         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20225         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20226         *rotldi3_internal3 and split): Delete, merge into...
20227         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20228         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20229         Use "rotlw" extended mnemonic.
20230
20231 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20232
20233         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20234         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20235         and split, *ashldi3_internal3 and split): Delete, merge into...
20236         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20237         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20238
20239 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20240
20241         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20242         (lshrsi3, two anonymous define_insns and define_splits,
20243         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20244         *lshrdi3_internal3 and split): Delete, merge into...
20245         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20246         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20247
20248 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20249
20250         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20251         Remove "O" alternative.
20252
20253 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20254
20255         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20256         (mips_move_from_gpr_cost): Likewise.
20257         (mips_register_move_cost): Update accordingly.
20258         (mips_secondary_reload_class): Remove name of in_p.
20259
20260 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20261
20262         PR target/61503
20263         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20264         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20265
20266 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20267
20268         * config/nios2/nios2.c: Include "builtins.h".
20269
20270 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20271
20272         * cgraph.h (tls_model_names): New variable.
20273         * print-tree.c (print_node): Simplify.
20274         * varpool.c (tls_model_names): New variable.
20275         (dump_varpool_node): Output tls model.
20276
20277 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20278
20279         * ipa-visibility.c (function_and_variable_visibility): Disable
20280         temporarily local aliases for some targets.
20281
20282 2014-06-20  Marek Polacek  <polacek@redhat.com>
20283
20284         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20285         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20286         into SANITIZE_UNDEFINED.
20287         * doc/invoke.texi: Describe -fsanitize=bounds.
20288         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20289         functions created in the FEs.
20290         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20291         (expand_UBSAN_BOUNDS): New function.
20292         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20293         * internal-fn.h: Don't define internal functions here.
20294         * opts.c (common_handle_option): Add -fsanitize=bounds.
20295         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20296         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20297         * tree-core.h: Define internal functions here.
20298         (struct tree_base): Add ifn field.
20299         * tree-pretty-print.c: Include "internal-fn.h".
20300         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20301         * tree.c (get_callee_fndecl): Likewise.
20302         (build_call_expr_internal_loc): New function.
20303         * tree.def (CALL_EXPR): Update description.
20304         * tree.h (CALL_EXPR_IFN): Define.
20305         (build_call_expr_internal_loc): Declare.
20306         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20307         types.
20308         (ubsan_type_descriptor): Change bool parameter to enum
20309         ubsan_print_style.  Adjust the code.  Add handling of
20310         UBSAN_PRINT_ARRAY.
20311         (ubsan_expand_bounds_ifn): New function.
20312         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20313         (ubsan_build_overflow_builtin): Likewise.
20314         (instrument_bool_enum_load): Likewise.
20315         (ubsan_instrument_float_cast): Likewise.
20316         * ubsan.h (enum ubsan_print_style): New enum.
20317         (ubsan_expand_bounds_ifn): Declare.
20318         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20319
20320 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20321
20322         * config/rs6000/rs6000.md: Append `DONE' to preparation
20323         statements of `bswap' pattern splitters.
20324
20325 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20326
20327         * target.def (call_fusage_contains_non_callee_clobbers): Update
20328         definition.
20329         * doc/tm.texi: Regenerate.
20330
20331 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20332             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20333
20334         PR sanitizer/61547
20335         * asan.c (instrument_strlen_call): Fixed instrumentation of
20336         trailing byte.
20337
20338 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20339
20340         PR ipa/61540
20341         * ipa-prop.c (impossible_devirt_target): New function.
20342         (try_make_edge_direct_virtual_call): Use it, also instead of
20343         asserting.
20344
20345 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20346             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20347
20348         PR sanitizer/61530
20349         * asan.c (build_check_stmt): Add condition.
20350
20351 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20352
20353         PR ipa/61211
20354         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20355         expanded clones.
20356
20357 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20358
20359         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20360         Update comments.
20361         (VCONQ): Make comment more helpful.
20362         (VCON): Delete.
20363         * config/aarch64/aarch64-simd.md
20364         (aarch64_sqdmulh_lane<mode>):
20365         Use VCOND for operands 2.  Update lane checking and flipping logic.
20366         (aarch64_sqrdmulh_lane<mode>): Likewise.
20367         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20368         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20369         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20370         attribute of operand 3 to VCOND.
20371         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20372         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20373         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20374         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20375         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20376         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20377         define_insn.
20378         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20379         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20380         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20381         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20382         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20383         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20384         operand to VCOND.  Update lane flipping and bounds checking logic.
20385         (aarch64_sqdmlal2_lane<mode>): Likewise.
20386         (aarch64_sqdmlsl_lane<mode>): Likewise.
20387         (aarch64_sqdmull_lane<mode>): Likewise.
20388         (aarch64_sqdmull2_lane<mode>): Likewise.
20389         (aarch64_sqdmlal_laneq<mode>):
20390         Replace VCON usage with VCONQ.
20391         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20392         (aarch64_sqdmlal2_laneq<mode>): Emit
20393         aarch64_sqdmlal2_laneq<mode>_internal insn.
20394         Replace VCON with VCONQ.
20395         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20396         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20397         (aarch64_sqdmull_laneq<mode>): Emit
20398         aarch64_sqdmull_laneq<mode>_internal insn.
20399         Replace VCON with VCONQ.
20400         (aarch64_sqdmull2_laneq<mode>): Emit
20401         aarch64_sqdmull2_laneq<mode>_internal insn.
20402         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
20403         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
20404         of 3rd argument to int16x4_t.
20405         (vqdmlalh_lane_s16): Likewise.
20406         (vqdmlslh_lane_s16): Likewise.
20407         (vqdmull_high_lane_s16): Likewise.
20408         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
20409         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
20410         (vqdmlsl_lane_s16): Likewise.
20411         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
20412         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
20413         (vqdmlals_lane_s32): Likewise.
20414         (vqdmlsls_lane_s32): Likewise.
20415         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
20416         (vqdmulls_lane_s32): Likewise.
20417         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
20418         (vqdmlsl_lane_s32): Likewise.
20419         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
20420         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
20421         (vqrdmulhh_lane_s16): Likewise.
20422         (vqdmlsl_high_lane_s16): Likewise.
20423         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
20424         (vqdmlsl_high_lane_s32): Likewise.
20425         (vqrdmulhs_lane_s32): Likewise.
20426
20427 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20428
20429         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
20430         get_call_reg_set_usage.
20431
20432 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20433
20434         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
20435         it contains all call_used_regs.
20436
20437 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20438
20439         * final.c (collect_fn_hard_reg_usage): Add and use variable
20440         function_used_regs.
20441
20442 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20443
20444         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
20445         (set_init_priority, get_init_priority, set_fini_priority,
20446         get_fini_priority): New methods.
20447         * tree.c (init_priority_for_decl): Remove.
20448         (init_ttree): Do not initialize init priority.
20449         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
20450         (decl_priority_info): Remove.
20451         (decl_init_priority_insert): Rewrite.
20452         (decl_fini_priority_insert): Rewrite.
20453         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
20454         tree_priority_map_marked_p): Remove.
20455         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
20456         * lto-streamer-out.c (hash_tree): Do not hash priorities.
20457         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
20458         not output priorities.
20459         (pack_ts_function_decl_value_fields): Likewise.
20460         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20461         not input priorities.
20462         (unpack_ts_function_decl_value_fields): Likewise.
20463         * symtab.c (symbol_priority_map): Declare.
20464         (init_priority_hash): Declare.
20465         (symtab_unregister_node): Unregister from priority hash, too.
20466         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
20467         New methods.
20468         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
20469         (symbol_priority_info): New function.
20470         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
20471         New methods.
20472         * tree-core.h (tree_priority_map): Remove.
20473
20474 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
20475
20476         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
20477         0xff to uint64_t before shifting it up.
20478
20479 2014-06-20  Julian Brown  <julian@codesourcery.com>
20480             Chung-Lin Tang  <cltang@codesourcery.com>
20481
20482         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
20483         TARGET_THUMB1_ONLY. Add comments.
20484
20485 2014-06-19  Tom de Vries  <tom@codesourcery.com>
20486
20487         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
20488         return type to void.
20489         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
20490
20491 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20492
20493         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
20494         as "move", from depends_on.
20495
20496 2014-06-19  Terry Guo  <terry.guo@arm.com>
20497
20498         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
20499         stage.
20500
20501 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
20502
20503         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
20504         Remove cr5.
20505         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
20506
20507 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20508
20509         PR target/61550
20510         * config/sh/sh.c (prepare_move_operands): Don't process TLS
20511         addresses here if reload in progress or completed.
20512
20513 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20514
20515         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
20516         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
20517         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
20518         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
20519         (mips_register_priority): New function that implements the target
20520         hook TARGET_REGISTER_PRIORITY.
20521         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
20522         (mips_lra_p): Likewise for TARGET_LRA_P.
20523         (TARGET_REGISTER_PRIORITY): Define macro.
20524         (TARGET_SPILL_CLASS): Likewise.
20525         (TARGET_LRA_P): Likewise.
20526         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
20527         classes.
20528         (REG_CLASS_NAMES): Likewise.
20529         (REG_CLASS_CONTENTS): Likewise.
20530         (BASE_REG_CLASS): Use M16_SP_REGS.
20531         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
20532         New set attribute to enable alternatives depending on the register
20533         allocator used.
20534         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
20535         (*lea64): Disable pattern for MIPS16.
20536         * config/mips/mips.opt (mlra): New option.
20537
20538 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20539
20540         * lra-constraints.c (base_to_reg): New function.
20541         (process_address): Use new function.
20542
20543 2014-06-18  Tom de Vries  <tom@codesourcery.com>
20544
20545         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
20546         * config/aarch64/aarch64.c
20547         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
20548         (aarch64_emit_call_insn): New function.
20549         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
20550         of emit_call_insn.
20551         * config/aarch64/aarch64.md (define_expand "call_internal")
20552         (define_expand "call_value_internal", define_expand "sibcall_internal")
20553         (define_expand "sibcall_value_internal"): New.
20554         (define_expand "call", define_expand "call_value")
20555         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
20556         expand variant and aarch64_emit_call_insn.
20557
20558 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
20559             Tom de Vries  <tom@codesourcery.com>
20560
20561         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
20562         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
20563         Redefine to true.
20564         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
20565         clobbers to CALL_INSN_FUNCTION_USAGE.
20566         (define_expand "sibcall_internal")
20567         (define_expand "sibcall_value_internal"): New.
20568         (define_expand "call", define_expand "call_value"): Add argument to
20569         arm_emit_call_insn.
20570         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
20571         (define_expand "sibcall_value"): Use sibcall_value_internal and
20572         arm_emit_call_insn.
20573
20574 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20575
20576         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
20577
20578 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20579
20580         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
20581         __udivmoddi4.
20582
20583 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20584
20585         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
20586         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
20587         annotations. Fix DWARF information.
20588
20589 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20590
20591         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
20592         __udivmoddi4, and fixups for negative operands.
20593
20594 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20595
20596         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
20597
20598 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20599
20600         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
20601         to __udivmoddi4.
20602
20603 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20604
20605         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
20606         manipulation.
20607
20608 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20609
20610         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
20611         describing register usage on function entry and exit.
20612
20613 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20614
20615         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
20616         (__aeabi_ldivmod): Fix whitespace.
20617
20618 2014-06-18  Andreas Schwab  <schwab@suse.de>
20619
20620         * doc/md.texi (Standard Names): Use @itemx for grouped items.
20621         Remove blank line after @item.
20622
20623 2014-06-18  Richard Henderson  <rth@redhat.com>
20624
20625         PR target/61545
20626         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
20627
20628 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20629
20630         * config/arm/arm.c (neon_vector_mem_operand): Allow register
20631         POST_MODIFY for neon loads and stores.
20632         (arm_print_operand): Output post-index register for neon loads and
20633         stores.
20634
20635 2014-06-18  Richard Biener  <rguenther@suse.de>
20636
20637         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
20638
20639 2014-06-18  Richard Biener  <rguenther@suse.de>
20640
20641         * tree-pass.h (make_pass_dce_loop): Remove.
20642         * passes.def: Replace pass_dce_loop with pass_dce.
20643         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
20644         changed free niter estimates and reset the scev cache.
20645         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
20646         make_pass_dce_loop): Remove.
20647         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
20648         (fini_copy_prop): Return whether something changed.  Always
20649         let substitute_and_fold perform DCE and free niter estimates
20650         and reset the scev cache if so.
20651         (execute_copy_prop): If sth changed schedule cleanup-cfg.
20652         (pass_data_copy_prop): Do not unconditionally schedule
20653         cleanup-cfg or update-ssa.
20654
20655 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
20656
20657         PR tree-optimization/61518
20658         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
20659         reduction var is used in reduction stmt or phi-function only.
20660
20661 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20662
20663         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
20664
20665 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20666
20667         PR tree-optimization/61517
20668         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
20669         whose rhs's first tree is the source expression instead of the
20670         expression itself.
20671         (find_bswap_or_nop): Likewise.
20672         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
20673         gimple stmt whose rhs's first tree is the source. In the memory source
20674         case, move the stmt to be replaced close to one of the original load to
20675         avoid the problem of a store between the load and the stmt's original
20676         location.
20677         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
20678         signature.
20679
20680 2014-06-18  Andreas Schwab  <schwab@suse.de>
20681
20682         PR rtl-optimization/54555
20683         * postreload.c (move2add_use_add2_insn): Substitute
20684         STRICT_LOW_PART only if it is cheaper.
20685
20686 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
20687
20688         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
20689         Do not use unspec as call operand.  Use memory_operand instead of
20690         memory_nox32_operand and add "m" operand constraint.  Disable
20691         pattern for TARGET_X32.
20692         (*sibcall_pop_memory): Ditto.
20693         (*sibcall_value_memory): Ditto.
20694         (*sibcall_value_pop_memory): Ditto.
20695         (sibcall peepholes): Merge SImode and DImode patterns using
20696         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
20697         Disable pattern for TARGET_X32.  Check if eliminated register is
20698         really dead after call insn.  Generate call RTX without unspec operand.
20699         (sibcall_value peepholes): Ditto.
20700         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
20701         instead of memory_nox32_operand.  Check if eliminated register is
20702         really dead after call insn. Generate call RTX without unspec operand.
20703         (sibcall_value_pop peepholes): Ditto.
20704         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
20705
20706 2014-06-18  Terry Guo  <terry.guo@arm.com>
20707
20708         PR target/61544
20709         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
20710         reach the head.
20711
20712 2014-06-18  Olivier Hainque  <hainque@adacore.com>
20713
20714         * tree-core.h (tree_block): Add an "end_locus" field, allowing
20715         memorization of the end of block source location.
20716         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
20717         * gimplify.c (gimplify_bind_expr): Propagate the block start and
20718         end source location info we have on the block entry/exit code we
20719         generate.
20720
20721 2014-06-18  Richard Biener  <rguenther@suse.de>
20722
20723         * common.opt (fssa-phiopt): New option.
20724         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
20725         but not with -Og.
20726         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
20727         * doc/invoke.texi (-fssa-phiopt): Document.
20728
20729 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20730
20731         * genattrtab.c (n_bypassed): New variable.
20732         (process_bypasses): Initialise n_bypassed.
20733         Count number of bypassed reservations.
20734         (make_automaton_attrs): Allocate space for bypassed reservations
20735         rather than number of bypasses.
20736
20737 2014-06-18  Richard Biener  <rguenther@suse.de>
20738
20739         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
20740         we propagated anything.
20741         (substitute_and_fold_dom_walker::before_dom_children): Something
20742         changed if we propagated into PHI arguments.
20743         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
20744         we removed a stmt.
20745
20746 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
20747
20748         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
20749         vector case.
20750         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
20751         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
20752         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
20753         Introduces alternative way of loads group permutaions.
20754         (vect_transform_grouped_load): Try alternative way of permutations.
20755
20756 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
20757
20758         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
20759         changed in ORT_TARGET region, don't jump to do_outer.
20760         (struct gimplify_adjust_omp_clauses_data): New type.
20761         (gimplify_adjust_omp_clauses_1): Adjust for data being
20762         a struct gimplify_adjust_omp_clauses_data pointer instead
20763         of tree *.  Pass pre_p as a new argument to
20764         lang_hooks.decls.omp_finish_clause hook.
20765         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
20766         splay_tree_foreach to pass both list_p and pre_p.
20767         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
20768         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
20769         gimplify_adjust_omp_clauses callers.
20770         * langhooks.c (lhd_omp_finish_clause): New function.
20771         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
20772         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
20773         * langhooks.h (struct lang_hooks_for_decls): Add a new
20774         gimple_seq * argument to omp_finish_clause hook.
20775         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
20776         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
20777         (scan_omp_parallel, lower_omp_for): When adding
20778         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
20779         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
20780         * tree-nested.c (convert_nonlocal_omp_clauses,
20781         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
20782         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
20783
20784 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
20785
20786         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
20787         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
20788
20789 2014-06-17  Xinliang David Li  <davidxl@google.com>
20790
20791         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
20792         * passes.c (pass_init_dump_file): Do not set initialize
20793         flag to false unconditionally.
20794
20795 2014-06-17  Richard Biener  <rguenther@suse.de>
20796
20797         * genopinit.c (main): Use vec<>::qsort method.
20798         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
20799         Likewise.
20800         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
20801
20802 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
20803
20804         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
20805         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
20806         (mips_move_to_gpr_cost): Remove ST_REGS case.
20807         (mips_move_from_gpr_cost): Likewise.
20808         (mips_register_move_cost): Likewise.
20809         (mips_secondary_reload_class): Likewise.
20810
20811 2014-06-17  Richard Biener  <rguenther@suse.de>
20812
20813         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
20814         (pass_all_optimizations): Move 3rd copy-prop pass from after
20815         fre to before ifcombine/phiopt.
20816
20817 2014-06-17  Richard Biener  <rguenther@suse.de>
20818
20819         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
20820         and allow all blocks to be forwarders.
20821
20822 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
20823
20824         PR target/61483
20825         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
20826         variable 'size'; calculate 'size' right in the front; use
20827         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
20828         pcum->aapcs_stack_words.
20829
20830 2014-06-17  Nick Clifton  <nickc@redhat.com>
20831
20832         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
20833         (umulhi3, mulsidi3, umulsidi3): Likewise.
20834
20835 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
20836
20837         PR middle-end/61508
20838         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
20839         check for section name.
20840
20841 2014-06-17  Richard Biener  <rguenther@suse.de>
20842
20843         * tree-ssa-propagate.c: Include domwalk.h.
20844         (substitute_and_fold): Outline main worker into a domwalker ...
20845         (substitute_and_fold_dom_walker::before_dom_children): ... here.
20846         Schedule stmts we can fully propagate for removal.  Remove
20847         poor-mans DCE.
20848         (substitute_and_fold): Apply a dominator walk to perform
20849         substitution.  Process stmts scheduled for removal here.
20850
20851 2014-06-17  Richard Biener  <rguenther@suse.de>
20852
20853         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
20854         of PHI node moving.
20855
20856 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
20857
20858         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
20859         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
20860         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
20861         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
20862         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
20863         TARGET_HARD_FLOAT.
20864         (get_fpscr) : Likewise.
20865
20866 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20867
20868         PR rtl-optimization/61325
20869         * lra-constraints.c (valid_address_p): Add forward declaration.
20870         (simplify_operand_subreg): Check address validity before and after
20871         alter_reg of memory subreg.
20872
20873 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
20874
20875         * config/i386/i386.c (decide_alg): Correctly handle
20876         maximum size of stringop algorithm.
20877
20878 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
20879
20880         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
20881
20882 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20883
20884         PR rtl-optimization/61522
20885         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
20886
20887 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
20888
20889         Revert:
20890         * symtab.c (symtab_node::reset_section): New method.
20891         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
20892         for localization.
20893         * cgraph.h (reset_section): Declare.
20894         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
20895         do not consider comdat locals.
20896         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
20897         for new symbol.
20898         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
20899         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
20900         reset sections of symbols dragged out of the comdats.
20901         (function_and_variable_visibility): Reset sections of
20902         localized symbols.
20903
20904 2014-06-16  Richard Biener  <rguenther@suse.de>
20905
20906         PR tree-optimization/61482
20907         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
20908         [-INF(OVF), +INF(OVF)] range.
20909
20910 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
20911
20912         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
20913         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
20914         handling 32-bit multiplication.
20915
20916 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
20917
20918         PR middle-end/61430
20919         * lra-lives.c (process_bb_lives): Skip creating copy during
20920         insn scan when src/dest has constrained to same regno.
20921
20922 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
20923
20924         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
20925         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
20926
20927 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
20928
20929         * asan.c (check_func): New function.
20930         (maybe_create_ssa_name): Likewise.
20931         (build_check_stmt_with_calls): Likewise.
20932         (use_calls_p): Likewise.
20933         (report_error_func): Change interface.
20934         (build_check_stmt): Allow non-integer lengths; add support
20935         for new parameter.
20936         (asan_instrument): Likewise.
20937         (instrument_mem_region_access): Moved code to build_check_stmt.
20938         (instrument_derefs): Likewise.
20939         (instrument_strlen_call): Likewise.
20940         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
20941         * doc/invoke.texi: Describe new parameter.
20942         * params.def: Define new parameter.
20943         * params.h: Likewise.
20944         * sanitizer.def: Describe new builtins.
20945
20946 2014-06-16  Richard Biener  <rguenther@suse.de>
20947
20948         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20949         Make all defs available at the end.
20950         (eliminate): If we remove a PHI node schedule cfg-cleanup.
20951
20952 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
20953
20954         PR plugins/45078
20955         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
20956
20957 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
20958
20959         PR bootstrap/61516
20960         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
20961         initialization.  Replace remaining use of uid.
20962
20963 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
20964
20965         * c-family/c-common.c (handle_tls_model_attribute): Use
20966         set_decl_tls_model.
20967         * c-family/c-common.c (handle_tls_model_attribute): Use
20968         set_decl_tls_model.
20969         * cgraph.h (struct varpool_node): Add tls_model.
20970         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
20971         * tree.h (DECL_TLS_MODEL): Update.
20972         (DECL_THREAD_LOCAL_P): Check that variable is static.
20973         (decl_tls_model): Declare.
20974         (set_decl_tls_model): Declare.
20975         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
20976         set symbol prorperties.
20977         (get_emutls_init_templ_addr): Cleanup.
20978         (new_emutls_decl): Update.
20979         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
20980         (lto_input_varpool_node): Likewise.
20981         * lto-streamer-out.c (hash_tree): Likewise.
20982         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20983         not stream DECL_TLS_MODEL.
20984         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
20985         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
20986
20987 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
20988
20989         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
20990
20991 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
20992
20993         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
20994         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
20995         lists.
20996         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
20997         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
20998         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
20999         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21000         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21001         (df_get_artificial_defs, df_get_artificial_uses)
21002         (df_single_def, df_single_use): Update accordingly.
21003         (df_refs_chain_dump): Take the first element in a linked list as
21004         parameter, rather than a pointer to an array of pointers.
21005         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21006         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21007         (df_chain_create_bb_process_use): Likewise.
21008         (df_md_bb_local_compute_process_def): Likewise.
21009         * fwprop.c (process_defs, process_uses): Likewise.
21010         (register_active_defs, update_uses): Likewise.
21011         (forward_propagate_asm): Update for new df_ref linking.
21012         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21013         (df_null_ref_rec, df_null_mw_rec): Likewise.
21014         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21015         explicitly.
21016         (df_scan_free_bb_info): Remove check for null artificial_defs.
21017         (df_install_ref_incremental): Adjust for new df_ref linking.
21018         Use a single-element insertion rather than a full sort.
21019         (df_ref_chain_delete_du_chain): Take the first element
21020         in a linked list as parameter, rather than a pointer to an array of
21021         pointers.
21022         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21023         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21024         (df_insn_info_delete): Remove check for null defs and call to
21025         df_scan_free_mws_vec.
21026         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21027         null rather than df_null_*_rec.
21028         (df_insn_rescan_debug_internal): Likewise, and update null
21029         checks in the same way.  Remove check for null defs.
21030         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21031         Move a single element rather doing a full sort.
21032         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21033         linking.
21034         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21035         Initialize df_ref and df_mw_hardreg lists to null rather than
21036         df_null_*_rec.
21037         (df_ref_compare): Take df_refs as parameter, transferring the
21038         old interface to...
21039         (df_ref_ptr_compare): ...this new function.
21040         (df_sort_and_compress_refs): Update accordingly.
21041         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21042         old interface to...
21043         (df_mw_ptr_compare): ...this new function.
21044         (df_sort_and_compress_mws): Update accordingly.
21045         (df_install_refs, df_install_mws): Return a linked list rather than
21046         an array of pointers.
21047         (df_refs_add_to_chains): Assert that old lists are empty rather
21048         than freeing them.
21049         (df_insn_refs_verify): Don't handle null defs speciailly.
21050         * web.c (union_match_dups): Update for new df_ref linking.
21051
21052 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21053
21054         * df.h (df_ref_create, df_ref_remove): Delete.
21055         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21056         (df_ref_remove): Likewise.
21057
21058 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21059
21060         * df.h (df_single_def, df_single_use): New functions.
21061         * ira.c (find_moveable_pseudos): Use them.
21062
21063 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21064
21065         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21066         * df-problems.c (df_note_bb_compute): Use it.
21067         * regstat.c (regstat_bb_compute_ri): Likewise.
21068
21069 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21070
21071         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21072         * cse.c (cse_extended_basic_block): Use them.
21073         * dce.c (mark_artificial_use): Likewise.
21074         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21075         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21076         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21077         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21078         (df_simulate_initialize_backwards): Likewise.
21079         (df_simulate_finalize_backwards): Likewise.
21080         (df_simulate_initialize_forwards): Likewise.
21081         (df_md_simulate_artificial_defs_at_top): Likewise.
21082         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21083         * regrename.c (init_rename_info): Likewise.
21084         * regstat.c (regstat_bb_compute_ri): Likewise.
21085         (regstat_bb_compute_calls_crossed): Likewise.
21086
21087 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21088
21089         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21090         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21091         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21092         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21093         * combine.c (create_log_links): Likewise.
21094         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21095         (try_eliminate_compare): Likewise.
21096         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21097         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21098         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21099         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21100         (word_dce_process_block, dce_process_block): Likewise.
21101         * ddg.c (def_has_ccmode_p): Likewise.
21102         * df-core.c (df_bb_regno_first_def_find): Likewise.
21103         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21104         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21105         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21106         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21107         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21108         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21109         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21110         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21111         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21112         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21113         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21114         * fwprop.c (local_ref_killed_between_p): Likewise.
21115         (all_uses_available_at, free_load_extend): Likewise.
21116         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21117         * hw-doloop.c (scan_loop): Likewise.
21118         * ifcvt.c (dead_or_predicable): Likewise.
21119         * init-regs.c (initialize_uninitialized_regs): Likewise.
21120         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21121         (process_bb_node_lives): Likewise.
21122         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21123         (find_moveable_pseudos): Likewise.
21124         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21125         * recog.c (peep2_find_free_register): Likewise.
21126         * ree.c (get_defs): Likewise.
21127         * regstat.c (regstat_bb_compute_ri): Likewise.
21128         (regstat_bb_compute_calls_crossed): Likewise.
21129         * sched-deps.c (find_inc, find_mem): Likewise.
21130         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21131         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21132         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21133         (prepare_shrink_wrap): Likewise.
21134         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21135         * web.c (union_defs, pass_web::execute): Likewise.
21136         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21137         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21138
21139 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21140
21141         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21142         to inheritance pseudos.
21143         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21144
21145 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21146
21147         PR target/61415
21148         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21149         (BU_MISC_2): Rename to ...
21150         (BU_LDBL128_2): ... this.
21151         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21152         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21153         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21154         RS6000_BTM_LDBL128.
21155         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21156         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21157         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21158         (unpacktf_1): Likewise.
21159         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21160         (__builtin_longdouble_dw1): Likewise.
21161         * doc/sourcebuild.texi (longdouble128): Document.
21162
21163 2014-06-13  Jeff Law  <law@redhat.com>
21164
21165         PR rtl-optimization/61094
21166         PR rtl-optimization/61446
21167         * ree.c (combine_reaching_defs): Get the mode for the copy from
21168         the extension insn rather than the defining insn.
21169
21170 2014-06-13  Dehao Chen  <dehao@google.com>
21171
21172         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21173
21174 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21175
21176         * doc/install.texi (--enable-linker-plugin-configure-flags)
21177         (--enable-linker-plugin-flags): Document new flags.
21178
21179 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21180
21181         PR ipa/61186
21182         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21183         cache_token if returning early.
21184
21185 2014-06-13  Nick Clifton  <nickc@redhat.com>
21186
21187         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21188         requested alignment is active.
21189         (LABEL_ALIGN): Likewise.
21190         (LOOP_ALIGN): Likewise.
21191
21192 2014-06-13  Richard Biener  <rguenther@suse.de>
21193
21194         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21195         Rewrite to propagate the VN result into all uses where
21196         possible and to remove stmts becoming dead because of that.
21197         (eliminate): Generalize stmt removal handling, remove in
21198         reverse dominator order to support proper debug stmt
21199         generation.  Update stmts before removing stmts.
21200         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21201
21202 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21203
21204         PR tree-optimization/61375
21205         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21206         symbolic number cannot be represented in an uint64_t.
21207         (find_bswap_or_nop_1): Likewise.
21208
21209 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21210
21211         * symtab.c (symtab_node::reset_section): New method.
21212         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21213         for localization.
21214         * cgraph.h (reset_section): Declare.
21215         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21216         do not consider comdat locals.
21217         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21218         for new symbol.
21219         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21220         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21221         reset sections of symbols dragged out of the comdats.
21222         (function_and_variable_visibility): Reset sections of
21223         localized symbols.
21224
21225 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21226
21227         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21228         to use symtab and decl_binds_to_current_def_p
21229         * tree-vectorizer.c (increase_alignment): Increase alignment
21230         of alias target, too.
21231
21232 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21233
21234         PR middle-end/61486
21235         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21236         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21237         if outer combined construct is distribute.
21238         (gimplify_omp_for): For OMP_DISTRIBUTE set
21239         gimplify_omp_ctxp->distribute.
21240         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21241         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21242         mapping into decl map.
21243
21244 2014-06-12  Jason Merrill  <jason@redhat.com>
21245
21246         * common.opt (fabi-version): Change default to 0.
21247
21248 2014-06-12  Jason Merrill  <jason@redhat.com>
21249
21250         * toplev.c (process_options): Reject -fabi-version=1.
21251
21252 2014-06-12  Jeff Law  <law@redhat.com>
21253
21254         PR tree-optimization/61009
21255         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21256         value when we stop processing a block due to problematic PHIs.
21257
21258 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21259
21260         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21261         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21262         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21263         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21264         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21265         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21266         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21267         are not in the spec.
21268
21269 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21270
21271         PR target/59843
21272         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21273         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21274         Support V1DFmode.
21275
21276 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21277
21278         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21279
21280 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21281
21282         PR target/61443
21283         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21284         loading from address spaces.
21285
21286 2014-06-12  Martin Liska  <mliska@suse.cz>
21287
21288         PR ipa/61462
21289         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21290         statement is reachable.
21291
21292 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21293
21294         * symtab.c (section_hash): New hash.
21295         (symtab_unregister_node): Clear section before freeing.
21296         (hash_section_hash_entry): New haser.
21297         (eq_sections): New function.
21298         (symtab_node::set_section_for_node): New method.
21299         (set_section_1): Update.
21300         (symtab_node::set_section): Take string instead of tree as parameter.
21301         (symtab_resolve_alias): Update.
21302         * cgraph.h (section_hash_entry_d): New structure.
21303         (section_hash_entry): New typedef.
21304         (cgraph_node): Change comdat_group_ to x_comdat_group,
21305         change section_ to x_section and turn into section_hash_entry;
21306         update accestors; put set_section_for_node offline.
21307         * tree.c (decl_section_name): Turn into string.
21308         (set_decl_section_name): Change parameter to be string.
21309         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21310         * sdbout.c (sdbout_one_type): Update.
21311         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21312         * varasm.c (IN_NAMED_SECTION, get_named_section,
21313         resolve_unique_section, hot_function_section, get_named_text_section,
21314         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21315         make_decl_rtl, default_unique_section): Update.
21316         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21317         (c6x_elf_unique_section): Update.
21318         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21319         * config/pa/pa.c (pa_function_section): Update.
21320         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21321         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21322         * config/arc/arc.c (arc_in_small_data_p): Update.
21323         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21324         * config/mcore/mcore.c (mcore_unique_section): Update.
21325         * config/mips/mips.c (mips16_build_function_stub): Update.
21326         (mips16_build_call_stub): Update.
21327         (mips_function_rodata_section): Update.
21328         (mips_in_small_data_p): Update.
21329         * config/score/score.c (score_in_small_data_p): Update.
21330         * config/rx/rx.c (rx_in_small_data): Update.
21331         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21332         (rs6000_xcoff_asm_named_section): Update.
21333         (rs6000_xcoff_unique_section): Update.
21334         * config/frv/frv.c (frv_string_begins_with): Update.
21335         (frv_in_small_data_p): Update.
21336         * config/v850/v850.c (v850_encode_data_area): Update.
21337         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21338         (bfin_handle_l1_data_attribute): Update.
21339         (bfin_handle_l2_attribute): Update.
21340         * config/mep/mep.c (mep_unique_section): Update.
21341         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21342         Update.
21343         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21344         (h8300_handle_tiny_data_attribute): Update.
21345         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21346         (m32r_in_small_data_p): Update.
21347         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21348         * config/i386/i386.c (ix86_in_large_data_p): Update.
21349         * config/i386/winnt.c (i386_pe_unique_section): Update.
21350         * config/darwin.c (darwin_function_section): Update.
21351         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21352         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21353         (new_emutls_decl): Update.
21354         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21355         input_varpool_node): Update.
21356         (ead_string_cst): Turn to ...
21357         (read_string): ... this one.
21358         * dwarf2out.c (secname_for_decl): Update.
21359         * asan.c (asan_protect_global): Update.
21360
21361 2014-06-11  DJ Delorie  <dj@redhat.com>
21362
21363         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21364         cache lines.
21365         * config/rx/rx.c (rx_option_override): Likewise.
21366         (rx_align_for_label): Likewise.
21367
21368         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21369
21370 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
21371
21372         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21373         prototype.
21374
21375 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21376
21377         * common.md: New file.
21378         * doc/md.texi: Update description of generic, machine-independent
21379         constraints.
21380         * config/s390/constraints.md (e): Delete.
21381         * Makefile.in (md_file): Include common.md.
21382         * config/m32c/t-m32c (md_file): Likewise.
21383         * genpreds.c (general_mem): New array.
21384         (generic_constraint_letters): Remove constraints now defined by
21385         common.md.
21386         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21387         Allow the first character to be '<' or '>' as well.
21388         * genoutput.c (general_mem): New array.
21389         (indep_constraints): Remove constraints now defined by common.md.
21390         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21391         Remove special handling of 'm'.
21392         * ira-costs.c (record_reg_classes): Remove special handling of
21393         constraints now defined by common.md.
21394         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21395         * ira-lives.c (single_reg_class): Likewise.
21396         (ira_implicitly_set_insn_hard_regs): Likewise.
21397         * lra-constraints.c (reg_class_from_constraints): Likewise.
21398         (process_alt_operands, process_address, curr_insn_transform): Likewise.
21399         * postreload.c (reload_cse_simplify_operands): Likewise.
21400         * reload.c (push_secondary_reload, scratch_reload_class)
21401         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21402         * reload1.c (maybe_fix_stack_asms): Likewise.
21403         * targhooks.c (default_secondary_reload): Likewise.
21404         * stmt.c (parse_output_constraint): Likewise.
21405         * recog.c (preprocess_constraints): Likewise.
21406         (constrain_operands, peep2_find_free_register): Likewise.
21407         (asm_operand_ok): Likewise, but add a comment saying why 'o'
21408         must be handled specially.
21409
21410 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21411
21412         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
21413         * genpreds.c (have_const_dbl_constraints): Delete.
21414         (add_constraint): Don't set it.
21415         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
21416         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
21417         constraints using the lookup_constraint logic.
21418         * ira-lives.c (single_reg_class): Likewise.
21419         * ira.c (ira_setup_alts): Likewise.
21420         * lra-constraints.c (process_alt_operands): Likewise.
21421         * recog.c (asm_operand_ok, constrain_operands): Likewise.
21422         * reload.c (find_reloads): Likewise.
21423
21424 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21425
21426         * genpreds.c (const_int_start, const_int_end): New variables.
21427         (choose_enum_order): Output CONST_INT constraints before memory
21428         constraints.
21429         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
21430         Add CT_CONST_INT.
21431         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
21432         * ira.c (ira_setup_alts): Likewise.
21433         * lra-constraints.c (process_alt_operands): Likewise.
21434         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21435         * reload.c (find_reloads): Likewise.
21436
21437 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21438
21439         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
21440         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
21441         * recog.c (preprocess_constraints): Update accordingly.
21442
21443 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21444
21445         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
21446         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
21447         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
21448         * genpreds.c (print_type_tree): New function.
21449         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
21450         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
21451         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
21452         Write out enum constraint_type and get_constraint_type.
21453         * lra-constraints.c (satisfies_memory_constraint_p): Take a
21454         constraint_num rather than a constraint string.
21455         (satisfies_address_constraint_p): Likewise.
21456         (reg_class_from_constraints): Avoid old constraint macros.
21457         (process_alt_operands, process_address_1): Likewise.
21458         (curr_insn_transform): Likewise.
21459         * ira-costs.c (record_reg_classes): Likewise.
21460         (record_operand_costs): Likewise.
21461         * ira-lives.c (single_reg_class): Likewise.
21462         (ira_implicitly_set_insn_hard_regs): Likewise.
21463         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21464         * postreload.c (reload_cse_simplify_operands): Likewise.
21465         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21466         (constrain_operands, peep2_find_free_register): Likewise.
21467         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
21468         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21469         * reload1.c (maybe_fix_stack_asms): Likewise.
21470         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
21471         * targhooks.c (default_secondary_reload): Likewise.
21472         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
21473         to EXTRA_CONSTRAINT_STR.
21474         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
21475
21476 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21477
21478         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
21479         (write_constraint_satisfied_p_array): ...this new function.
21480         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
21481         an array.
21482         (write_insn_preds_c): Update accordingly.
21483
21484 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21485
21486         * genpreds.c (write_lookup_constraint): Rename to...
21487         (write_lookup_constraint_1): ...this.
21488         (write_lookup_constraint_array): New function.
21489         (write_tm_preds_h): Define lookup_constraint as an inline function
21490         that uses write_lookup_constraint_array where possible.
21491         (write_insn_preds_c): Update for the changes above.
21492
21493 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21494
21495         * doc/md.texi (regclass_for_constraint): Rename to...
21496         (reg_class_for_constraint): ...this.
21497         * genpreds.c (num_constraints, enum_order, register_start)
21498         (register_end, satisfied_start, memory_start, memory_end)
21499         (address_start, address_end): New variables.
21500         (add_constraint): Count the number of constraints.
21501         (choose_enum_order): New function.
21502         (write_enum_constraint_num): Iterate over enum_order.
21503         (write_regclass_for_constraint): Rename to...
21504         (write_reg_class_for_constraint_1): ...this and update output
21505         accordingly.
21506         (write_constraint_satisfied_p): Rename to...
21507         (write_constraint_satisfied_p_1): ...this and update output
21508         accordingly.  Do nothing if all extra constraints are register
21509         constraints.
21510         (write_insn_extra_memory_constraint): Delete.
21511         (write_insn_extra_address_constraint): Delete.
21512         (write_range_function): New function.
21513         (write_tm_preds_h): Define constraint_satisfied_p and
21514         reg_class_for_constraint as inline functions that do a range check
21515         before calling the out-of-line function.  Use write_range_function
21516         to implement insn_extra_{register,memory,address}_constraint,
21517         the first of which is new.
21518         (write_insn_preds_c): Update after above changes to write_* functions.
21519         (main): Call choose_enum_order.
21520
21521 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21522
21523         PR tree-optimization/61306
21524         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
21525         expression instead of its size.
21526         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
21527         false to prevent optimization when the result is unpredictable due to
21528         arithmetic right shift of signed type with highest byte is set.
21529         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
21530         (init_symbolic_number): Likewise.
21531         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
21532         when the result is unpredictable due to sign extension.
21533
21534 2014-06-11  Terry Guo  <terry.guo@arm.com>
21535
21536         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
21537         (*thumb1_addsi3): Ditto.
21538         (*thumb_subdi3): Ditto.
21539         (thumb1_subsi3_insn): Ditto.
21540         (*thumb_mulsi3): Ditto.
21541         (*thumb_mulsi3_v6): Ditto.
21542         (*thumb1_andsi3_insn): Ditto.
21543         (thumb1_bicsi3): Ditto.
21544         (*thumb1_iorsi3_insn): Ditto.
21545         (*thumb1_xorsi3_insn): Ditto.
21546         (*thumb1_ashlsi3): Ditto.
21547         (*thumb1_ashrsi3): Ditto.
21548         (*thumb1_lshrsi3): Ditto.
21549         (*thumb1_rotrsi3): Ditto.
21550         (*thumb1_negdi2): Ditto.
21551         (*thumb1_negsi2): Ditto.
21552         (*thumb1_abssi2): Ditto.
21553         (*thumb1_neg_abssi2): Ditto.
21554         (*thumb1_one_cmplsi2): Ditto.
21555         (*thumb1_zero_extendhisi2): Ditto.
21556         (*thumb1_zero_extendqisi2): Ditto.
21557         (*thumb1_zero_extendqisi2_v6): Ditto.
21558         (thumb1_extendhisi2): Ditto.
21559         (thumb1_extendqisi2): Ditto.
21560         (*thumb1_movdi_insn): Ditto.
21561         (*thumb1_movsi_insn): Ditto.
21562         (*thumb1_movhi_insn): Ditto.
21563         (thumb_movhi_clobber): Ditto.
21564         (*thumb1_movqi_insn): Ditto.
21565         (*thumb1_movhf): Ditto.
21566         (*thumb1_movsf_insn): Ditto.
21567         (*thumb_movdf_insn): Ditto.
21568         (movmem12b): Ditto.
21569         (movmem8b): Ditto.
21570         (cbranchqi4): Ditto.
21571         (cbranchsi4_insn): Ditto.
21572         (cbranchsi4_scratch): Ditto.
21573         (*negated_cbranchsi4): Ditto.
21574         (*tbit_cbranch): Ditto.
21575         (*tlobits_cbranch): Ditto.
21576         (*tstsi3_cbranch): Ditto.
21577         (*cbranchne_decr1): Ditto.
21578         (*addsi3_cbranch): Ditto.
21579         (*addsi3_cbranch_scratch): Ditto.
21580         (*thumb_cmpdi_zero): Ditto.
21581         (cstoresi_eq0_thumb1): Ditto.
21582         (cstoresi_ne0_thumb1): Ditto.
21583         (*cstoresi_eq0_thumb1_insn): Ditto.
21584         (*cstoresi_ne0_thumb1_insn): Ditto.
21585         (cstoresi_nltu_thumb1): Ditto.
21586         (cstoresi_ltu_thumb1): Ditto.
21587         (thumb1_addsi3_addgeu): Ditto.
21588         (*thumb_jump): Ditto.
21589         (*call_reg_thumb1_v5): Ditto.
21590         (*call_reg_thumb1): Ditto.
21591         (*call_value_reg_thumb1_v5): Ditto.
21592         (*call_value_reg_thumb1): Ditto.
21593         (*call_insn): Ditto.
21594         (*call_value_insn): Ditto.
21595         (thumb1_casesi_internal_pic): Ditto.
21596         (thumb1_casesi_dispatch): Ditto.
21597         (*thumb1_indirect_jump): Ditto.
21598         (prologue_thumb1_interwork): Ditto.
21599         (*epilogue_insns): Ditto.
21600         (consttable_1): Ditto.
21601         (consttable_2): Ditto.
21602         (tablejump): Ditto.
21603         (*thumb1_tablejump): Ditto.
21604         (thumb_eh_return): Ditto.
21605         (define_peephole2): Two of them are thumb1 only and got moved into
21606         new file thumb1.md.
21607         (define_split): Six of them are thumb1 only and got moved into new
21608         file thumb1.md.
21609         * config/arm/thumb1.md: New file comprised of above thumb1 only
21610         patterns.
21611
21612 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21613
21614         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
21615         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
21616         dependencies.
21617         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
21618         (aarch64_crc_builtin_datum): New struct.
21619         (aarch64_crc_builtin_data): New.
21620         (aarch64_init_crc32_builtins): New function.
21621         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
21622         (aarch64_crc32_expand_builtin): New.
21623         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
21624         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
21625         __ARM_FEATURE_CRC32 when appropriate.
21626         (TARGET_CRC32): Define.
21627         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
21628         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
21629         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
21630         (aarch64_<crc_variant>): New pattern.
21631         * config/aarch64/arm_acle.h: New file.
21632         * config/aarch64/iterators.md (CRC): New int iterator.
21633         (crc_variant, crc_mode): New int attributes.
21634         * doc/aarch64-acle-intrinsics.texi: New file.
21635         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
21636         Include aarch64-acle-intrinsics.texi.
21637
21638 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
21639
21640         * tree-vect-data-refs.c (vect_grouped_store_supported): New
21641         check for stores group of length 3.
21642         (vect_permute_store_chain): New permutations for stores group of
21643         length 3.
21644         * tree-vect-stmts.c (vect_model_store_cost): Change cost
21645         of vec_perm_shuffle for the new permutations.
21646
21647 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21648
21649         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
21650         table rewriting temporarily on targets not supporting ONE_ONLY.
21651
21652 2014-06-11  Richard Biener  <rguenther@suse.de>
21653
21654         PR middle-end/61437
21655         Revert
21656         2014-06-04  Richard Biener  <rguenther@suse.de>
21657
21658         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
21659         TREE_PUBLIC and DECL_EXTERNAL decls.
21660
21661 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21662
21663         * varasm.c (set_implicit_section): New function.
21664         (resolve_unique_section): Use it to set implicit section
21665         for aliases, too.
21666         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
21667         (default_function_section): Likewise.
21668         (decl_binds_to_current_def_p): Constify argument.
21669         * varasm.h (decl_binds_to_current_def_p): Update prototype.
21670         * asan.c (asan_protect_global): Use
21671         symtab_get_node (decl)->implicit_section.
21672         * symtab.c (dump_symtab_base): Dump implicit sections.
21673         (verify_symtab_base): Verify sanity of sectoins and comdats.
21674         (symtab_resolve_alias): Alias share the section of its target.
21675         (set_section_1): New function.
21676         (symtab_node::set_section): Move here, recurse to aliases.
21677         (verify_symtab): Check for duplicated symtab lists.
21678         * tree-core.h (implicit_section_name_p): Remove.
21679         * tree-vect-data-refs.c: Include varasm.h.
21680         (vect_can_force_dr_alignment_p): Fix conditional on when
21681         decl bints to current definition; use
21682         symtab_get_node (decl)->implicit_section.
21683         * cgraph.c (cgraph_make_node_local_1): Fix section set.
21684         * cgraph.h (struct symtab_node): Add implicit_section.
21685         (set_section): Rename to ...
21686         (set_section_for_node): ... this one.
21687         (set_section): Declare.
21688         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
21689         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
21690         input_overwrite_node, input_varpool_node): Stream implicit_section.
21691         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
21692         removal; it will fail in LTO.
21693
21694 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21695
21696         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
21697         Change second alternative type to f_mcr.
21698         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
21699         and 12th alternatives' types to f_mcr and f_mrc.
21700         (*movdi_aarch64): Same for 12th and 13th alternatives.
21701         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
21702         (aarch64_movtilow_tilow): Change type to fmov.
21703
21704 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
21705
21706         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
21707         (aarch64_save_or_restore_callee_save_registers): Fix layout.
21708
21709 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21710
21711         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
21712         New expander.
21713         (aarch64_sqrdmulh_lane<mode>): Likewise.
21714         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21715         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21716         (aarch64_sqdmulh_laneq<mode>): New expander.
21717         (aarch64_sqrdmulh_laneq<mode>): Likewise.
21718         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
21719         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
21720         (aarch64_sqdmulh_lane<mode>): New expander.
21721         (aarch64_sqrdmulh_lane<mode>): Likewise.
21722         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21723         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21724         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
21725         (aarch64_sqdmlal_laneq<mode>): Likewise.
21726         (aarch64_sqdmlsl_lane<mode>): Likewise.
21727         (aarch64_sqdmlsl_laneq<mode>): Likewise.
21728         (aarch64_sqdmlal2_lane<mode>): Likewise.
21729         (aarch64_sqdmlal2_laneq<mode>): Likewise.
21730         (aarch64_sqdmlsl2_lane<mode>): Likewise.
21731         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21732         (aarch64_sqdmull_lane<mode>): Likewise.
21733         (aarch64_sqdmull_laneq<mode>): Likewise.
21734         (aarch64_sqdmull2_lane<mode>): Likewise.
21735         (aarch64_sqdmull2_laneq<mode>): Likewise.
21736
21737 2014-06-10  Richard Biener  <rguenther@suse.de>
21738
21739         PR tree-optimization/61438
21740         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
21741         (eliminate_dom_walker::before_dom_children): Only try to inhibit
21742         insertion of IVs if running PRE.
21743         (eliminate): Adjust.
21744         (pass_pre::execute): Likewise.
21745         (pass_fre::execute): Likewise.
21746
21747 2014-06-10  Richard Biener  <rguenther@suse.de>
21748
21749         PR middle-end/61456
21750         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21751         Do not use the main variant for the type comparison.
21752         (ncr_compar): Likewise.
21753         (nonoverlapping_component_refs_p): Likewise.
21754
21755 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21756
21757         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
21758         REG_CFA_RESTORE mode.
21759
21760 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
21761
21762         * config/i386/i386.c (expand_vec_perm_pblendv): New.
21763         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
21764         expand_vec_perm_pblendv.
21765
21766 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21767
21768         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
21769         available.
21770         Simplify description of __crc32d and __crc32cd intrinsics.
21771         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
21772         availability.
21773
21774 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
21775
21776         PR lto/61334
21777         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
21778         * config.in: Regenerate.
21779         * configure: Likewise.
21780
21781 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21782
21783         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
21784         and public vars.
21785         (intersect_static_var_sets): Remove.
21786         (propagate): Do not prune local statics.
21787
21788 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
21789
21790         PR fortran/60928
21791         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
21792         Set lastprivate_firstprivate even if omp_private_outer_ref
21793         langhook returns true.
21794         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
21795         langhook, call unshare_expr on new_var and call
21796         build_outer_var_ref to get the last argument.
21797
21798 2014-06-10  Marek Polacek  <polacek@redhat.com>
21799
21800         PR c/60988
21801         * doc/extend.texi: Add cindex for transparent_union.
21802
21803 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21804
21805         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
21806         init_symbolic_number ().
21807
21808 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
21809
21810         PR middle-end/61141
21811         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
21812         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
21813         (verify_rtl_sharing): Likewise.
21814
21815 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
21816
21817         PR c++/54442
21818         * tree.c (build_qualified_type): Use a canonical type for
21819         TYPE_CANONICAL.
21820
21821 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21822
21823         * config/arm/arm-modes.def: Remove XFmode.
21824
21825 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
21826
21827         PR target/61062
21828         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
21829         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
21830         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
21831         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
21832         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
21833         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
21834         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
21835         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
21836         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
21837
21838 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
21839
21840         * tree-core.h (tree_decl_with_vis): Remove section_name.
21841
21842 2014-06-09  Kito Cheng  <kito@0xlab.org>
21843
21844         * ira.c (ira): Don't call init_caller_save if LRA enabled
21845         since LRA use its own infrastructure to handle that.
21846
21847 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21848
21849         * symtab.c (dump_symtab_base): Update dumping.
21850         (symtab_make_decl_local): Clear only DECL_COMDAT.
21851         * tree-vect-data-refs.c (Check that variable is static before
21852         tampering with sections.
21853         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
21854         (cgraph_create_virtual_clone): Likewise.
21855         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
21856         (decl_section_name, set_decl_section_name): New accessors.
21857         (find_decls_types_r): Do not walk section name
21858         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
21859         (decl_comdat_group, decl_comdat_group_id): Constify.
21860         (decl_section_name, set_decl_section_name): Update.
21861         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
21862         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
21863         (cgraph_make_node_local_1): Clear section and comdat group.
21864         * cgraph.h (set_comdat_group): Sanity check.
21865         (get_section, set_section): New.
21866         * ipa-comdats.c (ipa_comdats): Use get_section.
21867         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
21868         * lto-streamer-out.c: Do not follow section names.
21869         * c-family/c-common.c (handle_section_attribute): Update.
21870         * lto-cgraph.c (lto_output_node): Output section.
21871         (lto_output_varpool_node): Likewise.
21872         (read_comdat_group): Rename to ...
21873         (read_identifier): ... this one.
21874         (read_string_cst): New function.
21875         (input_node, input_varpool_node): Input section names.
21876         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21877         (new_emutls_decl): Update.
21878         (secname_for_decl): Check section names only of static vars.
21879         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
21880         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
21881         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21882         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21883         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
21884         * config/mcore/mcore.c (mcore_unique_section): Likewise.
21885         * config/mips/mips.c (mips16_build_function_stub): Likewise.
21886         * config/v850/v850.c (v850_insert_attributes): Likewise.
21887         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
21888         Likewise.
21889         (h8300_handle_tiny_data_attribute): Likewise.
21890         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
21891         (bfin_handle_l2_attribute): Likewise.
21892
21893 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21894
21895         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
21896         remove static initializer.
21897
21898 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21899
21900         * varasm.c (use_blocks_for_decl_p): Check symbol table
21901         instead of alias attribute.
21902         (place_block_symbol): Recurse on aliases.
21903
21904 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21905
21906         * ipa-visibility.c: Include varasm.h
21907         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
21908
21909 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21910
21911         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
21912         outputting aliases.
21913
21914 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
21915
21916         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
21917         from test_insn into GGC space escape via SET_SRC.
21918
21919 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
21920
21921         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
21922         call statement, if any.
21923         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
21924         statements, if any.  Tidy up.
21925
21926 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
21927
21928         PR target/61431
21929         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
21930         iterators, VSX_D that handles 64-bit types, and VSX_LE that
21931         handles swapping the two 64-bit double words on little endian
21932         systems.  Include V1TImode and optionally TImode in VSX_LE so that
21933         these types are properly swapped.  Change all of the insns and
21934         splits that do the 64-bit swaps to use VSX_LE.
21935         (vsx_le_perm_load_<mode>): Likewise.
21936         (vsx_le_perm_store_<mode>): Likewise.
21937         (splitters for little endian memory operations): Likewise.
21938         (vsx_xxpermdi2_le_<mode>): Likewise.
21939         (vsx_lxvd2x2_le_<mode>): Likewise.
21940         (vsx_stxvd2x2_le_<mode>): Likewise.
21941
21942 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
21943
21944         PR target/61423
21945         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
21946         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
21947         and corresponding splitters.  Zero extend general register
21948         or memory input operand to XMM temporary.  Enable for
21949         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
21950         (floatunssi<mode>2): Update expander predicate.
21951
21952 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
21953
21954         PR rtl-optimization/61325
21955         * lra-constraints.c (process_address_1): Check scale equal to one
21956         to prevent transformation: base + scale * index => base + new_reg.
21957
21958 2014-06-06  Richard Biener  <rguenther@suse.de>
21959
21960         PR tree-optimization/59299
21961         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
21962         a def operand.
21963         (nearest_common_dominator_of_uses): Likewise.
21964         (statement_sink_location): Adjust.  Support sinking loads.
21965
21966 2014-06-06  Martin Jambor  <mjambor@suse.cz>
21967
21968         * ipa-prop.c (get_place_in_agg_contents_list): New function.
21969         (build_agg_jump_func_from_list): Likewise.
21970         (determine_known_aggregate_parts): Renamed to
21971         determine_locally_known_aggregate_parts.  Moved some functionality
21972         to the two functions above, removed bound checks.
21973
21974 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
21975
21976         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
21977         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
21978         (aarch64_progress_pointer): Likewise.
21979         (aarch64_copy_one_part_and_move_pointers): Likewise.
21980         (aarch64_expand_movmen): Likewise.
21981         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
21982         * config/aarch64/aarch64.md (movmem<mode>): New.
21983
21984 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
21985
21986         * targhooks.c (default_add_stmt_cost): Call target specific
21987         hook instead of default one.
21988
21989 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21990
21991         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
21992         endianness instead of host endianness.
21993         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
21994         comments.
21995
21996 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
21997
21998         PR debug/53927
21999         * function.c (instantiate_decls): Process the saved static chain.
22000         (expand_function_start): If not optimizing, save the static chain
22001         onto the stack.
22002         * tree-nested.c (convert_all_function_calls): Always create the static
22003         chain for nested functions if not optimizing.
22004
22005 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22006
22007         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22008
22009 2014-06-06  Richard Biener  <rguenther@suse.de>
22010
22011         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22012         (construct_init_block): Likewise.
22013         (construct_exit_block): Likewise.
22014         (pass_expand::execute): Likewise.
22015         * graphite.c (graphite_transforms): Replace check for current_loops
22016         with a check for > 1 loops.
22017         (pass_graphite_transforms::execute): Adjust.
22018         * ipa-split.c (split_function): Remove check for current_loops.
22019         * omp-low.c (expand_parallel_call): Likewise.
22020         (expand_omp_for_init_counts): Likewise.
22021         (extract_omp_for_update_vars): Likewise.
22022         (expand_omp_for_generic): Likewise.
22023         (expand_omp_sections): Likewise.
22024         (expand_omp_target): Likewise.
22025         * tracer.c (tail_duplicate): Likewise.
22026         (pass_tracer::execute): Likewise.
22027         * trans-mem.c (expand_transaction): Likewise.
22028         * tree-complex.c (expand_complex_div_wide): Likewise.
22029         * tree-eh.c (lower_resx): Likewise.
22030         (cleanup_empty_eh_merge_phis): Likewise.
22031         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22032         current_loops with a check for > 1 loops.
22033         (pass_predcom::execute): Adjust.
22034         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22035         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22036         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22037         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22038         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22039         * tree-switch-conversion.c (process_switch): Likewise.
22040         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22041         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22042         (execute_vrp): Likewise.
22043         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22044
22045 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22046
22047         * rtl.h (insn_location): Declare.
22048         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22049         with UNKNOWN_LOCATION.
22050         * emit-rtl.c (insn_location): New function.
22051         * final.c (notice_source_line): Check that the instruction has a
22052         location before retrieving it and use insn_location.
22053         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22054         * print-rtl.c (print_rtx): Likewise.
22055
22056 2014-06-06  Richard Biener  <rguenther@suse.de>
22057
22058         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22059
22060 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22061
22062         PR tree-optimization/43934
22063         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22064         cost.
22065
22066 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22067
22068         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22069         return NO_REGS for extra address and memory constraints.  Handle
22070         operands that match (or are equivalent to something that matches)
22071         extra constant constraints.  Ignore other non-register operands.
22072
22073 2014-06-06  Alan Modra  <amodra@gmail.com>
22074
22075         PR target/61300
22076         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22077         * doc/tm.texi: Regenerate.
22078         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22079         Use throughout in place of REG_PARM_STACK_SPACE.
22080         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22081         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22082         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22083         prototype_p when incoming.  Use function decl when incoming
22084         to handle K&R style functions.
22085         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22086         (INCOMING_REG_PARM_STACK_SPACE): Define.
22087
22088 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22089
22090         PR target/52472
22091         * cfgexpand.c (expand_debug_expr): Use address space of nested
22092         TREE_TYPE for ADDR_EXPR and MEM_REF.
22093
22094 2014-06-05  Jeff Law  <law@redhat.com>
22095
22096         PR tree-optimization/61289
22097         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22098         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22099         looking for those which match LHS.  All callers changed.
22100         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22101         parameters and code which manipulated them.  All callers changed.
22102         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22103         and DST_MAP parameters.  Simplify invalidation code by just calling
22104         invalidate_equivalences.  All callers changed.
22105         (thread_across_edge): Simplify now that we don't need to maintain
22106         the map of equivalences to invalidate.
22107
22108 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22109             Richard Henderson  <rth@redhat.com>
22110
22111         PR target/46219
22112         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22113         checking for !TARGET_X32.
22114         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22115         (sibcall_intern): New define_insn, plus required peepholes.
22116         (sibcall_pop_intern): Likewise.
22117         (sibcall_value_intern): Likewise.
22118         (sibcall_value_pop_intern): Likewise.
22119
22120 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22121
22122         * tree-inline.c (tree_function_versioning): Check DF info existence
22123         before accessing it.
22124
22125 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22126
22127         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22128         frame_size.
22129         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22130         aarch64_frame hard_fp_offset and frame_size.
22131         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22132         frame_size; remove original_frame_size.
22133         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22134         (aarch64_initial_elimination_offset): Remove frame_size and
22135         offset.  Use aarch64_frame frame_size.
22136
22137 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22138             Jiong Wang  <jiong.wang@arm.com>
22139             Renlin  <renlin.li@arm.com>
22140
22141         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22142         initialization of R30 offset.  Update offset.  Iterate core
22143         regisers upto X30.  Remove X29, X30 specific code.
22144
22145 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22146             Jiong Wang  <jiong.wang@arm.com>
22147
22148         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22149         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22150         (aarch64_register_saved_on_entry): Adjust test.
22151
22152 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22153
22154         * config/aarch64/aarch64.h (machine_function): Move
22155         saved_varargs_size from here...
22156         (aarch64_frame): ... to here.
22157
22158         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22159         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22160         (aarch64_initial_elimination_offset)
22161         (aarch64_setup_incoming_varargs): Adjust location of
22162         saved_varargs_size.
22163
22164 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22165
22166         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22167         layout comment.
22168
22169 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22170             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22171
22172         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22173         mips32r5 entry to use PROCESSOR_P5600.
22174         * config/mips/mips-tables.opt: Regenerate.
22175         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22176         * config/mips/mips.c (mips_fmadd_bypass): New function.
22177         (mips_rtx_cost_data): Add costs for p5600.
22178         (mips_issue_rate): Add support for p5600.
22179         (mips_multipass_dfa_lookahead): Likewise.
22180         * config/mips/mips.h (TUNE_P5600): New define.
22181         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22182         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22183         * config/mips/mips.md: Include p5600.md.
22184         (processor): Add p5600.
22185         * config/mips/p5600.md: New file.
22186
22187 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22188
22189         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22190         * config/i386/predicates.md (palignr_operand): New.
22191         Indicates if permutation is suitable for palignr instruction.
22192
22193 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22194
22195         PR tree-optimization/61319
22196         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22197         stmt belongs to loop.
22198
22199 2014-06-05  Richard Biener  <rguenther@suse.de>
22200
22201         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22202         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22203         (lookup_tmp_var): Adjust.
22204         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22205
22206 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22207
22208         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22209
22210 2014-06-05  Marek Polacek  <polacek@redhat.com>
22211
22212         PR c/49706
22213         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22214
22215 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22216
22217         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22218         CONST_INT.
22219
22220 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22221
22222         PR tree-optimization/61385
22223         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22224
22225 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22226
22227         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22228         changed to use fatal_error.
22229         (main): Ensure lto_wrapper_cleanup is run atexit.
22230
22231 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22232
22233         * lra-constraints.c (valid_address_p): Move earlier in file.
22234         (address_eliminator): New structure.
22235         (satisfies_memory_constraint_p): New function.
22236         (satisfies_address_constraint_p): Likewise.
22237         (process_alt_operands, process_address, curr_insn_transform): Use them.
22238
22239 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22240
22241         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22242         const pointer.
22243         (target_lra_int, default_target_lra_int, this_target_lra_int)
22244         (op_alt_data): Delete.
22245         * lra.h (lra_init): Delete.
22246         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22247         (init_insn_code_data_once): Remove op_alt_data handling.
22248         (finish_insn_code_data_once): Likewise.
22249         (init_op_alt_data): Delete.
22250         (get_static_insn_data): Initialize operand_alternative to null.
22251         (free_insn_recog_data): Cast operand_alternative before freeing it.
22252         (setup_operand_alternative): Take the operand_alternative as
22253         parameter and assume it isn't already cached in the static
22254         insn data.
22255         (lra_set_insn_recog_data): Update accordingly.
22256         (lra_init): Delete.
22257         * ira.c (ira_init): Don't call lra_init.
22258         * target-globals.h (this_target_lra_int): Declare.
22259         (target_globals): Remove lra_int.
22260         (restore_target_globals): Update accordingly.
22261         * target-globals.c: Don't include lra-int.h.
22262         (default_target_globals, save_target_globals): Remove lra_int.
22263
22264 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22265
22266         * recog.h (operand_alternative): Convert reg_class, reject,
22267         matched and matches into bitfields.
22268         (preprocess_constraints): New overload.
22269         (preprocess_insn_constraints): New function.
22270         (preprocess_constraints): Take the insn as parameter.
22271         (recog_op_alt): Change into a pointer.
22272         (target_recog): Add x_op_alt.
22273         * recog.c (asm_op_alt): New variable.
22274         (recog_op_alt): Change into a pointer.
22275         (preprocess_constraints): New overload, replacing the old function
22276         definition with one that doesn't use global state.
22277         (preprocess_insn_constraints): New function.
22278         (preprocess_constraints): Use them.  Take the insn as parameter.
22279         Use asm_op_alt for asms.
22280         (recog_init): Free existing x_op_alt entries.
22281         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22282         pointer const.
22283         (make_early_clobber_and_input_conflicts): Likewise.
22284         (process_bb_node_lives): Pass the insn to process_constraints.
22285         * reg-stack.c (check_asm_stack_operands): Likewise.
22286         (subst_asm_stack_regs): Likewise.
22287         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22288         * regrename.c (build_def_use): Likewise.
22289         * sched-deps.c (sched_analyze_insn): Likewise.
22290         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22291         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22292         (note_invalid_constants): Likewise.
22293         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22294         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22295         const.
22296
22297 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22298
22299         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22300         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22301         alternatives.
22302         (make_early_clobber_and_input_conflicts): Likewise.
22303         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22304
22305 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22306
22307         * recog.h (alternative_class): New function.
22308         (which_op_alt): Return a const recog_op_alt.
22309         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22310         (subst_asm_stack_regs): Likewise.
22311         * config/arm/arm.c (note_invalid_constants): Likewise.
22312         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22313         the operand_alternative; use alternative class instead.
22314         * sel-sched.c (get_reg_class): Likewise.
22315         * regrename.c (build_def_use): Likewise.
22316         (hide_operands, restore_operands, record_out_operands): Update type
22317         accordingly.
22318
22319 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22320
22321         * recog.h (recog_op_alt): Convert to a flat array.
22322         (which_op_alt): New function.
22323         * recog.c (recog_op_alt): Convert to a flat array.
22324         (preprocess_constraints): Update accordingly, grouping all
22325         operands of the same alternative together, rather than the
22326         other way around.
22327         * ira-lives.c (check_and_make_def_conflict): Likewise.
22328         (make_early_clobber_and_input_conflicts): Likewise.
22329         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22330         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22331         (subst_asm_stack_regs): Likewise.
22332         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22333         * regrename.c (hide_operands, record_out_operands): Likewise.
22334         (build_def_use): Likewise.
22335         * sel-sched.c (get_reg_class): Likewise.
22336         * config/arm/arm.c (note_invalid_constants): Likewise.
22337
22338 2014-06-04  Jason Merrill  <jason@redhat.com>
22339
22340         PR c++/51253
22341         PR c++/61382
22342         * gimplify.c (gimplify_arg): Non-static.
22343         * gimplify.h: Declare it.
22344
22345 2014-06-04  Richard Biener  <rguenther@suse.de>
22346
22347         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22348         TREE_PUBLIC and DECL_EXTERNAL decls.
22349
22350 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
22351
22352         * regcprop.c (copyprop_hardreg_forward_1): Account for
22353         HARD_REGNO_CALL_PART_CLOBBERED.
22354
22355 2014-06-04  Richard Biener  <rguenther@suse.de>
22356
22357         * configure.ac: Check whether the underlying type of int64_t
22358         is long or long long.
22359         * configure: Regenerate.
22360         * config.in: Likewise.
22361         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22362         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22363
22364 2014-06-04  Richard Biener  <rguenther@suse.de>
22365
22366         PR tree-optimization/60098
22367         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22368         we hit a kill.
22369         (dse_optimize_stmt): Simplify, now that we found a kill
22370         earlier.
22371
22372 2014-06-04  Richard Biener  <rguenther@suse.de>
22373
22374         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22375         of accesses with non-invariant address.
22376
22377 2014-06-04  Martin Liska  <mliska@suse.cz>
22378
22379         * cgraph.h (cgraph_make_wrapper): New function introduced.
22380         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22381         * ipa-inline.h (inline_analyze_function): The function is global.
22382         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22383
22384 2014-06-04  Martin Liska  <mliska@suse.cz>
22385
22386         * tree.h (private_lookup_attribute_starting): New function.
22387         (lookup_attribute_starting): Likewise.
22388         * tree.c (private_lookup_attribute_starting): Likewise.
22389
22390 2014-06-04  Martin Liska  <mliska@suse.cz>
22391
22392         * cgraph.h (expand_thunk): New argument added.
22393         (address_taken_from_non_vtable_p): New global function.
22394         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22395         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22396         * cgraphunit.c (analyze_function): Likewise.
22397         (assemble_thunks_and_aliases): Argument added to call.
22398         (expand_thunk): New argument forces to produce GIMPLE thunk.
22399
22400 2014-06-04  Martin Liska  <mliska@suse.cz>
22401
22402         * coverage.h (coverage_compute_cfg_checksum): Argument added.
22403         * coverage.c (coverage_compute_cfg_checksum): Likewise.
22404         * profile.c (branch_prob): Likewise.
22405
22406 2014-06-04  Martin Jambor  <mjambor@suse.cz>
22407
22408         PR ipa/61340
22409         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
22410         handler for switch on an ipa_ref_use enum.
22411         * ipa-reference.c (analyze_function): Likewise.
22412
22413 2014-06-04  Kai Tietz  <ktietz@redhat.com>
22414
22415         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
22416         from old call-instruction.
22417
22418 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
22419
22420         * config/aarch64/aarch64.c (aarch64_classify_address)
22421         (aarch64_legitimize_reload_address): Support full addressing modes
22422         for vector modes.
22423         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
22424         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
22425
22426 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22427
22428         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
22429         for OP0.
22430
22431 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22432
22433         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
22434         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
22435
22436 2014-06-03  Kai Tietz  <ktietz@redhat.com>
22437
22438         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
22439         for 64-bit ms-abi.
22440
22441 2014-06-03  Dehao Chen  <dehao@google.com>
22442
22443         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
22444         the same loop.
22445
22446 2014-06-03  Marek Polacek  <polacek@redhat.com>
22447
22448         PR c/60439
22449         * doc/invoke.texi: Document -Wswitch-bool.
22450         * function.c (stack_protect_epilogue): Cast controlling expression of
22451         the switch to int.
22452         * gengtype.c (walk_type): Generate switch expression with its
22453         controlling expression cast to int.
22454
22455 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
22456
22457         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
22458         and attiny841.
22459         * config/avr/avr-tables.opt: Regenerate.
22460         * config/avr/t-multilib: Regenerate.
22461         * doc/avr-mmcu.texi: Regenerate.
22462
22463 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
22464             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22465
22466         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
22467         (ata6617c, ata664251): Add new avr35 devices.
22468         (ata6612c): Add new avr4 device.
22469         (ata6613c, ata6614q): Add new avr5 devices.
22470         * config/avr/avr-tables.opt: Regenerate.
22471         * config/avr/t-multilib: Regenerate.
22472         * doc/avr-mmcu.texi: Regenerate.
22473
22474 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22475
22476         * gcc/config/aarch64/aarch64-builtins.c
22477         (aarch64_types_binop_ssu_qualifiers): New static data.
22478         (TYPES_BINOP_SSU): Define.
22479         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
22480         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
22481         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
22482         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
22483         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
22484         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
22485         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
22486         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
22487         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
22488         suffix to builtin function name, remove cast.
22489         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
22490         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
22491         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
22492
22493 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22494
22495         * gcc/config/aarch64/aarch64-builtins.c
22496         (aarch64_types_binop_uus_qualifiers,
22497         aarch64_types_shift_to_unsigned_qualifiers,
22498         aarch64_types_unsigned_shiftacc_qualifiers): Define.
22499         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
22500         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
22501         sqshlu_n, uqshl_n): Update qualifiers.
22502         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
22503         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
22504         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
22505         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
22506         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
22507         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
22508         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
22509         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
22510         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
22511         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
22512         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
22513         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
22514         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
22515         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
22516         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
22517         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
22518         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
22519         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
22520         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
22521         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
22522         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
22523         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
22524         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
22525         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
22526         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
22527         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
22528         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
22529
22530 2014-06-03  Teresa Johnson  <tejohnson@google.com>
22531
22532         * tree-sra.c (modify_function): Record caller nodes after rebuild.
22533
22534 2014-06-02  Jason Merrill  <jason@redhat.com>
22535
22536         PR c++/61020
22537         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
22538
22539 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22540
22541         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
22542         location == 0.
22543
22544 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22545
22546         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
22547         New pattern.
22548         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
22549         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
22550         * config/aarch64/iterators.md (REVERSE): New iterator.
22551         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
22552         (rev_op): New int_attribute.
22553         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
22554         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
22555         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
22556         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
22557         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
22558         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
22559         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
22560         Replace temporary __asm__ with __builtin_shuffle.
22561
22562 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22563
22564         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
22565         mips64r5.
22566         * config/mips/mips-tables.opt: Regenerate.
22567         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
22568         to use mips_isa_rev rather than ISA_MIPS32R2.
22569         * config/mips/mips.h (ISA_MIPS32R3): New define.
22570         (ISA_MIPS32R5): New define.
22571         (ISA_MIPS64R3): New define.
22572         (ISA_MIPS64R5): New define.
22573         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
22574         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
22575         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
22576         and mips64r5.
22577         (MIPS_ISA_SYNCI_SPEC): Likewise.
22578         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
22579         (LINK_SPEC): Added mips32r3 and mips32r5.
22580         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
22581         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
22582         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
22583         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
22584         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
22585         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
22586         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
22587
22588 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22589
22590         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
22591         options.
22592         * config/mips/mips.opt (mxpa): New option.
22593         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
22594         assembler.
22595
22596 2014-06-03  Martin Jambor  <mjambor@suse.cz>
22597
22598         PR ipa/61160
22599         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
22600         thunks.
22601
22602 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22603
22604         PR tree-optimization/61328
22605         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
22606         initialization from find_bswap_or_nop_1.
22607         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
22608         in source_expr2 before using the size value the function sets. Also
22609         make use of init_symbolic_number () in both the old place and
22610         find_bswap_or_nop_load () to avoid reading uninitialized memory when
22611         doing recursion in the GIMPLE_BINARY_RHS case.
22612
22613 2014-06-03  Richard Biener  <rguenther@suse.de>
22614
22615         PR tree-optimization/61383
22616         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
22617         stmts can't trap.
22618
22619 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
22620
22621         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
22622         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
22623         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
22624         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
22625         in this file.
22626         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
22627         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
22628         * system.h: ...here and make it unconditional.
22629         * target.def (conditional_register_usage): Mention
22630         define_register_constraint instead of old-style constraint macros.
22631         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
22632         * doc/tm.texi: Regenerate.
22633         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
22634         protected by !USE_MD_CONSTRAINTS.
22635         * config/frv/frv.md: Remove quote from old version of documentation.
22636         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
22637         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
22638         CONST_DOUBLE_OK_FOR_LETTER.
22639         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
22640
22641 2014-06-02  Andrew Pinski  <apinski@cavium.com>
22642
22643         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
22644         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
22645         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
22646         file whose name depends on -mabi= and -mbig-endian.
22647         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
22648         Handle LP64 better and handle ilp32 too.
22649         (MULTILIB_OPTIONS): Delete.
22650         (MULTILIB_DIRNAMES): Delete.
22651
22652 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
22653
22654         * expr.h: Remove prototypes of functions defined in builtins.c.
22655         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
22656         Remove prototypes of functions defined in builtins.c.
22657         * builtins.h: Update prototype list to include all exported functions.
22658         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
22659         no_c99_libc_has_function): Move to targhooks.c
22660         (build_string_literal, build_call_expr_loc_array,
22661         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
22662         to tree.c.
22663         (expand_builtin_object_size, fold_builtin_object_size): Make static.
22664         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
22665         no_c99_libc_has_function): Relocate from builtins.c.
22666         * tree.c: Include builtins.h.
22667         (build_call_expr_loc_array, build_call_expr_loc_vec,
22668         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
22669         from builtins.c.
22670         * fold-const.h (fold_fma): Move prototype to builtins.h.
22671         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
22672         * asan.c: Include builtins.h.
22673         * cfgexpand.c: Likewise.
22674         * convert.c: Likewise.
22675         * emit-rtl.c: Likewise.
22676         * except.c: Likewise.
22677         * expr.c: Likewise.
22678         * fold-const.c: Likewise.
22679         * gimple-fold.c: Likewise.
22680         * gimple-ssa-strength-reduction.c: Likewise.
22681         * gimplify.c: Likewise.
22682         * ipa-inline.c: Likewise.
22683         * ipa-prop.c: Likewise.
22684         * lto-streamer-out.c: Likewise.
22685         * stmt.c: Likewise.
22686         * tree-inline.c: Likewise.
22687         * tree-object-size.c: Likewise.
22688         * tree-sra.c: Likewise.
22689         * tree-ssa-ccp.c: Likewise.
22690         * tree-ssa-forwprop.c: Likewise.
22691         * tree-ssa-loop-ivcanon.c: Likewise.
22692         * tree-ssa-loop-ivopts.c: Likewise.
22693         * tree-ssa-math-opts.c: Likewise.
22694         * tree-ssa-reassoc.c: Likewise.
22695         * tree-ssa-threadedge.c: Likewise.
22696         * tree-streamer-in.c: Likewise.
22697         * tree-vect-data-refs.c: Likewise.
22698         * tree-vect-patterns.c: Likewise.
22699         * tree-vect-stmts.c: Likewise.
22700         * config/aarch64/aarch64.c: Likewise.
22701         * config/alpha/alpha.c: Likewise.
22702         * config/arc/arc.c: Likewise.
22703         * config/arm/arm.c: Likewise.
22704         * config/avr/avr.c: Likewise.
22705         * config/bfin/bfin.c: Likewise.
22706         * config/c6x/c6x.c: Likewise.
22707         * config/cr16/cr16.c: Likewise.
22708         * config/cris/cris.c: Likewise.
22709         * config/epiphany/epiphany.c: Likewise.
22710         * config/fr30/fr30.c: Likewise.
22711         * config/frv/frv.c: Likewise.
22712         * config/h8300/h8300.c: Likewise.
22713         * config/i386/i386.c: Likewise.
22714         * config/i386/winnt.c: Likewise.
22715         * config/ia64/ia64.c: Likewise.
22716         * config/iq2000/iq2000.c: Likewise.
22717         * config/lm32/lm32.c: Likewise.
22718         * config/m32c/m32c.c: Likewise.
22719         * config/m32r/m32r.c: Likewise.
22720         * config/m68k/m68k.c: Likewise.
22721         * config/mcore/mcore.c: Likewise.
22722         * config/mep/mep.c: Likewise.
22723         * config/microblaze/microblaze.c: Likewise.
22724         * config/mips/mips.c: Likewise.
22725         * config/mmix/mmix.c: Likewise.
22726         * config/mn10300/mn10300.c: Likewise.
22727         * config/moxie/moxie.c: Likewise.
22728         * config/msp430/msp430.c: Likewise.
22729         * config/nds32/nds32.c: Likewise.
22730         * config/pa/pa.c: Likewise.
22731         * config/pdp11/pdp11.c: Likewise.
22732         * config/picochip/picochip.c: Likewise.
22733         * config/rl78/rl78.c: Likewise.
22734         * config/rs6000/rs6000.c: Likewise.
22735         * config/rx/rx.c: Likewise.
22736         * config/s390/s390.c: Likewise.
22737         * config/score/score.c: Likewise.
22738         * config/sh/sh.c: Likewise.
22739         * config/sparc/sparc.c: Likewise.
22740         * config/spu/spu.c: Likewise.
22741         * config/stormy16/stormy16.c: Likewise.
22742         * config/tilegx/tilegx.c: Likewise.
22743         * config/tilepro/tilepro.c: Likewise.
22744         * config/v850/v850.c: Likewise.
22745         * config/vax/vax.c: Likewise.
22746         * config/xtensa/xtensa.c: Likewise.
22747
22748 2014-06-02  Jeff Law  <law@redhat.com>
22749
22750         PR rtl-optimization/61094
22751         * ree.c (combine_reaching_defs): Do not reextend an insn if it
22752         was marked as do_no_reextend.  If a copy is needed to eliminate
22753         an extension, then mark it as do_not_reextend.
22754
22755 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22756
22757         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
22758
22759 2014-06-02  Richard Henderson  <rth@redhat.com>
22760
22761         PR target/61336
22762         * config/alpha/alpha.c (print_operand_address): Allow symbolic
22763         addresses inside asms.  Use output_operand_lossage instead of
22764         gcc_unreachable.
22765
22766 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
22767
22768         PR target/61239
22769         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
22770         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
22771
22772 2014-06-02  Tom de Vries  <tom@codesourcery.com>
22773
22774         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
22775         case that x has VOIDmode.
22776
22777 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
22778
22779         * varasm.c (copy_constant): Delete function.
22780         (build_constant_desc): Don't call it.
22781
22782 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22783
22784         PR target/61154
22785         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
22786         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
22787         with immediate_operand.
22788
22789 2014-06-02  Andreas Schwab  <schwab@suse.de>
22790
22791         * config/ia64/ia64.c
22792         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
22793         pending_data_specs first.
22794
22795 2014-06-02  Richard Biener  <rguenther@suse.de>
22796
22797         PR tree-optimization/61378
22798         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
22799         valueized_anything.
22800
22801 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
22802
22803         * config/i386/constraints.md (Bw): Rename from 'w'.
22804         (Bz): Rename from 'z'.
22805         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
22806
22807 2014-06-01  Kai Tietz  <ktietz@redhat.com>
22808
22809         PR target/61377
22810         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
22811         * config/i386/i386.md (sibcall_insn_operand): Use Bs
22812         instead of m constraint.
22813
22814 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
22815
22816         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
22817         a separate alternative where the scratch operand 2 is marked as
22818         early clobber.
22819
22820 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
22821
22822         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
22823         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
22824         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
22825         and __builtins_arm_get_fpscr.
22826         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
22827         __builtins_arm_get_fpscr.
22828         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
22829         __builtins_arm_ldfpscr.
22830         (arm_atomic_assign_expand_fenv): New function.
22831         * config/arm/vfp.md (set_fpscr): New pattern.
22832         (get_fpscr) : Likewise.
22833         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
22834         VUNSPEC_SET_FPSCR.
22835         * doc/extend.texi (AARCH64 Built-in Functions) : Document
22836         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
22837
22838 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
22839
22840         * asan.c (report_error_func): Add SLOW_P argument, use
22841         BUILT_IN_ASAN_*_N if set.
22842         (build_check_stmt): Likewise.
22843         (instrument_derefs): If T has insufficient alignment,
22844         force same handling as for odd sizes.
22845
22846         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
22847         BUILT_IN_ASAN_REPORT_STORE_N): New.
22848         * asan.c (struct asan_mem_ref): Change access_size type to
22849         HOST_WIDE_INT.
22850         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
22851         update_mem_ref_hash_table): Likewise.
22852         (asan_mem_ref_hasher::hash): Hash in a HWI.
22853         (report_error_func): Change size_in_bytes argument to HWI.
22854         Use *_N builtins if size_in_bytes is larger than 16 or not power of
22855         two.
22856         (build_shadow_mem_access): New function.
22857         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
22858         Handle size_in_bytes not power of two or larger than 16.
22859         (instrument_derefs): Don't give up if size_in_bytes is not
22860         power of two or is larger than 16.
22861
22862 2014-05-30  Kai Tietz  <ktietz@redhat.com>
22863
22864         PR target/60104
22865         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
22866         for sibling-tail-calls.
22867         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
22868         to its use.
22869         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
22870         (sibcall_insn_operand): Add check for sibcall_memory_operand.
22871
22872 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22873
22874         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
22875         * config/avr/avr-tables.opt: Regenerate.
22876         * config/avr/t-multilib: Regenerate.
22877         * doc/avr-mmcu.texi: Regenerate.
22878
22879 2014-05-30  Ian Lance Taylor  <iant@google.com>
22880
22881         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
22882         target("sse").
22883
22884 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22885
22886         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
22887         Redefine as true.
22888
22889 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22890
22891         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22892         * lra.c (initialize_lra_reg_info_element): Add init of
22893         actual_call_used_reg_set field.
22894         (lra): Call lra_create_live_ranges before lra_inheritance for
22895         -fuse-caller-save.
22896         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22897         -fuse-caller-save.
22898         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
22899         instead of call_used_reg_set for -fuse-caller-save.
22900         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22901
22902 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22903
22904         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
22905         to mov_imm.
22906         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
22907
22908 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
22909
22910         * ira.c (ira_get_dup_out_num): Check for output operands at
22911         the start of the loop.  Handle cases where an included alternative
22912         follows an excluded one.
22913
22914 2014-05-29  Mike Stump  <mikestump@comcast.net>
22915
22916         PR debug/61352
22917         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
22918         post ld passes when lto is used.
22919
22920 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
22921
22922         PR rtl-optimization/61325
22923         * lra-constraints.c (process_address): Rename to process_address_1.
22924         (process_address): New function.
22925
22926 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
22927
22928         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
22929         TYPES_BINOPV): New static data.
22930         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
22931         New builtin.
22932         * config/aarch64/aarch64-simd.md (aarch64_ext,
22933         aarch64_im_lane_boundsi): New patterns.
22934         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
22935         patterns for EXT.
22936         (aarch64_evpc_ext): New function.
22937
22938         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
22939
22940         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
22941         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
22942         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
22943         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
22944         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
22945
22946 2014-05-29  Tom de Vries  <tom@codesourcery.com>
22947
22948         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
22949
22950 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
22951             Richard Sandiford  <rdsandiford@googlemail.com>
22952
22953         * arm/iterators.md (shiftable_ops): New code iterator.
22954         (t2_binop0, arith_shift_insn): New code attributes.
22955         * arm/predicates.md (shift_nomul_operator): New predicate.
22956         * arm/arm.md (insn_enabled): Delete.
22957         (enabled): Remove insn_enabled test.
22958         (*arith_shiftsi): Delete.  Replace with ...
22959         (*<arith_shift_insn>_multsi): ... new pattern.
22960         (*<arith_shift_insn>_shiftsi): ... new pattern.
22961         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
22962
22963 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
22964             Tom de Vries  <tom@codesourcery.com>
22965
22966         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
22967         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
22968         clobber.
22969         (mips_split_call): Use POST_CALL_TMP_REG.
22970         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
22971
22972 2014-05-29  Tom de Vries  <tom@codesourcery.com>
22973
22974         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
22975         with #ifdef STACK_REGS.
22976
22977 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
22978
22979         * varasm.c (get_variable_section): Walk aliases.
22980         (place_block_symbol): Walk aliases.
22981
22982 2014-05-28  Tom de Vries  <tom@codesourcery.com>
22983
22984         Revert:
22985         2014-05-28  Tom de Vries  <tom@codesourcery.com>
22986
22987         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22988         * lra.c (initialize_lra_reg_info_element): Add init of
22989         actual_call_used_reg_set field.
22990         (lra): Call lra_create_live_ranges before lra_inheritance for
22991         -fuse-caller-save.
22992         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22993         -fuse-caller-save.
22994         * lra-constraints.c (need_for_call_save_p): Use
22995         actual_call_used_reg_set instead of call_used_reg_set for
22996         -fuse-caller-save.
22997         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22998
22999 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23000
23001         * doc/md.texi: Document that the % constraint character must
23002         be at the beginning of the string.
23003         * genoutput.c (validate_insn_alternatives): Check that '=',
23004         '+' and '%' only appear at the beginning of a constraint.
23005         * ira.c (commutative_constraint_p): Delete.
23006         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23007         at the start of the string.
23008         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23009         duplicate '='s.
23010         * config/arm/neon.md (bicdi3_neon): Likewise.
23011         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23012         (slt_si, sltu_si): Likewise.
23013         * config/vax/vax.md (sbcdi3): Likewise.
23014         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23015         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23016         (mul64): Move '%' to beginning of constraint.
23017         * config/arm/arm.md (*xordi3_insn): Likewise.
23018         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23019         (xorsi3): Likewise.
23020
23021 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23022
23023         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23024
23025 2014-05-28  Jason Merrill  <jason@redhat.com>
23026
23027         PR c++/47202
23028         * cgraph.h (symtab_node::get_comdat_group_id): New.
23029         * cgraphunit.c (analyze_functions): Call it.
23030         * symtab.c (dump_symtab_node): Likewise.
23031         * tree.c (decl_comdat_group_id): New.
23032         * tree.h: Declare it.
23033         * lto-streamer-out.c (write_symbol): Use it.
23034         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23035
23036 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23037
23038         PR bootstrap/PR61146
23039         * wide-int.cc: Do not include longlong.h when compiling with clang.
23040
23041 2014-05-28  Richard Biener  <rguenther@suse.de>
23042
23043         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23044         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23045         (vrp_visit_assignment_or_call): Print less vertical space.
23046         (vrp_visit_stmt): Likewise.
23047         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23048         VR_VARYING range consider recording it as copy.
23049
23050 2014-05-28  Richard Biener  <rguenther@suse.de>
23051
23052         Revert
23053         2014-05-28  Richard Biener  <rguenther@suse.de>
23054
23055         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23056
23057 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23058
23059         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23060         sufficiently aligned and an offset is used at the same time.
23061         (expand_expr_real_1): Likewise.
23062
23063 2014-05-28  Richard Biener  <rguenther@suse.de>
23064
23065         PR middle-end/61045
23066         * fold-const.c (fold_comparison): When folding
23067         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23068         the sign of the remaining constant operand stays the same.
23069
23070 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23071
23072         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23073         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23074         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23075         to the assembler.
23076         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23077         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23078         (m32bit-doubles) Likewise.
23079         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23080         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23081         option for RL78.
23082
23083 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23084
23085         * configure.ac ($gcc_cv_ld_clearcap): New test.
23086         * configure: Regenerate.
23087         * config.in: Regenerate.
23088         * config/sol2.opt (mclear-hwcap): New option.
23089         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23090         * config/sol2-clearcap.map: Moved here from
23091         testsuite/gcc.target/i386/clearcap.map.
23092         * config/sol2-clearcapv2.map: Move here from
23093         gcc.target/i386/clearcapv2.map.
23094         * config/t-sol2 (install): Depend on install-clearcap-map.
23095         (install-clearcap-map): New target.
23096         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23097         -mclear-hwcap.
23098
23099 2014-05-28  Richard Biener  <rguenther@suse.de>
23100
23101         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23102         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23103         ... here and remove the rest.
23104         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23105
23106 2014-05-28  Richard Biener  <rguenther@suse.de>
23107
23108         PR tree-optimization/61335
23109         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23110         new range fails, drop to varying.
23111
23112 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23113
23114         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23115         (CPP_SPEC): Add entry for -mcpu=8548.
23116         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23117         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23118
23119 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23120
23121         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23122         * lra.c (initialize_lra_reg_info_element): Add init of
23123         actual_call_used_reg_set field.
23124         (lra): Call lra_create_live_ranges before lra_inheritance for
23125         -fuse-caller-save.
23126         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23127         -fuse-caller-save.
23128         * lra-constraints.c (need_for_call_save_p): Use
23129         actual_call_used_reg_set instead of call_used_reg_set for
23130         -fuse-caller-save.
23131         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23132
23133 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23134             Tom de Vries  <tom@codesourcery.com>
23135
23136         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23137         to gccoptlist.
23138         (@item -fuse-caller-save): New item.
23139
23140 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23141             Tom de Vries  <tom@codesourcery.com>
23142
23143         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23144         OPT_fuse_caller_save.
23145
23146 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23147             Tom de Vries  <tom@codesourcery.com>
23148
23149         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23150         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23151         get_call_reg_set_usage.
23152         * resource.c (mark_set_resources, mark_target_live_regs): Use
23153         get_call_reg_set_usage.
23154         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23155         field.
23156         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23157         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23158         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23159         * ira-build.c (ira_create_allocno): Init
23160         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23161         (create_cap_allocno, propagate_allocno_info)
23162         (propagate_some_info_from_allocno)
23163         (copy_info_to_removed_store_destinations): Handle
23164         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23165         * ira-costs.c (ira_tune_allocno_costs): Use
23166         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23167
23168 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23169             Tom de Vries  <tom@codesourcery.com>
23170
23171         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23172         and function_used_regs_valid fields.
23173         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23174         find_all_hard_reg_sets.
23175         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23176         (get_call_reg_set_usage): New function.
23177         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23178         * regs.h (get_call_reg_set_usage): Declare.
23179
23180 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23181
23182         PR libgcc/61152
23183         * config/dbx.h (License): Add Runtime Library Exception.
23184         * config/newlib-stdint.h (License): Same.
23185         * config/rtems.h (License): Same
23186         * config/initfini-array.h (License): Same
23187         * config/v850/v850.h (License): Same.
23188         * config/v850/v850-opts.h (License): Same
23189         * config/v850/rtems.h (License): Same.
23190
23191 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23192
23193         PR target/61044
23194         * doc/extend.texi (Local Labels): Note that label differences are
23195         not supported for AVR.
23196
23197 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23198             Olivier Hainque  <hainque@adacore.com>
23199
23200         * rtl.h (set_for_reg_notes): Declare.
23201         * emit-rtl.c (set_for_reg_notes): New function.
23202         (set_unique_reg_note): Use it.
23203         * optabs.c (add_equal_note): Likewise
23204
23205 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23206
23207         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23208         Use <w> for the register in assembly template.
23209         (stack_protect_test): Use the mode of operands[0] for the result.
23210         (stack_protect_test_<mode>): Use <w> for the register
23211         in assembly template.
23212
23213 2014-05-27  DJ Delorie  <dj@redhat.com>
23214
23215         * config/rx/rx.c (add_vector_labels): New.
23216         (rx_output_function_prologue): Call it.
23217         (rx_handle_func_attribute): Don't require empty arguments.
23218         (rx_handle_vector_attribute): New.
23219         (rx_attribute_table): Add "vector" attribute.
23220         * doc/extend.texi (interrupt, vector): Document new/changed
23221         RX-specific attributes.
23222
23223         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23224
23225 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23226
23227         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23228         predicate to detect a negative quotient.
23229
23230 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23231
23232         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23233         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23234         Add X - Y CMP 0 to X CMP Y transformation.
23235         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23236
23237 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23238
23239         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23240         before printing.
23241
23242 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23243
23244         * config/mips/mips.c: Add include of cgraph.h.
23245
23246 2014-05-27  Richard Biener  <rguenther@suse.de>
23247
23248         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23249
23250 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23251
23252         PR libgcc/61152
23253         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23254         * config/arm/arm-cores.def (License): Same.
23255         * config/arm/arm-opts.h (License): Same.
23256         * config/arm/aout.h (License): Same.
23257         * config/arm/bpabi.h (License): Same.
23258         * config/arm/elf.h (License): Same.
23259         * config/arm/linux-elf.h (License): Same.
23260         * config/arm/linux-gas.h (License): Same.
23261         * config/arm/netbsd-elf.h (License): Same.
23262         * config/arm/uclinux-eabi.h (License): Same.
23263         * config/arm/uclinux-elf.h (License): Same.
23264         * config/arm/vxworks.h (License): Same.
23265
23266 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23267
23268         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23269         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23270         (arm_init_neon_builtins): Handle NEON_BSWAP.
23271         Define required type nodes.
23272         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23273         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23274         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23275         * config/arm/iterators.md (VDQHSD): New mode iterator.
23276
23277 2014-05-27  Richard Biener  <rguenther@suse.de>
23278
23279         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23280         Try using literal operands when comparing value-ranges failed.
23281
23282 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23283
23284         * ira.c (commutative_operand): Adjust for change to recog_data.
23285         [Missing from previous commit.]
23286
23287 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23288
23289         * system.h (TEST_BIT): New macro.
23290         * recog.h (alternative_mask): New type.
23291         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23292         (recog_data_d): Replace alternative_enabled_p array with
23293         enabled_alternatives.
23294         (target_recog): New structure.
23295         (default_target_recog, this_target_recog): Declare.
23296         (get_enabled_alternatives, recog_init): Likewise.
23297         * recog.c (default_target_recog, this_target_recog): New variables.
23298         (get_enabled_alternatives): New function.
23299         (extract_insn): Use it.
23300         (recog_init): New function.
23301         (preprocess_constraints, constrain_operands): Adjust for change to
23302         recog_data.
23303         * postreload.c (reload_cse_simplify_operands): Likewise.
23304         * reload.c (find_reloads): Likewise.
23305         * ira-costs.c (record_reg_classes): Likewise.
23306         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23307         all alternatives after a disabled one would be skipped.
23308         (ira_implicitly_set_insn_hard_regs): Likewise.
23309         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23310         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23311         with enabled_alternatives.
23312         * lra.c (free_insn_recog_data): Update accordingly.
23313         (lra_update_insn_recog_data): Likewise.
23314         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23315         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23316         only_alternative as part of the enabled mask.
23317         * target-globals.h (this_target_recog): Declare.
23318         (target_globals): Add a recog field.
23319         (restore_target_globals): Restore this_target_recog.
23320         * target-globals.c: Include recog.h.
23321         (default_target_globals): Initialize recog field.
23322         (save_target_globals): Likewise.
23323         * reginfo.c (reinit_regs): Call recog_init.
23324         * toplev.c (backend_init_target): Likewise.
23325
23326 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23327
23328         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23329         rather than any named insn's code.
23330
23331 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23332
23333         PR libgcc/61152
23334         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23335         * config/arm/arm-cores.def (License): Same.
23336
23337 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23338
23339         * tree.h (decl_comdat_group): Declare.
23340         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23341         * tree.c (decl_comdat_group): Here.
23342
23343 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23344
23345         PR rtl-optimization/61222
23346         * combine.c (simplify_shift_const_1): When moving a PLUS outside
23347         the shift, truncate the PLUS operand to the result mode.
23348
23349 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
23350
23351         PR target/61271
23352         * config/i386/i386.c (ix86_rtx_costs)
23353         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23354         Fix condition.
23355
23356 2014-05-26  Martin Jambor  <mjambor@suse.cz>
23357
23358         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23359         subreg uses.
23360
23361 2014-05-26  Richard Biener  <rguenther@suse.de>
23362
23363         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23364         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23365         Provide specializations.
23366         (wi::int_traits <HOST_WIDE_INT>,
23367         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23368
23369 2014-05-26  Alan Modra  <amodra@gmail.com>
23370
23371         PR target/61098
23372         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23373         params and return a bool.  Remove dead code.  Update comment.
23374         Assert we have a const_int source.  Remove bogus code from
23375         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
23376         handling of constants > 2G and reg_equal note, from..
23377         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
23378         return value.  Update comment.  If we can, use a new pseudo
23379         for intermediate calculations.
23380         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23381         prototype.
23382         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23383         call to rs6000_emit_set_const in splitter.
23384         (movdi_internal64+2, +3): Likewise.
23385
23386 2014-05-26  Richard Biener  <rguenther@suse.de>
23387
23388         * system.h: Define __STDC_FORMAT_MACROS before
23389         including inttypes.h.
23390         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23391         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23392         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23393         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23394         HOST_WIDEST_INT_C): Remove.
23395         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23396         if C99 inttypes.h is not available.
23397         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23398         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
23399         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
23400         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
23401         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
23402         (struct output_info): Likewise.
23403         (print_statistics): Adjust.
23404         (dump_bitmap_statistics): Likewise.
23405         * bt-load.c (migrate_btr_defs): Print with PRId64.
23406         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
23407         (MAX_SAFE_MULTIPLIER): Adjust.
23408         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
23409         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
23410         dump_cgraph_node): Likewise.
23411         * final.c (dump_basic_block_info): Likewise.
23412         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
23413         * gcov.c (format_gcov): Likewise.
23414         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
23415         for calculation.
23416         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
23417         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
23418         (inline_small_functions, dump_overall_stats, dump_inline_stats):
23419         Use PRId64 for dumping.
23420         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
23421         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
23422         (add_allocno_hard_regs): Adjust.
23423         * loop-doloop.c (doloop_modify): Print using PRId64.
23424         * loop-iv.c (inverse): Compute in uint64_t.
23425         (determine_max_iter, iv_number_of_iterations): Likewise.
23426         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
23427         Print using PRId64.
23428         * lto-streamer-out.c (write_symbol): Use uint64_t.
23429         * mcf.c (CAP_INFINITY): Use int64_t maximum.
23430         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
23431         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
23432         * modulo-sched.c (const_iteration_count): Use int64_t.
23433         (sms_schedule): Dump using PRId64.
23434         * predict.c (dump_prediction): Likewise.
23435         * pretty-print.h (pp_widest_integer): Remove.
23436         * profile.c (get_working_sets, is_edge_inconsistent,
23437         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
23438         * tree-pretty-print.c (pp_double_int): Remove case handling
23439         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
23440         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
23441         and adjust users.
23442         (pass_optimize_bswap::execute): Remove restriction on hosts.
23443         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
23444         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23445         * tree.c (widest_int_cst_value): Remove.
23446         * tree.h (widest_int_cst_value): Likewise.
23447         * value-prof.c (dump_histogram_value): Print using PRId64.
23448         * gengtype.c (main): Also inject int64_t.
23449         * ggc-page.c (struct max_alignment): Use int64_t.
23450         * alloc-pool.c (struct allocation_object_def): Likewise.
23451         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
23452         for computation.
23453         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
23454         * doc/tm.texi: Regenerated.
23455         * gengtype-lex.l (IWORD): Handle [u]int64_t.
23456         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
23457         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
23458         mmix_output_register_setting): Use [u]int64_t in prototypes.
23459         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
23460         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
23461         mmix_output_octa, mmix_output_shifted_value): Adjust.
23462         (mmix_intval): Adjust.  Remove unreachable case.
23463         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
23464
23465 2014-05-26  Richard Biener  <rguenther@suse.de>
23466
23467         * configure.ac: Drop __int64 type check.  Insist that we
23468         found uint64_t and int64_t.
23469         * hwint.h (HOST_BITS_PER___INT64): Remove.
23470         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
23471         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
23472         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
23473         (HOST_WIDEST_FAST_INT): Remove __int64 case.
23474         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
23475         for dst_q_src_df_rms_cdt.
23476         * configure: Regenerate.
23477         * config.in: Likewise.
23478
23479 2014-05-26  Michael Tautschnig  <mt@debian.org>
23480
23481         PR target/61249
23482         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
23483         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
23484
23485 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23486
23487         PR rtl-optimization/61278
23488         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
23489
23490 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23491
23492         PR rtl-optimization/61220
23493         Part of PR rtl-optimization/61225
23494         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
23495         insn; skip split_edge for a block with only one successor.
23496
23497 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23498
23499         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
23500         for variables.
23501
23502 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23503
23504         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
23505         (update_vtable_references): New function.
23506         (function_and_variable_visibility): Rewrite also vtable initializers.
23507         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
23508
23509 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23510
23511         * ggc.h (ggc_grow): New function.
23512         * ggc-none.c (ggc_grow): New function.
23513         * ggc-page.c (ggc_grow): Likewise.
23514
23515 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23516
23517         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
23518         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
23519         comdat_can_be_unshared_p, cgraph_externally_visible_p,
23520         varpool_externally_visible_p, can_replace_by_local_alias,
23521         update_visibility_by_resolution_info, function_and_variable_visibility,
23522         pass_data_ipa_function_and_variable_visibility,
23523         make_pass_ipa_function_and_variable_visibility,
23524         whole_program_function_and_variable_visibility,
23525         pass_data_ipa_whole_program_visibility,
23526         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
23527         * cgraph.h (cgraph_local_node_p): Declare.
23528         * ipa-visibility.c: New file.
23529         * Makefile.in (OBJS): Add ipa-visiblity.o
23530
23531 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23532
23533         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
23534         that var decl is available.
23535
23536 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23537
23538         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
23539         symtab_node pointer.
23540         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
23541         (find_decls_types_r): Do not walk COMDAT_GROUP.
23542         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
23543         * varasm.c (make_decl_one_only): Use set_comdat_group;
23544         create node if needed.
23545         * ipa-inline-transform.c (save_inline_function_body): Update
23546         way we decl->symtab mapping.
23547         * symtab.c (symtab_hash, hash_node, eq_node
23548         symtab_insert_node_to_hashtable): Remove.
23549         (symtab_register_node): Update.
23550         (symtab_unregister_node): Update.
23551         (symtab_get_node): Reimplement as inline function.
23552         (symtab_add_to_same_comdat_group): Update.
23553         (symtab_dissolve_same_comdat_group_list): Update.
23554         (dump_symtab_base): Update.
23555         (verify_symtab_base): Update.
23556         (symtab_make_decl_local): Update.
23557         (fixup_same_cpp_alias_visibility): Update.
23558         (symtab_nonoverwritable_alias): Update.
23559         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
23560         * ipa.c (update_visibility_by_resolution_info): UPdate.
23561         * bb-reorder.c: Include cgraph.h
23562         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
23563         with comdat groups.
23564         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
23565         * cgraph.c (cgraph_get_create_node): Update.
23566         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
23567         and comdat_group_.
23568         (symtab_get_node): Make inline.
23569         (symtab_insert_node_to_hashtable): Remove.
23570         (symtab_can_be_discarded): Update.
23571         (decl_comdat_group): New function.
23572         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
23573         Update.
23574         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
23575         comdat group name.
23576         (read_comdat_group): New function.
23577         (input_node, input_varpool_node): Use it.
23578         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
23579         comdat groups.
23580         * mips.c (mips_start_unique_function): Likewise.
23581         (ix86_code_end): Likewise.
23582         (rs6000_code_end): Likweise.
23583         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
23584
23585 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23586
23587         * gengtype-state.c (fatal_reading_state): Bring offline.
23588         * optabs.c (widening_optab_handler): Bring offline.
23589         * optabs.h (widening_optab_handler): Likewise.
23590         * final.c (get_attr_length_1): Likewise.
23591
23592 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23593
23594         * sched-int.h (sd_iterator_cond): Manually tail recurse.
23595
23596 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23597
23598         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
23599         (ppc440-compare): Include shift with dot.
23600         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
23601         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
23602         without dot.
23603         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
23604         without dot.
23605         (e6500_sfx2): Include it.
23606         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
23607         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
23608         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
23609         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
23610         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
23611         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
23612         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
23613         *lshiftrt_internal1le, *lshiftrt_internal1be,
23614         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
23615         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
23616         *rotldi3_internal10le, *rotldi3_internal10be,
23617         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
23618         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
23619         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
23620         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
23621         define_insns): Use type "shift" in the appropriate alternatives.
23622
23623 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23624
23625         * config/rs6000/rs6000.md (type): Add "logical".  Delete
23626         "fast_compare".
23627         (dot): Adjust comment.
23628         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
23629         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
23630         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
23631         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
23632         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
23633         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
23634         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
23635         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23636
23637         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23638         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23639         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23640         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23641         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23642         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23643         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23644         * config/rs6000/8540.md (ppc8540_su): Adjust.
23645         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23646         cell-cmp-microcoded): Adjust.
23647         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23648         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23649         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23650         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23651         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23652         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23653         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23654         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23655         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23656         Adjust.
23657         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23658         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
23659         Adjust.  Adjust comment.
23660         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23661         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23662
23663 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23664
23665         * config/rs6000/rs6000.md (type): Add "add".
23666         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
23667         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
23668         define_insns): Use it.
23669         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23670
23671         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23672         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23673         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23674         * config/rs6000/601.md (ppc601-integer): Adjust.
23675         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23676         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23677         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23678         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23679         * config/rs6000/8540.md (ppc8540_su): Adjust.
23680         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23681         cell-cmp-microcoded): Adjust.
23682         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23683         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23684         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23685         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23686         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23687         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23688         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23689         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23690         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23691         Adjust.
23692         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23693         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
23694         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23695         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23696
23697 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23698
23699         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
23700         "delayed_compare", "var_delayed_compare".
23701         (var_shift): New attribute.
23702         (cell_micro): Adjust.
23703         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
23704         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
23705         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
23706         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
23707         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
23708         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
23709         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
23710         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
23711         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
23712         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
23713         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
23714         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
23715         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
23716         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
23717         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
23718         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
23719         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
23720         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
23721         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
23722         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
23723         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
23724         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
23725         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
23726         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23727         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23728
23729         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23730         * config/rs6000/440.md (ppc440-integer): Adjust.
23731         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23732         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
23733         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23734         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23735         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23736         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23737         * config/rs6000/8540.md (ppc8540_su): Adjust.
23738         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23739         cell-cmp-microcoded): Adjust.
23740         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
23741         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23742         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
23743         e500mc64_delayed): Adjust.
23744         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
23745         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
23746         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23747         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
23748         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
23749         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
23750         power6-delayed-compare, power6-var-delayed-compare): Adjust.
23751         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
23752         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
23753         Adjust comment.
23754         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23755         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23756
23757 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23758
23759         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
23760         (bits): New mode_attr.
23761         (idiv_ldiv): Delete mode_attr.
23762         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
23763         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23764         rs6000_adjust_priority, is_nonpipeline_insn,
23765         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23766
23767         * config/rs6000/40x.md (ppc403-idiv): Adjust.
23768         * config/rs6000/440.md (ppc440-idiv): Adjust.
23769         * config/rs6000/476.md (ppc476-idiv): Adjust.
23770         * config/rs6000/601.md (ppc601-idiv): Adjust.
23771         * config/rs6000/603.md (ppc603-idiv): Adjust.
23772         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
23773         ppc620-ldiv): Adjust.
23774         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
23775         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
23776         * config/rs6000/8540.md (ppc8540_divide): Adjust.
23777         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
23778         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
23779         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
23780         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
23781         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
23782         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
23783         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
23784         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
23785         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
23786         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
23787         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
23788         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
23789         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
23790         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
23791         * config/rs6000/titan.md (titan_fxu_div): Adjust.
23792
23793 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23794
23795         * config/rs6000/rs6000.md (type): Delete "insert_word",
23796         "insert_dword".  Add "insert".
23797         (size): Update comment.
23798         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23799         insn_must_be_first_in_group): Adjust.
23800         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
23801         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
23802         *insvsi_internal6, insvdi_internal): Adjust.
23803
23804         * config/rs6000/40x.md (ppc403-integer): Adjust.
23805         * config/rs6000/440.md (ppc440-integer): Adjust.
23806         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
23807         * config/rs6000/601.md (ppc601-integer): Adjust.
23808         * config/rs6000/603.md (ppc603-integer): Adjust.
23809         * config/rs6000/6xx.md (ppc604-integer): Adjust.
23810         * config/rs6000/7450.md (ppc7450-integer): Adjust.
23811         * config/rs6000/7xx.md (ppc750-integer): Adjust.
23812         * config/rs6000/8540.md (ppc8540_su): Adjust.
23813         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
23814         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
23815         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23816         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
23817         * config/rs6000/e5500.md (e5500_sfx): Adjust.
23818         * config/rs6000/e6500.md (e6500_sfx): Adjust.
23819         * config/rs6000/mpc.md (mpccore-integer): Adjust.
23820         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
23821         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
23822         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
23823         * config/rs6000/power7.md (power7-integer): Adjust.
23824         * config/rs6000/power8.md (power8-1cyc): Adjust.
23825         * config/rs6000/rs64.md (rs64a-integer): Adjust.
23826         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23827
23828 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23829
23830         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
23831         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
23832         (size): New attribute.
23833         (dot): New attribute.
23834         (cell_micro): Adjust.
23835         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
23836         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
23837         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
23838         umuldi3_highpart): Adjust.
23839         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23840         rs6000_adjust_priority, is_nonpipeline_insn,
23841         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23842
23843         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
23844         ppc405-imul3): Adjust.
23845         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
23846         * config/rs6000/476.md (ppc476-imul): Adjust.
23847         * config/rs6000/601.md (ppc601-imul): Adjust.
23848         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
23849         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
23850         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
23851         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
23852         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
23853         Adjust.
23854         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
23855         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
23856         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
23857         cell-imul): Adjust.
23858         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
23859         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
23860         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
23861         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
23862         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
23863         * config/rs6000/mpc.md (mpccore-imul): Adjust.
23864         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
23865         power4-lmul, power4-imul, power4-imul3): Adjust.
23866         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
23867         power5-lmul, power5-imul, power5-imul3): Adjust.
23868         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
23869         power6-lmul, power6-imul, power6-imul3): Adjust.
23870         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
23871         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
23872
23873         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
23874         rs64a-lmul): Adjust.
23875         * config/rs6000/titan.md (titan_imul): Adjust.
23876
23877 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23878
23879         * config/rs6000/rs6000.md (type): Add new value "halfmul".
23880         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
23881         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
23882         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
23883         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
23884         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
23885         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
23886         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
23887         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
23888         * config/rs6000/titan.md: Delete nonsensical comment.
23889         (titan_imul): Add type imul3.
23890         (titan_mulhw): Remove type imul3; add type halfmul.
23891
23892 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23893
23894         * config/rs6000/rs6000.md (type): Reorder, reformat.
23895
23896 2014-05-23  Martin Jambor  <mjambor@suse.cz>
23897
23898         PR tree-optimization/53787
23899         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
23900         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
23901         analysis_done, update all uses.
23902         * ipa-prop.c: Include domwalk.h
23903         (param_analysis_info): Removed.
23904         (param_aa_status): New type.
23905         (ipa_bb_info): Likewise.
23906         (func_body_info): Likewise.
23907         (ipa_get_bb_info): New function.
23908         (aa_overwalked): Likewise.
23909         (find_dominating_aa_status): Likewise.
23910         (parm_bb_aa_status_for_bb): Likewise.
23911         (parm_preserved_before_stmt_p): Changed to use new param AA info.
23912         (load_from_unmodified_param): Accept func_body_info as a parameter
23913         instead of parms_ainfo.
23914         (parm_ref_data_preserved_p): Changed to use new param AA info.
23915         (parm_ref_data_pass_through_p): Likewise.
23916         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
23917         (compute_complex_assign_jump_func): Changed to use new param AA info.
23918         (compute_complex_ancestor_jump_func): Likewise.
23919         (ipa_compute_jump_functions_for_edge): Likewise.
23920         (ipa_compute_jump_functions): Removed.
23921         (ipa_compute_jump_functions_for_bb): New function.
23922         (ipa_analyze_indirect_call_uses): Likewise, moved variable
23923         declarations down.
23924         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
23925         and info, moved variable declarations down.
23926         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
23927         node and info.
23928         (ipa_analyze_stmt_uses): Likewise.
23929         (ipa_analyze_params_uses): Removed.
23930         (ipa_analyze_params_uses_in_bb): New function.
23931         (ipa_analyze_controlled_uses): Likewise.
23932         (free_ipa_bb_info): Likewise.
23933         (analysis_dom_walker): New class.
23934         (ipa_analyze_node): Handle node-specific forbidden analysis,
23935         initialize and free func_body_info, use dominator walker.
23936         (ipcp_modif_dom_walker): New class.
23937         (ipcp_transform_function): Create and free func_body_info, use
23938         ipcp_modif_dom_walker, moved a lot of functionality there.
23939
23940 2014-05-23  Marek Polacek  <polacek@redhat.com>
23941             Jakub Jelinek  <jakub@redhat.com>
23942
23943         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
23944         * gcc.c (sanitize_spec_function): Likewise.
23945         * convert.c (convert_to_integer): Include "ubsan.h".  Add
23946         floating-point to integer instrumentation.
23947         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
23948         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
23949         SANITIZE_NONDEFAULT.
23950         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
23951         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
23952         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
23953         * ubsan.c: Include "realmpfr.h" and "dfp.h".
23954         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
23955         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
23956         float/double/long double.
23957         (ubsan_instrument_float_cast): New function.
23958         * ubsan.h (ubsan_instrument_float_cast): Declare.
23959
23960 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
23961
23962         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
23963         predicate.
23964         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
23965         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
23966         Adjust for tailcalling through registers.
23967         * config/aarch64/aarch64.h (enum reg_class): New caller save
23968         register class.
23969         (REG_CLASS_NAMES): Likewise.
23970         (REG_CLASS_CONTENTS): Likewise.
23971         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
23972         Allow tailcalling without decls.
23973
23974 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
23975
23976         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23977         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
23978
23979         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
23980         gsi, and variables v_* to v*.
23981
23982 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
23983
23984         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
23985
23986 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
23987
23988         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
23989         * omp-low.c: Update accordingly.
23990
23991         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
23992         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
23993         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
23994         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
23995         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
23996         GF_OMP_TARGET_KIND_UPDATE.
23997
23998         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23999         Explicitly enumerate the expected region types.
24000
24001 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
24002
24003         PR other/56955
24004         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
24005         documentation; the old documentation didn't clearly state the
24006         constraints on the contents of the pointed-to storage.
24007
24008 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24009
24010         Fix bootstrap error on ia64
24011         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24012         Return default value.
24013
24014 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24015
24016         PR tree-optimization/54733
24017         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24018         (CMPNOP): Define.
24019         (find_bswap_or_nop_load): New.
24020         (find_bswap_1): Renamed to ...
24021         (find_bswap_or_nop_1): This. Also add support for memory source.
24022         (find_bswap): Renamed to ...
24023         (find_bswap_or_nop): This. Also add support for memory source and
24024         detection of bitwise operations equivalent to load in target
24025         endianness.
24026         (execute_optimize_bswap): Likewise. Also move its leading comment back
24027         in place and split statement transformation into ...
24028         (bswap_replace): This.
24029
24030 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24031
24032         PR rtl-optimization/61215
24033         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24034         simplify_gen_subreg until final substitution.
24035
24036 2014-05-23  Alan Modra  <amodra@gmail.com>
24037
24038         PR target/61231
24039         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24040         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24041         Use "Y" constraint rather than "m".
24042
24043 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24044
24045         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24046         define.
24047         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24048         New function declaration.
24049         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24050         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24051         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24052         (aarch64_init_builtins) : Initialize builtins
24053         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24054         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24055         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24056         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24057         and __builtins_aarch64_set_fpsr.
24058         (aarch64_atomic_assign_expand_fenv): New function.
24059         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24060         (get_fpcr) : Likewise.
24061         (set_fpsr) : Likewise.
24062         (get_fpsr) : Likewise.
24063         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24064         and UNSPECV_SET_FPSR.
24065         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24066         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24067         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24068
24069 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24070
24071         PR rtl-optimization/60969
24072         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24073         constraints.  Set up mem cost for NO_REGS case.
24074
24075 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24076
24077         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24078
24079 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24080
24081         * config/darwin.c: Include "lto-section-names.h".
24082         (LTO_SEGMENT_NAME): Don't define.
24083         * config/i386/winnt.c: Include "lto-section-names.h".
24084         * lto-streamer.c: Include "lto-section-names.h".
24085         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24086         * lto-wrapper.c: Include "lto-section-names.h".
24087         (LTO_SECTION_NAME_PREFIX): Don't define.
24088         * lto-section-names.h: New file.
24089         * cgraphunit.c: Include "lto-section-names.h".
24090
24091 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24092
24093         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24094
24095 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24096
24097         PR target/61208
24098         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24099
24100 2014-05-22  Nick Clifton  <nickc@redhat.com>
24101
24102         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24103
24104 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24105
24106         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24107         -> (T)A transformation to integer types.
24108
24109 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24110
24111         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24112         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24113         (gcov_rewrite): Use gcov_nonruntime_assert.
24114         (gcov_open): Ditto.
24115         (gcov_write_words): Ditto.
24116         (gcov_write_length): Ditto.
24117         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24118         gcc_assert from IN_LIBGCOV code.
24119         (gcov_read_summary): Use gcov_error to flag profile corruption.
24120         (gcov_sync): Use gcov_nonruntime_assert.
24121         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24122         (gcov_histo_index): Use gcov_nonruntime_assert.
24123         (static void gcov_histogram_merge): Ditto.
24124         (compute_working_sets): Ditto.
24125         * gcov-io.h (gcov_nonruntime_assert): Define.
24126         (gcov_error): Define for !IN_LIBGCOV
24127
24128 2014-05-22  Richard Biener  <rguenther@suse.de>
24129
24130         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24131         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24132         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24133         and deallocation site.
24134         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24135         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24136         passing through the incoming points-to set.
24137         (handle_lhs_call): Use flags argument instead of recomputing it.
24138         (find_func_aliases_for_call): Call handle_lhs_call with proper
24139         call return flags.
24140
24141 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24142
24143         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24144         all padding bits in REAL_VALUE_TYPE are cleared.
24145
24146 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24147
24148         Cleanup and improve multipass_dfa_lookahead_guard
24149         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24150         (core2i7_first_cycle_multipass_begin,)
24151         (core2i7_first_cycle_multipass_issue,)
24152         (core2i7_first_cycle_multipass_backtrack): Update signature.
24153         * config/ia64/ia64.c
24154         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24155         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24156         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24157         hook definition.
24158         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24159         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24160         values.
24161         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24162         return values.
24163         * doc/tm.texi: Regenerate.
24164         * doc/tm.texi.in
24165         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24166         * haifa-sched.c (ready_try): Make signed to allow negative values.
24167         (rebug_ready_list_1): Update.
24168         (choose_ready): Simplify.
24169         (sched_extend_ready_list): Update.
24170
24171 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24172
24173         Remove IA64 speculation tweaking flags
24174         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24175         speculation tuning flags.
24176         (msched-prefer-non-data-spec-insns,)
24177         (msched-prefer-non-control-spec-insns): Obsolete options.
24178         * haifa-sched.c (choose_ready): Remove handling of
24179         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24180         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24181         and PREFER_NON_DATA_SPEC.
24182         * sel-sched.c (process_spec_exprs): Remove handling of
24183         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24184
24185 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24186
24187         Improve scheduling debug output
24188         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24189         (advance_one_cycle): Update.
24190         (schedule_insn, queue_to_ready): Add debug printouts.
24191         (debug_ready_list_1): New static function.
24192         (debug_ready_list): Update.
24193         (max_issue): Add debug printouts.
24194         (dump_insn_stream): New static function.
24195         (schedule_block): Use it.  Also better indent printouts.
24196
24197 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24198
24199         Fix sched_insn debug counter
24200         * haifa-sched.c (schedule_insn): Update.
24201         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24202         (save_backtrack_point, restore_backtrack_point): Update.
24203         (first_nonscheduled_insn): New static function.
24204         (queue_to_ready, choose_ready): Use it.
24205         (schedule_block): Init nonscheduled_insns_begin.
24206         (sched_emit_insn): Update.
24207
24208
24209 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24210
24211         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24212         to GENERAL_REGS.
24213         (aarch64_secondary_reload) : LikeWise.
24214         (aarch64_class_max_nregs) : Remove CORE_REGS.
24215         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24216         (REG_CLASS_NAMES) : Likewise.
24217         (REG_CLASS_CONTENTS) : LikeWise.
24218         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24219
24220 2014-05-21  Guozhi Wei  <carrot@google.com>
24221
24222         PR target/61202
24223         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24224         constraint.
24225         (vqdmulhq_n_s16): Likewise.
24226
24227 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24228
24229         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24230
24231 2014-05-21  Marek Polacek  <polacek@redhat.com>
24232
24233         PR sanitizer/61272
24234         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24235
24236 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24237
24238         * doc/invoke.texi (Optimize Options): Document parameters
24239         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24240         ipa-cp-array-index-hint-bonus.
24241
24242 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24243
24244         PR debug/16063
24245         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24246         version >= 3 or not strict DWARF.
24247         * langhooks.h (struct lang_hooks_for_types): Add
24248         enum_underlying_base_type.
24249         * langhooks.c (lhd_enum_underlying_base_type): New function.
24250         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24251         enum_underlying_base_type.
24252         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24253         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24254         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24255
24256 2014-05-21  Richard Biener  <rguenther@suse.de>
24257
24258         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24259
24260 2014-05-21  John Marino  <gnugcc@marino.st>
24261
24262         * config.gcc (*-*-dragonfly*): New target.
24263         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24264         * configure: Regenerate.
24265         * config/dragonfly-stdint.h: New.
24266         * config/dragonfly.h: New.
24267         * config/dragonfly.opt: New.
24268         * config/i386/dragonfly.h: New.
24269         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24270
24271 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24272
24273         * tree.def (VOID_CST): New.
24274         * tree-core.h (TI_VOID): New.
24275         * tree.h (void_node): New.
24276         * tree.c (tree_node_structure_for_code, tree_code_size)
24277         (iterative_hash_expr): Handle VOID_CST.
24278         (build_common_tree_nodes): Initialize void_node.
24279
24280 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24281
24282         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24283         functions.
24284         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24285
24286         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24287         more places.
24288
24289         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24290         flag_reorder_blocks_and_partition.
24291         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24292
24293 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24294
24295         PR target/54236
24296         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24297         constraints.
24298         (*addc_r_t): Add new insn_and_split.
24299
24300 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24301
24302         PR middle-end/61252
24303         * omp-low.c (handle_simd_reference): New function.
24304         (lower_rec_input_clauses): Use it.  Defer adding reference
24305         initialization even for reduction without placeholder if in simd,
24306         handle it properly later on.
24307
24308 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24309
24310         PR tree-optimization/60899
24311         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24312         assume all static symbols will have definition wile parsing and
24313         check the do have definition later in compilation; check that
24314         variable referring symbol will be output before concluding that
24315         reference is safe; be conservative for referring local statics;
24316         be more precise about when comdat is output in other partition.
24317
24318 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24319
24320         PR bootstrap/60984
24321         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24322         parameter.
24323         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24324         (ipa_inline): Loop inline_to_all_callers until no more aliases
24325         are removed.
24326
24327 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24328
24329         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24330         set writeonly flag only for vars actually written to.
24331
24332 2014-05-20  Dehao Chen  <dehao@google.com>
24333
24334         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24335         and callee count to get clone count.
24336         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24337         count in copy_body.
24338
24339 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24340
24341         PR rtl-optimization/61243
24342         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24343
24344 2014-05-20  Xinliang David Li  <davidxl@google.com>
24345
24346         * cgraphunit.c (walk_polymorphic_call_targets): Add
24347         dbgcnt and fopt-info support.
24348         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24349         * ipa-devirt.c (ipa_devirt): Ditto.
24350         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24351         * ipa.c (walk_polymorphic_call_targets): Ditto.
24352         * gimple-fold.c (fold_gimple_assign): Ditto.
24353         (gimple_fold_call): Ditto.
24354         * dbgcnt.def: New counter.
24355
24356 2014-05-20  DJ Delorie  <dj@redhat.com>
24357
24358         * config/msp430/msp430.md (split): Don't allow subregs when
24359         splitting SImode adds.
24360         (andneghi): Fix subtraction logic.
24361         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24362
24363 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24364
24365         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24366         symbols.
24367         * except.c (switch_to_exception_section, resolve_unique_section,
24368         get_named_text_section, default_function_rodata_section,
24369         align_variable, get_block_for_decl, default_section_type_flags):
24370         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24371         * symtab.c (symtab_add_to_same_comdat_group,
24372         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24373         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24374         Likewise.
24375         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24376         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24377         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24378         (c6x_function_in_section_p): Likewise.
24379         * config/darwin.c (machopic_select_section): Likewise.
24380         * config/arm/arm.c (arm_function_in_section_p): Likewise.
24381         * config/mips/mips.c (mips_function_rodata_section): Likewise.
24382         * config/mep/mep.c (mep_select_section): LIkewise.
24383         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24384
24385 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
24386
24387         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24388         EH region of calls to pure functions that can throw an exception.
24389         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24390         (copy_reference_ops_from_call): Also copy the EH region of the call if
24391         it can throw an exception.
24392
24393 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24394
24395         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24396         nested VEC_SELECTs that are inverses of each other.
24397
24398 2014-05-20  Richard Biener  <rguenther@suse.de>
24399
24400         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
24401         (extract_and_process_scc_for_name): not here.
24402         (cond_dom_walker::before_dom_children): Only process
24403         stmts that end the BB in interesting ways.
24404         (run_scc_vn): Mark param uses as visited.
24405
24406 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24407
24408         * config/arm/arm.md (arith_shiftsi): Do not predicate for
24409         arm_restrict_it.
24410
24411 2014-05-20  Nick Clifton  <nickc@redhat.com>
24412
24413         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
24414         (msp430_gimplify_va_arg_expr): New function.
24415         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
24416
24417         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
24418         operand 0 in order to prevent confusion about the number of
24419         registers involved.
24420
24421 2014-05-20  Richard Biener  <rguenther@suse.de>
24422
24423         PR tree-optimization/61221
24424         * tree-ssa-pre.c (el_to_update): Remove.
24425         (eliminate_dom_walker::before_dom_children): Handle released
24426         VDEFs by value-numbering them to the associated VUSE.  Update
24427         stmt immediately for substituted call address.
24428         (eliminate): Remove delayed stmt updating code.
24429         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
24430         possibly late re-numbered vuses.
24431         (vn_reference_lookup_2): Adjust.
24432         (vn_reference_lookup_pieces): Likewise.
24433         (vn_reference_lookup): Likewise.
24434
24435 2014-05-20  Richard Biener  <rguenther@suse.de>
24436
24437         * config.gcc: Remove need_64bit_hwint.
24438         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
24439         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
24440         it to be true.
24441         * config.in: Regenerate.
24442         * configure: Likewise.
24443
24444 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
24445
24446         * doc/extend.texi: Create Label Attributes section,
24447         move all label attributes into it and reference it.
24448
24449 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
24450
24451         * arm.c (thumb1_reorg): When scanning backwards skip anything
24452         that's not a proper insn.
24453
24454 2014-05-19  Richard Biener  <rguenther@suse.de>
24455
24456         PR tree-optimization/61221
24457         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24458         Do nothing for unreachable blocks.
24459         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
24460         Improve unreachability detection.
24461
24462 2014-05-19  Richard Biener  <rguenther@suse.de>
24463
24464         PR tree-optimization/61209
24465         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
24466
24467 2014-05-19  Nick Clifton  <nickc@redhat.com>
24468
24469         * except.c (init_eh): Fix computation of builtin setjmp buffer
24470         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
24471
24472 2014-05-19  Richard Biener  <rguenther@suse.de>
24473
24474         PR tree-optimization/61184
24475         * tree-vrp.c (is_negative_overflow_infinity): Use
24476         TREE_OVERFLOW_P and do that check first.
24477         (is_positive_overflow_infinity): Likewise.
24478         (is_overflow_infinity): Likewise.
24479         (vrp_operand_equal_p): Properly treat operands with
24480         differing overflow as not equal.
24481
24482 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
24483
24484         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
24485         shift simplification where it was intended.
24486
24487 2014-05-19  Christian Bruel  <christian.bruel@st.com>
24488
24489         PR target/61195
24490         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
24491
24492 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
24493
24494         PR target/61084
24495         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
24496         than wide_int.
24497
24498 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24499
24500         * reg-notes.def (CROSSING_JUMP): Likewise.
24501         * rtl.h (rtx_def): Update comment for jump flag.
24502         (CROSSING_JUMP_P): Define.
24503         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
24504         of a REG_CROSSING_JUMP note.
24505         * cfghooks.c (tidy_fallthru_edges): Likewise.
24506         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
24507         * emit-rtl.c (try_split): Likewise.
24508         * haifa-sched.c (sched_create_recovery_edges): Likewise.
24509         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
24510         * jump.c (redirect_jump_2): Likewise.
24511         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
24512         (relax_delay_slots): Likewise.
24513         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
24514         (bbit_di): Likewise.
24515         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
24516         * config/sh/sh.md (jump_compact): Likewise.
24517         * bb-reorder.c (rotate_loop): Likewise.
24518         (pass_duplicate_computed_gotos::execute): Likewise.
24519         (add_reg_crossing_jump_notes): Rename to...
24520         (update_crossing_jump_flags): ...this.
24521         (pass_partition_blocks::execute): Update accordingly.
24522
24523 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24524
24525         * tree.h: Remove extraneous template <>.
24526
24527 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24528
24529         * ipa.c (symtab_remove_unreachable_nodes): Remove
24530         symbol from comdat group if its body was eliminated.
24531         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
24532         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
24533         (symtab_unregister_node): ... this one.
24534         (verify_symtab_base): More strict checking of comdats.
24535         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
24536
24537 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24538
24539         * tree-pass.h (make_pass_ipa_comdats): New pass.
24540         * timevar.def (TV_IPA_COMDATS): New timevar.
24541         * passes.def (pass_ipa_comdats): Add.
24542         * Makefile.in (OBJS): Add ipa-comdats.o
24543         * ipa-comdats.c: New file.
24544
24545 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24546
24547         * ipa.c (update_visibility_by_resolution_info): New function.
24548         (function_and_variable_visibility): Use it.
24549
24550 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24551
24552         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
24553         New functions.
24554         (FOR_EACH_DEFINED_SYMBOL): New macro.
24555         (varpool_first_static_initializer, varpool_next_static_initializer,
24556         varpool_first_defined_variable, varpool_next_defined_variable):
24557         Fix comments.
24558         (symtab_in_same_comdat_p): Correctly deal with inline functions.
24559
24560 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24561
24562         * ggc-page.c (ggc_handle_finalizers): Add comment.
24563
24564 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24565
24566         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
24567         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
24568         (ggc_internal_cleared_alloc): Likewise.
24569         * ggc-page.c (finalizer): New class.
24570         (vec_finalizer): Likewise.
24571         (globals::finalizers): New member.
24572         (globals::vec_finalizers): Likewise.
24573         (ggc_internal_alloc): Record the finalizer if any for the block being
24574         allocated.
24575         (ggc_handle_finalizers): New function.
24576         (ggc_collect): Call ggc_handle_finalizers.
24577         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
24578         finalizer.
24579         (ggc_internal_cleared_alloc): Likewise.
24580         (finalize): New function.
24581         (need_finalization_p): Likewise.
24582         (ggc_alloc): Install the type's destructor as the finalizer if it
24583         might do something.
24584         (ggc_cleared_alloc): Likewise.
24585         (ggc_vec_alloc): Likewise.
24586         (ggc_cleared_vec_alloc): Likewise.
24587
24588 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24589
24590         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
24591
24592 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24593
24594         * alias.c (record_alias_subset): Adjust.
24595         * bitmap.c (bitmap_element_allocate): Likewise.
24596         (bitmap_gc_alloc_stat): Likewise.
24597         * cfg.c (init_flow): Likewise.
24598         (alloc_block): Likewise.
24599         (unchecked_make_edge): Likewise.
24600         * cfgloop.c (alloc_loop): Likewise.
24601         (flow_loops_find): Likewise.
24602         (rescan_loop_exit): Likewise.
24603         * cfgrtl.c (init_rtl_bb_info): Likewise.
24604         * cgraph.c (insert_new_cgraph_node_version): Likewise.
24605         (cgraph_allocate_node): Likewise.
24606         (cgraph_create_edge_1): Likewise.
24607         (cgraph_allocate_init_indirect_info): Likewise.
24608         * cgraphclones.c (cgraph_clone_edge): Likewise.
24609         * cgraphunit.c (add_asm_node): Likewise.
24610         (init_lowered_empty_function): Likewise.
24611         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
24612         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24613         (alpha_use_linkage): Likewise.
24614         * config/arc/arc.c (arc_init_machine_status): Likewise.
24615         * config/arm/arm.c (arm_init_machine_status): Likewise.
24616         * config/avr/avr.c (avr_init_machine_status): Likewise.
24617         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24618         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
24619         * config/cris/cris.c (cris_init_machine_status): Likewise.
24620         * config/darwin.c (machopic_indirection_name): Likewise.
24621         (darwin_build_constant_cfstring): Likewise.
24622         (darwin_enter_string_into_cfstring_table): Likewise.
24623         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
24624         * config/frv/frv.c (frv_init_machine_status): Likewise.
24625         * config/i386/i386.c (get_dllimport_decl): Likewise.
24626         (ix86_init_machine_status): Likewise.
24627         (assign_386_stack_local): Likewise.
24628         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24629         (i386_pe_maybe_record_exported_symbol): Likewise.
24630         (i386_pe_record_stub): Likewise.
24631         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24632         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24633         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24634         (m32c_note_pragma_address): Likewise.
24635         * config/mep/mep.c (mep_init_machine_status): Likewise.
24636         (mep_note_pragma_flag): Likewise.
24637         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24638         (mips16_local_alias): Likewise.
24639         (mips_init_machine_status): Likewise.
24640         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24641         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24642         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
24643         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
24644         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
24645         * config/pa/pa.c (pa_init_machine_status): Likewise.
24646         (pa_get_deferred_plabel): Likewise.
24647         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
24648         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24649         (rs6000_init_machine_status): Likewise.
24650         (output_toc): Likewise.
24651         * config/s390/s390.c (s390_init_machine_status): Likewise.
24652         * config/score/score.c (score_output_external): Likewise.
24653         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24654         * config/spu/spu.c (spu_init_machine_status): Likewise.
24655         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
24656         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
24657         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24658         * coverage.c (coverage_end_function): Likewise.
24659         * dbxout.c (dbxout_init): Likewise.
24660         * doc/gty.texi: Don't mention variable_size attribute.
24661         * dwarf2cfi.c (new_cfi): Adjust.
24662         (new_cfi_row): Likewise.
24663         (copy_cfi_row): Likewise.
24664         (create_cie_data): Likewise.
24665         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
24666         (new_loc_descr): Likewise.
24667         (find_AT_string_in_table): Likewise.
24668         (add_addr_table_entry): Likewise.
24669         (new_die): Likewise.
24670         (add_var_loc_to_decl): Likewise.
24671         (clone_die): Likewise.
24672         (clone_as_declaration): Likewise.
24673         (break_out_comdat_types): Likewise.
24674         (new_loc_list): Likewise.
24675         (add_loc_descr_to_each): Likewise.
24676         (add_location_or_const_value_attribute): Likewise.
24677         (add_linkage_name): Likewise.
24678         (lookup_filename): Likewise.
24679         (dwarf2out_var_location): Likewise.
24680         (new_line_info_table): Likewise.
24681         (dwarf2out_init): Likewise.
24682         (mem_loc_descriptor): Likewise.
24683         (loc_descriptor): Likewise.
24684         (add_const_value_attribute): Likewise.
24685         (tree_add_const_value_attribute): Likewise.
24686         (comp_dir_string): Likewise.
24687         (dwarf2out_vms_debug_main_pointer): Likewise.
24688         (string_cst_pool_decl): Likewise.
24689         * emit-rtl.c (set_mem_attrs): Likewise.
24690         (get_reg_attrs): Likewise.
24691         (start_sequence): Likewise.
24692         (init_emit): Likewise.
24693         (init_emit_regs): Likewise.
24694         * except.c (init_eh_for_function): Likewise.
24695         (gen_eh_region): Likewise.
24696         (gen_eh_region_catch): Likewise.
24697         (gen_eh_landing_pad): Likewise.
24698         (add_call_site): Likewise.
24699         * function.c (add_frame_space): Likewise.
24700         (insert_temp_slot_address): Likewise.
24701         (assign_stack_temp_for_type): Likewise.
24702         (get_hard_reg_initial_val): Likewise.
24703         (allocate_struct_function): Likewise.
24704         (prepare_function_start): Likewise.
24705         (types_used_by_var_decl_insert): Likewise.
24706         * gengtype.c (variable_size_p): Remove function.
24707         (enum alloc_quantity): Remove enum.
24708         (write_typed_alloc_def): Remove function.
24709         (write_typed_struct_alloc_def): Likewise.
24710         (write_typed_typedef_alloc_def): Likewise.
24711         (write_typed_alloc_defns): Likewise.
24712         (main): Adjust.
24713         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
24714         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
24715         * ggc.h (ggc_alloc): new function.
24716         (ggc_cleared_alloc): Likewise.
24717         (ggc_vec_alloc): Template on type of vector element, and remove
24718         element size argument.
24719         (ggc_cleared_vec_alloc): Likewise.
24720         * gimple.c (gimple_build_omp_for): Adjust.
24721         (gimple_copy): Likewise.
24722         * ipa-cp.c (get_replacement_map): Likewise.
24723         (find_aggregate_values_for_callers_subset): Likewise.
24724         (known_aggs_to_agg_replacement_list): Likewise.
24725         * ipa-devirt.c (get_odr_type): Likewise.
24726         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
24727         (read_agg_replacement_chain): Likewise.
24728         * loop-iv.c (get_simple_loop_desc): Likewise.
24729         * lto-cgraph.c (input_node_opt_summary): Likewise.
24730         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24731         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24732         (input_eh_region): Likewise.
24733         (input_eh_lp): Likewise.
24734         (input_cfg): Likewise.
24735         * optabs.c (set_optab_libfunc): Likewise.
24736         (init_tree_optimization_optabs): Likewise.
24737         (set_conv_libfunc): Likewise.
24738         * passes.c (do_per_function_toporder): Likewise.
24739         * rtl.h: Don't use variable_size gty attribute.
24740         * sese.c (if_region_set_false_region): Adjust.
24741         * stringpool.c (gt_pch_save_stringpool): Likewise.
24742         * target-globals.c (save_target_globals): Likewise.
24743         * toplev.c (general_init): Likewise.
24744         * trans-mem.c (record_tm_replacement): Likewise.
24745         (split_bb_make_tm_edge): Likewise.
24746         * tree-cfg.c (move_sese_region_to_fn): Likewise.
24747         * tree-data-ref.h (lambda_vector_new): Likewise.
24748         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24749         * tree-iterator.c (tsi_link_before): Likewise.
24750         (tsi_link_after): Likewise.
24751         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24752         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24753         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24754         * tree-ssa-operands.h: Don't use variable_size gty attribute.
24755         * tree-ssa.c (init_tree_ssa): Adjust.
24756         * tree-ssanames.c (set_range_info): Likewise.
24757         (get_ptr_info): Likewise.
24758         (duplicate_ssa_name_ptr_info): Likewise.
24759         (duplicate_ssa_name_range_info): Likewise.
24760         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
24761         (unpack_ts_fixed_cst_value_fields): Likewise.
24762         * tree.c (build_fixed): Likewise.
24763         (build_real): Likewise.
24764         (build_string): Likewise.
24765         (decl_priority_info): Likewise.
24766         (decl_debug_expr_insert): Likewise.
24767         (decl_value_expr_insert): Likewise.
24768         (decl_debug_args_insert): Likewise.
24769         (type_hash_add): Likewise.
24770         (build_omp_clause): Likewise.
24771         * ubsan.c (decl_for_type_insert): Likewise.
24772         * varasm.c (get_unnamed_section): Likewise.
24773         (get_noswitch_section): Likewise.
24774         (get_section): Likewise.
24775         (get_block_for_section): Likewise.
24776         (create_block_symbol): Likewise.
24777         (build_constant_desc): Likewise.
24778         (create_constant_pool): Likewise.
24779         (force_const_mem): Likewise.
24780         (record_tm_clone_pair): Likewise.
24781         * varpool.c (varpool_create_empty_node): Likewise.
24782
24783 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24784
24785         * dwarf2out.c (tree_add_const_value_attribute): Call
24786         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
24787         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
24788         instead of ggc_internal_<x>alloc_stat.
24789         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
24790         (ggc_realloc): Likewise.
24791         * ggc-none.c (ggc_internal_alloc): Likewise.
24792         (ggc_internal_cleared_alloc): Likewise.
24793         * ggc-page.c: Likewise.
24794         * ggc.h (ggc_internal_alloc_stat): Likewise.
24795         (ggc_internal_alloc): Remove macro.
24796         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
24797         (ggc_internal_cleared_alloc): Remove macro.
24798         (GGC_RESIZEVEC): Adjust.
24799         (ggc_resizevar): Remove macro.
24800         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
24801         (ggc_internal_cleared_vec_alloc_stat): Likewise.
24802         (ggc_internal_vec_cleared_alloc): Remove macro.
24803         (ggc_alloc_atomic_stat): Drop _stat suffix.
24804         (ggc_alloc_atomic): Remove macro.
24805         (ggc_alloc_cleared_atomic): Remove macro.
24806         (ggc_alloc_string_stat): Drop _stat suffix.
24807         (ggc_alloc_string): Remove macro.
24808         (ggc_alloc_rtx_def_stat): Adjust.
24809         (ggc_alloc_tree_node_stat): Likewise.
24810         (ggc_alloc_cleared_tree_node_stat): Likewise.
24811         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
24812         (ggc_alloc_cleared_simd_clone_stat): Likewise.
24813         * gimple.c (gimple_build_omp_for): Likewise.
24814         (gimple_copy): Likewise.
24815         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
24816         * toplev.c (realloc_for_line_map): Adjust.
24817         * tree-data-ref.h (lambda_vector_new): Likewise.
24818         * tree-phinodes.c (allocate_phi_node): Likewise.
24819         * tree.c (grow_tree_vec_stat): Likewise.
24820         * vec.h (va_gc::reserve): Adjust.
24821
24822 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
24823
24824         * config/microblaze/microblaze.c (break_handler): New Declaration.
24825         (microblaze_break_function_p,microblaze_is_break_handler): New.
24826         (compute_frame_size): Use microblaze_break_function_p.
24827         Add the test of break_handler.
24828         (microblaze_function_prologue) : Add the test of variable
24829         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
24830         (microblaze_function_epilogue) : Add the test of break_handler.
24831         (microblaze_globalize_label) : Add the test of break_handler.
24832         Check the name by BREAK_HANDLER_NAME.
24833
24834         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
24835
24836         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
24837         microblaze_is_break_handler test.
24838         (call_internal1,call_value_intern): Use microblaze_break_function_p.
24839         Use SYMBOL_REF_DECL.
24840
24841         * config/microblaze/microblaze-protos.h
24842         (microblaze_break_function_p,microblaze_is_break_handler):
24843         New Declaration.
24844
24845         * doc/extend.texi (MicroBlaze break_handler Functions): Document
24846         new MicroBlaze break_handler functions.
24847
24848 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24849
24850         * doc/extend.texi (Size of an asm): Move node text according
24851         to its @menu entry position.
24852
24853 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
24854
24855         PR tree-optimization/61140
24856         PR tree-optimization/61150
24857         PR tree-optimization/61197
24858         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
24859
24860 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24861
24862         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
24863
24864 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
24865
24866         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
24867         __SIZEOF_INT128__ is defined.
24868
24869 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24870
24871         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
24872         (rs6000_delegitimize_address): Use it.
24873
24874 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24875
24876         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
24877         inplace argument.  Store the new address in the original MEM when true.
24878         * emit-rtl.c (change_address_1): Likewise.
24879         (adjust_address_1, adjust_automodify_address_1, offset_address):
24880         Update accordingly.
24881         * rtl.h (plus_constant): Add an inplace argument.
24882         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
24883         when true.  Avoid generating (plus X (const_int 0)).
24884         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
24885         in-place.  Pass true to plus_constant.
24886         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
24887
24888 2014-05-16  Dehao Chen  <dehao@google.com>
24889
24890         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
24891
24892 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24893
24894         PR target/54089
24895         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
24896         patterns.
24897         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
24898
24899 2014-05-16  Dehao Chen  <dehao@google.com>
24900
24901         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
24902         optimize_function_for_size_p.
24903         * regs.h (REG_FREQ_FROM_BB): Likewise.
24904
24905 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24906
24907         PR target/51244
24908         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
24909         negt_reg_operand cases.
24910         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
24911         predicate.
24912         * config/sh/predicates.md (cbranch_treg_value): Simplify.
24913
24914 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24915
24916         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
24917         target variants.
24918
24919 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
24920
24921         Revert:
24922         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
24923
24924         * tree-cfg.c (dump_function_to_file): Dump the return type of
24925         functions, in a line to itself before the function body, mimicking
24926         the layout of a C function.
24927
24928 2014-05-16  Dehao Chen  <dehao@google.com>
24929
24930         * cfghooks.c (make_forwarder_block): Use direct computation to
24931         get fall-through edge's count and frequency.
24932
24933 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
24934
24935         * config/arc/arc.c (arc_init): Fix typo in error message.
24936         * config/i386/i386.c (ix86_expand_builtin): Likewise.
24937         (split_stack_prologue_scratch_regno): Likewise.
24938         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
24939         word from error message.
24940
24941 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
24942
24943         * ira-costs.c: Fix typo in comment.
24944
24945 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
24946
24947         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
24948
24949 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
24950
24951         * varpool.c (dump_varpool_node): Dump write-only flag.
24952         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
24953         write-only flag.
24954         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
24955         write-only variables.
24956         * ipa.c (process_references): New function.
24957         (set_readonly_bit): New function.
24958         (set_writeonly_bit): New function.
24959         (clear_addressable_bit): New function.
24960         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
24961         fix handling of aliases.
24962         * cgraph.h (struct varpool_node): Add writeonly flag.
24963
24964 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
24965
24966         PR rtl-optimization/60969
24967         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
24968         Calculate costs for this case.
24969
24970 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
24971
24972         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
24973         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
24974
24975 2014-05-16  Richard Biener  <rguenther@suse.de>
24976
24977         PR tree-optimization/61194
24978         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
24979         bool patterns ending in a COND_EXPR.
24980
24981 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24982
24983         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
24984
24985 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24986
24987         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
24988         where we were unable to cost an RTX.
24989
24990 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24991
24992         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
24993         HIGH, LO_SUM.
24994
24995 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24996             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24997
24998         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
24999
25000 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25001             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25002
25003         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25004         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25005
25006 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25007             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25008
25009         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25010         operators.
25011
25012 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25013             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25014
25015         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25016         DIV/MOD.
25017
25018 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25019             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25020
25021         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25022         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25023
25024 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25025             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25026
25027         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25028         rotates and shifts.
25029
25030 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25031             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25032
25033         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25034         ZERO_EXTEND and SIGN_EXTEND better.
25035
25036 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25037             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25038
25039         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25040         logical operations.
25041
25042 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25043             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25044
25045         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25046         costs when costing loads and stores to memory.
25047
25048 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25049             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25050
25051         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25052         for SET RTX.
25053
25054 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25055
25056         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25057
25058 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25059             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25060
25061         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25062         to...
25063         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25064         well formed.
25065         (aarch64_rtx_mult_cost): New.
25066         (aarch64_rtx_costs): Use it, refactor as appropriate.
25067
25068 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25069             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25070
25071         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25072         emit instructions, return number of instructions which would
25073         be emitted.
25074         (aarch64_add_constant): Update call to aarch64_build_constant.
25075         (aarch64_output_mi_thunk): Likewise.
25076         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25077         a CONST_DOUBLE.
25078
25079 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25080
25081         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25082         (TARGET_RTX_COSTS): Call it.
25083
25084 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25085
25086         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25087         (cortexa57_vector_cost): Likewise.
25088         (cortexa57_tunings): Use them.
25089
25090 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25091
25092         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25093         (cpu_addrcost_table): Use it.
25094         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25095         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25096         move it.
25097
25098 2014-05-16  Richard Biener  <rguenther@suse.de>
25099
25100         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25101         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25102         (visit_phi): Ignore edges marked as not executable.
25103         (class cond_dom_walker): New.
25104         (cond_dom_walker::before_dom_children): Value-number
25105         control statements and mark successor edges as not
25106         executable if possible.
25107         (run_scc_vn): First walk all control statements in
25108         dominator order, marking edges as not executable.
25109         * tree-inline.c (copy_edges_for_bb): Be not confused
25110         about random edge flags.
25111
25112 2014-05-16  Richard Biener  <rguenther@suse.de>
25113
25114         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25115
25116 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25117
25118         PR target/61193
25119         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25120         (__TM_simple_begin): Use it.
25121         (__TM_begin): Likewise.
25122
25123 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25124
25125         PR ipa/61085
25126         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25127         type_preserved flag when the indirect edge is polymorphic.
25128
25129 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25130
25131         PR tree-optimization/61090
25132         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25133         build_ref_for_model.
25134
25135 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25136
25137         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25138         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25139
25140 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25141
25142         PR tree-optimization/61158
25143         * fold-const.c (fold_binary_loc): If X is zero-extended and
25144         shiftc >= prec, make sure zerobits is all ones instead of
25145         invoking undefined behavior.
25146
25147 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25148
25149         * regcprop.h: New file.
25150         * regcprop.c (skip_debug_insn_p): New decl.
25151         (replace_oldest_value_reg): Check skip_debug_insn_p.
25152         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25153         * shrink-wrap.c: Include regcprop.h.
25154         (prepare_shrink_wrap): Call
25155         copyprop_hardreg_forward_bb_without_debug_insn.
25156
25157 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25158
25159         * shrink-wrap.h: Update comment.
25160         * shrink-wrap.c: Update comment.
25161         (next_block_for_reg): Rename to live_edge_for_reg.
25162         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25163         (move_insn_for_shrink_wrap): Split live_edge.
25164         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25165
25166 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25167
25168         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25169         Delete.
25170         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25171         * config/sparc/sparc.md (fptype_ut699): New attribute.
25172         (in_branch_delay): Return false if -mfix-ut699 is specified and
25173         fptype_ut699 is set to single.
25174         (truncdfsf2): Add fptype_ut699 attribute.
25175         (fix_truncdfsi2): Likewise.
25176         (floatsisf2): Change fptype attribute.
25177         (fix_truncsfsi2): Likewise.
25178         (negtf2_notv9): Delete.
25179         (negtf2_v9): Likewise.
25180         (negtf2_hq): New instruction.
25181         (negtf2): New instruction and splitter.
25182         (negdf2_notv9): Rewrite.
25183         (abstf2_notv9): Delete.
25184         (abstf2_hq_v9): Likewise.
25185         (abstf2_v9): Likewise.
25186         (abstf2_hq): New instruction.
25187         (abstf2): New instruction and splitter.
25188         (absdf2_notv9): Rewrite.
25189
25190 2014-05-14  Cary Coutant  <ccoutant@google.com>
25191
25192         PR debug/61013
25193         * opts.c (common_handle_option): Don't special-case "-g".
25194         (set_debug_level): Default to at least level 2 with "-g".
25195
25196 2014-05-14  DJ Delorie  <dj@redhat.com>
25197
25198         * config/msp430/msp430.c (msp430_builtin): Add
25199         MSP430_BUILTIN_DELAY_CYCLES.
25200         (msp430_init_builtins): Register void __delay_cycles(long long).
25201         (msp430_builtin_decl): Add it.
25202         (cg_magic_constant): New.
25203         (msp430_expand_delay_cycles): New.
25204         (msp430_expand_builtin): Call it.
25205         (msp430_print_operand_raw): Change integer printing from "int" to
25206         HOST_WIDE_INT.
25207         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25208         (delay_cycles_start): New.
25209         (delay_cycles_end): New.
25210         (delay_cycles_32): New.
25211         (delay_cycles_32x): New.
25212         (delay_cycles_16): New.
25213         (delay_cycles_16x): New.
25214         (delay_cycles_2): New.
25215         (delay_cycles_1): New.
25216         * doc/extend.texi: Document __delay_cycles().
25217
25218 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25219
25220         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25221         length attribute computation.
25222
25223 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25224
25225         PR debug/61188
25226         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25227
25228 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25229
25230         PR target/61084
25231         * config/sparc/sparc.md: Fix types of low and high in DI constant
25232         splitter.  Use gen_int_mode in some other splitters.
25233
25234 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25235
25236         PR ipa/60897
25237         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25238
25239 2014-05-14  James Norris  <jnorris@codesourcery.com>
25240
25241         * omp-low.c (expand_parallel_call): Remove shadow variable.
25242         (expand_omp_taskreg): Likewise.
25243
25244 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25245
25246         * common/config/i386/i386-common.c
25247         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25248         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25249         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25250         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25251         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25252         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25253         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25254         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25255         xsavecintrin.h, xsavesintrin.h.
25256         (x86_64-*-*): Ditto.
25257         * config/i386/clflushoptintrin.h: New.
25258         * config/i386/xsavecintrin.h: Ditto.
25259         * config/i386/xsavesintrin.h: Ditto.
25260         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25261         (bit_XSAVES): Ditto.
25262         (bit_XSAVES): Ditto.
25263         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25264         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25265         -mno-clflushopt.
25266         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25267         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25268         OPTION_MASK_ISA_XSAVES.
25269         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25270         -mxsavec, -mxsaves.
25271         (PTA_CLFLUSHOPT) Define.
25272         (PTA_XSAVEC): Ditto.
25273         (PTA_XSAVES): Ditto.
25274         (ix86_option_override_internal): Handle new options.
25275         (ix86_valid_target_attribute_inner_p): Ditto.
25276         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25277         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25278         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25279         (bdesc_special_args): Add __builtin_ia32_xsaves,
25280         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25281         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25282         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25283         (ix86_expand_builtin): Handle new builtins.
25284         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25285         (TARGET_CLFLUSHOPT_P): Ditto.
25286         (TARGET_XSAVEC): Ditto.
25287         (TARGET_XSAVEC_P): Ditto.
25288         (TARGET_XSAVES): Ditto.
25289         (TARGET_XSAVES_P): Ditto.
25290         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25291         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25292         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25293         (ANY_XRSTOR): New.
25294         (ANY_XRSTOR64): Ditto.
25295         (xrstor): Ditto.
25296         (xrstor): Change into <xrstor>.
25297         (xrstor_rex64): Change into <xrstor>_rex64.
25298         (xrstor64): Change into <xrstor>64
25299         (clflushopt): New.
25300         * config/i386/i386.opt (mclflushopt): New.
25301         (mxsavec): Ditto.
25302         (mxsaves): Ditto.
25303         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25304         xsavecintrin.h.
25305         * doc/invoke.texi: Document new options.
25306
25307 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25308
25309         PR rtl-optimization/60866
25310         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25311         Default it to -1.  Pass it down to init_simplejump_data.
25312         (init_simplejump_data): New parameter old_seqno.  Pass it down
25313         to get_seqno_for_a_jump.
25314         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25315         initializing new jump seqno as a last resort.  Add comment.
25316         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25317         jump and pass it down to sel_init_new_insn.
25318         (sel_redirect_edge_and_branch_force): Likewise.
25319
25320 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25321
25322         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25323         shifted values to avoid build warning.
25324
25325 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25326
25327         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25328         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25329         (cfg_layout_merge_blocks): Likewise.
25330         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25331
25332 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25333
25334         PR rtl-optimization/60901
25335         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25336         bb predecessor belongs to the same scheduling region.  Adjust comment.
25337
25338 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25339
25340         * doc/sourcebuild.texi: (dfp_hw): Document.
25341         (p8vector_hw): Likewise.
25342         (powerpc_eabi_ok): Likewise.
25343         (powerpc_elfv2): Likewise.
25344         (powerpc_htm_ok): Likewise.
25345         (ppc_recip_hw): Likewise.
25346         (vsx_hw): Likewise.
25347
25348 2014-05-13  Cary Coutant  <ccoutant@google.com>
25349
25350         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25351
25352 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
25353
25354         * gengtype-parse.c (require3): Eliminate in favor of...
25355         (require4): New.
25356         (require_template_declaration): Update to support optional single *
25357         on a type.
25358
25359         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25360         (create_user_defined_type): Handle a single level of explicit
25361         pointerness within template arguments.
25362         (struct write_types_data): Add field "kind".
25363         (filter_type_name): Handle "*" character.
25364         (write_user_func_for_structure_ptr): Require a write_types_data
25365         rather than just a prefix string, so that we can look up the kind
25366         of the wtd and use it as an index into wrote_user_func_for_ptr,
25367         ensuring that such functions are written at most once.  Support
25368         subclasses by invoking the marking function of the ultimate base class.
25369         (write_user_func_for_structure_body): Require a write_types_data
25370         rather than just a prefix string, so that we can pass this to
25371         write_user_func_for_structure_ptr.
25372         (write_func_for_structure): Likewise.
25373         (ggc_wtd): Add initializer of new "kind" field.
25374         (pch_wtd): Likewise.
25375
25376         * gengtype.h (enum write_types_kinds): New.
25377         (struct type): Add field wrote_user_func_for_ptr to the "s"
25378         union member.
25379
25380 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25381
25382         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25383         instead of const_binop.
25384         (fold_binary_loc): Likewise.
25385
25386 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25387
25388         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25389         calculation to match get_ref_base_and_extent.
25390
25391 2014-05-13  Catherine Moore  <clm@codesourcery.com>
25392             Sandra Loosemore  <sandra@codesourcery.com>
25393
25394         * configure.ac: Fix assembly for explicit JALR relocation check.
25395         * configure: Regenerate.
25396
25397 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25398
25399         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
25400         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
25401         Remove associated type declarations and initialisations.
25402         (arm_expand_neon_builtin): Likewise.
25403         (neon_emit_pair_result_insn): Delete.
25404         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
25405         * config/arm/neon.md (neon_vtrn<mode>): Delete.
25406         (neon_vzip<mode>): Likewise.
25407         (neon_vuzp<mode>): Likewise.
25408
25409 2014-05-13  Richard Biener  <rguenther@suse.de>
25410
25411         PR ipa/60973
25412         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
25413         it needs revisiting whether the call still may be tail-called.
25414
25415 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25416
25417         * rtl.def (SYMBOL_REF): Remove middle "0" field.
25418         * rtl.h (block_symbol): Reduce number of fields to 2.
25419         (rtx_def): Add u2.symbol_ref_flags.
25420         (SYMBOL_REF_FLAGS): Use it.
25421         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
25422         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
25423         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
25424         Lower index of SYMBOL_REF_DATA.
25425         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
25426         Print SYMBOL_REF_FLAGS at the same time.
25427         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
25428
25429 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25430
25431         * rtl.def (VAR_LOCATION): Remove "i" field.
25432         * rtl.h (rtx_def): Add u2.var_location_status.
25433         (PAT_VAR_LOCATION_STATUS): Use it.
25434         (gen_rtx_VAR_LOCATION): Declare.
25435         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
25436         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
25437         * var-tracking.c (emit_note_insn_var_location): Remove casts.
25438
25439 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25440
25441         * rtl.def (scratch): Fix outdated comment and remove "0" field.
25442         * gengtype.c (adjust_field_rtx_def): Update accordingly.
25443
25444 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25445
25446         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
25447         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
25448         * rtl.h (rtx_def): Add insn_uid to u2 field.
25449         (RTX_FLAG_CHECK8): Delete in favor of...
25450         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
25451         (INSN_DELETED_P): Update accordingly.
25452         (INSN_UID): Use u2.insn_uid.
25453         (INSN_CHAIN_CODE_P): Define.
25454         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
25455         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
25456         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
25457         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
25458         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
25459         indices accordingly.
25460         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
25461         Update indices for insn-chain rtxes.
25462         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
25463         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
25464         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
25465         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
25466         * combine.c (try_combine): Likewise.
25467         * ira.c (setup_prohibited_mode_move_regs): Likewise.
25468
25469 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25470
25471         * rtl.def (REG): Remove middle field.
25472         * rtl.h (rtx_def): Add orignal_regno to u2.
25473         (ORIGINAL_REGNO): Use it instead of field 1.
25474         (REG_ATTRS): Lower field index accordingly.
25475         * gengtype.c (adjust_field_rtx_def): Remove handling of
25476         ORIGINAL_REGNO.  Move REG_ATTRS index down.
25477         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
25478         code that prints the REGNO.
25479
25480 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25481
25482         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
25483         GENERATOR_FILE.
25484
25485 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25486
25487         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
25488
25489 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
25490
25491         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
25492         (alloc_iv): Lower base expressions containing ADDR_EXPR.
25493
25494 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
25495
25496         * config/aarch64/aarch64-protos.h
25497         (aarch64_hard_regno_caller_save_mode): New prototype.
25498         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
25499         New function.
25500         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
25501
25502 2014-05-13  Christian Bruel  <christian.bruel@st.com>
25503
25504         * target.def (mode_switching): New hook vector.
25505         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
25506         (mode_exit, modepriority_to_mode): Likewise.
25507         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
25508         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25509         * target.h: Include tm.h and hard-reg-set.h.
25510         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
25511         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
25512         * doc/tm.texi Regenerate.
25513         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25514         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25515         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
25516         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
25517         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25518         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25519         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
25520         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
25521         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
25522         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
25523         (ix86_emit_mode_set): Hookify.
25524         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
25525         Delete.
25526         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25527         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
25528         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
25529         (epiphany_mode_priority_to_mode): Remove declaration.
25530         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
25531         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
25532         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
25533         Likewise.
25534         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
25535         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
25536         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
25537
25538 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
25539
25540         PR target/61060
25541         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
25542         is const0_rtx, return immediately.  Don't test count == 0 when
25543         it is always true.
25544
25545 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25546
25547         * Makefile.in: add shrink-wrap.o.
25548         * config/i386/i386.c: include "shrink-wrap.h"
25549         * function.c: Likewise.
25550         (requires_stack_frame_p, next_block_for_reg,
25551         move_insn_for_shrink_wrap, prepare_shrink_wrap,
25552         dup_block_and_redirect): Move to shrink-wrap.c
25553         (thread_prologue_and_epilogue_insns): Extract three code segments
25554         as functions in shrink-wrap.c
25555         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
25556         shrink-wrap.h
25557         * shrink-wrap.c: New file.
25558         * shrink-wrap.h: New file.
25559
25560 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25561
25562         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
25563         reference to Solaris.
25564
25565 2014-05-12  Mike Stump  <mikestump@comcast.net>
25566
25567         PR other/31778
25568         * genattrtab.c (filename): Add.
25569         (convert_set_attr_alternative): Improve error message.
25570         (check_defs): Restore read_md_filename for error messages.
25571         (gen_insn): Save filename.
25572
25573 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
25574
25575         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
25576         -fno-local-ivars and -fivar-visibility.
25577         * c-family/c.opt: Make -Wshadow also implicitly enable
25578         -Wshadow-ivar.
25579
25580 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25581
25582         * doc/tm.texi: Remove reference to deleted macro.
25583         * doc/tm.texi.in: Likewise.
25584
25585 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
25586
25587         PR target/60991
25588         * config/avr/avr.c (avr_out_store_psi): Use correct constant
25589         to restore Y.
25590
25591 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
25592
25593         PR libgcc/61152
25594         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
25595         * config/arm/aout.h (License): Same.
25596         * config/arm/bpabi.h (License): Same.
25597         * config/arm/elf.h (License): Same.
25598         * config/arm/linux-elf.h (License): Same.
25599         * config/arm/linux-gas.h (License): Same.
25600         * config/arm/netbsd-elf.h (License): Same.
25601         * config/arm/uclinux-eabi.h (License): Same.
25602         * config/arm/uclinux-elf.h (License): Same.
25603         * config/arm/vxworks.h (License): Same.
25604
25605 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
25606
25607         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
25608         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
25609         number of operands to 3.
25610         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
25611         * tree-nested.c (convert_nonlocal_omp_clauses,
25612         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
25613         * gimplify.c (gimplify_scan_omp_clauses): Handle
25614         OMP_CLAUSE_LINEAR_STMT.
25615         * omp-low.c (lower_rec_input_clauses): Fix typo.
25616         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
25617         cast between Fortran boolean_type_node and C _Bool if
25618         needed.
25619
25620 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
25621
25622         PR tree-optimization/61136
25623         * wide-int.h (multiple_of_p): Define a version that doesn't return
25624         the quotient.
25625         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
25626         integer_zerop/const_binop pair.
25627         (multiple_of_p): Likewise, converting both operands to widest_int
25628         precision.
25629
25630 2014-05-09  Teresa Johnson  <tejohnson@google.com>
25631
25632         * cgraphunit.c (analyze_functions): Use correct dump file.
25633
25634 2014-05-09  Florian Weimer  <fweimer@redhat.com>
25635
25636         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
25637         expand_used_vars.
25638         (stack_protect_return_slot_p): New function.
25639         (expand_used_vars): Call stack_protect_decl_p and
25640         stack_protect_return_slot_p for -fstack-protector-strong.
25641
25642 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
25643         Andrew Haley <aph@redhat.com>
25644         Richard Sandiford <rdsandiford@googlemail.com>
25645
25646         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
25647         pages.
25648
25649 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
25650
25651         PR middle-end/61111
25652         * fold-const.c (fold_binary_loc): Changed width of mask.
25653
25654 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25655
25656         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
25657         unsigned int initializers for regno_in, regno_out.
25658
25659 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25660
25661         PR target/61055
25662         * config/avr/avr.md (cc): Add new attribute set_vzn.
25663         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
25664         Set cc insn attribute to set_vzn instead of set_zn for alternatives
25665         with INC, DEC or NEG.
25666         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
25667         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
25668         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
25669
25670 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25671
25672         Revert:
25673         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25674
25675         * wide-int.cc (UTItype): Define.
25676         (UDWtype): Define for appropriate W_TYPE_SIZE.
25677
25678 2014-05-09  Richard Biener  <rguenther@suse.de>
25679
25680         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
25681         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
25682         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
25683         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
25684         ssa_propagate): Adjust.
25685
25686 2014-05-08  Jeff Law  <law@redhat.com>
25687
25688         PR tree-optimization/61009
25689         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
25690         tri-state rather than a boolean.  When a block is too big to
25691         thread through, inform caller via negative return value.
25692         (thread_across_edge): If a block was too big for normal threading,
25693         then it's too big for a joiner too, so remove temporary equivalences
25694         and return immediately.
25695
25696 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25697             Matthias Klose  <doko@ubuntu.com>
25698
25699         PR driver/61106
25700         * optc-gen.awk: Fix option handling for -Wunused-parameter.
25701
25702 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25703
25704         PR target/59952
25705         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
25706
25707 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25708
25709         PR target/61092
25710         * config/alpha/alpha.c: Include gimple-iterator.h.
25711         (alpha_gimple_fold_builtin): New function.  Move
25712         ALPHA_BUILTIN_UMULH folding from ...
25713         (alpha_fold_builtin): ... here.
25714         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
25715
25716 2014-05-08  Wei Mi  <wmi@google.com>
25717
25718         PR target/58066
25719         * config/i386/i386.c (ix86_compute_frame_layout): Update
25720         preferred_stack_boundary for call, expanded from tls descriptor.
25721         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
25722         to depend on SP register.
25723         (*tls_local_dynamic_base_32_gnu): Ditto.
25724         (*tls_local_dynamic_32_once): Ditto.
25725         (tls_global_dynamic_64_<mode>): Set
25726         ix86_tls_descriptor_calls_expanded_in_cfun.
25727         (tls_local_dynamic_base_64_<mode>): Ditto.
25728         (tls_global_dynamic_32): Set
25729         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
25730         to depend on SP register.
25731         (tls_local_dynamic_base_32): Ditto.
25732
25733 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25734
25735         * config/arm/arm_neon.h: Update comment.
25736         * config/arm/neon-docgen.ml: Delete.
25737         * config/arm/neon-gen.ml: Delete.
25738         * doc/arm-neon-intrinsics.texi: Update comment.
25739
25740 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25741
25742         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
25743         and v4sf versions.
25744         (vand, vorr, veor, vorn, vbic): Remove.
25745         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
25746         iterator.
25747         (neon_vsub_unspec): Likewise.
25748         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
25749
25750 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25751
25752         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
25753         (vadd_s16): Likewise.
25754         (vadd_s32): Likewise.
25755         (vadd_f32): Likewise.
25756         (vadd_u8): Likewise.
25757         (vadd_u16): Likewise.
25758         (vadd_u32): Likewise.
25759         (vadd_s64): Likewise.
25760         (vadd_u64): Likewise.
25761         (vaddq_s8): Likewise.
25762         (vaddq_s16): Likewise.
25763         (vaddq_s32): Likewise.
25764         (vaddq_s64): Likewise.
25765         (vaddq_f32): Likewise.
25766         (vaddq_u8): Likewise.
25767         (vaddq_u16): Likewise.
25768         (vaddq_u32): Likewise.
25769         (vaddq_u64): Likewise.
25770         (vmul_s8): Likewise.
25771         (vmul_s16): Likewise.
25772         (vmul_s32): Likewise.
25773         (vmul_f32): Likewise.
25774         (vmul_u8): Likewise.
25775         (vmul_u16): Likewise.
25776         (vmul_u32): Likewise.
25777         (vmul_p8): Likewise.
25778         (vmulq_s8): Likewise.
25779         (vmulq_s16): Likewise.
25780         (vmulq_s32): Likewise.
25781         (vmulq_f32): Likewise.
25782         (vmulq_u8): Likewise.
25783         (vmulq_u16): Likewise.
25784         (vmulq_u32): Likewise.
25785         (vsub_s8): Likewise.
25786         (vsub_s16): Likewise.
25787         (vsub_s32): Likewise.
25788         (vsub_f32): Likewise.
25789         (vsub_u8): Likewise.
25790         (vsub_u16): Likewise.
25791         (vsub_u32): Likewise.
25792         (vsub_s64): Likewise.
25793         (vsub_u64): Likewise.
25794         (vsubq_s8): Likewise.
25795         (vsubq_s16): Likewise.
25796         (vsubq_s32): Likewise.
25797         (vsubq_s64): Likewise.
25798         (vsubq_f32): Likewise.
25799         (vsubq_u8): Likewise.
25800         (vsubq_u16): Likewise.
25801         (vsubq_u32): Likewise.
25802         (vsubq_u64): Likewise.
25803         (vand_s8): Likewise.
25804         (vand_s16): Likewise.
25805         (vand_s32): Likewise.
25806         (vand_u8): Likewise.
25807         (vand_u16): Likewise.
25808         (vand_u32): Likewise.
25809         (vand_s64): Likewise.
25810         (vand_u64): Likewise.
25811         (vandq_s8): Likewise.
25812         (vandq_s16): Likewise.
25813         (vandq_s32): Likewise.
25814         (vandq_s64): Likewise.
25815         (vandq_u8): Likewise.
25816         (vandq_u16): Likewise.
25817         (vandq_u32): Likewise.
25818         (vandq_u64): Likewise.
25819         (vorr_s8): Likewise.
25820         (vorr_s16): Likewise.
25821         (vorr_s32): Likewise.
25822         (vorr_u8): Likewise.
25823         (vorr_u16): Likewise.
25824         (vorr_u32): Likewise.
25825         (vorr_s64): Likewise.
25826         (vorr_u64): Likewise.
25827         (vorrq_s8): Likewise.
25828         (vorrq_s16): Likewise.
25829         (vorrq_s32): Likewise.
25830         (vorrq_s64): Likewise.
25831         (vorrq_u8): Likewise.
25832         (vorrq_u16): Likewise.
25833         (vorrq_u32): Likewise.
25834         (vorrq_u64): Likewise.
25835         (veor_s8): Likewise.
25836         (veor_s16): Likewise.
25837         (veor_s32): Likewise.
25838         (veor_u8): Likewise.
25839         (veor_u16): Likewise.
25840         (veor_u32): Likewise.
25841         (veor_s64): Likewise.
25842         (veor_u64): Likewise.
25843         (veorq_s8): Likewise.
25844         (veorq_s16): Likewise.
25845         (veorq_s32): Likewise.
25846         (veorq_s64): Likewise.
25847         (veorq_u8): Likewise.
25848         (veorq_u16): Likewise.
25849         (veorq_u32): Likewise.
25850         (veorq_u64): Likewise.
25851         (vbic_s8): Likewise.
25852         (vbic_s16): Likewise.
25853         (vbic_s32): Likewise.
25854         (vbic_u8): Likewise.
25855         (vbic_u16): Likewise.
25856         (vbic_u32): Likewise.
25857         (vbic_s64): Likewise.
25858         (vbic_u64): Likewise.
25859         (vbicq_s8): Likewise.
25860         (vbicq_s16): Likewise.
25861         (vbicq_s32): Likewise.
25862         (vbicq_s64): Likewise.
25863         (vbicq_u8): Likewise.
25864         (vbicq_u16): Likewise.
25865         (vbicq_u32): Likewise.
25866         (vbicq_u64): Likewise.
25867         (vorn_s8): Likewise.
25868         (vorn_s16): Likewise.
25869         (vorn_s32): Likewise.
25870         (vorn_u8): Likewise.
25871         (vorn_u16): Likewise.
25872         (vorn_u32): Likewise.
25873         (vorn_s64): Likewise.
25874         (vorn_u64): Likewise.
25875         (vornq_s8): Likewise.
25876         (vornq_s16): Likewise.
25877         (vornq_s32): Likewise.
25878         (vornq_s64): Likewise.
25879         (vornq_u8): Likewise.
25880         (vornq_u16): Likewise.
25881         (vornq_u32): Likewise.
25882         (vornq_u64): Likewise.
25883
25884 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25885
25886         * wide-int.cc (UTItype): Define.
25887         (UDWtype): Define for appropriate W_TYPE_SIZE.
25888
25889 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
25890
25891         PR tree-optimization/59100
25892         * tree-ssa-phiopt.c: Include tree-inline.h.
25893         (neutral_element_p, absorbing_element_p): New functions.
25894         (value_replacement): Handle conditional binary operations with a
25895         neutral or absorbing element.
25896
25897 2014-05-08  Richard Biener  <rguenther@suse.de>
25898
25899         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
25900         folding the expression.
25901         (valueize_expr): Remove.
25902         (visit_reference_op_load): Do not valueize the result of
25903         vn_get_expr_for.
25904         (simplify_binary_expression): Likewise.
25905         (simplify_unary_expression): Likewise.
25906
25907 2014-05-08  Richard Biener  <rguenther@suse.de>
25908
25909         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
25910         looking at TYPE_ARG_TYPES.
25911
25912 2014-05-08  Richard Biener  <rguenther@suse.de>
25913
25914         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
25915         pointer propagation special-case.
25916
25917 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
25918
25919         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
25920         core part of address expressions.
25921
25922 2014-05-08  Alan Modra  <amodra@gmail.com>
25923
25924         PR target/60737
25925         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
25926         loads and stores when -mno-strict-align at any alignment.
25927         (expand_block_clear): Similarly.  Also correct calculation of
25928         instruction count.
25929
25930 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25931
25932         PR middle-end/39246
25933         * tree-complex.c (expand_complex_move): Keep line info when expanding
25934         complex move.
25935         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
25936         of complex expression. Use new argument to display correct location
25937         for values coming from phi statement.
25938         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
25939         (warn_uninitialized_phi): Pass location of phi argument to
25940         warn_uninit.
25941         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
25942         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
25943
25944 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
25945
25946         * config/rs6000/predicates.md (indexed_address_mem): New.
25947         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
25948         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
25949         fpstore_ux, fpstore_u.
25950         (sign_extend, indexed, update): New.
25951         (cell_micro): Adjust.
25952         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
25953         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
25954         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
25955         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
25956         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
25957         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
25958         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
25959         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
25960         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
25961         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
25962         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
25963         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
25964         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
25965         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
25966         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
25967
25968         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
25969         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
25970         *vsx_extract_<mode>_store): Adjust.
25971         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
25972         is_cracked_insn, insn_must_be_first_in_group,
25973         insn_must_be_last_in_group): Adjust.
25974
25975         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
25976         Adjust.
25977         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
25978         ppc440-fpstore): Adjust.
25979         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
25980         ppc476-fpstore): Adjust.
25981         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
25982         ppc601-fpstore): Adjust.
25983         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
25984         Adjust.
25985         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
25986         Adjust.
25987         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
25988         ppc7450-fpstore): Adjust.
25989         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
25990         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
25991         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
25992         Adjust.
25993         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
25994         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
25995         cell-fpstore, cell-fpstore-update): Adjust.
25996         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
25997         ppce300c3_store, ppce300c3_fpstore): Adjust.
25998         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
25999         e500mc_fpstore): Adjust.
26000         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26001         e500mc64_store, e500mc64_fpstore): Adjust.
26002         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26003         e5500_fpstore): Adjust.
26004         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26005         e6500_fpstore): Adjust.
26006         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26007         Adjust.
26008         * config/rs6000/power4.md (power4-load, power4-load-ext,
26009         power4-load-ext-update, power4-load-ext-update-indexed,
26010         power4-load-update-indexed, power4-load-update, power4-fpload,
26011         power4-fpload-update, power4-store, power4-store-update,
26012         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26013         Adjust.
26014         * config/rs6000/power5.md (power5-load, power5-load-ext,
26015         power5-load-ext-update, power5-load-ext-update-indexed,
26016         power5-load-update-indexed, power5-load-update, power5-fpload,
26017         power5-fpload-update, power5-store, power5-store-update,
26018         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26019         Adjust.
26020         * config/rs6000/power6.md (power6-load, power6-load-ext,
26021         power6-load-update, power6-load-update-indexed,
26022         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26023         power6-fpload-update, power6-store, power6-store-update,
26024         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26025         Adjust.
26026         * config/rs6000/power7.md (power7-load, power7-load-ext,
26027         power7-load-update, power7-load-update-indexed,
26028         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26029         power7-fpload-update, power7-store, power7-store-update,
26030         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26031         Adjust.
26032         * config/rs6000/power8.md (power8-load, power8-load-update,
26033         power8-load-ext, power8-load-ext-update, power8-fpload,
26034         power8-fpload-update, power8-store, power8-store-update-indexed,
26035         power8-fpstore, power8-fpstore-update): Adjust.
26036         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26037         Adjust.
26038         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26039         titan_lsu_store, titan_lsu_fpstore): Adjust.
26040         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26041
26042 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26043
26044         PR target/60884
26045         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26046         unrolled byte insns.  Emit address increments after move insns.
26047
26048 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26049
26050         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26051         const_gimple, rather than a gimple.
26052         (gimple_call_builtin_p): Likewise, for the three variants.
26053
26054         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26055         (gimple_call_builtin_p): Likewise, for the three variants.
26056
26057 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26058
26059         PR tree-optimization/61095
26060         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26061
26062 2014-05-07  Richard Biener  <rguenther@suse.de>
26063
26064         PR tree-optimization/61034
26065         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26066         (maybe_skip_until): Use translate to take into account
26067         lattices when trying to do disambiguations.
26068         (get_continuation_for_phi_1): Likewise.
26069         (get_continuation_for_phi): Adjust for added translate arguments.
26070         (walk_non_aliased_vuses): Likewise.
26071         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26072         (walk_non_aliased_vuses): Likewise.
26073         (call_may_clobber_ref_p_1): Declare.
26074         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26075         calls.  Stop early if we are only supposed to disambiguate.
26076         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26077
26078 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26079
26080         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26081         Emit an error when the function has arguments.
26082
26083 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26084
26085         * cfgloop.h (unswitch_loops): Remove.
26086         * doc/passes.texi: Remove references to loop-unswitch.c
26087         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26088
26089 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26090
26091         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26092         check for loads group of length 3.
26093         (vect_permute_load_chain): New permutations for loads group of
26094         length 3.
26095         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26096         of vec_perm_shuffle for the new permutations.
26097
26098 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26099
26100         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26101         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26102         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26103         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26104         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26105         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26106         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26107         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26108
26109 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26110
26111         * loop-unswitch.c: Delete.
26112
26113 2014-05-07  Richard Biener  <rguenther@suse.de>
26114
26115         * config.gcc: Always set need_64bit_hwint to yes.
26116
26117 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26118
26119         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26120         of using optimize_size.
26121
26122 2014-05-06  Mike Stump  <mikestump@comcast.net>
26123
26124         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26125
26126 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26127
26128         * config/i386/sse.md (*mov<mode>_internal)
26129         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26130         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26131         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26132         (*<code><mode>3, *andnot<mode>3<mask_name>)
26133         (<mask_codefor><code><mode>3<mask_name>): Only consider
26134         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26135
26136 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26137
26138         Revert:
26139         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26140
26141         * lra-constraints.c (valid_address_p): Move earlier in file.
26142         Add a constraint argument to the address_info version.
26143         (satisfies_memory_constraint_p): New function.
26144         (satisfies_address_constraint_p): Likewise.
26145         (process_alt_operands, curr_insn_transform): Use them.
26146         (process_address): Pass the constraint to valid_address_p when
26147         checking address operands.
26148
26149 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26150
26151         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26152         to their respective blocks.  Fix inadvertent use of "node".
26153
26154 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26155
26156         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26157         out from...
26158         (init_emit_once): ...here.
26159         * rtl.h (init_derived_machine_modes): Declare.
26160         * toplev.c (do_compile): Call it even if no_backend.
26161
26162 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26163             Mike Stump  <mikestump@comcast.net>
26164             Richard Sandiford  <rdsandiford@googlemail.com>
26165             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26166
26167         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26168         (rtx_equal_for_memref_p): Update comment.
26169         (adjust_offset_for_component_ref): Use wide-int interfaces.
26170         * builtins.c (get_object_alignment_2): Likewise.
26171         (c_readstr): Likewise.
26172         (target_char_cast): Add comment.
26173         (determine_block_size): Use wide-int interfaces.
26174         (expand_builtin_signbit): Likewise.
26175         (fold_builtin_int_roundingfn): Likewise.
26176         (fold_builtin_bitop): Likewise.
26177         (fold_builtin_bswap): Likewise.
26178         (fold_builtin_logarithm): Use signop.
26179         (fold_builtin_pow): Likewise.
26180         (fold_builtin_memory_op): Use wide-int interfaces.
26181         (fold_builtin_object_size): Likewise.
26182         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26183         nb_iterations_estimate.
26184         (record_niter_bound): Use wide-int interfaces.
26185         (get_estimated_loop_iterations_int): Likewise.
26186         (get_estimated_loop_iterations): Likewise.
26187         (get_max_loop_iterations): Likewise.
26188         * cfgloop.h: Include wide-int.h.
26189         (struct nb_iter_bound): Change bound to widest_int.
26190         (struct loop): Change nb_iterations_upper_bound and
26191         nb_iterations_estimate to widest_int.
26192         (record_niter_bound): Switch to use widest_int.
26193         (get_estimated_loop_iterations): Likewise.
26194         (get_max_loop_iterations): Likewise.
26195         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26196         update for wide-int.
26197         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26198         * combine.c (try_combine): Likewise.
26199         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26200         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26201         interfaces.
26202         (aarch64_float_const_representable_p): Likewise.
26203         * config/arc/arc.c: Include wide-int.h.
26204         (arc_can_use_doloop_p): Use wide-int interfaces.
26205         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26206         (vfp3_const_double_index): Likewise.
26207         * config/avr/avr.c (avr_out_round): Likewise.
26208         (avr_fold_builtin): Likewise.
26209         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26210         (bfin_can_use_doloop_p): Likewise.
26211         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26212         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26213         * config/i386/i386.c: Include wide-int.h.
26214         (ix86_data_alignment): Use wide-int interfaces.
26215         (ix86_local_alignment): Likewise.
26216         (ix86_emit_swsqrtsf): Update real_from_integer.
26217         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26218         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26219         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26220         (zero_constant): Likewise.
26221         (input_operand): Likewise.
26222         (splat_input_operand): Likewise.
26223         (non_logical_cint_operand): Change const_double to const_wide_int.
26224         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26225         (easy_altivec_constant): Remove comment.
26226         (paired_expand_vector_init): Use CONSTANT_P.
26227         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26228         (rs6000_emit_move): Update checks.
26229         (rs6000_aggregate_candidate): Use wide-int interfaces.
26230         (rs6000_expand_ternop_builtin): Likewise.
26231         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26232         (rs6000_assemble_integer): Likewise.
26233         (rs6000_hash_constant): Likewise.
26234         (output_toc): Likewise.
26235         (rs6000_rtx_costs): Likewise.
26236         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26237         * config/rs6000/rs6000-c.c: Include wide-int.h.
26238         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26239         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26240         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26241         Handle CONST_WIDE_INT.
26242         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26243         Use tree_fits_uhwi_p.
26244         * config/sparc/sparc.c: Include wide-int.h.
26245         (sparc_fold_builtin): Use wide-int interfaces.
26246         * config/vax/vax.c: Include wide-int.h.
26247         (vax_float_literal): Use real_from_integer.
26248         * coretypes.h (struct hwivec_def): New.
26249         (hwivec): New.
26250         (const_hwivec): New.
26251         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26252         (equiv_constant): Handle CONST_WIDE_INT.
26253         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26254         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26255         * dbxout.c (stabstr_U): Use wide-int interfaces.
26256         (dbxout_type): Update to use cst_fits_shwi_p.
26257         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26258         (TARGET_SUPPORTS_WIDE_INT): Add default.
26259         * dfp.c: Include wide-int.h.
26260         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26261         decimal_real_to_integer.
26262         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26263         decimal_real_to_integer.
26264         * doc/generic.texi (Constant expressions): Update for wide_int.
26265         * doc/rtl.texi (const_double): Likewise.
26266         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26267         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26268         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26269         (REAL_VALUE_FROM_INT): Remove.
26270         (TARGET_SUPPORTS_WIDE_INT): New.
26271         * doc/tm.texi: Regenerate.
26272         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26273         * double-int.h: Include wide-int.h.
26274         (struct wi::int_traits): New.
26275         * dwarf2out.c (get_full_len): New.
26276         (dw_val_equal_p): Add case dw_val_class_wide_int.
26277         (size_of_loc_descr): Likewise.
26278         (output_loc_operands): Likewise.
26279         (insert_double): Remove.
26280         (insert_wide_int): New.
26281         (add_AT_wide): New.
26282         (print_die): Add case dw_val_class_wide_int.
26283         (attr_checksum): Likewise.
26284         (attr_checksum_ordered): Likewise.
26285         (same_dw_val_p): Likewise.
26286         (size_of_die): Likewise.
26287         (value_format): Likewise.
26288         (output_die): Likewise.
26289         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26290         Use wide-int.
26291         (clz_loc_descriptor): Use wide-int interfaces.
26292         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26293         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26294         (round_up_to_align): Use wide-int interfaces.
26295         (field_byte_offset): Likewise.
26296         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26297         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26298         CONST_DOUBLE handling.  Use wide-int interfaces.
26299         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26300         (gen_enumeration_type_die): Use add_AT_wide.
26301         (hash_loc_operands): Add case dw_val_class_wide_int.
26302         (compare_loc_operands): Likewise.
26303         * dwarf2out.h: Include wide-int.h.
26304         (wide_int_ptr): New.
26305         (enum dw_val_class): Add dw_val_class_wide_int.
26306         (struct dw_val_struct): Add val_wide.
26307         * emit-rtl.c (const_wide_int_htab): New.
26308         (const_wide_int_htab_hash): New.
26309         (const_wide_int_htab_eq): New.
26310         (lookup_const_wide_int): New.
26311         (const_double_htab_hash): Use wide-int interfaces.
26312         (const_double_htab_eq): Likewise.
26313         (rtx_to_double_int): Conditionally compile for wide-int.
26314         (immed_double_int_const): Rename to immed_wide_int_const and
26315         update for wide-int.
26316         (immed_double_const): Conditionally compile for wide-int.
26317         (init_emit_once): Use wide-int interfaces.
26318         * explow.c (plus_constant): Likewise.
26319         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26320         (lshift_value): Use wide-int interfaces.
26321         (expand_mult): Likewise.
26322         (choose_multiplier): Likewise.
26323         (expand_smod_pow2): Likewise.
26324         (make_tree): Likewise.
26325         * expr.c (convert_modes): Consolidate handling of constants.
26326         Use wide-int interfaces.
26327         (emit_group_load_1): Add note.
26328         (store_expr): Update comment.
26329         (get_inner_reference): Use wide-int interfaces.
26330         (expand_constructor): Update comment.
26331         (expand_expr_real_2): Use wide-int interfaces.
26332         (expand_expr_real_1): Likewise.
26333         (reduce_to_bit_field_precision): Likewise.
26334         (const_vector_from_tree): Likewise.
26335         * final.c: Include wide-int-print.h.
26336         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26337         * fixed-value.c: Include wide-int.h.
26338         (fixed_from_string): Use wide-int interfaces.
26339         (fixed_to_decimal): Likewise.
26340         (fixed_convert_from_real): Likewise.
26341         (real_convert_from_fixed): Likewise.
26342         * fold-const.h (mem_ref_offset): Return an offset_int.
26343         (div_if_zero_remainder): Remove code parameter.
26344         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26345         Use wide-int interfaces.
26346         (may_negate_without_overflow_p): Use wide-int interfaces.
26347         (negate_expr_p): Likewise.
26348         (fold_negate_expr): Likewise.
26349         (int_const_binop_1): Likewise.
26350         (const_binop): Likewise.
26351         (fold_convert_const_int_from_int): Likewise.
26352         (fold_convert_const_int_from_real): Likewise.
26353         (fold_convert_const_int_from_fixed): Likewise.
26354         (fold_convert_const_fixed_from_int): Likewise.
26355         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
26356         (sign_bit_p): Use wide-int interfaces.
26357         (make_range_step): Likewise.
26358         (build_range_check): Likewise.  Pass an integer of the correct type
26359         instead of using integer_one_node.
26360         (range_predecessor): Pass an integer of the correct type instead
26361         of using integer_one_node.
26362         (range_successor): Likewise.
26363         (merge_ranges): Likewise.
26364         (unextend): Use wide-int interfaces.
26365         (extract_muldiv_1): Likewise.
26366         (fold_div_compare): Likewise.
26367         (fold_single_bit_test): Likewise.
26368         (fold_sign_changed_comparison): Likewise.
26369         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26370         (fold_plusminus_mult_expr): Use wide-int interfaces.
26371         (native_encode_int): Likewise.
26372         (native_interpret_int): Likewise.
26373         (fold_unary_loc): Likewise.
26374         (pointer_may_wrap_p): Likewise.
26375         (size_low_cst): Likewise.
26376         (mask_with_tz): Likewise.
26377         (fold_binary_loc): Likewise.
26378         (fold_ternary_loc): Likewise.
26379         (multiple_of_p): Likewise.
26380         (tree_call_nonnegative_warnv_p): Update calls to
26381         tree_int_cst_min_precision and real_from_integer.
26382         (fold_negate_const): Use wide-int interfaces.
26383         (fold_abs_const): Likewise.
26384         (fold_relational_const): Use tree_int_cst_lt.
26385         (round_up_loc): Use wide-int interfaces.
26386         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26387         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26388         * gengtype.c: Remove include of double-int.h.
26389         (do_typedef): Use wide-int interfaces.
26390         (open_base_files): Add wide-int.h.
26391         (main): Add offset_int and widest_int typedefs.
26392         * gengtype-lex.l: Handle "^".
26393         (CXX_KEYWORD): Add "static".
26394         * gengtype-parse.c (require3): New.
26395         (require_template_declaration): Handle constant template arguments
26396         and nested templates.
26397         * gengtype-state.c: Don't include "double-int.h".
26398         * genpreds.c (write_one_predicate_function): Update comment.
26399         (write_tm_constrs_h): Add check for hval and lval use in
26400         CONST_WIDE_INT.
26401         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
26402         (add_to_sequence): Likewise.
26403         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
26404         and const_double_operand.
26405         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
26406         interfaces.
26407         * gimple-fold.c (get_base_constructor): Likewise.
26408         (fold_array_ctor_reference): Likewise.
26409         (fold_nonarray_ctor_reference): Likewise.
26410         (fold_const_aggregate_ref_1): Likewise.
26411         (gimple_val_nonnegative_real_p): Likewise.
26412         (gimple_fold_indirect_ref): Likewise.
26413         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
26414         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
26415         (struct slsr_cand_d): Change index to be widest_int.
26416         (struct incr_info_d): Change incr to be widest_int.
26417         (alloc_cand_and_find_basis): Use wide-int interfaces.
26418         (slsr_process_phi): Likewise.
26419         (backtrace_base_for_ref): Likewise.  Return a widest_int.
26420         (restructure_reference): Take a widest_int instead of a double_int.
26421         (slsr_process_ref): Use wide-int interfaces.
26422         (create_mul_ssa_cand): Likewise.
26423         (create_mul_imm_cand): Likewise.
26424         (create_add_ssa_cand): Likewise.
26425         (create_add_imm_cand): Take a widest_int instead of a double_int.
26426         (slsr_process_add): Use wide-int interfaces.
26427         (slsr_process_cast): Likewise.
26428         (slsr_process_copy): Likewise.
26429         (dump_candidate): Likewise.
26430         (dump_incr_vec): Likewise.
26431         (replace_ref): Likewise.
26432         (cand_increment): Likewise.  Return a widest_int.
26433         (cand_abs_increment): Likewise.
26434         (replace_mult_candidate): Take a widest_int instead of a double_int.
26435         (replace_unconditional_candidate): Use wide-int interfaces.
26436         (incr_vec_index): Take a widest_int instead of a double_int.
26437         (create_add_on_incoming_edge): Likewise.
26438         (create_phi_basis): Use wide-int interfaces.
26439         (replace_conditional_candidate): Likewise.
26440         (record_increment): Take a widest_int instead of a double_int.
26441         (record_phi_increments): Use wide-int interfaces.
26442         (phi_incr_cost): Take a widest_int instead of a double_int.
26443         (lowest_cost_path): Likewise.
26444         (total_savings): Likewise.
26445         (analyze_increments): Use wide-int interfaces.
26446         (ncd_with_phi): Take a widest_int instead of a double_int.
26447         (ncd_of_cand_and_phis): Likewise.
26448         (nearest_common_dominator_for_cands): Likewise.
26449         (insert_initializers): Use wide-int interfaces.
26450         (all_phi_incrs_profitable): Likewise.
26451         (replace_one_candidate): Likewise.
26452         (replace_profitable_candidates): Likewise.
26453         * godump.c: Include wide-int-print.h.
26454         (go_output_typedef): Use wide-int interfaces.
26455         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
26456         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
26457         (build_loop_iteration_domains): Likewise.
26458         * hooks.h: Include wide-int.h rather than double-int.h.
26459         (hook_bool_dint_dint_uint_bool_true): Delete.
26460         (hook_bool_wint_wint_uint_bool_true): Declare.
26461         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
26462         (hook_bool_wint_wint_uint_bool_true): New.
26463         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
26464         interfaces.
26465         (ubsan_expand_si_overflow_mul_check): Likewise.
26466         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
26467         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
26468         (get_ancestor_addr_info): Likewise.
26469         (ipa_modify_call_arguments): Likewise.
26470         * loop-doloop.c (doloop_modify): Likewise.
26471         (doloop_optimize): Likewise.
26472         * loop-iv.c (iv_number_of_iterations): Likewise.
26473         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
26474         (unroll_loop_constant_iterations): Likewise.
26475         (decide_unroll_runtime_iterations): Likewise.
26476         (unroll_loop_runtime_iterations): Likewise.
26477         (decide_peel_simple): Likewise.
26478         (decide_unroll_stupid): Likewise.
26479         * lto-streamer-in.c (streamer_read_wi): Add.
26480         (input_cfg): Use wide-int interfaces.
26481         (lto_input_tree_1): Likewise.
26482         * lto-streamer-out.c (streamer_write_wi): Add.
26483         (hash_tree): Use wide-int interfaces.
26484         (output_cfg): Likewise.
26485         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
26486         (GTFILES): Add wide-int.h and signop.h.
26487         (TAGS): Look for .cc files too.
26488         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
26489         * optabs.c (expand_subword_shift): Likewise.
26490         (expand_doubleword_shift): Likewise.
26491         (expand_absneg_bit): Likewise.
26492         (expand_copysign_absneg): Likewise.
26493         (expand_copysign_bit): Likewise.
26494         * postreload.c (reload_cse_simplify_set): Likewise.
26495         * predict.c (predict_iv_comparison): Likewise.
26496         * pretty-print.h: Include wide-int-print.h.
26497         (pp_wide_int) New.
26498         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
26499         * print-tree.c: Include wide-int-print.h.
26500         (print_node_brief): Use wide-int interfaces.
26501         (print_node): Likewise.
26502         * read-rtl.c (validate_const_wide_int): New.
26503         (read_rtx_code): Add CONST_WIDE_INT case.
26504         * real.c: Include wide-int.h.
26505         (real_to_integer2): Delete.
26506         (real_to_integer): New function, returning a wide_int.
26507         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26508         (ten_to_ptwo): Update call to real_from_integer.
26509         (real_digit): Likewise.
26510         * real.h: Include signop.h, wide-int.h and insn-modes.h.
26511         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
26512         (REAL_VALUE_TO_INT): Delete.
26513         (real_to_integer): Declare a wide-int form.
26514         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26515         * recog.c (const_int_operand): Improve comment.
26516         (const_scalar_int_operand): New.
26517         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
26518         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
26519         (split_double): Likewise.
26520         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
26521         (rtx_size): Likewise.
26522         (rtx_alloc_stat_v): New.
26523         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
26524         (cwi_output_hex): New.
26525         (iterative_hash_rtx): Handle CONST_WIDE_INT.
26526         (cwi_check_failed_bounds): New.
26527         * rtl.def (CONST_WIDE_INT): New.
26528         * rtl.h: Include <utility> and wide-int.h.
26529         (struct hwivec_def): New.
26530         (CWI_GET_NUM_ELEM): New.
26531         (CWI_PUT_NUM_ELEM): New.
26532         (struct rtx_def): Add num_elem and hwiv.
26533         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
26534         (CASE_CONST_UNIQUE): Likewise.
26535         (CASE_CONST_ANY): Likewise.
26536         (CONST_SCALAR_INT_P): Likewise.
26537         (CONST_WIDE_INT_P): New.
26538         (CWI_ELT): New.
26539         (HWIVEC_CHECK): New.
26540         (cwi_check_failed_bounds): New.
26541         (CWI_ELT): New.
26542         (HWIVEC_CHECK): New.
26543         (CONST_WIDE_INT_VEC) New.
26544         (CONST_WIDE_INT_NUNITS) New.
26545         (CONST_WIDE_INT_ELT) New.
26546         (rtx_mode_t): New type.
26547         (wi::int_traits <rtx_mode_t>): New.
26548         (wi::shwi): New.
26549         (wi::min_value): New.
26550         (wi::max_value): New.
26551         (rtx_alloc_v) New.
26552         (const_wide_int_alloc): New.
26553         (immed_wide_int_const): New.
26554         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
26555         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
26556         * signop.h: New file.
26557         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
26558         (simplify_const_unary_operation): Use wide-int interfaces.
26559         (simplify_binary_operation_1): Likewise.
26560         (simplify_const_binary_operation): Likewise.
26561         (simplify_const_relational_operation): Likewise.
26562         (simplify_immed_subreg): Likewise.
26563         * stmt.c (expand_case): Likewise.
26564         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
26565         signop rather than a bool.
26566         * stor-layout.c (layout_type): Use wide-int interfaces.
26567         (initialize_sizetypes): Update calls to
26568         set_min_and_max_values_for_integral_type.
26569         (set_min_and_max_values_for_integral_type): Take a signop rather
26570         than a bool.  Use wide-int interfaces.
26571         (fixup_signed_type): Update accordingly.  Remove
26572         HOST_BITS_PER_DOUBLE_INT limit.
26573         (fixup_unsigned_type): Likewise.
26574         * system.h (STATIC_CONSTANT_P): New.
26575         (STATIC_ASSERT): New.
26576         * target.def (can_use_doloop_p): Take widest_ints rather than
26577         double_ints.
26578         * target.h: Include wide-int.h rather than double-int.h.
26579         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
26580         than double_ints.
26581         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
26582         rather than INT_CST_LT_UNSIGNED.
26583         (can_use_doloop_if_innermost): Take widest_ints rather than
26584         double_ints.
26585         * tree-affine.c: Include wide-int-print.h.
26586         (double_int_ext_for_comb): Delete.
26587         (wide_int_ext_for_comb): New.
26588         (aff_combination_zero): Use wide-int interfaces.
26589         (aff_combination_const): Take a widest_int instead of a double_int.
26590         (aff_combination_elt): Use wide-int interfaces.
26591         (aff_combination_scale): Take a widest_int instead of a double_int.
26592         (aff_combination_add_elt): Likewise.
26593         (aff_combination_add_cst): Likewise.
26594         (aff_combination_add): Use wide-int interfaces.
26595         (aff_combination_convert): Likewise.
26596         (tree_to_aff_combination): Likewise.
26597         (add_elt_to_tree): Take a widest_int instead of a double_int.
26598         (aff_combination_to_tree): Use wide-int interfaces.
26599         (aff_combination_remove_elt): Likewise.
26600         (aff_combination_add_product): Take a widest_int instead of
26601         a double_int.
26602         (aff_combination_mult): Use wide-int interfaces.
26603         (aff_combination_expand): Likewise.
26604         (double_int_constant_multiple_p): Delete.
26605         (wide_int_constant_multiple_p): New.
26606         (aff_combination_constant_multiple_p): Take a widest_int pointer
26607         instead of a double_int pointer.
26608         (print_aff): Use wide-int interfaces.
26609         (get_inner_reference_aff): Take a widest_int pointer
26610         instead of a double_int pointer.
26611         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
26612         * tree-affine.h: Include wide-int.h.
26613         (struct aff_comb_elt): Change type of coef to widest_int.
26614         (struct affine_tree_combination): Change type of offset to widest_int.
26615         (double_int_ext_for_comb): Delete.
26616         (wide_int_ext_for_comb): New.
26617         (aff_combination_const): Use widest_int instead of double_int.
26618         (aff_combination_scale): Likewise.
26619         (aff_combination_add_elt): Likewise.
26620         (aff_combination_constant_multiple_p): Likewise.
26621         (get_inner_reference_aff): Likewise.
26622         (aff_comb_cannot_overlap_p): Likewise.
26623         (aff_combination_zero_p): Use wide-int interfaces.
26624         * tree.c: Include tree.h.
26625         (init_ttree): Use make_int_cst.
26626         (tree_code_size): Removed code for INTEGER_CST case.
26627         (tree_size): Add INTEGER_CST case.
26628         (make_node_stat): Update comment.
26629         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
26630         (build_int_cst_type): Use wide-int interfaces.
26631         (double_int_to_tree): Likewise.
26632         (double_int_fits_to_tree_p): Delete.
26633         (force_fit_type_double): Delete.
26634         (force_fit_type): New.
26635         (int_cst_hash_hash): Use wide-int interfaces.
26636         (int_cst_hash_eq): Likewise.
26637         (build_int_cst_wide): Delete.
26638         (wide_int_to_tree): New.
26639         (cache_integer_cst): Use wide-int interfaces.
26640         (build_low_bits_mask): Likewise.
26641         (cst_and_fits_in_hwi): Likewise.
26642         (real_value_from_int_cst): Likewise.
26643         (make_int_cst_stat): New.
26644         (integer_zerop): Use wide_int interfaces.
26645         (integer_onep): Likewise.
26646         (integer_all_onesp): Likewise.
26647         (integer_pow2p): Likewise.
26648         (integer_nonzerop): Likewise.
26649         (tree_log2): Likewise.
26650         (tree_floor_log2): Likewise.
26651         (tree_ctz): Likewise.
26652         (int_size_in_bytes): Likewise.
26653         (mem_ref_offset): Return an offset_int rather than a double_int.
26654         (build_type_attribute_qual_variant): Use wide_int interfaces.
26655         (type_hash_eq): Likewise
26656         (tree_int_cst_equal): Likewise.
26657         (tree_int_cst_lt): Delete.
26658         (tree_int_cst_compare): Likewise.
26659         (tree_fits_shwi_p): Use wide_int interfaces.
26660         (tree_fits_uhwi_p): Likewise.
26661         (tree_int_cst_sign_bit): Likewise.
26662         (tree_int_cst_sgn): Likewise.
26663         (tree_int_cst_min_precision): Take a signop rather than a bool.
26664         (simple_cst_equal): Use wide_int interfaces.
26665         (compare_tree_int): Likewise.
26666         (iterative_hash_expr): Likewise.
26667         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
26668         INT_CST_LT.
26669         (get_type_static_bounds): Use wide_int interfaces.
26670         (tree_int_cst_elt_check_failed): New.
26671         (build_common_tree_nodes): Reordered to set prec before filling in
26672         value.
26673         (int_cst_value): Check cst_and_fits_in_hwi.
26674         (widest_int_cst_value): Use wide_int interfaces.
26675         (upper_bound_in_type): Likewise.
26676         (lower_bound_in_type): Likewise.
26677         (num_ending_zeros): Likewise.
26678         (drop_tree_overflow): Likewise.
26679         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
26680         (gen_conditions_for_pow_cst_base): Likewise.
26681         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
26682         (group_case_labels_stmt): Use wide-int interfaces.
26683         (verify_gimple_assign_binary): Likewise.
26684         (print_loop): Likewise.
26685         * tree-chrec.c (tree_fold_binomial): Likewise.
26686         * tree-core.h (struct tree_base): Add int_length.
26687         (struct tree_int_cst): Change rep of value.
26688         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
26689         (dr_may_alias_p): Likewise.
26690         (max_stmt_executions_tree): Likewise.
26691         * tree.def (INTEGER_CST): Update comment.
26692         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
26693         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
26694         * tree-dump.c: Include wide-int.h and wide-int-print.h.
26695         (dequeue_and_dump): Use wide-int interfaces.
26696         * tree.h: Include wide-int.h.
26697         (NULL_TREE): Moved to earlier loc in file.
26698         (TREE_INT_CST_ELT_CHECK): New.
26699         (tree_int_cst_elt_check_failed): New.
26700         (TYPE_SIGN): New.
26701         (TREE_INT_CST): Delete.
26702         (TREE_INT_CST_LOW): Use wide-int interfaces.
26703         (TREE_INT_CST_HIGH): Delete.
26704         (TREE_INT_CST_NUNITS): New.
26705         (TREE_INT_CST_EXT_NUNITS): Likewise.
26706         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
26707         (TREE_INT_CST_ELT): Likewise.
26708         (INT_CST_LT): Delete.
26709         (tree_int_cst_elt_check): New (two forms).
26710         (type_code_size): Update comment.
26711         (make_int_cst_stat, make_int_cst): New.
26712         (tree_to_double_int): Delete.
26713         (double_int_fits_to_tree_p): Delete.
26714         (force_fit_type_double): Delete.
26715         (build_int_cstu): Replace with out-of-line function.
26716         (build_int_cst_wide): Delete.
26717         (tree_int_cst_lt): Define inline.
26718         (tree_int_cst_le): New.
26719         (tree_int_cst_compare): Define inline.
26720         (tree_int_cst_min_precision): Take a signop rather than a bool.
26721         (wi::int_traits <const_tree>): New.
26722         (wi::int_traits <tree>): New.
26723         (wi::extended_tree): New.
26724         (wi::int_traits <wi::extended_tree>): New.
26725         (wi::to_widest): New.
26726         (wi::to_offset): New.
26727         (wi::fits_to_tree_p): New.
26728         (wi::min_value): New.
26729         (wi::max_value): New.
26730         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
26731         (copy_tree_body_r): Likewise.
26732         * tree-object-size.c (compute_object_offset): Likewise.
26733         (addr_object_size): Likewise.
26734         * tree-predcom.c: Include wide-int-print.h.
26735         (struct dref_d): Change type of offset to widest_int.
26736         (dump_dref): Call wide-int printer.
26737         (aff_combination_dr_offset): Use wide-int interfaces.
26738         (determine_offset): Take a widest_int pointer rather than a
26739         double_int pointer.
26740         (split_data_refs_to_components): Use wide-int interfaces.
26741         (suitable_component_p): Likewise.
26742         (order_drefs): Likewise.
26743         (add_ref_to_chain): Likewise.
26744         (valid_initializer_p): Likewise.
26745         (determine_roots_comp): Likewise.
26746         * tree-pretty-print.c: Include wide-int-print.h.
26747         (dump_generic_node): Use wide-int interfaces.
26748         * tree-sra.c (sra_ipa_modify_expr): Likewise.
26749         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
26750         (move_fixed_address_to_symbol): Likewise.
26751         (move_hint_to_base): Likewise.
26752         (move_pointer_to_base): Likewise.
26753         (move_variant_to_index): Likewise.
26754         (most_expensive_mult_to_index): Likewise.
26755         (addr_to_parts): Likewise.
26756         (copy_ref_info): Likewise.
26757         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26758         (indirect_refs_may_alias_p): Likewise.
26759         (stmt_kills_ref_p_1): Likewise.
26760         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
26761         * tree-ssa-ccp.c: Update comment at top of file.  Include
26762         wide-int-print.h.
26763         (struct prop_value_d): Change type of mask to widest_int.
26764         (extend_mask): New function.
26765         (dump_lattice_value): Use wide-int interfaces.
26766         (get_default_value): Likewise.
26767         (set_constant_value): Likewise.
26768         (set_value_varying): Likewise.
26769         (valid_lattice_transition): Likewise.
26770         (set_lattice_value): Likewise.
26771         (value_to_double_int): Delete.
26772         (value_to_wide_int): New.
26773         (get_value_from_alignment): Use wide-int interfaces.
26774         (get_value_for_expr): Likewise.
26775         (do_dbg_cnt): Likewise.
26776         (ccp_finalize): Likewise.
26777         (ccp_lattice_meet): Likewise.
26778         (bit_value_unop_1): Use widest_ints rather than double_ints.
26779         (bit_value_binop_1): Likewise.
26780         (bit_value_unop): Use wide-int interfaces.
26781         (bit_value_binop): Likewise.
26782         (bit_value_assume_aligned): Likewise.
26783         (evaluate_stmt): Likewise.
26784         (ccp_fold_stmt): Likewise.
26785         (visit_cond_stmt): Likewise.
26786         (ccp_visit_stmt): Likewise.
26787         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26788         (constant_pointer_difference): Likewise.
26789         (associate_pointerplus): Likewise.
26790         (combine_conversions): Likewise.
26791         * tree-ssa-loop.h: Include wide-int.h.
26792         (struct tree_niter_desc): Change type of max to widest_int.
26793         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
26794         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
26795         (remove_redundant_iv_tests): Likewise.
26796         (canonicalize_loop_induction_variables): Likewise.
26797         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
26798         (constant_multiple_of): Take a widest_int pointer instead of
26799         a double_int pointer.
26800         (get_computation_aff): Use wide-int interfaces.
26801         (ptr_difference_cost): Likewise.
26802         (difference_cost): Likewise.
26803         (get_loop_invariant_expr_id): Likewise.
26804         (get_computation_cost_at): Likewise.
26805         (iv_elimination_compare_lt): Likewise.
26806         (may_eliminate_iv): Likewise.
26807         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
26808         instead of double_int.
26809         (max_loop_iterations): Likewise.
26810         (max_stmt_executions): Likewise.
26811         (estimated_stmt_executions): Likewise.
26812         * tree-ssa-loop-niter.c: Include wide-int-print.h.
26813         (split_to_var_and_offset): Use wide-int interfaces.
26814         (determine_value_range): Likewise.
26815         (bound_difference_of_offsetted_base): Likewise.
26816         (bounds_add): Take a widest_int instead of a double_int.
26817         (number_of_iterations_ne_max): Use wide-int interfaces.
26818         (number_of_iterations_ne): Likewise.
26819         (number_of_iterations_lt_to_ne): Likewise.
26820         (assert_loop_rolls_lt): Likewise.
26821         (number_of_iterations_lt): Likewise.
26822         (number_of_iterations_le): Likewise.
26823         (number_of_iterations_cond): Likewise.
26824         (number_of_iterations_exit): Likewise.
26825         (finite_loop_p): Likewise.
26826         (derive_constant_upper_bound_assign): Likewise.
26827         (derive_constant_upper_bound): Return a widest_int.
26828         (derive_constant_upper_bound_ops): Likewise.
26829         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
26830         (record_estimate): Take a widest_int rather than a double_int.
26831         (record_nonwrapping_iv): Use wide-int interfaces.
26832         (double_int_cmp): Delete.
26833         (wide_int_cmp): New.
26834         (bound_index): Take a widest_int rather than a double_int.
26835         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
26836         (maybe_lower_iteration_bound): Likewise.
26837         (estimate_numbers_of_iterations_loop): Likewise.
26838         (estimated_loop_iterations): Take a widest_int pointer than than
26839         a double_int pointer.
26840         (estimated_loop_iterations_int): Use wide-int interfaces.
26841         (max_loop_iterations): Take a widest_int pointer than than
26842         a double_int pointer.
26843         (max_loop_iterations_int): Use wide-int interfaces.
26844         (max_stmt_executions): Take a widest_int pointer than than
26845         a double_int pointer.
26846         (estimated_stmt_executions): Likewise.
26847         (n_of_executions_at_most): Use wide-int interfaces.
26848         (scev_probably_wraps_p): Likewise.
26849         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
26850         to real_to_integer.
26851         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
26852         interfaces.
26853         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
26854         double_ints.  Adjust for trailing_wide_ints <3> representation.
26855         (set_nonzero_bits): Likewise.
26856         (get_range_info): Return wide_ints rather than double_ints.
26857         Adjust for trailing_wide_ints <3> representation.
26858         (get_nonzero_bits): Likewise.
26859         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
26860         representation.
26861         * tree-ssanames.h (struct range_info_def): Replace min, max and
26862         nonzero_bits with a trailing_wide_ints <3>.
26863         (set_range_info): Use wide_int_refs rather than double_ints.
26864         (set_nonzero_bits): Likewise.
26865         (get_range_info): Return wide_ints rather than double_ints.
26866         (get_nonzero_bits): Likewise.
26867         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
26868         * tree-ssa-pre.c (phi_translate_1): Likewise.
26869         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
26870         (acceptable_pow_call): Likewise.
26871         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
26872         interfaces.
26873         (vn_reference_fold_indirect): Likewise.
26874         (vn_reference_maybe_forwprop_address): Likewise.
26875         (valueize_refs_1): Likewise.
26876         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
26877         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
26878         tree_int_cst_lt and tree_int_cst_le.
26879         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
26880         interfaces.
26881         (streamer_alloc_tree): Likewise.
26882         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
26883         (streamer_write_tree_header): Likewise.
26884         (streamer_write_integer_cst): Likewise.
26885         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
26886         (build_constructors): Likewise.
26887         (array_value_type): Likewise.
26888         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
26889         (vect_check_gather): Likewise.
26890         * tree-vect-generic.c (build_replicated_const): Likewise.
26891         (expand_vector_divmod): Likewise.
26892         * tree-vect-loop.c (vect_transform_loop): Likewise.
26893         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
26894         (vect_do_peeling_for_alignment): Likewise.
26895         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
26896         * tree-vrp.c: Include wide-int.h.
26897         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
26898         (extract_range_from_assert): Use wide-int interfaces.
26899         (vrp_int_const_binop): Likewise.
26900         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
26901         double_int pointers.
26902         (ranges_from_anti_range): Use wide-int interfaces.
26903         (quad_int_cmp): Delete.
26904         (quad_int_pair_sort): Likewise.
26905         (extract_range_from_binary_expr_1): Use wide-int interfaces.
26906         (extract_range_from_unary_expr_1): Likewise.
26907         (adjust_range_with_scev): Likewise.
26908         (masked_increment): Take and return wide_ints rather than double_ints.
26909         (register_edge_assert_for_2): Use wide-int interfaces.
26910         (check_array_ref): Likewise.
26911         (search_for_addr_array): Likewise.
26912         (maybe_set_nonzero_bits): Likewise.
26913         (union_ranges): Pass an integer of the correct type instead of
26914         using integer_one_node.
26915         (intersect_ranges): Likewise.
26916         (simplify_truth_ops_using_ranges): Likewise.
26917         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
26918         (range_fits_type_p): Likewise.
26919         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
26920         a bool.
26921         (simplify_conversion_using_ranges): Use wide-int interfaces.
26922         (simplify_float_conversion_using_ranges): Likewise.
26923         (vrp_finalize): Likewise.
26924         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
26925         (gimple_stringops_transform): Likewise.
26926         * varasm.c (decode_addr_const): Likewise.
26927         (const_hash_1): Likewise.
26928         (const_rtx_hash_1): Likewise
26929         (output_constant): Likewise.
26930         (array_size_for_constructor): Likewise.
26931         (output_constructor_regular_field): Likewise.
26932         (output_constructor_bitfield): Likewise.
26933         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
26934         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
26935         GENERATOR_FILEs.
26936         * gencheck.c: Define BITS_PER_UNIT.
26937         * wide-int.cc: New.
26938         * wide-int.h: New.
26939         * wide-int-print.cc: New.
26940         * wide-int-print.h: New.
26941
26942 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
26943
26944         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
26945
26946 2014-05-06  Richard Biener  <rguenther@suse.de>
26947
26948         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
26949         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
26950         (TODO_verify_all): Adjust.
26951         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
26952         TODO_verify_stmts and TODO_verify_rtl_sharing.
26953         * bb-reorder.c: Likewise.
26954         * cfgexpand.c: Likewise.
26955         * cprop.c: Likewise.
26956         * cse.c: Likewise.
26957         * function.c: Likewise.
26958         * fwprop.c: Likewise.
26959         * gcse.c: Likewise.
26960         * gimple-ssa-isolate-paths.c: Likewise.
26961         * gimple-ssa-strength-reduction.c: Likewise.
26962         * ipa-split.c: Likewise.
26963         * loop-init.c: Likewise.
26964         * loop-unroll.c: Likewise.
26965         * lower-subreg.c: Likewise.
26966         * modulo-sched.c: Likewise.
26967         * postreload-gcse.c: Likewise.
26968         * predict.c: Likewise.
26969         * recog.c: Likewise.
26970         * sched-rgn.c: Likewise.
26971         * store-motion.c: Likewise.
26972         * tracer.c: Likewise.
26973         * trans-mem.c: Likewise.
26974         * tree-call-cdce.c: Likewise.
26975         * tree-cfg.c: Likewise.
26976         * tree-cfgcleanup.c: Likewise.
26977         * tree-complex.c: Likewise.
26978         * tree-eh.c: Likewise.
26979         * tree-emutls.c: Likewise.
26980         * tree-if-conv.c: Likewise.
26981         * tree-into-ssa.c: Likewise.
26982         * tree-loop-distribution.c: Likewise.
26983         * tree-object-size.c: Likewise.
26984         * tree-parloops.c: Likewise.
26985         * tree-pass.h: Likewise.
26986         * tree-sra.c: Likewise.
26987         * tree-ssa-ccp.c: Likewise.
26988         * tree-ssa-copy.c: Likewise.
26989         * tree-ssa-copyrename.c: Likewise.
26990         * tree-ssa-dce.c: Likewise.
26991         * tree-ssa-dom.c: Likewise.
26992         * tree-ssa-dse.c: Likewise.
26993         * tree-ssa-forwprop.c: Likewise.
26994         * tree-ssa-ifcombine.c: Likewise.
26995         * tree-ssa-loop-ch.c: Likewise.
26996         * tree-ssa-loop-ivcanon.c: Likewise.
26997         * tree-ssa-loop.c: Likewise.
26998         * tree-ssa-math-opts.c: Likewise.
26999         * tree-ssa-phiopt.c: Likewise.
27000         * tree-ssa-phiprop.c: Likewise.
27001         * tree-ssa-pre.c: Likewise.
27002         * tree-ssa-reassoc.c: Likewise.
27003         * tree-ssa-sink.c: Likewise.
27004         * tree-ssa-strlen.c: Likewise.
27005         * tree-ssa-tail-merge.c: Likewise.
27006         * tree-ssa-uncprop.c: Likewise.
27007         * tree-switch-conversion.c: Likewise.
27008         * tree-tailcall.c: Likewise.
27009         * tree-vect-generic.c: Likewise.
27010         * tree-vectorizer.c: Likewise.
27011         * tree-vrp.c: Likewise.
27012         * tsan.c: Likewise.
27013         * var-tracking.c: Likewise.
27014         * bt-load.c: Likewise.
27015         * cfgcleanup.c: Likewise.
27016         * combine-stack-adj.c: Likewise.
27017         * combine.c: Likewise.
27018         * compare-elim.c: Likewise.
27019         * config/epiphany/resolve-sw-modes.c: Likewise.
27020         * config/i386/i386.c: Likewise.
27021         * config/mips/mips.c: Likewise.
27022         * config/s390/s390.c: Likewise.
27023         * config/sh/sh_treg_combine.cc: Likewise.
27024         * config/sparc/sparc.c: Likewise.
27025         * dce.c: Likewise.
27026         * dse.c: Likewise.
27027         * final.c: Likewise.
27028         * ifcvt.c: Likewise.
27029         * mode-switching.c: Likewise.
27030         * passes.c: Likewise.
27031         * postreload.c: Likewise.
27032         * ree.c: Likewise.
27033         * reg-stack.c: Likewise.
27034         * regcprop.c: Likewise.
27035         * regrename.c: Likewise.
27036         * web.c: Likewise.
27037
27038 2014-05-06  Richard Biener  <rguenther@suse.de>
27039
27040         PR middle-end/61070
27041         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27042         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27043
27044 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27045
27046         PR ipa/60965
27047         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27048
27049 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27050             Tom de Vries  <tom@codesourcery.com>
27051
27052         * target.def (call_fusage_contains_non_callee_clobbers): New
27053         DEFHOOKPOD.
27054         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27055         Hooks to @menu.
27056         (@node Miscellaneous Register Hooks): New node.
27057         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27058         * doc/tm.texi: Regenerate.
27059
27060 2014-05-05  Marek Polacek  <polacek@redhat.com>
27061
27062         PR driver/61065
27063         * opts.c (common_handle_option): Call error_at instead of warning_at.
27064
27065 2014-05-05  Richard Biener  <rguenther@suse.de>
27066
27067         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27068         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27069         under the TODO_verify_il umbrella.
27070
27071 2014-05-05  Richard Biener  <rguenther@suse.de>
27072
27073         * passes.c (execute_function_todo): Move TODO_verify_flow under
27074         the TODO_verify_ul umbrella.
27075
27076 2014-05-05  Richard Biener  <rguenther@suse.de>
27077
27078         PR middle-end/61010
27079         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27080         X & CST away from a CST that is the mask of a mode.
27081
27082 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27083
27084         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27085         int argument to enum machine_mode.
27086         (picochip_class_max_nregs): Ditto.
27087         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27088         (picochip_class_max_nregs): Ditto.
27089
27090 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27091
27092         * target.def: Add new target hook.
27093         * doc/tm.texi: Regenerate.
27094         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27095         * targhooks.c (default_keep_leaf_when_profiled): New function.
27096
27097         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27098         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27099
27100 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27101
27102         PR tree-optimization/60363
27103         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27104         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27105         (update_destination_phis): New parameter.
27106         (create_edge_and_update_destination_phis): Ditto.
27107         (ssa_fix_duplicate_block_edges): Pass new arguments.
27108         (thread_single_edge): Ditto.
27109
27110 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27111
27112         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27113         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27114         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27115         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27116         Use RS6000_BTM_HARD_FLOAT.
27117         (BU_MISC_2): Likewise.
27118         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27119         RS6000_BTM_HARD_FLOAT.
27120         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27121         is explicitly used.
27122         (rs6000_invalid_builtin): Add hard floating builtin support.
27123         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27124         hard float builtins.
27125         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27126
27127 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27128
27129         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27130         Add missing function* argument.
27131
27132 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27133
27134         * lra-constraints.c (valid_address_p): Move earlier in file.
27135         Add a constraint argument to the address_info version.
27136         (satisfies_memory_constraint_p): New function.
27137         (satisfies_address_constraint_p): Likewise.
27138         (process_alt_operands, curr_insn_transform): Use them.
27139         (process_address): Pass the constraint to valid_address_p when
27140         checking address operands.
27141
27142 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27143
27144         * config/mips/mips.c (mips_isa_rev): New variable.
27145         (mips_set_architecture): Set it.
27146         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27147         from mips_isa_rev.
27148         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27149         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27150         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27151         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27152         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27153         conditions in terms of mips_isa_rev.
27154         (mips_isa_rev): Declare.
27155
27156 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27157
27158         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27159         (prob_unlikely, prob_likely): Make variables const.
27160
27161 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27162
27163         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27164
27165 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27166
27167         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27168
27169 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27170
27171         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27172         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27173         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27174         functions.
27175         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27176         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27177         sh_pass_in_reg_p.
27178         Replace usage of ROUND_REG with sh_round_reg.
27179         Use CEIL instead of ROUND_ADVANCE.
27180
27181 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27182
27183         PR target/61026
27184         * config/sh/sh.c: Include stdlib headers before everything else.
27185
27186 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27187
27188         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27189         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27190         (gimplify_adjust_omp_clauses): Simd region is never
27191         directly nested in combined parallel.  Instead, for linear
27192         with copyin/copyout, if in combined for simd loop, make decl
27193         firstprivate/lastprivate on OMP_FOR.
27194         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27195         expand_omp_for_static_chunk): When setting endvar, also set
27196         fd->loop.v to the same value.
27197
27198 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27199
27200         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27201
27202 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27203
27204         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27205         expression.
27206
27207 2014-05-02  Marek Polacek  <polacek@redhat.com>
27208
27209         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27210
27211 2014-05-02  Kito Cheng  <kito@0xlab.org>
27212
27213         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27214         to a C expression marco.
27215         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27216         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27217         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27218         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27219         HONOR_REG_ALLOC_ORDER.
27220         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27221
27222 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27223
27224         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27225
27226 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27227
27228         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27229
27230 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27231
27232         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27233         (convert_scalar_cond_reduction): Likewise.
27234         (predicate_scalar_phi): Add recognition and transformation
27235         of simple conditioanl reduction to be vectorizable.
27236
27237 2014-05-01  Marek Polacek  <polacek@redhat.com>
27238
27239         PR c/43245
27240         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27241
27242 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27243
27244         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27245         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27246         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27247         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27248         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27249         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27250         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27251         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27252
27253 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27254
27255         * config/arc/arc.opt (mlra): Move comment above option name
27256         to avoid mis-parsing as language options.
27257
27258 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27259
27260         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27261         * config/sol2.h: ... here.
27262         * config/sol2-10.h: Remove.
27263
27264         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27265         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27266         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27267         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27268         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27269         * config/sol2.h: ... here.
27270         (SECTION_NAME_FORMAT): Don't redefine.
27271         (STARTFILE_ARCH32_SPEC): Rename to ...
27272         (STARTFILE_ARCH_SPEC): ... this.
27273         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27274         * config/sparc/sol2.h: ... here.
27275         (SECTION_NAME_FORMAT): Don't undef.
27276         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27277         (SUBTARGET_EXTRA_SPECS): Remove.
27278         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27279
27280         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27281         (MD_STARTFILE_PREFIX): Remove.
27282         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27283         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27284         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27285         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27286         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27287         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27288         * config/i386/sol2.h: ... here.
27289         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27290         * config/i386/sol2-bi.h: Remove.
27291         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27292         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27293
27294         * config/i386/t-sol2-64: Rename to ...
27295         * config/i386/t-sol2: ... this.
27296         * config/sparc/t-sol2-64: Rename to ...
27297         * config/sparc/t-sol2: ... this.
27298
27299         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27300         sol2_tm_file_head, sol2_tm_file_tail.
27301         Include ${cpu_type}/sol2.h before sol2.h.
27302         Remove sol2-10.h.
27303         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27304         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27305         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27306         Reflect i386/t-sol2-64 renaming.
27307         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27308         Reflect sparc/t-sol2-64 renaming.
27309
27310 2014-04-30  Richard Biener  <rguenther@suse.de>
27311
27312         * passes.c (execute_function_todo): Move TODO_verify_stmts
27313         and TODO_verify_ssa under the TODO_verify_il umbrella.
27314         * tree-ssa.h (verify_ssa): Adjust prototype.
27315         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27316         we should verify SSA operands.
27317         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27318         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27319         whether we should verify whether not throwing stmts have EH info.
27320         * graphite-scop-detection.c (create_sese_edges): Adjust.
27321         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27322         * tree-eh.c (lower_try_finally_switch): Do not add the
27323         default case label twice.
27324
27325 2014-04-30  Marek Polacek  <polacek@redhat.com>
27326
27327         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27328         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27329         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27330         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27331
27332 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27333
27334         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27335         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27336         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27337         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27338         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27339         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27340         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27341         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27342
27343 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27344
27345         * tree-cfg.c (dump_function_to_file): Dump the return type of
27346         functions, in a line to itself before the function body, mimicking
27347         the layout of a C function.
27348
27349 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
27350
27351         PR tree-optimization/60971
27352         * tree-tailcall.c (process_assignment): Reject conversions which
27353         reduce precision.
27354
27355 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27356
27357         * calls.c (initialize_argument_information): Always treat
27358         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27359         (expand_call): Likewise.
27360         (emit_library_call_calue_1): Likewise.
27361         * expr.c (PUSH_ARGS_REVERSED): Do not define.
27362         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27363         code accordingly.
27364
27365 2014-04-29  Nick Clifton  <nickc@redhat.com>
27366
27367         * config/msp430/msp430.md (umulsidi): Fix typo.
27368         (mulhisi3): Enable even inside interrupt handlers.
27369         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27370         bigger return address pushed in large mode.
27371
27372 2014-04-29  Nick Clifton  <nickc@redhat.com>
27373
27374         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27375         (arc_init_reg_tables): Use a machine_mode enum to iterate over
27376         available modes.
27377         * config/m32r/m32r.c (init_reg_tables): Likewise.
27378         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27379         enum to hold the modes.
27380
27381 2014-04-29  Richard Biener  <rguenther@suse.de>
27382
27383         * dominance.c (free_dominance_info): Add overload with
27384         function parameter.
27385         (dom_info_state): Likewise.
27386         (dom_info_available_p): Likewise.
27387         * basic-block.h (free_dominance_info, dom_info_state,
27388         dom_info_available_p): Declare overloads.
27389         * passes.c (execute_function_todo): Verify that verifiers
27390         don't change dominator info state.  Drop dominator info
27391         for IPA pass invocations.
27392         * cgraph.c (release_function_body): Restore asserts that
27393         dominator information is released.
27394
27395 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
27396
27397         * doc/invoke.texi: Fix typo.
27398         * tree-vrp.c: Fix typos.
27399         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
27400
27401 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27402
27403         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
27404
27405 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27406
27407         * config/aarch64/aarch64-builtins.c
27408         (aarch64_types_storestruct_lane_qualifiers): New.
27409         (TYPES_STORESTRUCT_LANE): Likewise.
27410         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
27411         (st3_lane): Likewise.
27412         (st4_lane): Likewise.
27413         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
27414         (vec_store_lanesci_lane<mode>): Likewise.
27415         (vec_store_lanesxi_lane<mode>): Likewise.
27416         (aarch64_st2_lane<VQ:mode>): Likewise.
27417         (aarch64_st3_lane<VQ:mode>): Likewise.
27418         (aarch64_st4_lane<VQ:mode>): Likewise.
27419         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
27420         * config/aarch64/arm_neon.h
27421         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
27422         use new macro arguments.
27423         (__ST3_LANE_FUNC): Likewise.
27424         (__ST4_LANE_FUNC): Likewise.
27425         * config/aarch64/iterators.md (V_TWO_ELEM): New.
27426         (V_THREE_ELEM): Likewise.
27427         (V_FOUR_ELEM): Likewise.
27428
27429 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
27430
27431         * doc/gimple.texi: Replace the description of the now-defunct
27432         union gimple_statement_d with a diagram showing the
27433         gimple_statement_base class hierarchy and its relationships to
27434         the GSS_ and GIMPLE_ enums.
27435
27436 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27437
27438         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
27439         * config/aarch64/aarch64.c
27440         (aarch64_cannot_change_mode_class): Weaken conditions.
27441         (aarch64_modes_tieable_p): New.
27442         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
27443
27444 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
27445
27446         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
27447         (loadsync_<mode>): Change mode.
27448         (load_quadpti, store_quadpti): New.
27449         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
27450         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
27451
27452 2014-04-28  Martin Jambor  <mjambor@suse.cz>
27453
27454         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
27455         same alias type as the original statement.
27456         (subreplacement_assignment_data): New type.
27457         (handle_unscalarized_data_in_subtree): New type of parameter,
27458         generate new memory accesses with same alias type as the original
27459         statement.
27460         (load_assign_lhs_subreplacements): Likewise.
27461         (sra_modify_constructor_assign): Generate new memory accesses with
27462         same alias type as the original statement.
27463
27464 2014-04-28  Richard Biener  <rguenther@suse.de>
27465
27466         * tree-pass.h (TODO_verify_il): Define.
27467         (TODO_verify_all): Complete properly.
27468         * passes.c (execute_function_todo): Move existing loop-closed
27469         SSA verification under TODO_verify_il.
27470         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
27471         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
27472         Fix tree sharing issue.
27473
27474 2014-04-28  Richard Biener  <rguenther@suse.de>
27475
27476         PR middle-end/60092
27477         * builtins.def (DEF_C11_BUILTIN): Add.
27478         (BUILT_IN_ALIGNED_ALLOC): Likewise.
27479         * coretypes.h (enum function_class): Add function_c11_misc.
27480         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
27481         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
27482         (call_may_clobber_ref_p_1): Likewise.
27483         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27484         (mark_all_reaching_defs_necessary_1): Likewise.
27485         (propagate_necessity): Likewise.
27486         (eliminate_unnecessary_stmts): Likewise.
27487         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
27488
27489 2014-04-28  Richard Biener  <rguenther@suse.de>
27490
27491         * tree-vrp.c (vrp_var_may_overflow): Remove.
27492         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
27493         with overflow immediately bump to one before that value and
27494         let iteration figure out overflow status.
27495
27496 2014-04-28  Richard Biener  <rguenther@suse.de>
27497
27498         * configure.ac: Do valgrind header checks unconditionally.
27499         Add --enable-valgrind-annotations.
27500         * system.h: Guard valgrind header inclusion with
27501         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
27502         * alloc-pool.c (pool_alloc, pool_free): Use
27503         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
27504         to guard possibly dead code.
27505         * config.in: Regenerated.
27506         * configure: Likewise.
27507
27508 2014-04-28  Jeff Law  <law@redhat.com>
27509
27510         PR tree-optimization/60902
27511         * tree-ssa-threadedge.c
27512         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
27513         over real defs when invalidating outputs from statements that do not
27514         produce useful outputs for threading.
27515
27516 2014-04-28  Richard Biener  <rguenther@suse.de>
27517
27518         PR tree-optimization/60979
27519         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
27520         SCOPs that end in a block with a successor with abnormal
27521         predecessors.
27522
27523 2014-04-28  Richard Biener  <rguenther@suse.de>
27524
27525         * tree-pass.h (execute_pass_list): Adjust prototype.
27526         * passes.c (pass_manager::execute_early_local_passes): Adjust.
27527         (do_per_function): Change callback signature, push all actual
27528         work to the callbals.
27529         (do_per_function_toporder): Likewise.
27530         (execute_function_dump): Adjust.
27531         (execute_function_todo): Likewise.
27532         (clear_last_verified): Likewise.
27533         (verify_curr_properties): Likewise.
27534         (update_properties_after_pass): Likewise.
27535         (execute_pass_list_1): Split out from ...
27536         (execute_pass_list): ... here.  Adjust.
27537         (execute_ipa_pass_list): Likewise.
27538         * cgraphunit.c (cgraph_add_new_function): Adjust.
27539         (analyze_function): Likewise.
27540         (expand_function): Likewise.
27541         * cgraph.c (release_function_body): Free dominance info
27542         here instead of asserting it was magically freed elsewhere.
27543
27544 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27545
27546         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
27547         * configure: Regenerate.
27548         * config/sparc/sparc.opt (muser-mode): New option.
27549         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
27550         for LEON3.
27551         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
27552         * doc/invoke.texi (SPARC options): Document -muser-mode.
27553
27554 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
27555
27556         * cselib.c (find_slot_memmode): Delete.
27557         (cselib_hasher): Change compare_type to a struct.
27558         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
27559         constants.
27560         (preserve_constants_and_equivs): Adjust for new compare_type.
27561         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
27562         (wrap_constant): Delete.
27563         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
27564
27565 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
27566
27567         * doc/install.texi (Building with profile feedback): Remove
27568         outdated sentence.
27569
27570 2014-04-26  Tom de Vries  <tom@codesourcery.com>
27571
27572         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
27573         array accesses.
27574
27575 2014-04-25  Cary Coutant  <ccoutant@google.com>
27576
27577         PR debug/60929
27578         * dwarf2out.c (should_move_die_to_comdat): A type definition
27579         can contain a subprogram definition, but don't move it to a
27580         comdat unit.
27581         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
27582         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
27583         from original DIE.
27584         (clone_tree_hash): Rename to...
27585         (clone_tree_partial): ...this; change callers.  Copy
27586         DW_TAG_subprogram DIEs as declarations.
27587         (copy_decls_walk): Don't copy children of a declaration into a
27588         type unit.
27589
27590 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
27591
27592         PR target/60969
27593         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
27594         alternative 12.
27595
27596 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
27597
27598         * config/arm/predicates.md (call_insn_operand): Add long_call check.
27599         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
27600         reg for long_call.
27601         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
27602         restriction.
27603
27604 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27605
27606         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
27607
27608 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27609
27610         PR tree-optimization/60930
27611         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
27612         creating a multiply candidate by folding two constant
27613         multiplicands when the result overflows.
27614
27615 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
27616
27617         PR tree-optimization/60960
27618         * tree-vect-generic.c (expand_vector_operation): Only call
27619         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
27620
27621 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27622
27623         * expr.c (clobber_reg_mode): New function.
27624         * expr.h (clobber_reg): New function.
27625
27626 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27627
27628         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
27629         clobbers.
27630
27631 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
27632             Tom de Vries  <tom@codesourcery.com>
27633
27634         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
27635         handle.
27636         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
27637         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
27638         new argument to find_all_hard_reg_sets call.
27639
27640 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27641
27642         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
27643         Use HOST_WIDE_INT_C for mask literal.
27644         (aarch_rev16_shleft_mask_imm_p): Likewise.
27645
27646 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
27647
27648         PR target/60941
27649         * config/sparc/sparc.md (ashlsi3_extend): Delete.
27650
27651 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
27652
27653         PR preprocessor/56540
27654         * config/i386/i386-c.c (ix86_target_macros): Define
27655         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
27656
27657 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27658
27659         * configure.ac (tga_func): Remove.
27660         (LIB_TLS_SPEC): Remove.
27661         * configure: Regenerate.
27662         * config.in: Regenerate.
27663         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
27664
27665 2014-04-25  Richard Biener  <rguenther@suse.de>
27666
27667         PR ipa/60912
27668         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
27669         call stmt use/clobber sets during stmt walk instead of
27670         walking the possibly incomplete set of caller edges.
27671
27672 2014-04-25  Richard Biener  <rguenther@suse.de>
27673
27674         PR ipa/60911
27675         * passes.c (apply_ipa_transforms): Inline into only caller ...
27676         (execute_one_pass): ... here.  Properly bring in function
27677         bodies for nodes we want to apply IPA transforms to.
27678
27679 2014-04-24  Cong Hou  <congh@google.com>
27680
27681         PR tree-optimization/60896
27682         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
27683         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
27684         (vect_mark_pattern_stmts): Set the def type of all statements in
27685         PATTERN_DEF_SEQ as vect_internal_def.
27686
27687 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
27688
27689         * doc/extend.texi (PowerPC Built-in Functions): Document new
27690         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
27691         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
27692
27693         * config/rs6000/predicates.md (const_0_to_3_operand): New
27694         predicate to match 0..3 integer constants.
27695
27696         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
27697         to support adding miscellaneous builtin functions.
27698         (BU_DFP_MISC_2): Likewise.
27699         (BU_P7_MISC_1): Likewise.
27700         (BU_P7_MISC_2): Likewise.
27701         (BU_P8V_MISC_3): Likewise.
27702         (BU_MISC_1): Likewise.
27703         (BU_MISC_2): Likewise.
27704         (DIVWE): Add extended divide builtin functions.
27705         (DIVWEO): Likewise.
27706         (DIVWEU): Likewise.
27707         (DIVWEUO): Likewise.
27708         (DIVDE): Likewise.
27709         (DIVDEO): Likewise.
27710         (DIVDEU): Likewise.
27711         (DIVDEUO): Likewise.
27712         (DXEX): Add decimal floating-point builtin functions.
27713         (DXEXQ): Likewise.
27714         (DDEDPD): Likewise.
27715         (DDEDPDQ): Likewise.
27716         (DENBCD): Likewise.
27717         (DENBCDQ): Likewise.
27718         (DIEX): Likewise.
27719         (DIEXQ): Likewise.
27720         (DSCLI): Likewise.
27721         (DSCLIQ): Likewise.
27722         (DSCRI): Likewise.
27723         (DSCRIQ): Likewise.
27724         (CDTBCD): Add new BCD builtin functions.
27725         (CBCDTD): Likewise.
27726         (ADDG6S): Likewise.
27727         (BCDADD): Likewise.
27728         (BCDADD_LT): Likewise.
27729         (BCDADD_EQ): Likewise.
27730         (BCDADD_GT): Likewise.
27731         (BCDADD_OV): Likewise.
27732         (BCDSUB): Likewise.
27733         (BCDSUB_LT): Likewise.
27734         (BCDSUB_EQ): Likewise.
27735         (BCDSUB_GT): Likewise.
27736         (BCDSUB_OV): Likewise.
27737         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
27738         (UNPACK_TD): Likewise.
27739         (PACK_TF): Likewise.
27740         (UNPACK_TF): Likewise.
27741         (UNPACK_TF_0): Likewise.
27742         (UNPACK_TF_1): Likewise.
27743         (PACK_V1TI): Likewise.
27744         (UNPACK_V1TI): Likewise.
27745
27746         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
27747         support for decimal floating point builtin functions.
27748         (rs6000_expand_ternop_builtin): Add checks for the new builtin
27749         functions that take constant arguments.
27750         (rs6000_invalid_builtin): Add decimal floating point builtin support.
27751         (rs6000_init_builtins): Setup long double, _Decimal64, and
27752         _Decimal128 types for new builtin functions.
27753         (builtin_function_type): Set the unsigned flags appropriately for
27754         the new builtin functions.
27755         (rs6000_opt_masks): Add support for decimal floating point builtin
27756         functions.
27757
27758         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
27759         floating point builtin functions.
27760         (RS6000_BTM_COMMON): Likewise.
27761         (RS6000_BTI_long_double): Likewise.
27762         (RS6000_BTI_dfloat64): Likewise.
27763         (RS6000_BTI_dfloat128): Likewise.
27764         (long_double_type_internal_node): Likewise.
27765         (dfloat64_type_internal_node): Likewise.
27766         (dfloat128_type_internal_node): Likewise.
27767
27768         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
27769         2.07 bcd arithmetic instructions.
27770         (UNSPEC_BCDSUB): Likewise.
27771         (UNSPEC_BCD_OVERFLOW): Likewise.
27772         (UNSPEC_BCD_ADD_SUB): Likewise.
27773         (bcd_add_sub): Likewise.
27774         (BCD_TEST): Likewise.
27775         (bcd<bcd_add_sub>): Likewise.
27776         (bcd<bcd_add_sub>_test): Likewise.
27777         (bcd<bcd_add_sub>_test2): Likewise.
27778         (bcd<bcd_add_sub>_<code>): Likewise.
27779         (peephole2 for combined bcd ops): Likewise.
27780
27781         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
27782         decimal floating point builtin functions.
27783         (UNSPEC_DENBCD): Likewise.
27784         (UNSPEC_DXEX): Likewise.
27785         (UNSPEC_DIEX): Likewise.
27786         (UNSPEC_DSCLI): Likewise.
27787         (UNSPEC_DSCRI): Likewise.
27788         (D64_D128): Likewise.
27789         (dfp_suffix): Likewise.
27790         (dfp_ddedpd_<mode>): Likewise.
27791         (dfp_denbcd_<mode>): Likewise.
27792         (dfp_dxex_<mode>): Likewise.
27793         (dfp_diex_<mode>): Likewise.
27794         (dfp_dscli_<mode>): Likewise.
27795         (dfp_dscri_<mode>): Likewise.
27796
27797         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
27798         builtin functions.
27799         (UNSPEC_CDTBCD): Likewise.
27800         (UNSPEC_CBCDTD): Likewise.
27801         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
27802         (UNSPEC_DIVEO): Likewise.
27803         (UNSPEC_DIVEU): Likewise.
27804         (UNSPEC_DIVEUO): Likewise.
27805         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
27806         pack/unpack 128-bit types.
27807         (UNSPEC_PACK_128BIT): Likewise.
27808         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
27809         (udiv<mode>3): Use idiv_ldiv mode attribute.
27810         (div<mode>3): Likewise.
27811         (addg6s): Add new BCD builtin functions.
27812         (cdtbcd): Likewise.
27813         (cbcdtd): Likewise.
27814         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
27815         (div_extend): Likewise.
27816         (div<div_extend>_<mode>"): Likewise.
27817         (FP128_64): Add support for new builtin functions to pack/unpack
27818         128-bit types.
27819         (unpack<mode>): Likewise.
27820         (unpacktf_0): Likewise.
27821         (unpacktf_1): Likewise.
27822         (unpack<mode>_dm): Likewise.
27823         (unpack<mode>_nodm): Likewise.
27824         (pack<mode>): Likewise.
27825         (unpackv1ti): Likewise.
27826         (packv1ti): Likewise.
27827
27828 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
27829
27830         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
27831         is disabled.
27832
27833 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
27834
27835         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
27836         * gimplify.c (omp_is_private): Change last argument's type to int.
27837         Only diagnose lastprivate if the simd argument is 1, only diagnose
27838         linear if the simd argument is 2.
27839         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
27840         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
27841         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
27842         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
27843         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
27844         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27845         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
27846         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27847         * tree-nested.c (convert_nonlocal_omp_clauses,
27848         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
27849
27850 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
27851
27852         PR target/60822
27853         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
27854         operand 1.
27855
27856 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
27857
27858         * flag-types.h (enum ivar_visibility): Add.
27859
27860 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
27861
27862         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
27863         function * argument.
27864
27865 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
27866
27867         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
27868
27869 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27870             Tom de Vries  <tom@codesourcery.com>
27871
27872         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
27873         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
27874         reg-note.
27875         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
27876         * emit-rtl.c (try_split): Same.
27877
27878 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27879             Tom de Vries  <tom@codesourcery.com>
27880
27881         * common.opt (fuse-caller-save): New option.
27882
27883 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
27884
27885         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
27886         elements for big-endian.
27887
27888 2014-04-24  Richard Biener  <rguenther@suse.de>
27889
27890         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
27891         during TER and instead use the sepops interface for expanding
27892         non-GIMPLE_SINGLE_RHS.
27893
27894 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27895
27896         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
27897         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
27898
27899 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27900
27901         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
27902         assembler 64-bit option.
27903         * configure: Regenerate.
27904
27905 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27906
27907         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
27908         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
27909         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
27910         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
27911         (TARGET_CRYPTO): Take TARGET_SIMD into account.
27912
27913 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27914
27915         * config/aarch64/aarch64-builtins.c
27916         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
27917         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
27918         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
27919         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
27920         builtins.
27921         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
27922         (Vrevsuff): New mode attribute.
27923
27924 2014-04-24  Terry Guo  <terry.guo@arm.com>
27925
27926         * config/arm/arm.h (machine_function): Define variable
27927         after_arm_reorg here.
27928         * config/arm/arm.c (after_arm_reorg): Remove the definition.
27929         (arm_split_constant): Update the way to access variable
27930         after_arm_reorg.
27931         (arm_reorg): Ditto.
27932         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
27933
27934 2014-04-23  Tom de Vries  <tom@codesourcery.com>
27935
27936         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
27937
27938 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
27939
27940         * is-a.h: Update comments to reflect the following changes to the
27941         "pointerness" of the API, making the template parameter match the
27942         return type, allowing use of is-a.h with typedefs of pointers.
27943         (is_a_helper::cast): Return a T rather then a pointer to a T, so
27944         that the return type matches the parameter to the is_a_helper.
27945         (as_a): Likewise.
27946         (dyn_cast): Likewise.
27947
27948         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
27949         pointer from the is-a.h API.
27950
27951         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
27952         (is_a_helper <cgraph_node *>::test): ...this, matching change to
27953         is-a.h API.
27954         (is_a_helper <varpool_node>::test): Likewise, convert to...
27955         (is_a_helper <varpool_node *>::test): ...this.
27956
27957         (varpool_first_variable): Update for removal of implicit pointer
27958         from the is-a.h API.
27959         (varpool_next_variable): Likewise.
27960         (varpool_first_static_initializer): Likewise.
27961         (varpool_next_static_initializer): Likewise.
27962         (varpool_first_defined_variable): Likewise.
27963         (varpool_next_defined_variable): Likewise.
27964         (cgraph_first_defined_function): Likewise.
27965         (cgraph_next_defined_function): Likewise.
27966         (cgraph_first_function): Likewise.
27967         (cgraph_next_function): Likewise.
27968         (cgraph_first_function_with_gimple_body): Likewise.
27969         (cgraph_next_function_with_gimple_body): Likewise.
27970         (cgraph_alias_target): Likewise.
27971         (varpool_alias_target): Likewise.
27972         (cgraph_function_or_thunk_node): Likewise.
27973         (varpool_variable_node): Likewise.
27974         (symtab_real_symbol_p): Likewise.
27975         * cgraphunit.c (referred_to_p): Likewise.
27976         (analyze_functions): Likewise.
27977         (handle_alias_pairs): Likewise.
27978         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
27979         * gimple-ssa.h (gimple_vuse_op): Likewise.
27980         (gimple_vdef_op): Likewise.
27981         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
27982         * gimple.c (gimple_build_asm_1): Likewise.
27983         (gimple_build_try): Likewise.
27984         (gimple_build_resx): Likewise.
27985         (gimple_build_eh_dispatch): Likewise.
27986         (gimple_build_omp_for): Likewise.
27987         (gimple_omp_for_set_clauses): Likewise.
27988
27989         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
27990         (is_a_helper <gimple_statement_asm *>::test): ...this.
27991         (is_a_helper <gimple_statement_bind>::test): Convert to...
27992         (is_a_helper <gimple_statement_bind *>::test): ...this.
27993         (is_a_helper <gimple_statement_call>::test): Convert to...
27994         (is_a_helper <gimple_statement_call *>::test): ...this.
27995         (is_a_helper <gimple_statement_catch>::test): Convert to...
27996         (is_a_helper <gimple_statement_catch *>::test): ...this.
27997         (is_a_helper <gimple_statement_resx>::test): Convert to...
27998         (is_a_helper <gimple_statement_resx *>::test): ...this.
27999         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28000         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28001         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28002         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28003         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28004         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28005         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28006         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28007         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28008         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28009         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28010         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28011         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28012         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28013         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28014         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28015         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28016         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28017         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28018         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28019         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28020         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28021         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28022         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28023         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28024         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28025         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28026         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28027         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28028         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28029         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28030         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28031         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28032         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28033         (is_a_helper <gimple_statement_phi>::test): Convert to...
28034         (is_a_helper <gimple_statement_phi *>::test): ...this.
28035         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28036         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28037         (is_a_helper <gimple_statement_try>::test): Convert to...
28038         (is_a_helper <gimple_statement_try *>::test): ...this.
28039         (is_a_helper <gimple_statement_wce>::test): Convert to...
28040         (is_a_helper <gimple_statement_wce *>::test): ...this.
28041         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28042         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28043         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28044         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28045         (is_a_helper <const gimple_statement_call>::test): Convert to...
28046         (is_a_helper <const gimple_statement_call *>::test): ...this.
28047         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28048         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28049         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28050         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28051         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28052         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28053         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28054         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28055         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28056         Convert to...
28057         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28058         ...this.
28059         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28060         Convert to...
28061         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28062         ...this.
28063         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28064         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28065         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28066         to...
28067         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28068         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28069         to...
28070         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28071         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28072         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28073         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28074         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28075         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28076         to...
28077         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28078         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28079         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28080         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28081         to...
28082         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28083         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28084         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28085         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28086         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28087         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28088         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28089         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28090         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28091         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28092         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28093         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28094         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28095         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28096         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28097         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28098         to...
28099         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28100         ...this.
28101         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28102         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28103
28104         (gimple_use_ops): Update for removal of implicit pointer from the
28105         is-a.h API.
28106         (gimple_set_use_ops): Likewise.
28107         (gimple_vuse): Likewise.
28108         (gimple_vdef): Likewise.
28109         (gimple_vuse_ptr): Likewise.
28110         (gimple_vdef_ptr): Likewise.
28111         (gimple_set_vuse): Likewise.
28112         (gimple_set_vdef): Likewise.
28113         (gimple_omp_return_set_lhs): Likewise.
28114         (gimple_omp_return_lhs): Likewise.
28115         (gimple_omp_return_lhs_ptr): Likewise.
28116         (gimple_call_fntype): Likewise.
28117         (gimple_call_set_fntype): Likewise.
28118         (gimple_call_set_internal_fn): Likewise.
28119         (gimple_call_use_set): Likewise.
28120         (gimple_call_clobber_set): Likewise.
28121         (gimple_bind_vars): Likewise.
28122         (gimple_bind_set_vars): Likewise.
28123         (gimple_bind_body_ptr): Likewise.
28124         (gimple_bind_set_body): Likewise.
28125         (gimple_bind_add_stmt): Likewise.
28126         (gimple_bind_block): Likewise.
28127         (gimple_bind_set_block): Likewise.
28128         (gimple_asm_ninputs): Likewise.
28129         (gimple_asm_noutputs): Likewise.
28130         (gimple_asm_nclobbers): Likewise.
28131         (gimple_asm_nlabels): Likewise.
28132         (gimple_asm_input_op): Likewise.
28133         (gimple_asm_input_op_ptr): Likewise.
28134         (gimple_asm_output_op): Likewise.
28135         (gimple_asm_output_op_ptr): Likewise.
28136         (gimple_asm_set_output_op): Likewise.
28137         (gimple_asm_clobber_op): Likewise.
28138         (gimple_asm_set_clobber_op): Likewise.
28139         (gimple_asm_label_op): Likewise.
28140         (gimple_asm_set_label_op): Likewise.
28141         (gimple_asm_string): Likewise.
28142         (gimple_catch_types): Likewise.
28143         (gimple_catch_types_ptr): Likewise.
28144         (gimple_catch_handler_ptr): Likewise.
28145         (gimple_catch_set_types): Likewise.
28146         (gimple_catch_set_handler): Likewise.
28147         (gimple_eh_filter_types): Likewise.
28148         (gimple_eh_filter_types_ptr): Likewise.
28149         (gimple_eh_filter_failure_ptr): Likewise.
28150         (gimple_eh_filter_set_types): Likewise.
28151         (gimple_eh_filter_set_failure): Likewise.
28152         (gimple_eh_must_not_throw_fndecl): Likewise.
28153         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28154         (gimple_eh_else_n_body_ptr): Likewise.
28155         (gimple_eh_else_e_body_ptr): Likewise.
28156         (gimple_eh_else_set_n_body): Likewise.
28157         (gimple_eh_else_set_e_body): Likewise.
28158         (gimple_try_eval_ptr): Likewise.
28159         (gimple_try_cleanup_ptr): Likewise.
28160         (gimple_try_set_eval): Likewise.
28161         (gimple_try_set_cleanup): Likewise.
28162         (gimple_wce_cleanup_ptr): Likewise.
28163         (gimple_wce_set_cleanup): Likewise.
28164         (gimple_phi_capacity): Likewise.
28165         (gimple_phi_num_args): Likewise.
28166         (gimple_phi_result): Likewise.
28167         (gimple_phi_result_ptr): Likewise.
28168         (gimple_phi_set_result): Likewise.
28169         (gimple_phi_arg): Likewise.
28170         (gimple_phi_set_arg): Likewise.
28171         (gimple_resx_region): Likewise.
28172         (gimple_resx_set_region): Likewise.
28173         (gimple_eh_dispatch_region): Likewise.
28174         (gimple_eh_dispatch_set_region): Likewise.
28175         (gimple_omp_critical_name): Likewise.
28176         (gimple_omp_critical_name_ptr): Likewise.
28177         (gimple_omp_critical_set_name): Likewise.
28178         (gimple_omp_for_clauses): Likewise.
28179         (gimple_omp_for_clauses_ptr): Likewise.
28180         (gimple_omp_for_set_clauses): Likewise.
28181         (gimple_omp_for_collapse): Likewise.
28182         (gimple_omp_for_index): Likewise.
28183         (gimple_omp_for_index_ptr): Likewise.
28184         (gimple_omp_for_set_index): Likewise.
28185         (gimple_omp_for_initial): Likewise.
28186         (gimple_omp_for_initial_ptr): Likewise.
28187         (gimple_omp_for_set_initial): Likewise.
28188         (gimple_omp_for_final): Likewise.
28189         (gimple_omp_for_final_ptr): Likewise.
28190         (gimple_omp_for_set_final): Likewise.
28191         (gimple_omp_for_incr): Likewise.
28192         (gimple_omp_for_incr_ptr): Likewise.
28193         (gimple_omp_for_set_incr): Likewise.
28194         (gimple_omp_for_pre_body_ptr): Likewise.
28195         (gimple_omp_for_set_pre_body): Likewise.
28196         (gimple_omp_parallel_clauses): Likewise.
28197         (gimple_omp_parallel_clauses_ptr): Likewise.
28198         (gimple_omp_parallel_set_clauses): Likewise.
28199         (gimple_omp_parallel_child_fn): Likewise.
28200         (gimple_omp_parallel_child_fn_ptr): Likewise.
28201         (gimple_omp_parallel_set_child_fn): Likewise.
28202         (gimple_omp_parallel_data_arg): Likewise.
28203         (gimple_omp_parallel_data_arg_ptr): Likewise.
28204         (gimple_omp_parallel_set_data_arg): Likewise.
28205         (gimple_omp_task_clauses): Likewise.
28206         (gimple_omp_task_clauses_ptr): Likewise.
28207         (gimple_omp_task_set_clauses): Likewise.
28208         (gimple_omp_task_child_fn): Likewise.
28209         (gimple_omp_task_child_fn_ptr): Likewise.
28210         (gimple_omp_task_set_child_fn): Likewise.
28211         (gimple_omp_task_data_arg): Likewise.
28212         (gimple_omp_task_data_arg_ptr): Likewise.
28213         (gimple_omp_task_set_data_arg): Likewise.
28214         (gimple_omp_taskreg_clauses): Likewise.
28215         (gimple_omp_taskreg_clauses_ptr): Likewise.
28216         (gimple_omp_taskreg_set_clauses): Likewise.
28217         (gimple_omp_taskreg_child_fn): Likewise.
28218         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28219         (gimple_omp_taskreg_set_child_fn): Likewise.
28220         (gimple_omp_taskreg_data_arg): Likewise.
28221         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28222         (gimple_omp_taskreg_set_data_arg): Likewise.
28223         (gimple_omp_task_copy_fn): Likewise.
28224         (gimple_omp_task_copy_fn_ptr): Likewise.
28225         (gimple_omp_task_set_copy_fn): Likewise.
28226         (gimple_omp_task_arg_size): Likewise.
28227         (gimple_omp_task_arg_size_ptr): Likewise.
28228         (gimple_omp_task_set_arg_size): Likewise.
28229         (gimple_omp_task_arg_align): Likewise.
28230         (gimple_omp_task_arg_align_ptr): Likewise.
28231         (gimple_omp_task_set_arg_align): Likewise.
28232         (gimple_omp_single_clauses): Likewise.
28233         (gimple_omp_single_clauses_ptr): Likewise.
28234         (gimple_omp_single_set_clauses): Likewise.
28235         (gimple_omp_target_clauses): Likewise.
28236         (gimple_omp_target_clauses_ptr): Likewise.
28237         (gimple_omp_target_set_clauses): Likewise.
28238         (gimple_omp_target_child_fn): Likewise.
28239         (gimple_omp_target_child_fn_ptr): Likewise.
28240         (gimple_omp_target_set_child_fn): Likewise.
28241         (gimple_omp_target_data_arg): Likewise.
28242         (gimple_omp_target_data_arg_ptr): Likewise.
28243         (gimple_omp_target_set_data_arg): Likewise.
28244         (gimple_omp_teams_clauses): Likewise.
28245         (gimple_omp_teams_clauses_ptr): Likewise.
28246         (gimple_omp_teams_set_clauses): Likewise.
28247         (gimple_omp_sections_clauses): Likewise.
28248         (gimple_omp_sections_clauses_ptr): Likewise.
28249         (gimple_omp_sections_set_clauses): Likewise.
28250         (gimple_omp_sections_control): Likewise.
28251         (gimple_omp_sections_control_ptr): Likewise.
28252         (gimple_omp_sections_set_control): Likewise.
28253         (gimple_omp_for_set_cond): Likewise.
28254         (gimple_omp_for_cond): Likewise.
28255         (gimple_omp_atomic_store_set_val): Likewise.
28256         (gimple_omp_atomic_store_val): Likewise.
28257         (gimple_omp_atomic_store_val_ptr): Likewise.
28258         (gimple_omp_atomic_load_set_lhs): Likewise.
28259         (gimple_omp_atomic_load_lhs): Likewise.
28260         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28261         (gimple_omp_atomic_load_set_rhs): Likewise.
28262         (gimple_omp_atomic_load_rhs): Likewise.
28263         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28264         (gimple_omp_continue_control_def): Likewise.
28265         (gimple_omp_continue_control_def_ptr): Likewise.
28266         (gimple_omp_continue_set_control_def): Likewise.
28267         (gimple_omp_continue_control_use): Likewise.
28268         (gimple_omp_continue_control_use_ptr): Likewise.
28269         (gimple_omp_continue_set_control_use): Likewise.
28270         (gimple_transaction_body_ptr): Likewise.
28271         (gimple_transaction_label): Likewise.
28272         (gimple_transaction_label_ptr): Likewise.
28273         (gimple_transaction_set_body): Likewise.
28274         (gimple_transaction_set_label): Likewise.
28275
28276         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28277         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28278         * ipa-ref.c (ipa_record_reference): Likewise.
28279         * ipa-reference.c (analyze_function): Likewise.
28280         (ipa_reference_write_optimization_summary): Likewise.
28281         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28282         (address_taken_from_non_vtable_p): Likewise.
28283         (comdat_can_be_unshared_p_1): Likewise.
28284         * lto-cgraph.c (lto_output_ref): Likewise.
28285         (add_references): Likewise.
28286         (compute_ltrans_boundary): Likewise.
28287         (output_symtab): Likewise.
28288         (input_ref): Likewise.
28289         (input_cgraph_1): Likewise.
28290         (output_cgraph_opt_summary): Likewise.
28291         * lto-streamer-out.c (lto_output): Likewise.
28292         (output_symbol_p): Likewise.
28293         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28294         (lsei_start_function_in_partition): Likewise.
28295         (lsei_next_variable_in_partition): Likewise.
28296         (lsei_start_variable_in_partition): Likewise.
28297         * symtab.c (insert_to_assembler_name_hash): Likewise.
28298         (unlink_from_assembler_name_hash): Likewise.
28299         (symtab_unregister_node): Likewise.
28300         (symtab_remove_node): Likewise.
28301         (dump_symtab_node): Likewise.
28302         (verify_symtab_base): Likewise.
28303         (verify_symtab_node): Likewise.
28304         (symtab_make_decl_local): Likewise.
28305         (symtab_alias_ultimate_target): Likewise.
28306         (symtab_resolve_alias): Likewise.
28307         (symtab_get_symbol_partitioning_class): Likewise.
28308         * tree-phinodes.c (allocate_phi_node): Likewise.
28309         (reserve_phi_args_for_new_edge): Likewise.
28310         (remove_phi_args): Likewise.
28311         * varpool.c (varpool_node_for_asm): Likewise.
28312         (varpool_remove_unreferenced_decls): Likewise.
28313
28314 2014-04-23  Jeff Law  <law@redhat.com>
28315
28316         PR tree-optimization/60902
28317         * tree-ssa-threadedge.c
28318         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28319         invalidate outputs from statements that do not produce useful
28320         outputs for threading.
28321
28322 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28323
28324         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28325         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28326         machine descriptions for Stack Smashing Protector.
28327
28328 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28329
28330         * aarch64.md (<optab>_rol<mode>3): New pattern.
28331         (<optab>_rolsi3_uxtw): Likewise.
28332         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28333
28334 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28335
28336         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28337         (arm_cortex_a12_tune): Likewise.
28338
28339 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28340
28341         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28342
28343 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28344
28345         * config/arm/arm.md (arm_rev16si2): New pattern.
28346         (arm_rev16si2_alt): Likewise.
28347         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28348
28349 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28350
28351         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28352         (rev16<mode>2_alt): Likewise.
28353         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28354         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28355         (aarch_rev16_shleft_mask_imm_p): Likewise.
28356         (aarch_rev16_p_1): Likewise.
28357         (aarch_rev16_p): Likewise.
28358         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28359         (aarch_rev16_shright_mask_imm_p): Likewise.
28360         (aarch_rev16_shleft_mask_imm_p): Likewise.
28361
28362 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28363
28364         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28365         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28366         rev cost.
28367         (cortex_a53_extra_costs): Likewise.
28368         (cortex_a57_extra_costs): Likewise.
28369         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28370         (cortexa7_extra_costs): Likewise.
28371         (cortexa8_extra_costs): Likewise.
28372         (cortexa12_extra_costs): Likewise.
28373         (cortexa15_extra_costs): Likewise.
28374         (v7m_extra_costs): Likewise.
28375         (arm_new_rtx_costs): Handle BSWAP.
28376
28377 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28378
28379         * config/arm/arm.c (cortexa8_extra_costs): New table.
28380         (arm_cortex_a8_tune): New tuning struct.
28381         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28382
28383 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28384
28385         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28386
28387 2014-04-23  Richard Biener  <rguenther@suse.de>
28388
28389         * Makefile.in (OBJS): Remove loop-unswitch.o.
28390         * tree-pass.h (make_pass_rtl_unswitch): Remove.
28391         * passes.def (pass_rtl_unswitch): Likewise.
28392         * loop-init.c (gate_rtl_unswitch): Likewise.
28393         (rtl_unswitch): Likewise.
28394         (pass_data_rtl_unswitch): Likewise.
28395         (pass_rtl_unswitch): Likewise.
28396         (make_pass_rtl_unswitch): Likewise.
28397         * rtl.h (reversed_condition): Likewise.
28398         (compare_and_jump_seq): Likewise.
28399         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
28400         and make static.
28401         * loop-unroll.c (compare_and_jump_seq): Likewise.
28402
28403 2014-04-23  Richard Biener  <rguenther@suse.de>
28404
28405         PR tree-optimization/60903
28406         * tree-ssa-loop-im.c (analyze_memory_references): Remove
28407         commented code block.
28408         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
28409         loop flags to newly created BBs and edges.
28410
28411 2014-04-23  Nick Clifton  <nickc@redhat.com>
28412
28413         * config/msp430/msp430.c (msp430_handle_option): Move function
28414         to msp430-common.c
28415         (msp430_option_override): Simplify mcu and mcpu option handling.
28416         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
28417         support for -mhwmult command line option.
28418         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
28419         -mhwmult command line option.
28420         (msp430_hwmult_enabled): Delete.
28421         (msp43o_output_labelref): Add support for -mhwmult command line option.
28422         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
28423         (umulsidi3): Likewise.
28424         * config/msp430/msp430.opt (mmcu): Add Report attribute.
28425         (mcpu, mlarge, msmall): Likewise.
28426         (mhwmult): New option.
28427         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
28428         prototype.
28429         (msp430_is_f5_mcu): Remove prototype.
28430         (msp430_use_f5_series_hwmult): Add prototype.
28431         * config/msp430/msp430-opts.h: New file.
28432         * common/config/msp430: New directory.
28433         * common/config/msp430/msp430-common.c: New file.
28434         * config.gcc (msp430): Remove target_has_targetm_common.
28435         * doc/invoke.texi: Document -mhwmult command line option.
28436
28437 2014-04-23  Nick Clifton  <nickc@redhat.com>
28438
28439         * config/i386/cygwin.h (ENDFILE_SPEC): Include
28440         default-manifest.o if it can be found in the search path.
28441         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
28442
28443 2014-04-23  Terry Guo  <terry.guo@arm.com>
28444
28445         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
28446
28447 2014-04-23  Richard Biener  <rguenther@suse.de>
28448
28449         PR middle-end/60895
28450         * tree-inline.c (declare_return_variable): Use mark_addressable.
28451
28452 2014-04-23  Richard Biener  <rguenther@suse.de>
28453
28454         PR middle-end/60891
28455         * loop-init.c (loop_optimizer_init): Make sure to apply
28456         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
28457
28458 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28459
28460         PR sanitizer/60275
28461         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
28462         New options.
28463         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
28464         if flag_sanitize_undefined_trap_on_error.
28465         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
28466         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
28467         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
28468         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
28469         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
28470         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
28471         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
28472         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
28473         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
28474         * ubsan.c (ubsan_instrument_unreachable): Return
28475         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
28476         (ubsan_expand_null_ifn): Emit __builtin_trap ()
28477         if flag_sanitize_undefined_trap_on_error and
28478         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
28479         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
28480         instrument_bool_enum_load): Emit __builtin_trap () if
28481         flag_sanitize_undefined_trap_on_error and
28482         __builtin_handle_*_abort () if !flag_sanitize_recover.
28483         * doc/invoke.texi (-fsanitize-recover,
28484         -fsanitize-undefined-trap-on-error): Document.
28485
28486 2014-04-22  Christian Bruel  <christian.bruel@st.com>
28487
28488         * config/sh/sh.md (mov<mode>): Replace movQIHI.
28489         Force immediates to SImode.
28490
28491 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
28492
28493         * config/nios2/nios2.md (UNSPEC_ROUND): New.
28494         (lroundsfsi2): New.
28495         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
28496         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
28497         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
28498         (nios2_fpu_insn): Add entry for round.
28499         (N2FPU_NO_ERRNO_P): Define.
28500         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
28501         flag_errno_math.
28502         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
28503
28504 2014-04-22  Richard Henderson  <rth@redhat.com>
28505
28506         * config/aarch64/aarch64 (addti3, subti3): New expanders.
28507         (add<GPI>3_compare0): Remove leading * from name.
28508         (add<GPI>3_carryin): Likewise.
28509         (sub<GPI>3_compare0): Likewise.
28510         (sub<GPI>3_carryin): Likewise.
28511         (<su_optab>mulditi3): New expander.
28512         (multi3): New expander.
28513         (madd<GPI>): Remove leading * from name.
28514
28515 2014-04-22  Martin Jambor  <mjambor@suse.cz>
28516
28517         * cgraphclones.c (cgraph_function_versioning): Copy
28518         ipa_transforms_to_apply instead of asserting it is empty.
28519
28520 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
28521
28522         PR target/60868
28523         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
28524         on count_exp to get mode.
28525
28526 2014-04-22  Andrew Pinski  <apinski@cavium.com>
28527
28528         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
28529         Handle TLS for ILP32.
28530         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
28531         (tlsie_small_<mode>): this and handle PTR.
28532         (tlsie_small_sidi): New pattern.
28533         (tlsle_small): Change to an expand to handle ILP32.
28534         (tlsle_small_<mode>): New pattern.
28535         (tlsdesc_small): Rename to ...
28536         (tlsdesc_small_<mode>): this and handle PTR.
28537
28538 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28539
28540         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
28541
28542 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28543
28544         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28545         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
28546         (aarch64_types_signed_poly_qualifiers): Likewise.
28547         (aarch64_types_unsigned_signed_qualifiers): Likewise.
28548         (aarch64_types_poly_signed_qualifiers): Likewise.
28549         (TYPES_REINTERP_SS): Type macro added.
28550         (TYPES_REINTERP_SU): Likewise.
28551         (TYPES_REINTERP_SP): Likewise.
28552         (TYPES_REINTERP_US): Likewise.
28553         (TYPES_REINTERP_PS): Likewise.
28554         (aarch64_fold_builtin): New expression folding added.
28555         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
28556         Declarations removed.
28557         (REINTERP_SS): Declarations added.
28558         (REINTERP_US): Likewise.
28559         (REINTERP_PS): Likewise.
28560         (REINTERP_SU): Likewise.
28561         (REINTERP_SP): Likewise.
28562         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
28563         (vreinterpretq_p8_f64): Likewise.
28564         (vreinterpret_p16_f64): Likewise.
28565         (vreinterpretq_p16_f64): Likewise.
28566         (vreinterpret_f32_f64): Likewise.
28567         (vreinterpretq_f32_f64): Likewise.
28568         (vreinterpret_f64_f32): Likewise.
28569         (vreinterpret_f64_p8): Likewise.
28570         (vreinterpret_f64_p16): Likewise.
28571         (vreinterpret_f64_s8): Likewise.
28572         (vreinterpret_f64_s16): Likewise.
28573         (vreinterpret_f64_s32): Likewise.
28574         (vreinterpret_f64_s64): Likewise.
28575         (vreinterpret_f64_u8): Likewise.
28576         (vreinterpret_f64_u16): Likewise.
28577         (vreinterpret_f64_u32): Likewise.
28578         (vreinterpret_f64_u64): Likewise.
28579         (vreinterpretq_f64_f32): Likewise.
28580         (vreinterpretq_f64_p8): Likewise.
28581         (vreinterpretq_f64_p16): Likewise.
28582         (vreinterpretq_f64_s8): Likewise.
28583         (vreinterpretq_f64_s16): Likewise.
28584         (vreinterpretq_f64_s32): Likewise.
28585         (vreinterpretq_f64_s64): Likewise.
28586         (vreinterpretq_f64_u8): Likewise.
28587         (vreinterpretq_f64_u16): Likewise.
28588         (vreinterpretq_f64_u32): Likewise.
28589         (vreinterpretq_f64_u64): Likewise.
28590         (vreinterpret_s64_f64): Likewise.
28591         (vreinterpretq_s64_f64): Likewise.
28592         (vreinterpret_u64_f64): Likewise.
28593         (vreinterpretq_u64_f64): Likewise.
28594         (vreinterpret_s8_f64): Likewise.
28595         (vreinterpretq_s8_f64): Likewise.
28596         (vreinterpret_s16_f64): Likewise.
28597         (vreinterpretq_s16_f64): Likewise.
28598         (vreinterpret_s32_f64): Likewise.
28599         (vreinterpretq_s32_f64): Likewise.
28600         (vreinterpret_u8_f64): Likewise.
28601         (vreinterpretq_u8_f64): Likewise.
28602         (vreinterpret_u16_f64): Likewise.
28603         (vreinterpretq_u16_f64): Likewise.
28604         (vreinterpret_u32_f64): Likewise.
28605         (vreinterpretq_u32_f64): Likewise.
28606
28607 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28608
28609         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28610         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
28611         (vreinterpret_p8_s8): Likewise.
28612         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
28613         (vreinterpret_p8_s16): Likewise.
28614         (vreinterpret_p8_s32): Likewise.
28615         (vreinterpret_p8_s64): Likewise.
28616         (vreinterpret_p8_f32): Likewise.
28617         (vreinterpret_p8_u8): Likewise.
28618         (vreinterpret_p8_u16): Likewise.
28619         (vreinterpret_p8_u32): Likewise.
28620         (vreinterpret_p8_u64): Likewise.
28621         (vreinterpret_p8_p16): Likewise.
28622         (vreinterpretq_p8_s8): Likewise.
28623         (vreinterpretq_p8_s16): Likewise.
28624         (vreinterpretq_p8_s32): Likewise.
28625         (vreinterpretq_p8_s64): Likewise.
28626         (vreinterpretq_p8_f32): Likewise.
28627         (vreinterpretq_p8_u8): Likewise.
28628         (vreinterpretq_p8_u16): Likewise.
28629         (vreinterpretq_p8_u32): Likewise.
28630         (vreinterpretq_p8_u64): Likewise.
28631         (vreinterpretq_p8_p16): Likewise.
28632         (vreinterpret_p16_s8): Likewise.
28633         (vreinterpret_p16_s16): Likewise.
28634         (vreinterpret_p16_s32): Likewise.
28635         (vreinterpret_p16_s64): Likewise.
28636         (vreinterpret_p16_f32): Likewise.
28637         (vreinterpret_p16_u8): Likewise.
28638         (vreinterpret_p16_u16): Likewise.
28639         (vreinterpret_p16_u32): Likewise.
28640         (vreinterpret_p16_u64): Likewise.
28641         (vreinterpret_p16_p8): Likewise.
28642         (vreinterpretq_p16_s8): Likewise.
28643         (vreinterpretq_p16_s16): Likewise.
28644         (vreinterpretq_p16_s32): Likewise.
28645         (vreinterpretq_p16_s64): Likewise.
28646         (vreinterpretq_p16_f32): Likewise.
28647         (vreinterpretq_p16_u8): Likewise.
28648         (vreinterpretq_p16_u16): Likewise.
28649         (vreinterpretq_p16_u32): Likewise.
28650         (vreinterpretq_p16_u64): Likewise.
28651         (vreinterpretq_p16_p8): Likewise.
28652         (vreinterpret_f32_s8): Likewise.
28653         (vreinterpret_f32_s16): Likewise.
28654         (vreinterpret_f32_s32): Likewise.
28655         (vreinterpret_f32_s64): Likewise.
28656         (vreinterpret_f32_u8): Likewise.
28657         (vreinterpret_f32_u16): Likewise.
28658         (vreinterpret_f32_u32): Likewise.
28659         (vreinterpret_f32_u64): Likewise.
28660         (vreinterpret_f32_p8): Likewise.
28661         (vreinterpret_f32_p16): Likewise.
28662         (vreinterpretq_f32_s8): Likewise.
28663         (vreinterpretq_f32_s16): Likewise.
28664         (vreinterpretq_f32_s32): Likewise.
28665         (vreinterpretq_f32_s64): Likewise.
28666         (vreinterpretq_f32_u8): Likewise.
28667         (vreinterpretq_f32_u16): Likewise.
28668         (vreinterpretq_f32_u32): Likewise.
28669         (vreinterpretq_f32_u64): Likewise.
28670         (vreinterpretq_f32_p8): Likewise.
28671         (vreinterpretq_f32_p16): Likewise.
28672         (vreinterpret_s64_s8): Likewise.
28673         (vreinterpret_s64_s16): Likewise.
28674         (vreinterpret_s64_s32): Likewise.
28675         (vreinterpret_s64_f32): Likewise.
28676         (vreinterpret_s64_u8): Likewise.
28677         (vreinterpret_s64_u16): Likewise.
28678         (vreinterpret_s64_u32): Likewise.
28679         (vreinterpret_s64_u64): Likewise.
28680         (vreinterpret_s64_p8): Likewise.
28681         (vreinterpret_s64_p16): Likewise.
28682         (vreinterpretq_s64_s8): Likewise.
28683         (vreinterpretq_s64_s16): Likewise.
28684         (vreinterpretq_s64_s32): Likewise.
28685         (vreinterpretq_s64_f32): Likewise.
28686         (vreinterpretq_s64_u8): Likewise.
28687         (vreinterpretq_s64_u16): Likewise.
28688         (vreinterpretq_s64_u32): Likewise.
28689         (vreinterpretq_s64_u64): Likewise.
28690         (vreinterpretq_s64_p8): Likewise.
28691         (vreinterpretq_s64_p16): Likewise.
28692         (vreinterpret_u64_s8): Likewise.
28693         (vreinterpret_u64_s16): Likewise.
28694         (vreinterpret_u64_s32): Likewise.
28695         (vreinterpret_u64_s64): Likewise.
28696         (vreinterpret_u64_f32): Likewise.
28697         (vreinterpret_u64_u8): Likewise.
28698         (vreinterpret_u64_u16): Likewise.
28699         (vreinterpret_u64_u32): Likewise.
28700         (vreinterpret_u64_p8): Likewise.
28701         (vreinterpret_u64_p16): Likewise.
28702         (vreinterpretq_u64_s8): Likewise.
28703         (vreinterpretq_u64_s16): Likewise.
28704         (vreinterpretq_u64_s32): Likewise.
28705         (vreinterpretq_u64_s64): Likewise.
28706         (vreinterpretq_u64_f32): Likewise.
28707         (vreinterpretq_u64_u8): Likewise.
28708         (vreinterpretq_u64_u16): Likewise.
28709         (vreinterpretq_u64_u32): Likewise.
28710         (vreinterpretq_u64_p8): Likewise.
28711         (vreinterpretq_u64_p16): Likewise.
28712         (vreinterpret_s8_s16): Likewise.
28713         (vreinterpret_s8_s32): Likewise.
28714         (vreinterpret_s8_s64): Likewise.
28715         (vreinterpret_s8_f32): Likewise.
28716         (vreinterpret_s8_u8): Likewise.
28717         (vreinterpret_s8_u16): Likewise.
28718         (vreinterpret_s8_u32): Likewise.
28719         (vreinterpret_s8_u64): Likewise.
28720         (vreinterpret_s8_p8): Likewise.
28721         (vreinterpret_s8_p16): Likewise.
28722         (vreinterpretq_s8_s16): Likewise.
28723         (vreinterpretq_s8_s32): Likewise.
28724         (vreinterpretq_s8_s64): Likewise.
28725         (vreinterpretq_s8_f32): Likewise.
28726         (vreinterpretq_s8_u8): Likewise.
28727         (vreinterpretq_s8_u16): Likewise.
28728         (vreinterpretq_s8_u32): Likewise.
28729         (vreinterpretq_s8_u64): Likewise.
28730         (vreinterpretq_s8_p8): Likewise.
28731         (vreinterpretq_s8_p16): Likewise.
28732         (vreinterpret_s16_s8): Likewise.
28733         (vreinterpret_s16_s32): Likewise.
28734         (vreinterpret_s16_s64): Likewise.
28735         (vreinterpret_s16_f32): Likewise.
28736         (vreinterpret_s16_u8): Likewise.
28737         (vreinterpret_s16_u16): Likewise.
28738         (vreinterpret_s16_u32): Likewise.
28739         (vreinterpret_s16_u64): Likewise.
28740         (vreinterpret_s16_p8): Likewise.
28741         (vreinterpret_s16_p16): Likewise.
28742         (vreinterpretq_s16_s8): Likewise.
28743         (vreinterpretq_s16_s32): Likewise.
28744         (vreinterpretq_s16_s64): Likewise.
28745         (vreinterpretq_s16_f32): Likewise.
28746         (vreinterpretq_s16_u8): Likewise.
28747         (vreinterpretq_s16_u16): Likewise.
28748         (vreinterpretq_s16_u32): Likewise.
28749         (vreinterpretq_s16_u64): Likewise.
28750         (vreinterpretq_s16_p8): Likewise.
28751         (vreinterpretq_s16_p16): Likewise.
28752         (vreinterpret_s32_s8): Likewise.
28753         (vreinterpret_s32_s16): Likewise.
28754         (vreinterpret_s32_s64): Likewise.
28755         (vreinterpret_s32_f32): Likewise.
28756         (vreinterpret_s32_u8): Likewise.
28757         (vreinterpret_s32_u16): Likewise.
28758         (vreinterpret_s32_u32): Likewise.
28759         (vreinterpret_s32_u64): Likewise.
28760         (vreinterpret_s32_p8): Likewise.
28761         (vreinterpret_s32_p16): Likewise.
28762         (vreinterpretq_s32_s8): Likewise.
28763         (vreinterpretq_s32_s16): Likewise.
28764         (vreinterpretq_s32_s64): Likewise.
28765         (vreinterpretq_s32_f32): Likewise.
28766         (vreinterpretq_s32_u8): Likewise.
28767         (vreinterpretq_s32_u16): Likewise.
28768         (vreinterpretq_s32_u32): Likewise.
28769         (vreinterpretq_s32_u64): Likewise.
28770         (vreinterpretq_s32_p8): Likewise.
28771         (vreinterpretq_s32_p16): Likewise.
28772         (vreinterpret_u8_s8): Likewise.
28773         (vreinterpret_u8_s16): Likewise.
28774         (vreinterpret_u8_s32): Likewise.
28775         (vreinterpret_u8_s64): Likewise.
28776         (vreinterpret_u8_f32): Likewise.
28777         (vreinterpret_u8_u16): Likewise.
28778         (vreinterpret_u8_u32): Likewise.
28779         (vreinterpret_u8_u64): Likewise.
28780         (vreinterpret_u8_p8): Likewise.
28781         (vreinterpret_u8_p16): Likewise.
28782         (vreinterpretq_u8_s8): Likewise.
28783         (vreinterpretq_u8_s16): Likewise.
28784         (vreinterpretq_u8_s32): Likewise.
28785         (vreinterpretq_u8_s64): Likewise.
28786         (vreinterpretq_u8_f32): Likewise.
28787         (vreinterpretq_u8_u16): Likewise.
28788         (vreinterpretq_u8_u32): Likewise.
28789         (vreinterpretq_u8_u64): Likewise.
28790         (vreinterpretq_u8_p8): Likewise.
28791         (vreinterpretq_u8_p16): Likewise.
28792         (vreinterpret_u16_s8): Likewise.
28793         (vreinterpret_u16_s16): Likewise.
28794         (vreinterpret_u16_s32): Likewise.
28795         (vreinterpret_u16_s64): Likewise.
28796         (vreinterpret_u16_f32): Likewise.
28797         (vreinterpret_u16_u8): Likewise.
28798         (vreinterpret_u16_u32): Likewise.
28799         (vreinterpret_u16_u64): Likewise.
28800         (vreinterpret_u16_p8): Likewise.
28801         (vreinterpret_u16_p16): Likewise.
28802         (vreinterpretq_u16_s8): Likewise.
28803         (vreinterpretq_u16_s16): Likewise.
28804         (vreinterpretq_u16_s32): Likewise.
28805         (vreinterpretq_u16_s64): Likewise.
28806         (vreinterpretq_u16_f32): Likewise.
28807         (vreinterpretq_u16_u8): Likewise.
28808         (vreinterpretq_u16_u32): Likewise.
28809         (vreinterpretq_u16_u64): Likewise.
28810         (vreinterpretq_u16_p8): Likewise.
28811         (vreinterpretq_u16_p16): Likewise.
28812         (vreinterpret_u32_s8): Likewise.
28813         (vreinterpret_u32_s16): Likewise.
28814         (vreinterpret_u32_s32): Likewise.
28815         (vreinterpret_u32_s64): Likewise.
28816         (vreinterpret_u32_f32): Likewise.
28817         (vreinterpret_u32_u8): Likewise.
28818         (vreinterpret_u32_u16): Likewise.
28819         (vreinterpret_u32_u64): Likewise.
28820         (vreinterpret_u32_p8): Likewise.
28821         (vreinterpret_u32_p16): Likewise.
28822         (vreinterpretq_u32_s8): Likewise.
28823         (vreinterpretq_u32_s16): Likewise.
28824         (vreinterpretq_u32_s32): Likewise.
28825         (vreinterpretq_u32_s64): Likewise.
28826         (vreinterpretq_u32_f32): Likewise.
28827         (vreinterpretq_u32_u8): Likewise.
28828         (vreinterpretq_u32_u16): Likewise.
28829         (vreinterpretq_u32_u64): Likewise.
28830         (vreinterpretq_u32_p8): Likewise.
28831         (vreinterpretq_u32_p16): Likewise.
28832
28833 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28834
28835         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
28836         Pattern extended.
28837         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
28838         (sqabs): Likewise.
28839         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
28840         (vqnegd_s64): Likewise.
28841         (vqabs_s64): Likewise.
28842         (vqabsd_s64): Likewise.
28843
28844 2014-04-22  Richard Henderson  <rth@redhat.com>
28845
28846         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
28847         computation to the top of the loop.
28848
28849 2014-04-22  Renlin  <renlin.li@arm.com>
28850             Jiong Wang  <jiong.wang@arm.com>
28851
28852         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
28853         * config/aarch64/aarch64.c (aarch64_layout_frame)
28854         (aarch64_initial_elimination_offset): Likewise.
28855
28856 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28857
28858         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
28859         Fix indentation.
28860
28861 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
28862
28863         * machmode.h (bitwise_mode_for_mode): Declare.
28864         * stor-layout.h (bitwise_type_for_mode): Likewise.
28865         * stor-layout.c (bitwise_mode_for_mode): New function.
28866         (bitwise_type_for_mode): Likewise.
28867         * builtins.c (fold_builtin_memory_op): Use it instead of
28868         int_mode_for_mode and build_nonstandard_integer_type.
28869
28870 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28871
28872         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
28873         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
28874         (*-*-solaris2*): Simplify.
28875         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
28876         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
28877         *-*-solaris2.9* handling.
28878
28879         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
28880         as bug.
28881         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
28882         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
28883         handling, simplify.
28884         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
28885         * configure: Regenerate.
28886
28887         * config/i386/sol2-9.h: Remove.
28888
28889         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
28890         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
28891         Remove Solaris 9 references.
28892
28893 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
28894
28895         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
28896         (floatuns<GPI:mode><GPF:mode>2): Remove.
28897         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
28898         and floatuns conversions.
28899         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
28900         and floatuns conversions.
28901         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
28902         (w1,w2): New mode attributes for inequal width conversions.
28903
28904 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
28905
28906         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
28907         the output asm format.
28908
28909 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
28910
28911         * config/aarch64/aarch64-simd.md
28912         (aarch64_cm<optab>di): Always split.
28913         (*aarch64_cm<optab>di): New.
28914         (aarch64_cmtstdi): Always split.
28915         (*aarch64_cmtstdi): New.
28916
28917 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28918
28919         PR tree-optimization/60823
28920         * omp-low.c (ipa_simd_modify_function_body): Go through
28921         all SSA_NAMEs and for those refering to vector arguments
28922         which are going to be replaced adjust SSA_NAME_VAR and,
28923         if it is a default definition, change it into a non-default
28924         definition assigned at the beginning of function from new_decl.
28925         (ipa_simd_modify_stmt_ops): Rewritten.
28926         * tree-dfa.c (set_ssa_default_def): When removing default def,
28927         check for NULL loc instead of NULL *loc.
28928
28929 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28930
28931         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
28932         restrictions on core registers for DImode values in Thumb2.
28933
28934 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28935
28936         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
28937         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
28938
28939 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28940
28941         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
28942         (*iordi_notzesidi_di): Likewise.
28943         (*iordi_notsesidi_di): Likewise.
28944
28945 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28946
28947         * config/arm/arm-protos.h (tune_params): New struct members.
28948         * config/arm/arm.c: Initialise tune_params per processor.
28949         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
28950         for speed, based on new tune_params.
28951
28952 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28953
28954         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
28955         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
28956         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
28957         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
28958         * config/aarch64/arm_neon.h (vrnd_f64): Added.
28959         (vrnda_f64): Likewise.
28960         (vrndi_f64): Likewise.
28961         (vrndm_f64): Likewise.
28962         (vrndn_f64): Likewise.
28963         (vrndp_f64): Likewise.
28964         (vrndx_f64): Likewise.
28965
28966 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
28967
28968         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
28969         GET_MODE_SIZE argument is enum machine_mode.
28970
28971 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28972
28973         PR target/60910
28974         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
28975         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
28976
28977 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
28978
28979         PR middle-end/60281
28980         * asan.c (asan_emit_stack_protection): Force the base to align to
28981         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
28982         appropriate bits if STRICT_ALIGNMENT.
28983         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
28984         when asan is on.
28985         (expand_used_vars): Leave a space in the stack frame for alignment
28986         if STRICT_ALIGNMENT.
28987
28988 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
28989
28990         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
28991         than a gimple.
28992         (gimple_store_p): Likewise.
28993         (gimple_assign_load_p): Likewise.
28994         (gimple_assign_cast_p): Likewise.
28995         (gimple_clobber_p): Likewise.
28996
28997         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
28998         rather than a gimple.
28999         (gimple_assign_cast_p): Likewise.
29000
29001 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
29002
29003         PR target/60735
29004         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29005         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29006
29007         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29008         more debug information for E500 if -mdebug=reg.
29009
29010 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29011
29012         PR target/60909
29013         * config/i386/i386.c (ix86_expand_builtin)
29014         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29015         register for target RTX.
29016         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29017
29018 2014-04-18  Cong Hou  <congh@google.com>
29019
29020         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29021         the widen-mult pattern by handling two operands with different sizes,
29022         and operands whose size is smaller than half of the result type.
29023
29024 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29025
29026         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29027         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29028         (do_estimate_edge_time): Compute it.
29029         * ipa-inline.c (want_inline_small_function_p): Bypass
29030         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29031
29032 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29033
29034         * ipa-inline.c (spec_rem): New static variable.
29035         (dump_overall_stats): New function.
29036         (dump_inline_stats): New function.
29037
29038 2014-04-18  Richard Henderson  <rth@redhat.com>
29039
29040         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29041         to GET_MODE_SIZE, not a reg_class_t.
29042
29043 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29044
29045         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29046         (vsx_xxmrglw_<mode>): Likewise.
29047
29048 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29049
29050         PR target/60876
29051         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29052         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29053         (rs6000_init_hard_regno_mode_ok): Likewise.
29054
29055 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29056
29057         * ipa-inline.c (inline_small_functions): Account only non-cold
29058         functions.
29059         * doc/invoke.texi (inline-unit-growth): Update documentation.
29060
29061 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29062
29063         * config/rs6000/rs6000.md (addti3, subti3): New.
29064
29065 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29066
29067         PR target/60863
29068         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29069         comment.  Check optimize_insn_for_size_p instead of
29070         optimize_insn_for_speed_p.
29071
29072 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29073
29074         * gimple-iterator.c (gsi_start_edge): New function.
29075         * gimple-iterator.h (gsi_start_edge): Declare.
29076         * tree-sra.c (single_non_eh_succ): New function.
29077         (disqualify_ops_if_throwing_stmt): Renamed to
29078         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29079         having one non-EH successor BB.
29080         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29081         generate loads into replacements.
29082         (sra_modify_assign): Likewise and and also use the simple path for
29083         such statements.
29084         (sra_modify_function_body): Commit statements on edges.
29085
29086 2014-04-17  Richard Biener  <rguenther@suse.de>
29087
29088         PR middle-end/60849
29089         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29090         comparison results and add clarifying comment.
29091
29092 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29093
29094         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29095         (blank_mode): Initialize it.
29096         (emit_mode_size_inline, emit_mode_nunits_inline,
29097         emit_mode_inner_inline): New functions.
29098         (emit_insn_modes_h): Call them and surround their output with
29099         #if GCC_VERSION >= 4001 ... #endif.
29100         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29101         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29102         mode_* arrays if the argument is __builtin_constant_p.
29103         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29104         is enum machine_mode.
29105
29106 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29107
29108         * passes.c (opt_pass::execute): Adjust.
29109         (pass_manager::execute_pass_mode_switching): Likewise.
29110         (early_local_passes::execute): Likewise.
29111         (execute_one_pass): Pass cfun to the pass's execute method.
29112         * tree-pass.h (opt_pass::execute): Add function * argument.
29113         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29114         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29115         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29116         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29117         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29118         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29119         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29120         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29121         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29122         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29123         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29124         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29125         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29126         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29127         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29128         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29129         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29130         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29131         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29132         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29133         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29134         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29135         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29136         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29137         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29138         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29139         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29140         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29141         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29142         Adjust.
29143
29144 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29145
29146         * passes.c (opt_pass::gate): Take function * argument.
29147         (gate_all_early_local_passes): Merge into
29148         (early_local_passes::gate): this.
29149         (gate_all_early_optimizations): Merge into
29150         (all_early_optimizations::gate): this.
29151         (gate_all_optimizations): Mege into
29152         (all_optimizations::gate): this.
29153         (gate_all_optimizations_g): Merge into
29154         (all_optimizations_g::gate): this.
29155         (gate_rest_of_compilation): Mege into
29156         (rest_of_compilation::gate): this.
29157         (gate_postreload): Merge into
29158         (postreload::gate): this.
29159         (dump_one_pass): Pass cfun to the pass's gate method.
29160         (execute_ipa_summary_passes): Likewise.
29161         (execute_one_pass): Likewise.
29162         (ipa_write_summaries_2): Likewise.
29163         (ipa_write_optimization_summaries_1): Likewise.
29164         (ipa_read_summaries_1): Likewise.
29165         (ipa_read_optimization_summaries_1): Likewise.
29166         (execute_ipa_stmt_fixups): Likewise.
29167         * tree-pass.h (opt_pass::gate): Add function * argument.
29168         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29169         combine-stack-adj.c, combine.c, compare-elim.c,
29170         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29171         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29172         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29173         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29174         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29175         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29176         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29177         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29178         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29179         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29180         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29181         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29182         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29183         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29184         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29185         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29186         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29187         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29188         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29189         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29190         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29191         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29192         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29193         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29194         var-tracking.c, vtable-verify.c, web.c: Adjust.
29195
29196 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29197
29198         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29199         * configure: Regenerate.
29200
29201 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29202
29203         * passes.c (dump_one_pass): don't check pass->has_gate.
29204         (execute_ipa_summary_passes): Likewise.
29205         (execute_one_pass): Likewise.
29206         (ipa_write_summaries_2): Likewise.
29207         (ipa_write_optimization_summaries_1): Likewise.
29208         (ipa_read_optimization_summaries_1): Likewise.
29209         (execute_ipa_stmt_fixups): Likewise.
29210         * tree-pass.h (pass_data::has_gate): Remove.
29211         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29212         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29213         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29214         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29215         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29216         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29217         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29218         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29219         gimple-low.c, gimple-ssa-isolate-paths.c,
29220         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29221         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29222         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29223         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29224         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29225         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29226         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29227         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29228         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29229         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29230         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29231         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29232         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29233         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29234         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29235         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29236         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29237         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29238         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29239         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29240         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29241         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29242         Adjust.
29243
29244 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29245
29246         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29247         declaration.
29248         * passes.c (pass_manager::register_dump_files_1): Merge into
29249         (pass_manager::register_dump_files): this, and remove its handling of
29250         properties since the pass always has the properties anyway.
29251         (pass_manager::pass_manager): Adjust.
29252
29253 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29254
29255         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29256         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29257         dealing with properties.
29258         (pass_manager::register_dump_files): Adjust.
29259
29260 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29261
29262         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29263         then represent the bound as normal constant value.
29264
29265 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29266
29267         PR target/60847
29268         Forward port from 4.8 branch
29269         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29270
29271         * config/i386/bmiintrin.h (_blsi_u32): New.
29272         (_blsi_u64): Ditto.
29273         (_blsr_u32): Ditto.
29274         (_blsr_u64): Ditto.
29275         (_blsmsk_u32): Ditto.
29276         (_blsmsk_u64): Ditto.
29277         (_tzcnt_u32): Ditto.
29278         (_tzcnt_u64): Ditto.
29279
29280 2014-04-17  Kito Cheng  <kito@0xlab.org>
29281
29282         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29283
29284 2014-04-17  Richard Biener  <rguenther@suse.de>
29285
29286         PR middle-end/60849
29287         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29288         boolean results for comparisons.
29289
29290 2014-04-17  Richard Biener  <rguenther@suse.de>
29291
29292         PR tree-optimization/60836
29293         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29294         initial PHI args to be gimple values.
29295
29296 2014-04-17  Richard Biener  <rguenther@suse.de>
29297
29298         PR tree-optimization/60841
29299         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29300         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29301         of stmts to SLP build.
29302         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29303         (vect_analyze_slp): Likewise.
29304         (vect_analyze_slp_instance): Likewise.
29305         (vect_build_slp_tree): Limit overall SLP tree growth.
29306         * tree-vectorizer.h (vect_analyze_data_refs,
29307         vect_analyze_slp): Adjust prototypes.
29308
29309 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29310
29311         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29312         Silvermont.
29313
29314 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29315
29316         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29317         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29318         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29319         for TARGET_SLOW_PSHUFB
29320
29321 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29322
29323         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29324         * config/i386/i386.c (intel_cost): Ditto.
29325
29326 2014-04-17  Joey Ye  <joey.ye@arm.com>
29327
29328         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29329
29330 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29331
29332         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29333         with -fuse-profile.
29334
29335 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29336
29337         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29338         (type_all_derivations_known_p): New predicate.
29339         (type_all_ctors_visible_p): New predicate.
29340         (type_possibly_instantiated_p): New predicate.
29341         (get_odr_type): Compute all_derivations_known.
29342         (dump_odr_type): Dump the flag.
29343         (maybe_record_type): Cleanup.
29344         (record_target_from_binfo): Add bases_to_consider array;
29345         record bases for types w/o instances and skip CXX destructor.
29346         (possible_polymorphic_call_targets_1): Add bases_to_consider
29347         and consider_construction parameters; check if type may have instance.
29348         (get_polymorphic_call_info): Set maybe_in_construction to true
29349         when we know nothing.
29350         (record_targets_from_bases): Skip CXX destructors; they are
29351         never called for types in construction.
29352         (possible_polymorphic_call_targets): Do not record target when
29353         type may not have instance.
29354
29355 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29356
29357         PR ipa/60854
29358         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29359         external aliases alive, too.
29360
29361 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
29362
29363         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29364         definition.
29365
29366 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29367
29368         * final.c (compute_alignments): Do not apply loop alignment to a block
29369         falling through to the exit.
29370
29371 2014-04-16  Catherine Moore  <clm@codesourcery.com>
29372
29373         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29374         Adjust constraints for microMIPS store patterns.
29375
29376 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29377
29378         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29379
29380 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29381
29382         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29383         (append_use): Run at -O0.
29384         (append_vdef): Likewise.
29385         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29386         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29387
29388 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
29389
29390         PR tree-optimization/60844
29391         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29392         (propagate_op_to_single_use, remove_visited_stmt_chain,
29393         linearize_expr, repropagate_negates, reassociate_bb): Use it
29394         instead of gsi_remove.
29395
29396 2014-04-16  Martin Jambor  <mjambor@suse.cz>
29397
29398         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
29399         ipa_transforms_to_apply.
29400         (cgraph_function_versioning): Assert that old_node has empty
29401         ipa_transforms_to_apply.
29402         * trans-mem.c (ipa_tm_create_version): Likewise.
29403         * tree-inline.c (tree_function_versioning): Do not duplicate
29404         ipa_transforms_to_apply.
29405
29406 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29407
29408         PR target/60817
29409         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
29410         x86_64-*-* cases.
29411         Pass necessary as flags on 64-bit Solaris/x86.
29412         Use lowercase relocs for x86_64-*-*.
29413         * configure: Regenerate.
29414
29415 2014-04-15  Jan Hubicka  <jh@suse.cz>
29416
29417         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
29418         (maybe_record_node, likely_target_p): Use it.
29419
29420 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29421
29422         PR target/60839
29423         Revert following patch
29424
29425         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29426
29427         PR target/60735
29428         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
29429         software floating point or no floating point registers, do not
29430         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
29431         in GPRs that occurs after we tested for GPRs that would never be
29432         true.
29433
29434         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
29435         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
29436         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
29437         specifically allow DDmode, since that does not use the SPE SIMD
29438         instructions.
29439
29440 2014-03-21  Mark Wielaard  <mjw@redhat.com>
29441
29442         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
29443         as unsigned or int depending on type and value used.
29444
29445 2014-04-15  Richard Biener  <rguenther@suse.de>
29446
29447         PR rtl-optimization/56965
29448         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
29449         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
29450         ... here.
29451         * alias.c (true_dependence_1): Do not call
29452         nonoverlapping_component_refs_p.
29453         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
29454         nonoverlapping_component_refs_p.
29455         (indirect_refs_may_alias_p): Likewise.
29456
29457 2014-04-15  Teresa Johnson  <tejohnson@google.com>
29458
29459         * cfg.c (dump_bb_info): Fix flags check.
29460         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
29461
29462 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29463
29464         PR rtl-optimization/60663
29465         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
29466         avoid 0 cost.
29467
29468 2014-04-15  Richard Biener  <rguenther@suse.de>
29469
29470         * lto-streamer.h (LTO_major_version): Bump to 4.
29471
29472 2014-04-15  Richard Biener  <rguenther@suse.de>
29473
29474         * common.opt (lto_partition_model): New enum.
29475         (flto-partition=): Merge separate options with a single with argument,
29476         add -flto-partition=one support.
29477         * flag-types.h (enum lto_partition_model): Declare.
29478         * opts.c (finish_options): Remove duplicate -flto-partition=
29479         option check.
29480         * lto-wrapper.c (run_gcc): Adjust.
29481
29482 2014-04-15  Richard Biener  <rguenther@suse.de>
29483
29484         * alias.c (ncr_compar): New function.
29485         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
29486
29487 2014-04-15  Richard Biener  <rguenther@suse.de>
29488
29489         * alias.c (record_component_aliases): Do not walk BINFOs.
29490
29491 2014-04-15  Richard Biener  <rguenther@suse.de>
29492
29493         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29494         Add struct function argument and adjust.
29495         (find_func_aliases_for_call): Likewise.
29496         (find_func_aliases): Likewise.
29497         (find_func_clobbers): Likewise.
29498         (intra_create_variable_infos): Likewise.
29499         (compute_points_to_sets): Likewise.
29500         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
29501
29502 2014-04-15  Richard Biener  <rguenther@suse.de>
29503
29504         * tree.c (iterative_hash_expr): Use enum tree_code_class
29505         to store TREE_CODE_CLASS.
29506         (tree_block): Likewise.
29507         (tree_set_block): Likewise.
29508         * tree.h (fold_build_pointer_plus_loc): Use
29509         convert_to_ptrofftype_loc.
29510
29511 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
29512
29513         PR plugins/59335
29514         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
29515         added in 4.9.
29516
29517 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
29518
29519         * cfgloop.h (struct loop): Move force_vectorize down.
29520         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
29521         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
29522         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
29523         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
29524         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
29525         * tree-core.h (enum annot_expr_kind): Add new kind values.
29526         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
29527         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
29528         kinds.
29529         * tree.def (ANNOTATE_EXPR): Tweak comment.
29530
29531 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29532
29533         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
29534         cxa_pure_virtual).
29535
29536 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
29537
29538         * tree.h (TYPE_IDENTIFIER): Declare.
29539         * tree.c (subrange_type_for_debug_p): Use it.
29540         * godump.c (go_format_type): Likewise.
29541         * dwarf2out.c (is_cxx_auto, modified_type_die,
29542         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
29543         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
29544
29545 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29546
29547         PR lto/60820
29548         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
29549
29550 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
29551
29552         * config/i386/i386.c (examine_argument): Return bool.  Return true if
29553         parameter should be passed in memory.
29554         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
29555         (construct_container): Update calls to examine_argument.
29556         (function_arg_advance_64): Ditto.
29557         (return_in_memory_32): Merge with ix86_return_in_memory.
29558         (return_in_memory_64): Ditto.
29559         (return_in_memory_ms_64): Ditto.
29560
29561 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29562
29563         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
29564         * coverage.c (coverage_compute_profile_id): Handle externally visible
29565         symbols.
29566
29567 2014-04-14  Martin Jambor  <mjambor@suse.cz>
29568
29569         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
29570         DECL_DISREGARD_INLINE_LIMITS functions.
29571
29572 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29573
29574         PR target/60827
29575         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
29576
29577 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29578
29579         PR target/60827
29580         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
29581         optimize_insn_for_speed_p instead of
29582         optimize_function_for_speed_p.
29583
29584 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
29585
29586         * doc/invoke.texi (free): Document AArch64.
29587
29588 2014-04-14  Richard Biener  <rguenther@suse.de>
29589
29590         PR tree-optimization/60042
29591         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
29592         (insert_into_preds_of_block): Do not prevent PHI insertion
29593         for REFERENCE exprs here ...
29594         (eliminate_dom_walker::before_dom_children): ... but prevent
29595         their use here under similar conditions when applied to the
29596         IL after PRE optimizations.
29597
29598 2014-04-14  Richard Biener  <rguenther@suse.de>
29599
29600         * passes.def: Move early points-to after early SRA.
29601
29602 2014-04-14  Richard Biener  <rguenther@suse.de>
29603
29604         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
29605         check for which sign-changes we allow when forwarding
29606         a converted value into a switch.
29607
29608 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29609
29610         * stor-layout.c (place_field): Finalize non-constant offset for the
29611         field, if any.
29612
29613 2014-04-14  Richard Biener  <rguenther@suse.de>
29614
29615         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
29616         as argument.
29617         (expand_switch_using_bit_tests_p): Likewise.
29618         (process_switch): Compute and pass on speed_p based on the
29619         switch stmt.
29620         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
29621         optimize_bb_for_speed_p.
29622
29623 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29624
29625         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
29626         * function.h (struct function): Rename has_force_vect_loops into
29627         has_force_vectorize_loops.
29628         * lto-streamer-in.c (input_cfg): Adjust for renaming.
29629         (input_struct_function_base): Likewise.
29630         * lto-streamer-out.c (output_cfg): Likewise.
29631         (output_struct_function_base): Likewise.
29632         * omp-low.c (expand_omp_simd): Likewise.
29633         * tree-cfg.c (move_sese_region_to_fn): Likewise.
29634         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
29635         (version_loop_for_if_conversion): Likewise.
29636         (tree_if_conversion): Likewise.
29637         (main_tree_if_conversion): Likewise.
29638         (gate_tree_if_conversion): Likewise.
29639         * tree-inline.c (copy_loops): Likewise.
29640         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
29641         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
29642         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
29643         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
29644         * tree-vectorizer.c (vectorize_loops): Likewise.
29645         * tree-vectorizer.h (unlimited_cost_model): Likewise.
29646
29647 2014-04-14  Richard Biener  <rguenther@suse.de>
29648
29649         PR lto/60720
29650         * lto-streamer-out.c (wrap_refs): New function.
29651         (lto_output): Wrap symbol references in global initializes in
29652         type-preserving MEM_REFs.
29653
29654 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29655
29656         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
29657
29658 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29659
29660         * config/sh/sh.md (setmemqi): New expand pattern.
29661         * config/sh/sh.h (CLEAR_RATIO): Define.
29662         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
29663         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
29664
29665 2014-04-14  Richard Biener  <rguenther@suse.de>
29666
29667         PR middle-end/55022
29668         * fold-const.c (negate_expr_p): Don't negate directional rounding
29669         division.
29670         (fold_negate_expr): Likewise.
29671
29672 2014-04-14  Richard Biener  <rguenther@suse.de>
29673
29674         PR tree-optimization/59817
29675         PR tree-optimization/60453
29676         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
29677         recursion to catch all CHRECs in the scalar evolution and restrict
29678         the predicate for the remains appropriately.
29679
29680 2014-04-12  Catherine Moore  <clm@codesourcery.com>
29681
29682         * config/mips/constraints.md: Add new register constraint "kb".
29683         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
29684         (*movhi_internal): Likewise.
29685         (*movqi_internal): Likewise.
29686         * config/mips/mips.h (M16_STORE_REGS): New register class.
29687         (REG_CLASS_NAMES): Add M16_STORE_REGS.
29688         (REG_CLASS_CONTENTS): Likewise.
29689         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
29690
29691 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29692
29693         PR c/60194
29694         * doc/invoke.texi (-Wformat-signedness): Document it.
29695         (Wformat=2): Mention that this enables -Wformat-signedness.
29696
29697 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29698
29699         * common/config/epiphany/epiphany-common.c
29700         (epiphany_option_optimization_table): Enable section anchors by
29701         default at -O1 or higher.
29702         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
29703         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
29704         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
29705         carries no extra cost.
29706         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
29707         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
29708         * config/epiphany/predicates.md (memclob_operand): New predicate.
29709         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
29710         Use memclob_operand predicate and X constraint for operand 3.
29711
29712 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29713
29714         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
29715         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
29716         its operands.
29717
29718 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29719
29720         PR rtl-optimization/60651
29721         * mode-switching.c (optimize_mode_switching): Make sure to emit
29722         sets of a lower numbered entity before sets of a higher numbered
29723         entity to a mode of the same or lower priority.
29724         When creating a seginfo for a basic block that starts with a code
29725         label, move the insertion point past the code label.
29726         (new_seginfo): Document and enforce requirement that
29727         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
29728         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
29729         * doc/tm.texi: Regenerate.
29730
29731 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29732
29733         PR target/60811
29734         * config/arc/arc.c (arc_save_restore): Fix assert typo.
29735
29736 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
29737
29738         * BASE-VER: Set to 4.10.0.
29739
29740 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29741
29742         PR other/59055
29743         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
29744         * doc/gcc.texi (Service): Update description in the @menu
29745         * doc/invoke.texi (Option Summary): Remove misplaced and
29746         duplicated @menu.
29747
29748 2014-04-11  Steve Ellcey  <sellcey@mips.com>
29749             Jakub Jelinek  <jakub@redhat.com>
29750
29751         PR middle-end/60556
29752         * expr.c (convert_move): Use emit_store_flag_force instead of
29753         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
29754         argument to it.
29755
29756 2014-04-11  Richard Biener  <rguenther@suse.de>
29757
29758         PR middle-end/60797
29759         * varasm.c (assemble_alias): Avoid endless error reporting
29760         recursion by setting TREE_ASM_WRITTEN.
29761
29762 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29763
29764         * config/s390/s390.md: Add a splitter for NOT rtx.
29765
29766 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
29767
29768         PR rtl-optimization/60663
29769         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
29770
29771 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
29772             Jakub Jelinek  <jakub@redhat.com>
29773
29774         PR lto/60567
29775         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
29776         flag from decl_node to node.
29777
29778 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29779
29780         PR debug/60655
29781         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
29782         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
29783         ameliorating the cases where it can be.
29784
29785 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
29786
29787         Revert
29788         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29789
29790         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29791         (loadsync_<mode>): Change mode.
29792         (load_quadpti, store_quadpti): New.
29793         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29794         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29795         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
29796
29797 2014-04-09  Cong Hou  <congh@google.com>
29798
29799         PR testsuite/60773
29800         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
29801         documentation.
29802
29803 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29804
29805         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
29806         instead of vnor to exploit possible fusion opportunity in the
29807         future.
29808         (altivec_expand_vec_perm_const_le): Likewise.
29809
29810 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29811
29812         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29813         (loadsync_<mode>): Change mode.
29814         (load_quadpti, store_quadpti): New.
29815         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29816         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29817
29818 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
29819
29820         PR target/60763
29821         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
29822         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
29823         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
29824
29825 2014-04-08  Richard Biener  <rguenther@suse.de>
29826
29827         PR middle-end/60706
29828         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
29829         a 64bit widest int print double-int similar to on HWI64 hosts.
29830
29831 2014-04-08  Richard Biener  <rguenther@suse.de>
29832
29833         PR tree-optimization/60785
29834         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
29835         default defs properly.
29836
29837 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
29838
29839         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
29840         (Weffc++): Likewise.
29841
29842 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
29843
29844         * ipa-devirt.c (maybe_record_node): When node is not recorded,
29845         set completep to false rather than true.
29846
29847 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
29848
29849         PR target/60504
29850         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
29851         ARM_TARGET2_DWARF_FORMAT.
29852
29853 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
29854
29855         PR target/60609
29856         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
29857         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
29858         ADDR_DIFF_VEC.
29859
29860 2014-04-07  Richard Biener  <rguenther@suse.de>
29861
29862         PR tree-optimization/60766
29863         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
29864         (may_eliminate_iv): Convert cand_value_at result to desired type.
29865
29866 2014-04-07  Jason Merrill  <jason@redhat.com>
29867
29868         PR c++/60731
29869         * common.opt (-fno-gnu-unique): Add.
29870         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
29871
29872 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29873
29874         * haifa-sched.c: Fix outdated function reference and minor
29875         grammar errors in introductory comment.
29876
29877 2014-04-07  Richard Biener  <rguenther@suse.de>
29878
29879         PR middle-end/60750
29880         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
29881         for noreturn calls.
29882         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
29883
29884 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
29885
29886         PR debug/55794
29887         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
29888         size accounting for thunks.
29889         (pa_asm_output_mi_thunk): Use final_start_function() and
29890         final_end_function() to output function start and end directives.
29891
29892 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29893
29894         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
29895         device specific ISA/ feature information. Remove short_sp and
29896         errata_skip ds.  Add avr_device_specific_features enum to have device
29897         specific info.
29898         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
29899         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
29900         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
29901         updated device specific info.
29902         * config/avr/avr-mcus.def: Merge device specific details to
29903         dev_attribute field.
29904         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
29905         errata_skip.
29906         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
29907         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
29908         assembler if RMW isa supported by current device.
29909         * config/avr/genmultilib.awk: Update as device info structure changed.
29910         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
29911
29912 2014-04-04  Cong Hou  <congh@google.com>
29913
29914         PR tree-optimization/60656
29915         * tree-vect-stmts.c (supportable_widening_operation):
29916         Fix a bug that elements in a vector with vect_used_by_reduction
29917         property are incorrectly reordered when the operation on it is not
29918         consistant with the one in reduction operation.
29919
29920 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
29921
29922         PR rtl-optimization/60155
29923         * gcse.c (record_set_data): New function.
29924         (single_set_gcse): New function.
29925         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
29926         (hoist_code): Likewise.
29927         (get_pressure_class_and_nregs): Likewise.
29928
29929 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
29930
29931         * explow.c (probe_stack_range): Emit a final optimization blockage.
29932
29933 2014-04-04  Anthony Green  <green@moxielogic.com>
29934
29935         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
29936         typos.
29937
29938 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
29939
29940         PR ipa/59626
29941         * lto-cgraph.c (input_overwrite_node): Check that partitioning
29942         flags are set only during streaming.
29943         * ipa.c (process_references, walk_polymorphic_call_targets,
29944         symtab_remove_unreachable_nodes): Drop bodies of always inline
29945         after early inlining.
29946         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
29947
29948 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
29949         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29950
29951         PR debug/60655
29952         * dwarf2out.c (const_ok_for_output_1): Reject expressions
29953         containing a NOT.
29954
29955 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29956
29957         PR bootstrap/60743
29958         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
29959         duration.
29960         (cortex_a53_fdivd): Likewise.
29961
29962 2014-04-04  Martin Jambor  <mjambor@suse.cz>
29963
29964         PR ipa/60640
29965         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
29966         Adjust all callers.
29967         * cgraph.c (clone_of_p): Also return true if thunks match.
29968         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
29969         cgraph_function_or_thunk_node and an obsolete comment.
29970         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
29971         file.
29972         (build_function_decl_skip_args): Likewise.
29973         (set_new_clone_decl_and_node_flags): New function.
29974         (duplicate_thunk_for_node): Likewise.
29975         (redirect_edge_duplicating_thunks): Likewise.
29976         (cgraph_clone_node): New parameter args_to_skip, pass it to
29977         redirect_edge_duplicating_thunks which is called instead of
29978         cgraph_redirect_edge_callee.
29979         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
29980         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
29981
29982 2014-04-04  Jeff Law  <law@redhat.com>
29983
29984         PR target/60657
29985         * config/arm/predicates.md (const_int_I_operand): New predicate.
29986         (const_int_M_operand): Similarly.
29987         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
29988         const_int_operand.
29989         (insv_t2, extv_reg, extzv_t2): Likewise.
29990         (load_multiple_with_writeback): Similarly for const_int_I_operand.
29991         (pop_multiple_with_writeback_and_return): Likewise.
29992         (vfp_pop_multiple_with_writeback): Likewise
29993
29994 2014-04-04  Richard Biener  <rguenther@suse.de>
29995
29996         PR ipa/60746
29997         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
29998         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
29999         non-GIMPLE_LABELs.
30000         * gimplify.h (gimple_add_tmp_var_fn): Declare.
30001         * gimplify.c (gimple_add_tmp_var_fn): New function.
30002         * gimple-expr.h (create_tmp_reg_fn): Declare.
30003         * gimple-expr.c (create_tmp_reg_fn): New function.
30004         * gimple-low.c (record_vars_into): Don't change cfun.
30005         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30006         code generation without cfun.
30007
30008 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30009
30010         PR bootstrap/60719
30011         * Makefile.in (install-driver): Fix shell scripting.
30012
30013 2014-04-03  Cong Hou  <congh@google.com>
30014
30015         PR tree-optimization/60505
30016         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30017         threshold of number of iterations below which no vectorization
30018         will be done.
30019         * tree-vect-loop.c (new_loop_vec_info):
30020         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30021         * tree-vect-loop.c (vect_analyze_loop_operations):
30022         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30023         * tree-vect-loop.c (vect_transform_loop):
30024         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30025         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30026         of iterations of the loop and see if we should build the epilogue.
30027
30028 2014-04-03  Richard Biener  <rguenther@suse.de>
30029
30030         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30031         (streamer_tree_cache_create): Adjust.
30032         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30033         to allow optional nodes array.
30034         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30035         (streamer_tree_cache_append): Likewise.
30036         (streamer_tree_cache_create): Create nodes array optionally
30037         as specified by parameter.
30038         * lto-streamer-out.c (create_output_block): Avoid maintaining
30039         the node array in the writer cache.
30040         (DFS_write_tree): Remove assertion.
30041         (produce_asm_for_decls): Free the out decl state hash table early.
30042         * lto-streamer-in.c (lto_data_in_create): Adjust for
30043         streamer_tree_cache_create prototype change.
30044
30045 2014-04-03  Richard Biener  <rguenther@suse.de>
30046
30047         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30048         set TREE_CHAIN to NULL_TREE.
30049
30050 2014-04-03  Richard Biener  <rguenther@suse.de>
30051
30052         PR tree-optimization/60740
30053         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30054         over all GIMPLE_COND operands.
30055
30056 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30057
30058         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30059         (Weffc++): Remove Scott's numbering, merge lists and reference
30060         Wnon-virtual-dtor.
30061
30062 2014-04-03  Nick Clifton  <nickc@redhat.com>
30063
30064         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30065         properly.
30066
30067 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30068
30069         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30070         mention gcc_unreachable before failing.
30071         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30072         removed symbols.
30073
30074 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30075
30076         PR ipa/60659
30077         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30078         inconsistent code and instead mark the context inconsistent.
30079         (possible_polymorphic_call_targets): For inconsistent contexts
30080         return empty complete list.
30081
30082 2014-04-02  Anthony Green  <green@moxielogic.com>
30083
30084         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30085         (extendqisi2, extendhisi2): Define.
30086         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30087         (WCHAR_TYPE): Change to unsigned int.
30088
30089 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30090
30091         PR tree-optimization/60733
30092         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30093         insertion point for PHI candidates to be the end of the feeding
30094         block for the PHI argument.
30095
30096 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30097
30098         PR rtl-optimization/60650
30099         * lra-constraints.c (process_alt_operands): Decrease reject for
30100         earlyclobber matching.
30101
30102 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30103
30104         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30105
30106 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30107
30108         * config/spu/spu.c (pad_bb): Do not crash when the last
30109         insn is CODE_FOR_blockage.
30110
30111 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30112
30113         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30114         lies outside the target mode.
30115
30116 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30117
30118         PR target/60735
30119         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30120         software floating point or no floating point registers, do not
30121         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30122         in GPRs that occurs after we tested for GPRs that would never be
30123         true.
30124
30125         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30126         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30127         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30128         specifically allow DDmode, since that does not use the SPE SIMD
30129         instructions.
30130
30131 2014-04-02  Richard Biener  <rguenther@suse.de>
30132
30133         PR middle-end/60729
30134         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30135         MODE_INTs.  Properly use negv_optab.
30136         (expand_abs): Likewise.
30137
30138 2014-04-02  Richard Biener  <rguenther@suse.de>
30139
30140         PR bootstrap/60719
30141         * Makefile.in (install-driver): Guard extra installs with special
30142         names properly.
30143
30144 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30145
30146         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30147         Document vec_vgbbd.
30148
30149 2014-04-01  Richard Henderson  <rth@redhat.com>
30150
30151         PR target/60704
30152         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30153         alternative enabled before register allocation.
30154
30155 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30156
30157         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30158         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30159         typo.
30160         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30161         (nios2_got_address): Update nios2_large_got_address call site.
30162         (nios2_delegitimize_address): New function.
30163         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30164         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30165         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30166
30167 2014-04-01  Martin Husemann  <martin@duskware.de>
30168
30169         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30170         for -mabi=32.
30171
30172 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30173
30174         PR rtl-optimization/60604
30175         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30176         check from register_operand.
30177         (register_operand): Redefine in terms of general_operand.
30178         (nonmemory_operand): Use register_operand for the non-constant cases.
30179
30180 2014-04-01  Richard Biener  <rguenther@suse.de>
30181
30182         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30183
30184 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30185
30186         * doc/invoke.texi (mapp-regs): Clarify.
30187
30188 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30189
30190         * config/i386/avx512fintrin.h (__v32hi): Define type.
30191         (__v64qi): Likewise.
30192         (_mm512_set1_epi8): Define.
30193         (_mm512_set1_epi16): Define.
30194         (_mm512_set4_epi32): Define.
30195         (_mm512_set4_epi64): Define.
30196         (_mm512_set4_pd): Define.
30197         (_mm512_set4_ps): Define.
30198         (_mm512_setr4_epi64): Define.
30199         (_mm512_setr4_epi32): Define.
30200         (_mm512_setr4_pd): Define.
30201         (_mm512_setr4_ps): Define.
30202         (_mm512_setzero_epi32): Define.
30203
30204 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30205
30206         PR middle-end/60647
30207         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30208         callsite_arguments_match_p.  Updated all callers.  Also check types of
30209         corresponding formal parameters and actual arguments.
30210         (not_all_callers_have_enough_arguments_p) Renamed to
30211         some_callers_have_mismatched_arguments_p.
30212
30213 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30214
30215         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30216
30217 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30218
30219         PR target/60034
30220         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30221         section anchor.
30222
30223 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30224
30225         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30226         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30227         Split out
30228         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30229         Use FMAMODE_NOVF512 mode iterator.
30230         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30231         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30232         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30233         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30234         Split out
30235         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30236         Use VF_128_256 mode iterator.
30237         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30238         Ditto.
30239
30240 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30241
30242         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30243         static chain if needed.
30244
30245 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30246
30247         PR target/60697
30248         * lra-constraints.c (index_part_to_reg): New.
30249         (process_address): Use it.
30250
30251 2014-03-27  Jeff Law  <law@redhat.com>
30252             Jakub Jelinek  <jakub@redhat.com>
30253
30254         PR target/60648
30255         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30256         gen_rtx_{PLUS,MULT} to build up the address expression.
30257
30258         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30259         creating non-canonical RTL.
30260
30261 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30262
30263         PR ipa/60243
30264         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30265         functions; reorganize to make cheap checks first.
30266         (inline_small_functions): Do not estimate growth when dumping;
30267         it is expensive.
30268         * ipa-inline.h (inline_summary): Add min_size.
30269         (growth_likely_positive): New function.
30270         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30271         (set_cond_stmt_execution_predicate): Cleanup.
30272         (estimate_edge_size_and_time): Compute min_size.
30273         (estimate_calls_size_and_time): Likewise.
30274         (estimate_node_size_and_time): Likewise.
30275         (inline_update_overall_summary): Update min_size.
30276         (do_estimate_edge_time): Likewise.
30277         (do_estimate_edge_size): Update.
30278         (do_estimate_edge_hints): Update.
30279         (growth_likely_positive): New function.
30280
30281 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30282
30283         PR target/60693
30284         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30285         also if addr has VOIDmode.
30286
30287 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30288
30289         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30290         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30291         Declare extern.
30292         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30293         instructions as well as AdvancedSIMD loads.
30294
30295 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30296
30297         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30298         Use crypto_aese type.
30299         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30300         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30301         crypto_aese, crypto_aesmc.  Move to types.md.
30302         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30303         crypto_aesmc.
30304         * config/arm/iterators.md (crypto_type): Likewise.
30305
30306 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30307
30308         * cgraph.c: Include expr.h and tree-dfa.h.
30309         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30310         remove LHS.
30311
30312 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30313
30314         PR target/60675
30315         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30316         regs from checking multi-reg pseudos.
30317
30318 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30319
30320         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30321
30322 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30323
30324         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30325         if it would clobber the stack pointer, even temporarily.
30326
30327 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30328
30329         * mode-switching.c: Make small adjustments to the top comment.
30330
30331 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30332
30333         * config/rs6000/constraints.md (wD constraint): New constraint to
30334         match the constant integer to get the top DImode/DFmode out of a
30335         vector in a VSX register.
30336
30337         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30338         match the constant integer to get the top DImode/DFmode out of a
30339         vector in a VSX register.
30340
30341         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30342         for ISA 2.07.
30343
30344         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30345         vbpermq builtins.
30346
30347         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30348         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30349
30350         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30351         Optimize vec_extract of 64-bit values, where the value being
30352         extracted is in the top word, where we can use scalar
30353         instructions.  Add direct move and store support.  Combine the big
30354         endian/little endian vector select load support into a single insn.
30355         (vsx_extract_<mode>_internal1): Likewise.
30356         (vsx_extract_<mode>_internal2): Likewise.
30357         (vsx_extract_<mode>_load): Likewise.
30358         (vsx_extract_<mode>_store): Likewise.
30359         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30360         combined into vsx_extract_<mode>_load.
30361         (vsx_extract_<mode>_one_le): Likewise.
30362
30363         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30364         define the top 64-bit vector element.
30365
30366         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30367         constraint.
30368
30369         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30370         Document vec_vbpermq builtin.
30371
30372         PR target/60672
30373         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30374         enable use of xxsldwi and xxpermdi builtin functions.
30375         (vec_xxpermdi): Likewise.
30376
30377         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30378         Document use of vec_xxsldwi and vec_xxpermdi builtins.
30379
30380 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30381
30382         PR rtl-optimization/60650
30383         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30384         first_p.  Use it.
30385         (find_spills_for): New.
30386         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30387         Spill all pseudos on the second iteration.
30388
30389 2014-03-27  Marek Polacek  <polacek@redhat.com>
30390
30391         PR c/50347
30392         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30393         types.
30394
30395 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30396
30397         * config/s390/s390.c (s390_can_use_return_insn): Check for
30398         call-saved FPRs on 31 bit.
30399
30400 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
30401
30402         PR middle-end/60682
30403         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
30404         if they need regimplification, just drop them instead of
30405         calling gimple_regimplify_operands on them.
30406
30407 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30408
30409         PR target/60580
30410         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
30411         (aarch64_frame_pointer_required): Adjust logic.
30412         (aarch64_can_eliminate): Adjust logic.
30413         (aarch64_override_options_after_change): Adjust logic.
30414
30415 2014-03-27  Dehao Chen  <dehao@google.com>
30416
30417         * ipa-inline.c (early_inliner): Update node's inline info.
30418
30419 2014-03-26  Dehao Chen  <dehao@google.com>
30420
30421         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
30422         compiler inserted conditional jumps for NAN float check.
30423
30424 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30425
30426         * ubsan.h (ubsan_create_data): Change second argument's type
30427         to const location_t *.
30428         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
30429         _("<unknown>").
30430         (ubsan_create_data): Change second argument to const location_t *PLOC.
30431         Create Loc field whenever PLOC is non-NULL.
30432         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
30433         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
30434         callers.
30435
30436         PR other/59545
30437         * real.c (real_to_integer2): Change type of low to UHWI.
30438
30439 2014-03-26  Tobias Burnus  <burnus@net-b.de>
30440
30441         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
30442         (CILK_SELF_SPECS): New define.
30443         (driver_self_specs): Use it.
30444
30445 2014-03-26  Richard Biener  <rguenther@suse.de>
30446
30447         * tree-pretty-print.c (percent_K_format): Implement special
30448         case for LTO and its stripped down BLOCK tree.
30449
30450 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30451
30452         PR sanitizer/60636
30453         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
30454
30455         * tree-vrp.c (simplify_internal_call_using_ranges): If only
30456         one range is range_int_cst_p, but not both, at least optimize
30457         addition/subtraction of 0 and multiplication by 0 or 1.
30458         * gimple-fold.c (gimple_fold_call): Fold
30459         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
30460         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
30461         INTEGER_CSTs, try to fold at least x * 0 and y - y.
30462
30463 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
30464
30465         PR rtl-optimization/60452
30466         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
30467         <case REG>: Return 1 for invalid offsets from the frame pointer.
30468
30469 2014-03-26  Marek Polacek  <polacek@redhat.com>
30470
30471         PR c/37428
30472         * doc/extend.texi (C Extensions): Mention variable-length arrays in
30473         a structure/union.
30474
30475 2014-03-26  Marek Polacek  <polacek@redhat.com>
30476
30477         PR c/39525
30478         * doc/extend.texi (Designated Inits): Describe what happens to omitted
30479         field members.
30480
30481 2014-03-26  Marek Polacek  <polacek@redhat.com>
30482
30483         PR other/59545
30484         * ira-color.c (update_conflict_hard_regno_costs): Perform the
30485         multiplication in unsigned type.
30486
30487 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30488
30489         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
30490
30491 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30492
30493         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
30494
30495 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30496
30497         PR ipa/60315
30498         * cif-code.def (UNREACHABLE) New code.
30499         * ipa-inline.c (inline_small_functions): Skip edges to
30500         __builtlin_unreachable.
30501         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
30502         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
30503         predicate to __bulitin_unreachable.
30504         (set_cond_stmt_execution_predicate): Fix issue when
30505         invert_tree_comparison returns ERROR_MARK.
30506         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
30507         propagate to inline clones.
30508         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
30509         to unreachable.
30510         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
30511         * cgraphclones.c (cgraph_clone_node): If call destination is already
30512         ureachable, do not redirect it back.
30513         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
30514         unreachable.
30515
30516 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30517
30518         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
30519         Do not modify inline clones.
30520
30521 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30522
30523         * config/i386/i386.md (general_sext_operand): New mode attr.
30524         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
30525         don't generate (sign_extend (const_int)).
30526         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
30527         operands[2].  Use We constraint instead of <i> and
30528         <general_sext_operand> predicate instead of <general_operand>.
30529         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
30530         * config/i386/constraints.md (We): New constraint.
30531         * config/i386/predicates.md (x86_64_sext_operand,
30532         sext_operand): New predicates.
30533
30534 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30535
30536         PR ipa/60600
30537         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
30538         inconsistent devirtualizations to __builtin_unreachable.
30539
30540 2014-03-25  Marek Polacek  <polacek@redhat.com>
30541
30542         PR c/35449
30543         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
30544
30545 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
30546
30547         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
30548         order of elements for big-endian.
30549
30550 2014-03-25  Richard Biener  <rguenther@suse.de>
30551
30552         PR middle-end/60635
30553         * gimplify-me.c (gimple_regimplify_operands): Update the
30554         re-gimplifed stmt.
30555
30556 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30557
30558         PR ipa/59176
30559         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
30560         (lto_output_varpool_node): Likewise.
30561         (input_overwrite_node): Likewise.
30562         (input_varpool_node): Likewise.
30563
30564 2014-03-25  Richard Biener  <rguenther@suse.de>
30565
30566         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
30567         (run_gcc): Likewise.
30568
30569 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30570
30571         * combine.c (simplify_compare_const): Add MODE argument.
30572         Handle mode_width 0 as very large mode_width.
30573         (try_combine, simplify_comparison): Adjust callers.
30574
30575         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
30576         type to avoid signed integer overflow.
30577         * explow.c (plus_constant): Likewise.
30578
30579 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30580
30581         * doc/generic.texi: Correct typos.
30582
30583 2014-03-24  Tobias Burnus  <burnus@net-b.de>
30584
30585         * doc/invoke.texi (-flto): Expand section about
30586         using static libraries with LTO.
30587
30588 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30589
30590         PR rtl-optimization/60501
30591         * optabs.def (addptr3_optab): New optab.
30592         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
30593         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
30594         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
30595
30596         * lra.c (emit_add3_insn): Use the addptr pattern if available.
30597
30598         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
30599
30600 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
30601
30602         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
30603         _mm512_set1_pd.
30604
30605         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
30606         (_mm256_undefined_ps): Define.
30607         (_mm256_undefined_pd): Define.
30608         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
30609         (_mm_undefined_pd): Define.
30610         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
30611         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
30612         (_mm512_undefined_ps): Define.
30613         (_mm512_undefined_pd): Define.
30614         Use _mm*_undefined_*.
30615         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
30616
30617 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
30618
30619         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
30620         (lshr_simd): DI mode added.
30621         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
30622         (aarch64_ushr_simddi): Likewise.
30623         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
30624         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
30625         (vshrd_n_u64): Likewise.
30626
30627 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30628
30629         * Makefile.in (s-macro_list): Depend on cc1.
30630
30631 2014-03-23  Teresa Johnson  <tejohnson@google.com>
30632
30633         * ipa-utils.c (ipa_print_order): Use specified dump file.
30634
30635 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30636
30637         PR rtl-optimization/60601
30638         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
30639
30640         * gcc.c (eval_spec_function): Initialize save_growing_value.
30641
30642 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
30643
30644         PR sanitizer/60613
30645         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
30646         code == MINUS_EXPR, never swap op0 with op1.
30647
30648         * toplev.c (init_local_tick): Avoid signed integer multiplication
30649         overflow.
30650         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
30651         shift by first operand's bitsize.
30652
30653 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
30654
30655         PR target/60610
30656         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
30657         redefine to 1 or 0.
30658         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
30659         TARGET_ISA_64BIT_P(x).
30660
30661 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30662
30663         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
30664         pattern for vector nor instead of subtract from splat(-1).
30665         (altivec_expand_vec_perm_const_le): Likewise.
30666
30667 2014-03-21  Richard Henderson  <rth@twiddle.net>
30668
30669         PR target/60598
30670         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
30671         related insns after epilogue_completed.
30672
30673 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30674
30675         PR ipa/59176
30676         * cgraph.h (symtab_node): New flag body_removed.
30677         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
30678         when removing bodies.
30679         * symtab.c (dump_symtab_base): Dump body_removed flag.
30680         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
30681         had their bodies removed.
30682
30683 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30684
30685         PR ipa/60419
30686         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
30687         in the border.
30688
30689 2014-03-21  Richard Biener  <rguenther@suse.de>
30690
30691         PR tree-optimization/60577
30692         * tree-core.h (struct tree_base): Document nothrow_flag use
30693         in DECL_NONALIASED.
30694         * tree.h (DECL_NONALIASED): New.
30695         (may_be_aliased): Adjust.
30696         * coverage.c (build_var): Set DECL_NONALIASED.
30697
30698 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30699
30700         * expr.c (expand_expr_real_1): Remove outdated comment.
30701
30702 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
30703
30704         PR middle-end/60597
30705         * ira.c (adjust_cleared_regs): Call copy_rtx on
30706         *reg_equiv[REGNO (loc)].src_p before passing it to
30707         simplify_replace_fn_rtx.
30708
30709         PR target/60568
30710         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
30711         into CONST, put pic register as first operand of PLUS.  Use
30712         gen_const_mem for both 32-bit and 64-bit PIC got loads.
30713
30714 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30715
30716         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
30717
30718 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30719
30720         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
30721         around for store forwarding issue in the FPU on the UT699.
30722         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
30723         loads and operations if -mfix-ut699 is specified.
30724         (divtf3_hq): Tweak attribute.
30725         (sqrttf2_hq): Likewise.
30726
30727 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30728
30729         * calls.c (store_one_arg): Remove incorrect const qualification on the
30730         type of the temporary.
30731         * cfgexpand.c (expand_return): Likewise.
30732         * expr.c (expand_constructor): Likewise.
30733         (expand_expr_real_1): Likewise.
30734
30735 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30736
30737         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
30738         of parts.
30739
30740 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
30741
30742         PR target/60039
30743         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
30744
30745 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
30746
30747         * config/arm/aarch-common-protos.h
30748         (alu_cost_table): Fix spelling of "extend".
30749         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
30750
30751 2014-03-19  Richard Biener  <rguenther@suse.de>
30752
30753         PR middle-end/60553
30754         * tree-core.h (tree_type_common): Re-order pointer members
30755         to reduce recursion depth during GC walks.
30756
30757 2014-03-19  Marek Polacek  <polacek@redhat.com>
30758
30759         PR sanitizer/60569
30760         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
30761         before accessing it.
30762
30763 2014-03-19  Richard Biener  <rguenther@suse.de>
30764
30765         PR lto/59543
30766         * lto-streamer-in.c (input_function): In WPA stage do not drop
30767         debug stmts.
30768
30769 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
30770
30771         PR tree-optimization/60559
30772         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
30773         with build_zero_cst assignment.
30774
30775 2014-03-18  Kai Tietz  <ktietz@redhat.com>
30776
30777         PR rtl-optimization/56356
30778         * sdbout.c (sdbout_parms): Verify that parms'
30779         incoming argument is valid.
30780         (sdbout_reg_parms): Likewise.
30781
30782 2014-03-18  Richard Henderson  <rth@redhat.com>
30783
30784         PR target/60562
30785         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
30786         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
30787         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
30788
30789 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
30790
30791         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
30792         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
30793         Italicize plugin event names in description.  Explain that
30794         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
30795         Remind that no GCC functions should be called after PLUGIN_FINISH.
30796         Explain what pragmas with expansion are.
30797
30798 2014-03-18  Martin Liska  <mliska@suse.cz>
30799
30800         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
30801         gimple call statement is update.
30802         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
30803         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
30804
30805 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30806
30807         PR sanitizer/60557
30808         * ubsan.c (ubsan_instrument_unreachable): Call
30809         initialize_sanitizer_builtins.
30810         (ubsan_pass): Likewise.
30811
30812         PR sanitizer/60535
30813         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
30814         varpool_finalize_decl instead of rest_of_decl_compilation.
30815
30816 2014-03-18  Richard Biener  <rguenther@suse.de>
30817
30818         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
30819         by using bitmap_and_compl instead of bitmap_and_compl_into.
30820         (df_rd_transfer_function): Likewise.
30821
30822 2014-03-18  Richard Biener  <rguenther@suse.de>
30823
30824         * doc/lto.texi (fresolution): Fix typo.
30825
30826 2014-03-18  Richard Biener  <rguenther@suse.de>
30827
30828         * doc/invoke.texi (flto): Update for changes in 4.9.
30829
30830 2014-03-18  Richard Biener  <rguenther@suse.de>
30831
30832         * doc/loop.texi: Remove section on the removed lambda framework.
30833         Update loop docs with recent changes in preserving loop structure.
30834
30835 2014-03-18  Richard Biener  <rguenther@suse.de>
30836
30837         * doc/lto.texi (-fresolution): Document.
30838
30839 2014-03-18  Richard Biener  <rguenther@suse.de>
30840
30841         * doc/contrib.texi: Adjust my name.
30842
30843 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30844
30845         PR ipa/58721
30846         * internal-fn.c: Include diagnostic-core.h.
30847         (expand_BUILTIN_EXPECT): New function.
30848         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
30849         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
30850         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
30851         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
30852         IFN_BUILTIN_EXPECT.
30853         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
30854         Revert 3 argument __builtin_expect code.
30855         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
30856         * gimple-fold.c (gimple_fold_call): Likewise.
30857         * tree.h (fold_builtin_expect): New prototype.
30858         * builtins.c (build_builtin_expect_predicate): Add predictor
30859         argument, if non-NULL, create 3 argument __builtin_expect.
30860         (fold_builtin_expect): No longer static.  Add ARG2 argument,
30861         pass it through to build_builtin_expect_predicate.
30862         (fold_builtin_2): Adjust caller.
30863         (fold_builtin_3): Handle BUILT_IN_EXPECT.
30864         * internal-fn.def (BUILTIN_EXPECT): New.
30865
30866 2014-03-18  Tobias Burnus  <burnus@net-b.de>
30867
30868         PR ipa/58721
30869         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
30870         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
30871         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
30872
30873 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
30874
30875         PR ipa/58721
30876         * predict.c (combine_predictions_for_bb): Fix up formatting.
30877         (expr_expected_value_1, expr_expected_value): Add predictor argument,
30878         fill what it points to if non-NULL.
30879         (tree_predict_by_opcode): Adjust caller, use the predictor.
30880         * predict.def (PRED_COMPARE_AND_SWAP): Add.
30881
30882 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
30883
30884         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
30885         proper constant for the store mode.
30886
30887 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
30888
30889         * symtab.c (change_decl_assembler_name): Fix transparent alias
30890         chain construction.
30891
30892 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
30893
30894         * config/aarch64/aarch64.c: Correct the comments about the
30895         aarch64 stack layout.
30896
30897 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
30898
30899         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
30900         check for GF_OMP_FOR_KIND_FOR.
30901
30902 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
30903
30904         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
30905         ymm and zmm register names.
30906
30907 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
30908
30909         PR target/60516
30910         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
30911         note creation for the 2010-08-31 changes.
30912
30913 2014-03-17  Marek Polacek  <polacek@redhat.com>
30914
30915         PR middle-end/60534
30916         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
30917         as -fno-tree-loop-vectorize.
30918         (expand_omp_simd): Likewise.
30919
30920 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
30921
30922         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
30923         (eligible_for_call_delay): New prototype.
30924         * config/sparc/sparc.c (tls_call_delay): Rename into...
30925         (eligible_for_call_delay): ...this.  Return false if the instruction
30926         cannot be put in the delay slot of a branch.
30927         (eligible_for_restore_insn): Simplify.
30928         (eligible_for_return_delay): Return false if the instruction cannot be
30929         put in the delay slot of a branch and simplify.
30930         (eligible_for_sibcall_delay): Return false if the instruction cannot be
30931         put in the delay slot of a branch.
30932         * config/sparc/sparc.md (fix_ut699): New attribute.
30933         (tls_call_delay): Delete.
30934         (in_call_delay): Reimplement.
30935         (eligible_for_sibcall_delay): Rename into...
30936         (in_sibcall_delay): ...this.
30937         (eligible_for_return_delay): Rename into...
30938         (in_return_delay): ...this.
30939         (in_branch_delay): Reimplement.
30940         (in_uncond_branch_delay): Delete.
30941         (in_annul_branch_delay): Delete.
30942
30943 2014-03-14  Richard Henderson  <rth@redhat.com>
30944
30945         PR target/60525
30946         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
30947         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
30948         (*floathi<X87MODEF>2_i387_with_temp): Remove.
30949         (floathi splitters): Remove.
30950         (float<SWI48x>xf2): New pattern.
30951         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
30952         code that tried to handle DImode for 32-bit, but which was excluded
30953         by the pattern's condition.  Drop allocation of stack temporary.
30954         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
30955         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
30956         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
30957         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
30958         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
30959         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
30960         (*float<SWI48><MODEF>2_sse_interunit): Remove.
30961         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
30962         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
30963         (*float<SWI48x><X87MODEF>2_i387): Remove.
30964         (all float _with_temp splitters): Remove.
30965         (*float<SWI48x><MODEF>2_i387): New pattern.
30966         (*float<SWI48><MODEF>2_sse): New pattern.
30967         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
30968         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
30969
30970 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
30971             Marek Polacek  <polacek@redhat.com>
30972
30973         PR middle-end/60484
30974         * common.opt (dump_base_name_prefixed): New Variable.
30975         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
30976         if x_dump_base_name_prefixed is already set, set it at the end.
30977
30978 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
30979
30980         PR rtl-optimization/60508
30981         * lra-constraints.c (get_reload_reg): Add new parameter
30982         in_subreg_p.
30983         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
30984         Pass the new parameter values.
30985
30986 2014-03-14  Richard Biener  <rguenther@suse.de>
30987
30988         * common.opt: Revert unintented changes from r205065.
30989         * opts.c: Likewise.
30990
30991 2014-03-14  Richard Biener  <rguenther@suse.de>
30992
30993         PR middle-end/60518
30994         * cfghooks.c (split_block): Properly adjust all loops the
30995         block was a latch of.
30996
30997 2014-03-14  Martin Jambor  <mjambor@suse.cz>
30998
30999         PR lto/60461
31000         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31001         and simplify it.
31002
31003 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
31004
31005         PR target/59396
31006         * config/avr/avr.c (avr_set_current_function): Pass function name
31007         through default_strip_name_encoding before sanity checking instead
31008         of skipping the first char of the assembler name.
31009
31010 2014-03-13  Richard Henderson  <rth@redhat.com>
31011
31012         PR debug/60438
31013         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31014         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31015         * config/i386/i386-protos.h: Likewise.
31016         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31017         in the expander instead of a splitter.
31018         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31019         any possibility of requiring a memory.
31020         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31021         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31022         (fp branch splitters): Update for ix86_split_fp_branch.
31023         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31024         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31025         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31026         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31027         (*fop_<MODEF>_3_i387): Likewise.
31028         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31029         (splitters for the fop_* register patterns): Remove.
31030         (fscalexf4_i387): Rename from *fscalexf4_i387.
31031         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31032
31033 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31034
31035         PR tree-optimization/59779
31036         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31037         type for bitsize and maxsize instead of HOST_WIDE_INT.
31038
31039 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31040
31041         PR rtl-optimization/57320
31042         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31043         the CFG after thread_prologue_and_epilogue_insns.
31044
31045 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31046
31047         PR rtl-optimization/57189
31048         * lra-constraints.c (process_alt_operands): Disfavor spilling
31049         vector pseudos.
31050
31051 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31052
31053         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31054
31055 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31056
31057         PR tree-optimization/59025
31058         PR middle-end/60418
31059         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31060         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31061
31062 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31063
31064         PR target/60486
31065         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31066         calls of avr_out_plus_1.
31067
31068 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31069
31070         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31071         BB's single pred and update the father loop's latch info later.
31072
31073 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31074
31075         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31076         (VEC_M): Likewise.
31077         (VEC_N): Likewise.
31078         (VEC_R): Likewise.
31079         (VEC_base): Likewise.
31080         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31081         registers, we need to swap double words in little endian mode.
31082
31083         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31084         to be a container mode for 128-bit integer operations added in ISA
31085         2.07.  Unlike TImode and PTImode, the preferred register set is
31086         the Altivec/VMX registers for the 128-bit operations.
31087
31088         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31089         declarations.
31090         (rs6000_split_128bit_ok_p): Likewise.
31091
31092         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31093         macros for creating ISA 2.07 normal and overloaded builtin
31094         functions with 3 arguments.
31095         (BU_P8V_OVERLOAD_3): Likewise.
31096         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31097         for use as overloaded functions.
31098         (VPERM_1TI_UNS): Likewise.
31099         (VSEL_1TI): Likewise.
31100         (VSEL_1TI_UNS): Likewise.
31101         (ST_INTERNAL_1ti): Likewise.
31102         (LD_INTERNAL_1ti): Likewise.
31103         (XXSEL_1TI): Likewise.
31104         (XXSEL_1TI_UNS): Likewise.
31105         (VPERM_1TI): Likewise.
31106         (VPERM_1TI_UNS): Likewise.
31107         (XXPERMDI_1TI): Likewise.
31108         (SET_1TI): Likewise.
31109         (LXVD2X_V1TI): Likewise.
31110         (STXVD2X_V1TI): Likewise.
31111         (VEC_INIT_V1TI): Likewise.
31112         (VEC_SET_V1TI): Likewise.
31113         (VEC_EXT_V1TI): Likewise.
31114         (EQV_V1TI): Likewise.
31115         (NAND_V1TI): Likewise.
31116         (ORC_V1TI): Likewise.
31117         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31118         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31119         overloaded builtin.
31120         (VADDUQM): Likewise.
31121         (VSUBCUQ): Likewise.
31122         (VADDEUQM): Likewise.
31123         (VADDECUQ): Likewise.
31124         (VSUBEUQM): Likewise.
31125         (VSUBECUQ): Likewise.
31126
31127         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31128         __int128_t and __uint128_t types.
31129         (__uint128_type): Likewise.
31130         (altivec_categorize_keyword): Add support for vector __int128_t,
31131         vector __uint128_t, vector __int128, and vector unsigned __int128
31132         as a container type for TImode operations that need to be done in
31133         VSX/Altivec registers.
31134         (rs6000_macro_to_expand): Likewise.
31135         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31136         to support 128-bit integer instructions vaddcuq, vadduqm,
31137         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31138         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31139
31140         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31141         for V1TImode, and set up preferences to use VSX/Altivec registers.
31142         Setup VSX reload handlers.
31143         (rs6000_debug_reg_global): Likewise.
31144         (rs6000_init_hard_regno_mode_ok): Likewise.
31145         (rs6000_preferred_simd_mode): Likewise.
31146         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31147         (easy_altivec_constant): Likewise.
31148         (output_vec_const_move): Likewise.
31149         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31150         simple move.
31151         (rs6000_expand_vector_extract): Likewise.
31152         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31153         addressing.
31154         (rs6000_const_vec): Add support for V1TImode.
31155         (rs6000_emit_le_vsx_load): Swap double words when loading or
31156         storing TImode/V1TImode.
31157         (rs6000_emit_le_vsx_store): Likewise.
31158         (rs6000_emit_le_vsx_move): Likewise.
31159         (rs6000_emit_move): Add support for V1TImode.
31160         (altivec_expand_ld_builtin): Likewise.
31161         (altivec_expand_st_builtin): Likewise.
31162         (altivec_expand_vec_init_builtin): Likewise.
31163         (altivec_expand_builtin): Likewise.
31164         (rs6000_init_builtins): Add support for V1TImode type.  Add
31165         support for ISA 2.07 128-bit integer builtins.  Define type names
31166         for the VSX/Altivec vector types.
31167         (altivec_init_builtins): Add support for overloaded vector
31168         functions with V1TImode type.
31169         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31170         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31171         external function.
31172         (rs6000_split_128bit_ok_p): Likewise.
31173         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31174         __int128_t and vector __uint128_t.
31175
31176         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31177         and mode attributes.
31178         (VSX_M): Likewise.
31179         (VSX_M2): Likewise.
31180         (VSm): Likewise.
31181         (VSs): Likewise.
31182         (VSr): Likewise.
31183         (VSv): Likewise.
31184         (VS_scalar): Likewise.
31185         (VS_double): Likewise.
31186         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31187
31188         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31189         we support the ISA 2.07 128-bit integer arithmetic instructions.
31190         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31191         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31192         and TImode types for use with the builtin functions.
31193         (V1TI_type_node): Likewise.
31194         (unsigned_V1TI_type_node): Likewise.
31195         (intTI_type_internal_node): Likewise.
31196         (uintTI_type_internal_node): Likewise.
31197
31198         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31199         128-bit builtin functions.
31200         (UNSPEC_VADDEUQM): Likewise.
31201         (UNSPEC_VADDECUQ): Likewise.
31202         (UNSPEC_VSUBCUQ): Likewise.
31203         (UNSPEC_VSUBEUQM): Likewise.
31204         (UNSPEC_VSUBECUQ): Likewise.
31205         (VM): Add V1TImode to vector mode iterators.
31206         (VM2): Likewise.
31207         (VI_unit): Likewise.
31208         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31209         (altivec_vaddcuq): Likewise.
31210         (altivec_vsubuqm): Likewise.
31211         (altivec_vsubcuq): Likewise.
31212         (altivec_vaddeuqm): Likewise.
31213         (altivec_vaddecuq): Likewise.
31214         (altivec_vsubeuqm): Likewise.
31215         (altivec_vsubecuq): Likewise.
31216
31217         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31218         mode iterators.
31219         (BOOL_128): Likewise.
31220         (BOOL_REGS_OUTPUT): Likewise.
31221         (BOOL_REGS_OP1): Likewise.
31222         (BOOL_REGS_OP2): Likewise.
31223         (BOOL_REGS_UNARY): Likewise.
31224         (BOOL_REGS_AND_CR0): Likewise.
31225
31226         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31227         128-bit integer builtin support.
31228         (vec_vadduqm): Likewise.
31229         (vec_vaddecuq): Likewise.
31230         (vec_vaddeuqm): Likewise.
31231         (vec_vsubecuq): Likewise.
31232         (vec_vsubeuqm): Likewise.
31233         (vec_vsubcuq): Likewise.
31234         (vec_vsubuqm): Likewise.
31235
31236         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31237         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31238         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31239         128-bit integer add/subtract to ISA 2.07.
31240
31241 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31242
31243         * config/arc/arc.c (arc_predicate_delay_insns):
31244         Fix third argument passed to conditionalize_nonjump.
31245
31246 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31247
31248         * config/aarch64/aarch64-builtins.c
31249         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31250         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31251         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31252         instead of __builtin_lfloor.
31253         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31254
31255 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31256
31257         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31258         (tree_ssa_ifcombine_bb_1): New function.
31259         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31260         is an empty forwarder block to then_bb or vice versa and then_bb
31261         and else_bb are effectively swapped.
31262
31263 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31264
31265         PR target/60264
31266         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31267         REG_CFA_DEF_CFA note.
31268         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31269         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31270
31271 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31272
31273         PR tree-optimization/60454
31274         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31275
31276 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31277
31278         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31279         Do not define target_cpu_default2 to generic.
31280         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31281         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31282         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31283
31284 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31285             Marc Glisse  <marc.glisse@inria.fr>
31286
31287         PR tree-optimization/60502
31288         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31289         instead of build_low_bits_mask.
31290
31291 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31292
31293         PR middle-end/60482
31294         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31295         if there are multiple uses, but op doesn't live on E edge.
31296         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31297         clobber stmts before __builtin_unreachable.
31298
31299 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31300
31301         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31302         hard_frame_pointer_rtx.
31303         * cse.c (cse_insn): Remove volatile check.
31304         * cselib.c (cselib_process_insn): Likewise.
31305         * dse.c (scan_insn): Likewise.
31306
31307 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31308
31309         * config/arc/arc.c (conditionalize_nonjump): New function,
31310         broken out of ...
31311         (arc_ifcvt): ... this.
31312         (arc_predicate_delay_insns): Use it.
31313
31314 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31315
31316         * config/arc/predicates.md (extend_operand): During/after reload,
31317         allow const_int_operand.
31318         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31319         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31320         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31321         to "i".
31322         (umulsi3_highpart_i): Likewise.
31323
31324 2014-03-11  Richard Biener  <rguenther@suse.de>
31325
31326         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31327         Add asserts to guard possible wrong-code bugs.
31328
31329 2014-03-11  Richard Biener  <rguenther@suse.de>
31330
31331         PR tree-optimization/60429
31332         PR tree-optimization/60485
31333         * tree-ssa-structalias.c (set_union_with_increment): Properly
31334         take into account all fields that overlap the shifted vars.
31335         (do_sd_constraint): Likewise.
31336         (do_ds_constraint): Likewise.
31337         (get_constraint_for_ptr_offset): Likewise.
31338
31339 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31340
31341         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31342         (nios2_compute_frame_layout):
31343         Add calculation of cfun->machine->fp_save_offset.
31344         (nios2_expand_prologue): Correct setting of frame pointer register
31345         in prologue.
31346         (nios2_expand_epilogue): Update recovery of stack pointer from
31347         frame pointer accordingly.
31348         (nios2_initial_elimination_offset): Update calculation of offset
31349         for eliminating to HARD_FRAME_POINTER_REGNUM.
31350
31351 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
31352
31353         PR ipa/60457
31354         * ipa.c (symtab_remove_unreachable_nodes): Don't call
31355         cgraph_get_create_node on VAR_DECLs.
31356
31357 2014-03-10  Richard Biener  <rguenther@suse.de>
31358
31359         PR middle-end/60474
31360         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31361
31362 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
31363
31364         * config/vms/vms.opt (vms_float_format): New variable.
31365
31366 2014-03-08  Tobias Burnus  <burnus@net-b.de>
31367
31368         * doc/invoke.texi (-fcilkplus): Update implementation status.
31369
31370 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
31371             Richard Biener  <rguenther@suse.de>
31372
31373         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31374         consistently accross all TUs.
31375         (run_gcc): Enable -fshort-double automatically at link at link-time
31376         and disallow override.
31377
31378 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
31379
31380         PR target/58271
31381         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31382         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31383         if they can't be used.
31384
31385 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31386
31387         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31388         for Solaris 11/x86 ld.
31389         * configure: Regenerate.
31390
31391 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31392
31393         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31394         (LIB_TLS_SPEC): Save as ld_tls_libs.
31395         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31396         (HAVE_AS_IX86_TLSLDM): New test.
31397         * configure, config.in: Regenerate.
31398         * config/i386/i386.c (legitimize_tls_address): Fall back to
31399         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
31400         cannot support TLS_MODEL_LOCAL_DYNAMIC.
31401         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
31402         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
31403
31404 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
31405
31406         * common.opt (fira-loop-pressure): Mark as optimization.
31407
31408 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
31409
31410         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
31411         an OpenMP mappable type.
31412
31413 2014-03-06  Matthias Klose  <doko@ubuntu.com>
31414
31415         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
31416         MULTILIB_OSDIRNAMES is not defined.
31417
31418 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
31419             Meador Inge  <meadori@codesourcery.com>
31420
31421         PR target/58595
31422         * config/arm/arm.c (arm_tls_symbol_p): Remove.
31423         (arm_legitimize_address): Call legitimize_tls_address for any
31424         arm_tls_referenced_p expression, handle constant addend.  Call it
31425         before testing for !TARGET_ARM.
31426         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
31427
31428 2014-03-06  Richard Biener  <rguenther@suse.de>
31429
31430         PR middle-end/60445
31431         PR lto/60424
31432         PR lto/60427
31433         Revert
31434         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31435
31436         * tree-streamer.c (record_common_node): Assert we don't record
31437         nodes with type double.
31438         (preload_common_node): Skip type double, complex double and double
31439         pointer since it is now frontend dependent due to fshort-double option.
31440
31441 2014-03-06  Richard Biener  <rguenther@suse.de>
31442
31443         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
31444         or -fno-lto is specified and the linker has full plugin support.
31445         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
31446         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
31447         * lto-wrapper.c (merge_and_complain): Merge compile-time
31448         optimization levels.
31449         (run_gcc): And pass it through to the link options.
31450
31451 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
31452
31453         PR debug/60381
31454         Revert:
31455         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31456         PR debug/59992
31457         * cselib.c (remove_useless_values): Skip to avoid quadratic
31458         behavior if the condition moved from...
31459         (cselib_process_insn): ... here holds.
31460
31461 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31462
31463         PR plugins/59335
31464         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
31465         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
31466
31467         PR plugins/59335
31468         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31469         (TM_H): Add x86-tune.def.
31470
31471 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31472
31473         * config/aarch64/aarch64.c (generic_tunings):
31474         Use cortexa57_extra_costs.
31475
31476 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31477
31478         PR lto/60404
31479         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
31480         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
31481         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
31482         cost for in_lto_p.
31483
31484 2014-03-04  Heiher  <r@hev.cc>
31485
31486         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
31487         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
31488
31489 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
31490
31491         * config/i386/predicates.md (const2356_operand): Change to ...
31492         (const2367_operand): ... this.
31493         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
31494         const2367_operand.
31495         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31496         (*avx512pf_scatterpf<mode>sf): Ditto.
31497         (avx512pf_scatterpf<mode>df): Ditto.
31498         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31499         (*avx512pf_scatterpf<mode>df): Ditto.
31500         * config/i386/i386.c (ix86_expand_builtin): Update
31501         incorrect hint operand error message.
31502
31503 2014-03-04  Richard Biener  <rguenther@suse.de>
31504
31505         * lto-section-in.c (lto_get_section_data): Fix const cast.
31506
31507 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31508
31509         * tree-streamer.c (record_common_node): Assert we don't record
31510         nodes with type double.
31511         (preload_common_node): Skip type double, complex double and double
31512         pointer since it is now frontend dependent due to fshort-double option.
31513
31514 2014-03-04  Richard Biener  <rguenther@suse.de>
31515
31516         PR lto/60405
31517         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
31518         (lto_input_toplevel_asms): Likewise.
31519         * lto-section-in.c (lto_get_section_data): Instead do it here
31520         for every section.
31521
31522 2014-03-04  Richard Biener  <rguenther@suse.de>
31523
31524         PR tree-optimization/60382
31525         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
31526         dead PHIs a reduction.
31527
31528 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
31529
31530         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
31531         hint value.
31532         (_mm_prefetch): Move out of GCC target("sse") pragma.
31533         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
31534         GCC target("prfchw") pragma.
31535         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
31536         for locality <= 2.
31537         * config/i386/i386.c (ix86_option_override_internal): Enable
31538         -mprfchw with -mprefetchwt1.
31539
31540 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31541
31542         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
31543         Mark as varying.
31544
31545 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31546
31547         * opts.h (CL_PCH_IGNORE): Define.
31548         * targhooks.c (option_affects_pch_p):
31549         Return false for options that have CL_PCH_IGNORE set.
31550         * opt-functions.awk: Process PchIgnore.
31551         * doc/options.texi: Document PchIgnore.
31552
31553         * config/arc/arc.opt (misize): Add PchIgnore property.
31554
31555 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31556
31557         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
31558         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
31559         constraint on constants to permit them being loaded into
31560         GENERAL_REGS or BASE_REGS.
31561
31562 2014-03-03  Nick Clifton  <nickc@redhat.com>
31563
31564         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
31565         anti-cacnonical alternatives.
31566         (negandhi3_real): New pattern.
31567         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
31568
31569 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
31570
31571         * config/avr/avr-mcus.def: Remove atxmega16x1.
31572         * config/avr/avr-tables.opt: Regenerate.
31573         * config/avr/t-multilib: Regenerate.
31574         * doc/avr-mmcu.texi: Regenerate.
31575
31576 2014-03-03  Tobias Grosser  <tobias@grosser.es>
31577             Mircea Namolaru  <mircea.namolaru@inria.fr>
31578
31579         PR tree-optimization/58028
31580         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
31581         scalar dimensions.
31582
31583 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31584
31585         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
31586         not handled by recognizers.
31587
31588 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
31589
31590         PR middle-end/60175
31591         * function.c (expand_function_end): Don't emit
31592         clobber_return_register sequence if clobber_after is a BARRIER.
31593         * cfgexpand.c (construct_exit_block): Append instructions before
31594         return_label to prev_bb.
31595
31596 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31597
31598         * config/rs6000/constraints.md: Document reserved use of "wc".
31599
31600 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31601
31602         PR ipa/60150
31603         * ipa.c (function_and_variable_visibility): When dissolving comdat
31604         group, also set all symbols to local.
31605
31606 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31607
31608         PR ipa/60306
31609
31610         Revert:
31611         2013-12-14  Jan Hubicka  <jh@suse.cz>
31612         PR middle-end/58477
31613         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
31614
31615 2014-03-02  Jon Beniston  <jon@beniston.com>
31616
31617         PR bootstrap/48230
31618         PR bootstrap/50927
31619         PR bootstrap/52466
31620         PR target/46898
31621         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
31622         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
31623         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
31624         (simple_return, *simple_return): New patterns
31625         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
31626         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
31627
31628 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
31629
31630         * dwarf2out.c (gen_subprogram_die): Tidy.
31631
31632 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
31633
31634         PR target/60071
31635         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
31636         (*mov_t_msb_neg_negc): ... this new insn.
31637
31638 2014-02-28  Jason Merrill  <jason@redhat.com>
31639
31640         PR c++/58678
31641         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
31642         function.
31643
31644 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
31645
31646         PR c++/60314
31647         * dwarf2out.c (decltype_auto_die): New static.
31648         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
31649         (gen_type_die_with_usage): Handle 'decltype(auto)'.
31650         (is_cxx_auto): Likewise.
31651
31652 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
31653
31654         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
31655         we are not using general regs only.
31656
31657 2014-02-28  Richard Biener  <rguenther@suse.de>
31658
31659         PR target/60280
31660         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
31661         previous fix and only allow to remove trivial pre-headers
31662         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
31663         (remove_forwarder_block): Properly update the latch of a loop.
31664
31665 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31666
31667         PR debug/59992
31668         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
31669         (cselib_preserved_hash_table): New.
31670         (preserve_constants_and_equivs): Move preserved vals to it.
31671         (cselib_find_slot): Look it up first.
31672         (cselib_init): Initialize it.
31673         (cselib_finish): Release it.
31674         (dump_cselib_table): Dump it.
31675
31676 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31677
31678         PR debug/59992
31679         * cselib.c (remove_useless_values): Skip to avoid quadratic
31680         behavior if the condition moved from...
31681         (cselib_process_insn): ... here holds.
31682
31683 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31684
31685         PR debug/57232
31686         * var-tracking.c (vt_initialize): Apply the same condition to
31687         preserve the CFA base value.
31688
31689 2014-02-28  Joey Ye  <joey.ye@arm.com>
31690
31691         PR target/PR60169
31692         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
31693         if reload in progress or completed.
31694
31695 2014-02-28  Tobias Burnus  <burnus@net-b.de>
31696
31697         PR middle-end/60147
31698         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
31699         NAMELIST_DECL.
31700
31701 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
31702
31703         * doc/tm.texi.in (Condition Code Status): Update documention for
31704         relative locations of cc0-setter and cc0-user.
31705
31706 2014-02-27  Jeff Law  <law@redhat.com>
31707
31708         PR rtl-optimization/52714
31709         * combine.c (try_combine): When splitting an unrecognized PARALLEL
31710         into two independent simple sets, if I3 is a jump, ensure the
31711         pattern we place into I3 is a (set (pc) ...).
31712
31713 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
31714             Jeff Law  <law@redhat.com>
31715
31716         PR rtl-optimization/49847
31717         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
31718         are in different blocks.
31719         * doc/tm.texi (Condition Code Status): Update documention for
31720         relative locations of cc0-setter and cc0-user.
31721
31722 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
31723
31724         PR target/59222
31725         * lra.c (lra_emit_add): Check SUBREG too.
31726
31727 2014-02-27  Andreas Schwab  <schwab@suse.de>
31728
31729         * config/m68k/m68k.c (m68k_option_override): Disable
31730         -flive-range-shrinkage for classic m68k.
31731         (m68k_override_options_after_change): Likewise.
31732
31733 2014-02-27  Marek Polacek  <polacek@redhat.com>
31734
31735         PR middle-end/59223
31736         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
31737         -Wmaybe-uninitialized.
31738
31739 2014-02-27  Alan Modra  <amodra@gmail.com>
31740
31741         PR target/57936
31742         * reload1.c (emit_input_reload_insns): When reload_override_in,
31743         set old to rl->in_reg when rl->in_reg is a subreg.
31744
31745 2014-02-26  Richard Biener  <rguenther@suse.de>
31746
31747         PR bootstrap/60343
31748         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
31749
31750 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31751
31752         * common/config/i386/predicates.md (const1256_operand): Remove.
31753         (const2356_operand): New.
31754         (const_1_to_2_operand): Remove.
31755         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
31756         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
31757         (*avx512pf_gatherpf<mode>sf): Ditto.
31758         (avx512pf_gatherpf<mode>df): Ditto.
31759         (*avx512pf_gatherpf<mode>df_mask): Ditto.
31760         (*avx512pf_gatherpf<mode>df): Ditto.
31761         (avx512pf_scatterpf<mode>sf): Ditto.
31762         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31763         (*avx512pf_scatterpf<mode>sf): Ditto.
31764         (avx512pf_scatterpf<mode>df): Ditto.
31765         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31766         (*avx512pf_scatterpf<mode>df): Ditto.
31767         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
31768
31769 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
31770
31771         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
31772         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
31773         (_mm512_mask_testn_epi64_mask): Move to ...
31774         * config/i386/avx512cdintrin.h: Here.
31775         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
31776         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
31777         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
31778         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
31779         TARGET_AVX512F from TARGET_AVX512CD.
31780
31781 2014-02-26  Richard Biener  <rguenther@suse.de>
31782
31783         PR ipa/60327
31784         * ipa.c (walk_polymorphic_call_targets): Properly guard
31785         call to inline_update_overall_summary.
31786
31787 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
31788
31789         PR target/60280
31790         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
31791         and latches only if requested.  Fix latch if it is removed.
31792         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
31793         LOOPS_HAVE_PREHEADERS.
31794
31795 2014-02-25  Andrew Pinski  <apinski@cavium.com>
31796
31797         * builtins.c (expand_builtin_thread_pointer): Create a new target
31798         when the target is NULL.
31799
31800 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
31801
31802         PR rtl-optimization/60317
31803         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31804         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31805         * lra-assigns.c: Include params.h.
31806         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
31807         other reload pseudos considerations.
31808
31809 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31810
31811         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
31812         to use canonical form for nor<mode>3.
31813
31814 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31815
31816         PR target/55426
31817         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
31818         conversions.
31819
31820 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31821
31822         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
31823         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
31824         (ix86_handle_option): Handle OPT_mprefetchwt1.
31825         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
31826         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
31827         PREFETCHWT1 CPUID.
31828         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31829         OPTION_MASK_ISA_PREFETCHWT1.
31830         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
31831         (PTA_PREFETCHWT1): New.
31832         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
31833         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
31834         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
31835         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
31836         (*prefetch_avx512pf_<mode>_: Change into ...
31837         (*prefetch_prefetchwt1_<mode>: This.
31838         * config/i386/i386.opt (mprefetchwt1): New.
31839         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
31840         (_mm_prefetch): Handle intent to write.
31841         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
31842
31843 2014-02-25  Richard Biener  <rguenther@suse.de>
31844
31845         PR middle-end/60291
31846         * emit-rtl.c (mem_attrs_htab): Remove.
31847         (mem_attrs_htab_hash): Likewise.
31848         (mem_attrs_htab_eq): Likewise.
31849         (set_mem_attrs): Always allocate new mem-attrs when something changed.
31850         (init_emit_once): Do not allocate mem_attrs_htab.
31851
31852 2014-02-25  Richard Biener  <rguenther@suse.de>
31853
31854         PR lto/60319
31855         * lto-opts.c (lto_write_options): Output non-explicit conservative
31856         -fwrapv, -fno-trapv and -fno-strict-overflow.
31857         * lto-wrapper.c (merge_and_complain): Handle merging those options.
31858         (run_gcc): And pass them through.
31859
31860 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31861
31862         * sel-sched.c (calculate_new_fences): New parameter ptime.
31863         Calculate it as a maximum over all fence cycles.
31864         (sel_sched_region_2): Adjust the call to calculate_new_fences.
31865         Print the final schedule timing when sched_verbose.
31866
31867 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31868
31869         PR rtl-optimization/60292
31870         * sel-sched.c (fill_vec_av_set): Do not reset target availability
31871         bit fot the fence instruction.
31872
31873 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
31874
31875         * calls.h: Fix typo in comment.
31876
31877 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
31878
31879         * config/pa/pa.c (pa_output_move_double): Don't valididate when
31880         adjusting offsetable addresses.
31881
31882 2014-02-24  Guozhi Wei  <carrot@google.com>
31883
31884         * sparseset.h (sparseset_pop): Fix the wrong index.
31885
31886 2014-02-24  Walter Lee  <walt@tilera.com>
31887
31888         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
31889         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
31890         triplet.
31891         * common/config/tilegx/tilegx-common.c
31892         (TARGET_DEFAULT_TARGET_FLAGS): Define.
31893         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
31894         (LINK_SPEC): Ditto.
31895         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
31896         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
31897         (tilegx_gimplify_va_arg_expr): Handle big endian.
31898         (tilegx_expand_unaligned_load): Ditto.
31899         (tilegx_expand_unaligned_store): Ditto.
31900         (TARGET_RETURN_IN_MSB): New.
31901         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
31902         (TARGET_ENDIAN_DEFAULT): New.
31903         (TARGET_BIG_ENDIAN): Handle big endian.
31904         (BYTES_BIG_ENDIAN): Ditto.
31905         (WORDS_BIG_ENDIAN): Ditto.
31906         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
31907         (ENDIAN_SPEC): New.
31908         (EXTRA_SPECS): New.
31909         * config/tilegx/tilegx.md (extv): Handle big endian.
31910         (extzv): Ditto.
31911         (insn_st<n>): Ditto.
31912         (insn_st<n>_add<bitsuffix>): Ditto.
31913         (insn_stnt<n>): Ditto.
31914         (insn_stnt<n>_add<bitsuffix>):Ditto.
31915         (vec_interleave_highv8qi): Handle big endian.
31916         (vec_interleave_highv8qi_be): New.
31917         (vec_interleave_highv8qi_le): New.
31918         (insn_v1int_h): Handle big endian.
31919         (vec_interleave_lowv8qi): Handle big endian.
31920         (vec_interleave_lowv8qi_be): New.
31921         (vec_interleave_lowv8qi_le): New.
31922         (insn_v1int_l): Handle big endian.
31923         (vec_interleave_highv4hi): Handle big endian.
31924         (vec_interleave_highv4hi_be): New.
31925         (vec_interleave_highv4hi_le): New.
31926         (insn_v2int_h): Handle big endian.
31927         (vec_interleave_lowv4hi): Handle big endian.
31928         (vec_interleave_lowv4hi_be): New.
31929         (vec_interleave_lowv4hi_le): New.
31930         (insn_v2int_l): Handle big endian.
31931         (vec_interleave_highv2si): Handle big endian.
31932         (vec_interleave_highv2si_be): New.
31933         (vec_interleave_highv2si_le): New.
31934         (insn_v4int_h): Handle big endian.
31935         (vec_interleave_lowv2si): Handle big endian.
31936         (vec_interleave_lowv2si_be): New.
31937         (vec_interleave_lowv2si_le): New.
31938         (insn_v4int_l): Handle big endian.
31939         * config/tilegx/tilegx.opt (mbig-endian): New option.
31940         (mlittle-endian): New option.
31941         * doc/install.texi: Document tilegxbe-linux.
31942         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
31943
31944 2014-02-24  Martin Jambor  <mjambor@suse.cz>
31945
31946         PR ipa/60266
31947         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
31948         there are no parameter descriptors.
31949
31950 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
31951
31952         PR rtl-optimization/60268
31953         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
31954         initialization to ...
31955         (sched_rgn_init): ... here.
31956         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
31957
31958 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31959
31960         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
31961         names.
31962
31963 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
31964
31965         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
31966         definition.
31967
31968 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31969
31970         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
31971         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
31972
31973 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31974
31975         * config/microblaze/predicates.md: Add cmp_op predicate.
31976         * config/microblaze/microblaze.md: Add branch_compare instruction
31977         which uses cmp_op predicate and emits cmp insn before branch.
31978         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
31979         to microblaze_expand_conditional_branch and consolidate logic.
31980         (microblaze_expand_conditional_branch): emit branch_compare
31981         insn instead of handling cmp op separate from branch insn.
31982
31983 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31984
31985         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
31986         to permit subregs.
31987
31988 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31989
31990         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
31991         define_insn with define_expand and new define_insn
31992         *altivec_lve<VI_char>x_internal.
31993         (altivec_stve<VI_char>x): Replace define_insn with define_expand
31994         and new define_insn *altivec_stve<VI_char>x_internal.
31995         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
31996         prototype.
31997         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
31998         lve*x built-ins.
31999         (altivec_expand_stvex_be): New function.
32000
32001 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
32002
32003         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32004         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32005         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32006         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32007
32008 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32009
32010         PR target/60298
32011         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32012         instead of emit_move_insn.
32013
32014 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32015
32016         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32017         vspltw with vsldoi.
32018         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32019         gen_altivec_vsumsws.
32020
32021 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32022
32023         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32024         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32025         (altivec_lvxl_<mode>): New define_expand incorporating
32026         -maltivec=be semantics where needed.
32027         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32028         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32029         semantics where needed.
32030         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32031         (altivec_stvx_<mode>): New define_expand incorporating
32032         -maltivec=be semantics where needed.
32033         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32034         VM2 iterator instead of V4SI.
32035         (altivec_stvxl_<mode>): New define_expand incorporating
32036         -maltivec=be semantics where needed.
32037         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32038         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32039         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32040         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32041         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32042         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32043         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32044         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32045         ALTIVEC_BUILTIN_STVXL.
32046         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32047         (altivec_expand_stvx_be): Likewise.
32048         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32049         (altivec_expand_lvx_be): Likewise.
32050         (altivec_expand_stvx_be): Likewise.
32051         (altivec_expand_builtin): Add cases for
32052         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32053         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32054         (altivec_init_builtins): Add definitions for
32055         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32056         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32057
32058 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32059
32060         * doc/invoke.texi (mvirt, mno-virt): Document.
32061         * config/mips/mips.opt (mvirt): New option.
32062         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32063
32064 2014-02-21  Richard Biener  <rguenther@suse.de>
32065
32066         PR tree-optimization/60276
32067         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32068         (STMT_VINFO_MIN_NEG_DIST): New macro.
32069         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32070         STMT_VINFO_MIN_NEG_DIST.
32071         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32072         made for negative dependence distances still hold.
32073
32074 2014-02-21  Richard Biener  <rguenther@suse.de>
32075
32076         PR middle-end/60291
32077         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32078         DECL_INITIAL for globals not in the current function context.
32079
32080 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32081
32082         PR tree-optimization/56490
32083         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32084         * tree-ssa-uninit.c: Include params.h.
32085         (compute_control_dep_chain): Add num_calls argument, return false
32086         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32087         num_calls to recursive call.
32088         (find_predicates): Change dep_chain into normal array,
32089         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32090         variable and adjust compute_control_dep_chain caller.
32091         (find_def_preds): Likewise.
32092
32093 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32094
32095         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32096         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32097
32098 2014-02-21  Nick Clifton  <nickc@redhat.com>
32099
32100         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32101         (pushhi1): Likewise.
32102         (popqi1): Add mode to pre_dec.
32103         (pophi1): Likewise.
32104
32105 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32106
32107         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32108         mode for mask of V8SFmode permutation.
32109
32110 2014-02-20  Richard Henderson  <rth@redhat.com>
32111
32112         PR c++/60272
32113         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32114         a new pseudo for OLDVAL.
32115
32116 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32117
32118         PR target/57896
32119         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32120         gen_reg_rtx if d->testing_p.
32121         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32122         if d->testing_p and we will certainly return true.
32123         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32124         if d->testing_p.
32125
32126 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32127
32128         * emit-rtl.c (gen_reg_rtx): Assert that
32129         crtl->emit.regno_pointer_align_length is non-zero.
32130
32131 2014-02-20  Richard Henderson  <rth@redhat.com>
32132
32133         PR c++/60272
32134         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32135         on failure the store back into EXPECT.
32136
32137 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32138             Sandra Loosemore  <sandra@codesourcery.com>
32139
32140         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32141         * config/nios2/nios2.c (nios2_function_profiler): Add
32142         -fPIC (flag_pic == 2) support.
32143         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32144         (nios2_large_offset_p): New function.
32145         (nios2_unspec_reloc_p): Move up position, update to use
32146         nios2_large_offset_p.
32147         (nios2_unspec_address): Remove function.
32148         (nios2_unspec_offset): New function.
32149         (nios2_large_got_address): New function.
32150         (nios2_got_address): Add large offset support.
32151         (nios2_legitimize_tls_address): Update usage of removed and new
32152         functions.
32153         (nios2_symbol_binds_local_p): New function.
32154         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32155         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32156         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32157         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32158         processing for (const (unspec ...)).
32159         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32160
32161 2014-02-20  Richard Biener  <rguenther@suse.de>
32162
32163         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32164         doing the substitution.
32165         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32166
32167 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32168
32169         PR ipa/55260
32170         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32171         info when checking whether lattices are bottom.
32172
32173 2014-02-20  Richard Biener  <rguenther@suse.de>
32174
32175         PR middle-end/60221
32176         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32177         regions at -O0.
32178
32179 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32180
32181         PR ipa/58555
32182         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32183         parameter specifying the scaling.
32184         (inline_call): Update.
32185         (want_inline_recursively): Guard division by zero.
32186         (recursive_inlining): Update.
32187         * ipa-inline.h (clone_inlined_nodes): Update.
32188
32189 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32190
32191         PR target/60204
32192         * config/i386/i386.c (classify_argument): Pass structures of size
32193         64 bytes or less in register.
32194
32195 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32196             Kirill Yukhin  <kirill.yukhin@intel.com>
32197
32198         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32199         (_mm_rcp28_round_ss): Ditto.
32200         (_mm_rsqrt28_round_sd): Ditto.
32201         (_mm_rsqrt28_round_ss): Ditto.
32202         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32203         (_mm_rcp14_round_ss): Ditto.
32204         (_mm_rsqrt14_round_sd): Ditto.
32205         (_mm_rsqrt14_round_ss): Ditto.
32206         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32207         the first input operand, get rid of match_dup.
32208         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32209         attribute to sse.
32210         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32211         Ditto.
32212         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32213         operand as the first input operand, set type attribute.
32214         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32215         Set type attribute.
32216         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32217         operand as the first input operand, set type attribute.
32218
32219 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32220
32221         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32222         bit of zero.
32223
32224 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32225
32226         PR target/60207
32227         * config/i386/i386.c (construct_container): Remove TFmode check
32228         for X86_64_INTEGER_CLASS.
32229
32230 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32231
32232         PR target/59794
32233         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32234         only when -Wpsabi is enabled.
32235
32236 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32237
32238         PR target/59799
32239         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32240         passing arrays in registers are the same as for structs, so remove the
32241         special case for them.
32242
32243 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32244
32245         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32246         destination type, extract only the valid bits if the source type is not
32247         integral and has a different mode.
32248
32249 2014-02-19  Richard Biener  <rguenther@suse.de>
32250
32251         PR ipa/60243
32252         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32253         for all calls.
32254
32255 2014-02-19  Richard Biener  <rguenther@suse.de>
32256
32257         PR ipa/60243
32258         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32259         (ipa_modify_call_arguments): Emit an argument load explicitely and
32260         preserve virtual SSA form there and for the replacement call.
32261         Do not update SSA form nor free dominance info.
32262
32263 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32264
32265         * ipa.c (function_and_variable_visibility): Also clear WEAK
32266         flag when disolving COMDAT_GROUP.
32267
32268 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32269
32270         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32271         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32272         not devirtualizing.
32273         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32274         do more sanity checks.
32275         (detect_type_change): Return true when giving up early.
32276         (compute_complex_assign_jump_func): Fix type parameter of
32277         ipa_set_ancestor_jf.
32278         (compute_complex_ancestor_jump_func): Likewise.
32279         (update_jump_functions_after_inlining): Fix updating of
32280         ancestor function.
32281         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32282
32283 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32284
32285         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32286         inline clones when edge disappears.
32287
32288 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32289
32290         PR target/60203
32291         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32292         Split 64-bit moves into 2 patterns.  Do not allow the use of
32293         direct move for TDmode in little endian, since the decimal value
32294         has little endian bytes within a word, but the 64-bit pieces are
32295         ordered in a big endian fashion, and normal subreg's of TDmode are
32296         not allowed.
32297         (mov<mode>_64bit_dm): Likewise.
32298         (movtd_64bit_nodm): Likewise.
32299
32300 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32301
32302         PR tree-optimization/60174
32303         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32304         statement of an SSA_NAME that occurs in an abnormal PHI node.
32305
32306 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32307
32308         PR sanitizer/60142
32309         * final.c (SEEN_BB): Remove.
32310         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32311         (final_scan_insn): Don't force_source_line on second
32312         NOTE_INSN_BASIC_BLOCK.
32313
32314 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32315
32316         PR target/60205
32317         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32318         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32319         (type_natural_mode): Warn ABI change when %zmm register is not
32320         available for AVX512F vector value passing.
32321
32322 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32323
32324         PR target/60193
32325         * config/i386/i386.c (ix86_expand_prologue): Use value in
32326         rax register as displacement when restoring %r10 or %rax.
32327         Fix wrong offset when restoring both registers.
32328
32329 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32330
32331         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32332         assertion with conditional return.
32333
32334 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32335             Uros Bizjak  <ubizjak@gmail.com>
32336
32337         PR driver/60233
32338         * config/i386/driver-i386.c (host_detect_local_cpu): If
32339         YMM state is not saved by the OS, also clear has_f16c.  Move
32340         CPUID 0x80000001 handling before YMM state saving checking.
32341
32342 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32343
32344         PR rtl-optimization/58960
32345         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32346         factored out from ...
32347         (sched_init): ... here.
32348         (free_global_sched_pressure_data): New, factored out from ...
32349         (sched_finish): ... here.
32350         * sched-int.h (free_global_sched_pressure_data): Declare.
32351         * sched-rgn.c (nr_regions_initial): New static global.
32352         (haifa_find_rgns): Initialize it.
32353         (schedule_region): Disable sched-pressure for the newly
32354         generated regions.
32355
32356 2014-02-17  Richard Biener  <rguenther@suse.de>
32357
32358         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32359         release SSA defs of pattern stmts.
32360
32361 2014-02-17  Richard Biener  <rguenther@suse.de>
32362
32363         * tree-inline.c (expand_call_inline): Release the virtual
32364         operand defined by the call we are about to inline.
32365
32366 2014-02-17  Richard Biener  <rguenther@suse.de>
32367
32368         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32369
32370 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
32371             Ilya Tocar  <ilya.tocar@intel.com>
32372
32373         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32374         arguments order in builtin.
32375         (_mm512_permutexvar_epi64): Ditto.
32376         (_mm512_mask_permutexvar_epi64): Ditto
32377         (_mm512_maskz_permutexvar_epi32): Ditto
32378         (_mm512_permutexvar_epi32): Ditto
32379         (_mm512_mask_permutexvar_epi32): Ditto
32380
32381 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32382
32383         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32384         (p8_vmrgow): Likewise.
32385
32386 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32387
32388         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32389         endian targets.
32390
32391 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
32392
32393         PR target/60203
32394         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32395         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32396         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
32397         using direct move instructions on ISA 2.07.  Also adjust
32398         instruction length for 64-bit.
32399         (mov<mode>_64bit, TFmode/TDmode): Likewise.
32400         (mov<mode>_32bit, TFmode/TDmode): Likewise.
32401
32402 2014-02-15  Alan Modra  <amodra@gmail.com>
32403
32404         PR target/58675
32405         PR target/57935
32406         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
32407         find_replacement on parts of insn rtl that might be reloaded.
32408
32409 2014-02-15  Richard Biener  <rguenther@suse.de>
32410
32411         PR tree-optimization/60183
32412         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
32413         (tree_ssa_phiprop): Calculate and free post-dominators.
32414
32415 2014-02-14  Jeff Law  <law@redhat.com>
32416
32417         PR rtl-optimization/60131
32418         * ree.c (get_extended_src_reg): New function.
32419         (combine_reaching_defs): Use it rather than assuming location of REG.
32420         (find_and_remove_re): Verify first operand of extension is
32421         a REG before adding the insns to the copy list.
32422
32423 2014-02-14  Roland McGrath  <mcgrathr@google.com>
32424
32425         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
32426         * configure: Regenerated.
32427         * config.in: Regenerated.
32428         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
32429         instead of ASM_SHORT.
32430
32431 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
32432             Richard Earnshaw  <rearnsha@arm.com>
32433
32434         PR rtl-optimization/59535
32435         * lra-constraints.c (process_alt_operands): Encourage alternative
32436         when unassigned pseudo class is superset of the alternative class.
32437         (inherit_reload_reg): Don't inherit when optimizing for code size.
32438         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
32439         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
32440         modes not less than 4 for Thumb1.
32441
32442 2014-02-14  Kyle McMartin  <kyle@redhat.com>
32443
32444         PR pch/60010
32445         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
32446
32447 2014-02-14  Richard Biener  <rguenther@suse.de>
32448
32449         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
32450         (get_frame_arg): Drop the assert with langhook types_compatible_p.
32451         Do not strip INDIRECT_REFs.
32452
32453 2014-02-14  Richard Biener  <rguenther@suse.de>
32454
32455         PR lto/60179
32456         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
32457         DECL_FUNCTION_SPECIFIC_TARGET.
32458         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
32459         * tree-streamer-out.c (pack_ts_target_option): Remove.
32460         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
32461         (write_ts_function_decl_tree_pointers): Do not stream
32462         DECL_FUNCTION_SPECIFIC_TARGET.
32463         * tree-streamer-in.c (unpack_ts_target_option): Remove.
32464         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
32465         (lto_input_ts_function_decl_tree_pointers): Do not stream
32466         DECL_FUNCTION_SPECIFIC_TARGET.
32467
32468 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
32469
32470         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
32471         (get_initial_def_for_induction, vectorizable_induction): Ignore
32472         debug stmts when looking for exit_phi.
32473         (vectorizable_live_operation): Fix up condition.
32474
32475 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32476
32477         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
32478         nreverse() because it changes the content of original tree list.
32479
32480 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32481
32482         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
32483         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
32484
32485 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32486
32487         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
32488         GNU coding standards.
32489
32490 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32491
32492         PR debug/60152
32493         * dwarf2out.c (gen_subprogram_die): Don't call
32494         add_calling_convention_attribute if subr_die is old_die.
32495
32496 2014-02-13  Sharad Singhai  <singhai@google.com>
32497
32498         * doc/optinfo.texi: Fix order of nodes.
32499
32500 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
32501
32502         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
32503         operands[2], not operands[3].
32504
32505 2014-02-13  Richard Biener  <rguenther@suse.de>
32506
32507         PR bootstrap/59878
32508         * doc/install.texi (ISL): Update recommended version to 0.12.2,
32509         mention the possibility of an in-tree build.
32510         (CLooG): Update recommended version to 0.18.1, mention the
32511         possibility of an in-tree build and clarify that the ISL
32512         bundled with CLooG does not work.
32513
32514 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32515
32516         PR target/43546
32517         * expr.c (compress_float_constant): If x is a hard register,
32518         extend into a pseudo and then move to x.
32519
32520 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32521
32522         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
32523         caused by bad second argument to warning_at() with -mhotpatch and
32524         nested functions (e.g. with gfortran).
32525
32526 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
32527
32528         * opts.c (option_name): Remove "enabled by default" rider.
32529
32530 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
32531
32532         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
32533
32534 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32535             Uros Bizjak  <ubizjak@gmail.com>
32536
32537         PR target/60151
32538         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
32539         * configure: Regenerated.
32540
32541 2014-02-12  Richard Biener  <rguenther@suse.de>
32542
32543         * vec.c (vec_prefix::calculate_allocation): Move as
32544         inline variant to vec.h.
32545         (vec_prefix::calculate_allocation_1): New out-of-line version.
32546         * vec.h (vec_prefix::calculate_allocation_1): Declare.
32547         (vec_prefix::m_has_auto_buf): Rename to ...
32548         (vec_prefix::m_using_auto_storage): ... this.
32549         (vec_prefix::calculate_allocation): Inline the easy cases
32550         and dispatch to calculate_allocation_1 which doesn't need the
32551         prefix address.
32552         (va_heap::reserve): Use gcc_checking_assert.
32553         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
32554         m_using_auto_storage.
32555         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
32556         member and adjust.
32557         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
32558         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
32559         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
32560
32561 2014-02-12  Richard Biener  <rguenther@suse.de>
32562
32563         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
32564         when we found a dependence.
32565
32566 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
32567
32568         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
32569         common code...
32570         (maybe_fold_stmt): ... into this new function.
32571         * omp-low.c (lower_omp): Update comment.
32572
32573         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
32574         last use.
32575
32576         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
32577         dereference.
32578
32579 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
32580
32581         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
32582         identifiers in comments.
32583         (cortexa53_extra_costs): Likewise.
32584         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
32585         (cortexa7_extra_costs): Likewise.
32586         (cortexa12_extra_costs): Likewise.
32587         (cortexa15_extra_costs): Likewise.
32588         (v7m_extra_costs): Likewise.
32589
32590 2014-02-12  Richard Biener  <rguenther@suse.de>
32591
32592         PR middle-end/60092
32593         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
32594         of posix_memalign being successful.
32595         (lower_stmt): Restrict lowering of posix_memalign to when
32596         -ftree-bit-ccp is enabled.
32597
32598 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32599
32600         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
32601         arg_loc.
32602         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
32603
32604 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
32605
32606         PR rtl-optimization/60116
32607         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
32608         other_insn once the combination has been validated.
32609
32610 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
32611
32612         PR lto/59468
32613         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
32614         and wrapper.
32615         * ipa-devirt.c: Include demangle.h
32616         (odr_violation_reported): New static variable.
32617         (add_type_duplicate): Update odr_violations.
32618         (maybe_record_node): Add completep parameter; update it.
32619         (record_target_from_binfo): Add COMPLETEP parameter;
32620         update it as needed.
32621         (possible_polymorphic_call_targets_1): Likewise.
32622         (struct polymorphic_call_target_d): Add nonconstruction_targets;
32623         rename FINAL to COMPLETE.
32624         (record_targets_from_bases): Sanity check we found the binfo;
32625         fix COMPLETEP updating.
32626         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
32627         parameter, fix computing of COMPLETEP.
32628         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
32629         at LTO time do demangling.
32630         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
32631         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
32632         parameter.
32633         (gimple_get_virt_method_for_binfo): Likewise.
32634         * gimple-fold.h (gimple_get_virt_method_for_binfo,
32635         gimple_get_virt_method_for_vtable): Update prototypes.
32636
32637 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
32638
32639         PR target/49008
32640         * genautomata.c (add_presence_absence): Fix typo with
32641         {final_}presence_list.
32642
32643 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
32644
32645         PR target/60137
32646         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
32647         for VSX/Altivec vectors that land in GPR registers.
32648
32649 2014-02-11  Richard Henderson  <rth@redhat.com>
32650             Jakub Jelinek  <jakub@redhat.com>
32651
32652         PR debug/59776
32653         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
32654         around drhs if type conversion to lacc->type is not useless.
32655
32656 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32657
32658         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
32659         tuning struct.
32660         (cortex-a57.cortex-a53): Likewise.
32661         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
32662
32663 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32664
32665         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
32666         arm_restrict_it.
32667
32668 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
32669
32670         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
32671         add_options_for_arm_vfp3.
32672
32673 2014-02-11  Jeff Law  <law@redhat.com>
32674
32675         PR middle-end/54041
32676         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
32677         object with an undesirable mode.
32678
32679 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32680
32681         PR libgomp/60107
32682         * config/i386/sol2-9.h: New file.
32683         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
32684         *-*-solaris2.9*): Use it.
32685
32686 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32687
32688         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
32689         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
32690
32691 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32692
32693         * config/microblaze/microblaze.c: Extend mcpu version format
32694
32695 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
32696
32697         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
32698
32699 2014-02-10  Richard Henderson  <rth@redhat.com>
32700
32701         PR target/59927
32702         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
32703         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
32704         ms-abi vs -mno-accumulate-outgoing-args.
32705         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
32706         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
32707         respect to ms-abi.
32708
32709 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32710
32711         PR middle-end/60080
32712         * cfgexpand.c (expand_asm_operands): Attach source location to
32713         ASM_INPUT rtx objects.
32714         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
32715
32716 2014-02-10  Nick Clifton  <nickc@redhat.com>
32717
32718         * config/mn10300/mn10300.c (popcount): New function.
32719         (mn10300_expand_prologue): Include saved registers in stack usage
32720         count.
32721
32722 2014-02-10  Jeff Law  <law@redhat.com>
32723
32724         PR middle-end/52306
32725         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
32726         when changing the SET_DEST of a prior insn to avoid an input reload.
32727
32728 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32729
32730         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
32731         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
32732         -mcall-openbsd, or -mcall-linux.
32733         (CC1_ENDIAN_BIG_SPEC): Remove.
32734         (CC1_ENDIAN_LITTLE_SPEC): Remove.
32735         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32736         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
32737         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
32738         and %cc1_endian_default.
32739         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32740
32741 2014-02-10  Richard Biener  <rguenther@suse.de>
32742
32743         PR tree-optimization/60115
32744         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
32745         MEM_REF handling.  Properly verify that the accesses are not
32746         out of the objects bound.
32747
32748 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32749
32750         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
32751         coretex to cortex.
32752
32753 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
32754
32755         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
32756         proper constants and fix formatting.
32757         (possible_polymorphic_call_targets): Fix formatting.
32758
32759 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
32760             Ilya Tocar  <ilya.tocar@intel.com>
32761
32762         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
32763         (_mm512_loadu_epi32): Renamed into...
32764         (_mm512_loadu_si512): This.
32765         (_mm512_storeu_epi32): Renamed into...
32766         (_mm512_storeu_si512): This.
32767         (_mm512_maskz_ceil_ps): Removed.
32768         (_mm512_maskz_ceil_pd): Ditto.
32769         (_mm512_maskz_floor_ps): Ditto.
32770         (_mm512_maskz_floor_pd): Ditto.
32771         (_mm512_floor_round_ps): Ditto.
32772         (_mm512_floor_round_pd): Ditto.
32773         (_mm512_ceil_round_ps): Ditto.
32774         (_mm512_ceil_round_pd): Ditto.
32775         (_mm512_mask_floor_round_ps): Ditto.
32776         (_mm512_mask_floor_round_pd): Ditto.
32777         (_mm512_mask_ceil_round_ps): Ditto.
32778         (_mm512_mask_ceil_round_pd): Ditto.
32779         (_mm512_maskz_floor_round_ps): Ditto.
32780         (_mm512_maskz_floor_round_pd): Ditto.
32781         (_mm512_maskz_ceil_round_ps): Ditto.
32782         (_mm512_maskz_ceil_round_pd): Ditto.
32783         (_mm512_expand_pd): Ditto.
32784         (_mm512_expand_ps): Ditto.
32785         * config/i386/i386.c (ix86_builtins): Remove
32786         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
32787         (bdesc_args): Ditto.
32788         * config/i386/predicates.md (const1256_operand): New.
32789         (const_1_to_2_operand): Ditto.
32790         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32791         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32792         (*avx512pf_gatherpf<mode>sf): Ditto.
32793         (avx512pf_gatherpf<mode>df): Ditto.
32794         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32795         (*avx512pf_gatherpf<mode>df): Ditto.
32796         (avx512pf_scatterpf<mode>sf): Ditto.
32797         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32798         (*avx512pf_scatterpf<mode>sf): Ditto.
32799         (avx512pf_scatterpf<mode>df): Ditto.
32800         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32801         (*avx512pf_scatterpf<mode>df): Ditto.
32802         (avx512f_expand<mode>): Removed.
32803         (<shift_insn><mode>3<mask_name>): Change predicate type.
32804
32805 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32806
32807         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
32808         not at the end of datarefs vector use ordered_remove to avoid
32809         reordering datarefs vector.
32810
32811         PR c/59984
32812         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
32813         mark local addressable non-static vars as GOVD_PRIVATE
32814         instead of GOVD_LOCAL.
32815         * omp-low.c (lower_omp_for): Move gimple_bind_vars
32816         and BLOCK_VARS of gimple_bind_block to new_stmt rather
32817         than copying them.
32818
32819         PR middle-end/60092
32820         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
32821         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
32822         assume_aligned or alloc_align attributes.
32823         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
32824         arguments.  Handle also assume_aligned and alloc_align attributes.
32825         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
32826         calls to functions with assume_aligned or alloc_align attributes.
32827         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
32828
32829 2014-02-08  Terry Guo  <terry.guo@arm.com>
32830
32831         * doc/invoke.texi: Document ARM -march=armv7e-m.
32832
32833 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32834
32835         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
32836         flag on __cilkrts_rethrow builtin.
32837
32838         PR ipa/60026
32839         * ipa-cp.c (determine_versionability): Fail at -O0
32840         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
32841         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
32842
32843         Revert:
32844         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
32845
32846         PR ipa/60026
32847         * tree-inline.c (copy_forbidden): Fail for
32848         __attribute__((optimize (0))) functions.
32849
32850 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32851
32852         * varpool.c: Include pointer-set.h.
32853         (varpool_remove_unreferenced_decls): Variables in other partitions
32854         will not be output; be however careful to not lose information
32855         about partitioning.
32856
32857 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32858
32859         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
32860         lookup in the vtable constructor.
32861
32862 2014-02-07  Jeff Law  <law@redhat.com>
32863
32864         PR target/40977
32865         * config/m68k/m68k.md (ashldi_extsi): Turn into a
32866         define_insn_and_split.
32867
32868         * ipa-inline.c (inline_small_functions): Fix typos.
32869
32870 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32871
32872         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
32873         (s390_can_use_return_insn): Declare.
32874         * config/s390/s390.h (EPILOGUE_USES): Define.
32875         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
32876         instructions.
32877         (s390_chunkify_start): Handle return JUMP_LABELs.
32878         (s390_early_mach): Emit a main_pool instruction on the entry edge.
32879         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
32880         (s390_can_use_return_insn): New functions.
32881         (s390_fix_long_loop_prediction): Handle conditional returns.
32882         (TARGET_SET_UP_BY_PROLOGUE): Define.
32883         * config/s390/s390.md (ANY_RETURN): New code iterator.
32884         (*creturn, *csimple_return, return, simple_return): New patterns.
32885
32886 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32887
32888         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
32889         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
32890         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
32891         REG_CFA_RESTORE list when deciding not to restore a register.
32892
32893 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32894
32895         * config/s390/s390.c: Include tree-pass.h and context.h.
32896         (s390_early_mach): New function, split out from...
32897         (s390_emit_prologue): ...here.
32898         (pass_data_s390_early_mach): New pass structure.
32899         (pass_s390_early_mach): New class.
32900         (s390_option_override): Create and register early_mach pass.
32901         Move to end of file.
32902
32903 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32904
32905         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
32906         to match for the exit block.
32907
32908 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32909
32910         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
32911         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
32912         Reject misaligned operands.
32913
32914 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32915
32916         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
32917
32918 2014-02-07  Richard Biener  <rguenther@suse.de>
32919
32920         PR middle-end/60092
32921         * gimple-low.c (lower_builtin_posix_memalign): New function.
32922         (lower_stmt): Call it to lower posix_memalign in a way
32923         to make alignment info accessible.
32924
32925 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
32926
32927         PR c++/60082
32928         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
32929         __builtin_setjmp_receiver.
32930
32931 2014-02-07  Richard Biener  <rguenther@suse.de>
32932
32933         PR middle-end/60092
32934         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
32935         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
32936         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32937         Handle BUILT_IN_POSIX_MEMALIGN.
32938         (find_func_clobbers): Likewise.
32939         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
32940         (call_may_clobber_ref_p_1): Likewise.
32941
32942 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32943
32944         PR ipa/59918
32945         * ipa-devirt.c (record_target_from_binfo): Remove overactive
32946         sanity check.
32947
32948 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32949
32950         PR ipa/59469
32951         * lto-cgraph.c (lto_output_node): Use
32952         symtab_get_symbol_partitioning_class.
32953         (lto_output_varpool_node): likewise.
32954         (symtab_get_symbol_partitioning_class): Move here from
32955         lto/lto-partition.c
32956         * cgraph.h (symbol_partitioning_class): Likewise.
32957         (symtab_get_symbol_partitioning_class): Declare.
32958
32959 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32960
32961         * ggc.h (ggc_internal_cleared_alloc): New macro.
32962         * vec.h (vec_safe_copy): Handle memory stats.
32963         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
32964         * target-globals.c (save_target_globals): Likewise.
32965
32966 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32967
32968         PR target/60077
32969         * expr.c (emit_move_resolve_push): Export; be bit more selective
32970         on when to clear alias set.
32971         * expr.h (emit_move_resolve_push): Declare.
32972         * function.h (struct function): Add tail_call_marked.
32973         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
32974         * config/i386/i386-protos.h (ix86_expand_push): Remove.
32975         * config/i386/i386.md (TImode move expander): De not call
32976         ix86_expand_push.
32977         (FP push expanders): Preserve memory attributes.
32978         * config/i386/sse.md (push<mode>1): Remove.
32979         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
32980         (ix86_expand_push): Remove.
32981         * config/i386/mmx.md (push<mode>1): Remove.
32982
32983 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
32984
32985         PR rtl-optimization/60030
32986         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
32987         lopart with paradoxical subreg before shifting it up by hprec.
32988
32989 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32990
32991         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
32992         Remove extra newline at end of file.
32993         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
32994         (arm_issue_rate): Handle cortexa57.
32995         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
32996         (cortex-a57.cortex-a53): Likewise.
32997
32998 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
32999
33000         PR target/59575
33001         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33002         don't record in REG_FRAME_RELATED_EXPR registers not set in that
33003         bitmask.
33004         (arm_expand_prologue): Adjust all callers.
33005         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33006         info, registers also at the lowest numbered registers side.  Use
33007         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33008         XEXP.
33009
33010         PR debug/59992
33011         * var-tracking.c (adjust_mems): Before adding a SET to
33012         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33013
33014 2014-02-06  Alan Modra  <amodra@gmail.com>
33015
33016         PR target/60032
33017         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33018         change SDmode to DDmode when lra_in_progress.
33019
33020 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33021
33022         PR middle-end/59150
33023         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33024         free_data_ref on the dr first, and before goto again also set dr
33025         to the next dr.  For simd_lane_access, free old datarefs[i] before
33026         overwriting it.  For get_vectype_for_scalar_type failure, don't
33027         free_data_ref if simd_lane_access.
33028
33029         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33030
33031         PR target/60062
33032         * tree.h (opts_for_fn): New inline function.
33033         (opt_for_fn): Define.
33034         * config/i386/i386.c (ix86_function_regparm): Use
33035         opt_for_fn (decl, optimize) instead of optimize.
33036
33037 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33038
33039         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33040         for SYMBOL_REF in large memory model.
33041
33042 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33043
33044         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33045         and crypto support.
33046         (cortex-a57): Likewise.
33047         (cortex-a57.cortex-a53): Likewise.
33048
33049 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33050             Kugan Vivekanandarajah  <kuganv@linaro.org>
33051
33052         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33053         unaligned_access.
33054         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33055
33056 2014-02-06  Richard Biener  <rguenther@suse.de>
33057
33058         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33059         set_loop_copy and initialize_original_copy_tables.
33060
33061 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33062
33063         * config/aarch64/aarch64-simd.md
33064         (aarch64_ashr_simddi): Change QI to SI.
33065
33066 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33067             Jakub Jelinek  <jakub@redhat.com>
33068
33069         PR middle-end/60013
33070         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33071         of the dataflow.
33072
33073 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33074
33075         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33076         CODE_FOR_altivec_vpku[hw]um to
33077         CODE_FOR_altivec_vpku[hw]um_direct.
33078         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33079         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33080         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33081         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33082
33083 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33084
33085         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33086         generation for -maltivec=be.
33087         (altivec_vsumsws): Simplify redundant test.
33088
33089 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33090
33091         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33092         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33093         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33094         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33095         gen_altivec_vpkuwum.
33096         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33097         BYTES_BIG_ENDIAN.
33098         (altivec_vpks<VI_char>ss): Likewise.
33099         (altivec_vpks<VI_char>us): Likewise.
33100         (altivec_vpku<VI_char>us): Likewise.
33101         (altivec_vpku<VI_char>um): Likewise.
33102         (altivec_vpku<VI_char>um_direct): New (copy of
33103         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33104         internal use).
33105         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33106         target is little endian and -maltivec=be is not specified.
33107         (*altivec_vupkhs<VU_char>_direct): New (copy of
33108         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33109         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33110         target is little endian and -maltivec=be is not specified.
33111         (*altivec_vupkls<VU_char>_direct): New (copy of
33112         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33113         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33114         little endian and -maltivec=be is not specified.
33115         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33116         little endian and -maltivec=be is not specified.
33117
33118 2014-02-05  Richard Henderson  <rth@redhat.com>
33119
33120         PR debug/52727
33121         * combine-stack-adj.c: Revert r206943.
33122         * sched-int.h (struct deps_desc): Add last_args_size.
33123         * sched-deps.c (init_deps): Initialize it.
33124         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33125         contain REG_ARGS_SIZE notes.
33126
33127 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33128
33129         * lto-cgraph.c (asm_nodes_output): Make global.
33130         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33131         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33132         (driver_handle_option): Handle OPT_fwpa.
33133
33134 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33135
33136         PR ipa/59947
33137         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33138         a comment typo and formatting issue.  If odr_hash hasn't been
33139         created, return vNULL and set *completep to false.
33140
33141         PR middle-end/57499
33142         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33143         bb with no successors.
33144
33145 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33146
33147         PR target/59718
33148         * doc/invoke.texi (-march): Clarify documentation for ARM.
33149         (-mtune): Likewise.
33150         (-mcpu): Likewise.
33151
33152 2014-02-05  Richard Biener  <rguenther@suse.de>
33153
33154         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33155         when not vectorizing because of too many alias checks.
33156         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33157         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33158
33159 2014-02-05  Nick Clifton  <nickc@redhat.com>
33160
33161         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33162         accept extended registers in any mode when compiling for the MN10300.
33163
33164 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33165
33166         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33167         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33168         sanitization attributes.
33169         (can_inline_edge_p): Likewise.
33170         (sanitize_attrs_match_for_inline_p): New function.
33171
33172 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33173
33174         * ipa-prop.c (detect_type_change): Shor circuit testing of
33175         type changes on THIS pointer.
33176
33177 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33178
33179         PR target/59777
33180         * config/pa/pa.c (legitimize_tls_address): Return original address
33181         if not passed a SYMBOL_REF rtx.
33182         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33183         addresses.
33184         (pa_emit_move_sequence): Simplify TLS source operands.
33185         (pa_legitimate_constant_p): Reject all TLS constants.
33186         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33187         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33188
33189 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33190
33191         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33192         groups when we know they are controlled by LTO.
33193         * varasm.c (default_binds_local_p_1): If object is in other partition,
33194         it will be resolved locally.
33195
33196 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33197
33198         * config/host-linux.c (linux_gt_pch_use_address): Don't
33199         use SSIZE_MAX because it is not always defined.
33200
33201 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33202
33203         PR bootstrap/59913
33204         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33205         threshold for pseudo splitting.
33206         (update_ebb_live_info): Process call argument hard registers and
33207         hard registers from insn definition too.
33208         (max_small_class_regs_num): New constant.
33209         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33210         reloads_num only for small register classes.  Don't split for
33211         outputs of jumps.
33212
33213 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33214
33215         PR ipa/60058
33216         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33217         is non-null.
33218
33219 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33220
33221         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33222         visibility is safe.
33223
33224 2014-02-04  Marek Polacek  <polacek@redhat.com>
33225
33226         * gdbinit.in (pel): Define.
33227
33228 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33229
33230         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33231         behavior.
33232
33233 2014-02-04  Richard Biener  <rguenther@suse.de>
33234
33235         PR lto/59723
33236         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33237         in function context local.
33238         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33239         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33240         similar to LTO_imported_decl_ref.
33241
33242 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33243
33244         PR tree-optimization/60002
33245         * cgraphclones.c (build_function_decl_skip_args): Clear
33246         DECL_LANG_SPECIFIC.
33247
33248         PR tree-optimization/60023
33249         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33250         false to gsi_replace.
33251         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33252         has been in some EH region and vec_stmt could throw, add
33253         vec_stmt into the same EH region.
33254         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33255         has no lhs, ignore it.
33256         * internal-fn.c (expand_MASK_LOAD): Likewise.
33257
33258         PR ipa/60026
33259         * tree-inline.c (copy_forbidden): Fail for
33260         __attribute__((optimize (0))) functions.
33261
33262         PR other/58712
33263         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33264         is set, copy one less argument.
33265         (expand_simd_clones): Don't subtract clone_info->inbranch
33266         from simd_clone_struct_alloc argument.
33267
33268         PR rtl-optimization/57915
33269         * recog.c (simplify_while_replacing): If all unary/binary/relational
33270         operation arguments are constant, attempt to simplify those.
33271
33272         PR middle-end/59261
33273         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33274         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33275
33276 2014-02-04  Richard Biener  <rguenther@suse.de>
33277
33278         PR tree-optimization/60012
33279         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33280         TBAA disambiguation to all DDRs.
33281
33282 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33283
33284         PR target/59788
33285         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33286         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33287
33288 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33289
33290         PR ipa/59882
33291         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33292
33293 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33294
33295         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33296         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33297
33298 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33299
33300         PR ipa/59831
33301         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33302         to figure out targets of polymorphic calls with known decl.
33303         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33304         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33305         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33306         (get_polymorphic_call_info): ... here.
33307         (get_polymorphic_call_info_from_invariant): New function.
33308
33309 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33310
33311         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33312         lookup via vtable pointer; check for type consistency
33313         and turn inconsitent facts into UNREACHABLE.
33314         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33315         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33316         type inconsistent querries; return UNREACHABLE instead.
33317
33318 2014-02-03  Richard Henderson  <rth@twiddle.net>
33319
33320         PR tree-opt/59924
33321         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33322         already processed this node.
33323         (normalize_one_pred_1): Pass along mark_set.
33324         (normalize_one_pred): Create and destroy a pointer_set_t.
33325         (normalize_one_pred_chain): Likewise.
33326
33327 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33328
33329         PR gcov-profile/58602
33330         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33331
33332 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33333
33334         PR ipa/59831
33335         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33336         -fno-devirtualize; try to devirtualize by the knowledge of
33337         virtual table pointer given by aggregate propagation.
33338         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33339         (ipa_print_node_jump_functions): Dump also offset that
33340         is relevant for polymorphic calls.
33341         (determine_known_aggregate_parts): Add arg_type parameter; use it
33342         instead of determining the type from pointer type.
33343         (ipa_compute_jump_functions_for_edge): Update call of
33344         determine_known_aggregate_parts.
33345         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33346         (gimple_get_virt_method_for_binfo): ... here; simplify using
33347         vtable_pointer_value_to_vtable.
33348         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33349         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33350         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33351         (vtable_pointer_value_to_vtable): Break out from ...; handle also
33352         POINTER_PLUS_EXPR.
33353         (vtable_pointer_value_to_binfo): ... here.
33354         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33355
33356 2014-02-03  Teresa Johnson  <tejohnson@google.com>
33357
33358         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33359         redef of outer loop index variable.
33360
33361 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
33362
33363         PR c++/53017
33364         PR c++/59211
33365         * doc/extend.texi (Function Attributes): Typo.
33366
33367 2014-02-03  Cong Hou  <congh@google.com>
33368
33369         PR tree-optimization/60000
33370         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33371         if the vectorized statement is a store.  A store statement can only
33372         appear at the end of pattern statements.
33373
33374 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33375
33376         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33377         (ix86_option_override_internal): Default long double to 64-bit for
33378         32-bit Bionic and to 128-bit for 64-bit Bionic.
33379
33380         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33381         TARGET_LONG_DOUBLE_128 is true.
33382         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33383
33384         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33385         (mlong-double-64): Negate -mlong-double-128.
33386         (mlong-double-128): New option.
33387
33388         * config/i386/i386-c.c (ix86_target_macros): Define
33389         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33390
33391         * doc/invoke.texi: Document -mlong-double-128.
33392
33393 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33394
33395         PR rtl-optimization/60024
33396         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33397
33398 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
33399
33400         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
33401
33402 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33403
33404         PR rtl-optimization/57662
33405         * sel-sched.c (code_motion_path_driver): Do not mark already not
33406         existing blocks in the visiting bitmap.
33407
33408 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33409
33410         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
33411         on the insn being emitted.
33412
33413 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
33414             Will Deacon  <will.deacon@arm.com>
33415
33416         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
33417
33418 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33419
33420         * config/arm/arm-tables.opt: Regenerate.
33421
33422 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33423
33424         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
33425         for vector types other than V16QImode.
33426         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
33427         define_expand, and call altivec_expand_vec_perm_le when producing
33428         code with little endian element order.
33429         (*altivec_vperm_<mode>_internal): New insn having previous
33430         behavior of altivec_vperm_<mode>.
33431         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
33432         altivec_expand_vec_perm_le when producing code with little endian
33433         element order.
33434         (*altivec_vperm_<mode>_uns_internal): New insn having previous
33435         behavior of altivec_vperm_<mode>_uns.
33436
33437 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33438
33439         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
33440         (altivec_vsumsws): Add handling for -maltivec=be with a little
33441         endian target.
33442         (altivec_vsumsws_direct): New.
33443         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
33444         gen_altivec_vsumsws.
33445
33446 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33447
33448         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
33449         vtable_pointer_value_to_binfo): New functions.
33450         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
33451         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
33452
33453 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
33454
33455         * config/nios2/nios2.md (load_got_register): Initialize GOT
33456         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
33457         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
33458
33459 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33460
33461         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
33462         preserverd by passthrough, do not propagate the type.
33463
33464 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33465
33466         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
33467         (mips_atomic_assign_expand_fenv): New function.
33468         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33469
33470 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33471
33472         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
33473         (__builtin_mips_set_fcsr): Likewise.
33474         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
33475         MIPS_USI_FTYPE_VOID.
33476         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
33477         (mips16_expand_set_fcsr): Likewise.
33478         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
33479         (mips16_set_fcsr_stub): Likewise.
33480         (mips16_get_fcsr_one_only_stub): New class.
33481         (mips16_set_fcsr_one_only_stub): Likewise.
33482         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
33483         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
33484         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
33485         (hard_float): New availability predicate.
33486         (mips_builtins): Add get_fcsr and set_fcsr.
33487         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
33488         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
33489         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
33490         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
33491         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
33492         patterns.
33493
33494 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33495
33496         * config/mips/mips.c (mips_one_only_stub): New class.
33497         (mips_need_mips16_rdhwr_p): Replace with...
33498         (mips16_rdhwr_stub): ...this new variable.
33499         (mips16_stub_call_address): New function.
33500         (mips16_rdhwr_one_only_stub): New class.
33501         (mips_expand_thread_pointer): Use mips16_stub_call_address.
33502         (mips_output_mips16_rdhwr): Delete.
33503         (mips_finish_stub): New function.
33504         (mips_code_end): Use it to handle rdhwr stubs.
33505
33506 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
33507
33508         PR target/60017
33509         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
33510         when calculating size of integer atomic types.
33511
33512 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
33513
33514         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
33515
33516 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
33517
33518         PR tree-optimization/60003
33519         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
33520         * profile.c (branch_prob): Use gimple_call_builtin_p
33521         to check for BUILT_IN_SETJMP_RECEIVER.
33522         * tree-inline.c (copy_bb): Call notice_special_calls.
33523
33524 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
33525
33526         PR bootstrap/59985
33527         * lra-constraints.c (process_alt_operands): Update reload_sum only
33528         on the first pass.
33529
33530 2014-01-31  Richard Henderson  <rth@redhat.com>
33531
33532         PR middle-end/60004
33533         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
33534         until after else_eh is processed.
33535
33536 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33537
33538         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
33539         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
33540         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
33541         in smmintrin.h, remove them.
33542         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
33543         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
33544         * config/i386/i386.md (ROUND_SAE): Fix value.
33545         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
33546         (const48_operand): New.
33547         * config/i386/subst.md (round), (round_expand): Use
33548         const_4_or_8_to_11_operand.
33549         (round_saeonly), (round_saeonly_expand): Use const48_operand.
33550
33551 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33552
33553         * config/i386/constraints.md (Yk): Swap meaning with k.
33554         * config/i386/i386.md (movhi_internal): Change Yk to k.
33555         (movqi_internal): Ditto.
33556         (*k<logic><mode>): Ditto.
33557         (*andhi_1): Ditto.
33558         (*andqi_1): Ditto.
33559         (kandn<mode>): Ditto.
33560         (*<code>hi_1): Ditto.
33561         (*<code>qi_1): Ditto.
33562         (kxnor<mode>): Ditto.
33563         (kortestzhi): Ditto.
33564         (kortestchi): Ditto.
33565         (kunpckhi): Ditto.
33566         (*one_cmplhi2_1): Ditto.
33567         (*one_cmplqi2_1): Ditto.
33568         * config/i386/sse.md (): Change k to Yk.
33569         (avx512f_load<mode>_mask): Ditto.
33570         (avx512f_blendm<mode>): Ditto.
33571         (avx512f_store<mode>_mask): Ditto.
33572         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
33573         (avx512f_storedqu<mode>_mask): Ditto.
33574         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
33575         Ditto.
33576         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
33577         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
33578         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
33579         (avx512f_maskcmp<mode>3): Ditto.
33580         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
33581         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
33582         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
33583         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
33584         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
33585         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
33586         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
33587         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
33588         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
33589         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
33590         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
33591         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
33592         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
33593         (vec_extract_lo_<mode>_maskm): Ditto.
33594         (vec_extract_hi_<mode>_maskm): Ditto.
33595         (avx512f_vternlog<mode>_mask): Ditto.
33596         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
33597         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
33598         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
33599         (avx512f_<code>v8div16qi2_mask): Ditto.
33600         (avx512f_<code>v8div16qi2_mask_store): Ditto.
33601         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
33602         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
33603         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
33604         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
33605         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33606         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33607         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33608         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33609         (avx512cd_maskb_vec_dupv8di): Ditto.
33610         (avx512cd_maskw_vec_dupv16si): Ditto.
33611         (avx512f_vpermi2var<mode>3_maskz): Ditto.
33612         (avx512f_vpermi2var<mode>3_mask): Ditto.
33613         (avx512f_vpermi2var<mode>3_mask): Ditto.
33614         (avx512f_vpermt2var<mode>3_maskz): Ditto.
33615         (*avx512f_gathersi<mode>): Ditto.
33616         (*avx512f_gathersi<mode>_2): Ditto.
33617         (*avx512f_gatherdi<mode>): Ditto.
33618         (*avx512f_gatherdi<mode>_2): Ditto.
33619         (*avx512f_scattersi<mode>): Ditto.
33620         (*avx512f_scatterdi<mode>): Ditto.
33621         (avx512f_compress<mode>_mask): Ditto.
33622         (avx512f_compressstore<mode>_mask): Ditto.
33623         (avx512f_expand<mode>_mask): Ditto.
33624         * config/i386/subst.md (mask): Change k to Yk.
33625         (mask_scalar_merge): Ditto.
33626         (sd): Ditto.
33627
33628 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
33629
33630         * doc/extend.texi (Vector Extensions): Document ?: in C++.
33631
33632 2014-01-31  Richard Biener  <rguenther@suse.de>
33633
33634         PR middle-end/59990
33635         * builtins.c (fold_builtin_memory_op): Make sure to not
33636         use a floating-point mode or a boolean or enumeral type for
33637         the copy operation.
33638
33639 2014-01-30  DJ Delorie  <dj@redhat.com>
33640
33641         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
33642         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
33643         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
33644         whenever main() has an epilogue.
33645
33646 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33647
33648         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
33649         unused variable "field".
33650         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
33651         (vsx_mergeh_<mode>): Likewise.
33652         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
33653         (altivec_vmrghh): Likewise.
33654         (altivec_vmrghw): Likewise.
33655         (altivec_vmrglb): Likewise.
33656         (altivec_vmrglh): Likewise.
33657         (altivec_vmrglw): Likewise.
33658         (altivec_vspltb): Add missing uses.
33659         (altivec_vsplth): Likewise.
33660         (altivec_vspltw): Likewise.
33661         (altivec_vspltsf): Likewise.
33662
33663 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33664
33665         PR target/59923
33666         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
33667         frame related instructions.
33668
33669 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
33670
33671         PR rtl-optimization/59959
33672         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
33673         any reload of register whose subreg is invalid.
33674
33675 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33676
33677         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
33678         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
33679         Add missing return type - void.
33680
33681 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33682
33683         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
33684         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
33685         remove element index adjustment for endian (now handled in vsx.md
33686         and altivec.md).
33687         (altivec_expand_vec_perm_const): Use
33688         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
33689         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
33690         (vsx_xxspltw_<mode>): Adjust element index for little endian.
33691         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
33692         define_expand and a new define_insn *altivec_vspltb_internal;
33693         adjust for -maltivec=be on a little endian target.
33694         (altivec_vspltb_direct): New.
33695         (altivec_vsplth): Divide into a define_expand and a new
33696         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
33697         little endian target.
33698         (altivec_vsplth_direct): New.
33699         (altivec_vspltw): Divide into a define_expand and a new
33700         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
33701         little endian target.
33702         (altivec_vspltw_direct): New.
33703         (altivec_vspltsf): Divide into a define_expand and a new
33704         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
33705         a little endian target.
33706
33707 2014-01-30  Richard Biener  <rguenther@suse.de>
33708
33709         PR tree-optimization/59993
33710         * tree-ssa-forwprop.c (associate_pointerplus): Check we
33711         can propagate form the earlier stmt and avoid the transform
33712         when the intermediate result is needed.
33713
33714 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
33715
33716         * README.Portability: Fix typo.
33717
33718 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
33719
33720         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
33721         comparison_operator with ordered_comparison_operator.
33722
33723 2014-01-30  Nick Clifton  <nickc@redhat.com>
33724
33725         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
33726         Rename to mn10300_store_multiple_regs.
33727         * config/mn10300/mn10300.c: Likewise.
33728         * config/mn10300/mn10300.md (store_movm): Fix typo: call
33729         store_multiple_regs.
33730         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
33731         Call mn10300_store_multiple_regs.
33732
33733 2014-01-30  Nick Clifton  <nickc@redhat.com>
33734             DJ Delorie  <dj@redhat.com>
33735
33736         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
33737         %fp 2 to keep registers after it properly word-aligned.
33738         (rl78_alloc_physical_registers_umul): Handle the case where both
33739         input operands are the same.
33740
33741 2014-01-30  Richard Biener  <rguenther@suse.de>
33742
33743         PR tree-optimization/59903
33744         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
33745         check properly.
33746
33747 2014-01-30  Jason Merrill  <jason@redhat.com>
33748
33749         PR c++/59633
33750         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
33751
33752         PR c++/59645
33753         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
33754
33755 2014-01-30  Richard Biener  <rguenther@suse.de>
33756
33757         PR tree-optimization/59951
33758         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
33759
33760 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
33761
33762         PR target/59784
33763         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
33764         SFmode to DFmode case.
33765
33766 2014-01-29  DJ Delorie  <dj@redhat.com>
33767
33768         * config/msp430/msp430.opt (-minrt): New.
33769         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
33770         if -minrt given.
33771         (ENDFILE_SPEC): Likewise.
33772
33773 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
33774
33775         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
33776         (estimate_function_body_sizes): Use it.
33777
33778 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
33779
33780         PR c++/58561
33781         * dwarf2out.c (is_cxx_auto): New.
33782         (is_base_type): Use it.
33783         (gen_type_die_with_usage): Likewise.
33784
33785 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33786
33787         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
33788         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
33789         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
33790         -maltivec=be with LE targets.
33791         (vsx_mergeh_<mode>): Likewise.
33792         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
33793         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
33794         (altivec_vmrghb): Replace with define_expand and new
33795         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
33796         (altivec_vmrghb_direct): New define_insn.
33797         (altivec_vmrghh): Replace with define_expand and new
33798         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
33799         (altivec_vmrghh_direct): New define_insn.
33800         (altivec_vmrghw): Replace with define_expand and new
33801         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
33802         (altivec_vmrghw_direct): New define_insn.
33803         (*altivec_vmrghsf): Adjust for endianness.
33804         (altivec_vmrglb): Replace with define_expand and new
33805         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
33806         (altivec_vmrglb_direct): New define_insn.
33807         (altivec_vmrglh): Replace with define_expand and new
33808         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
33809         (altivec_vmrglh_direct): New define_insn.
33810         (altivec_vmrglw): Replace with define_expand and new
33811         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
33812         (altivec_vmrglw_direct): New define_insn.
33813         (*altivec_vmrglsf): Adjust for endianness.
33814         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33815         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33816         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33817         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33818         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33819         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33820         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33821         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33822
33823 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33824
33825         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
33826         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
33827         whitespace.
33828
33829 2014-01-29  Richard Biener  <rguenther@suse.de>
33830
33831         PR tree-optimization/58742
33832         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
33833         associate_pointerplus_align.
33834         (associate_pointerplus_diff): New function.
33835         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
33836         and associate_pointerplus_diff.
33837
33838 2014-01-29  Richard Biener  <rguenther@suse.de>
33839
33840         * lto-streamer.h (LTO_major_version): Bump to 3.
33841         (LTO_minor_version): Reset to 0.
33842
33843 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
33844
33845         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
33846         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
33847         (arm_file_start): Generate correct asm header for armv7ve.
33848         * config/arm/bpabi.h: Add multilib support for armv7ve.
33849         * config/arm/driver-arm.c: Change the architectures of cortex-a7
33850         and cortex-a15 to armv7ve.
33851         * config/arm/t-aprofile: Add multilib support for armv7ve.
33852         * doc/invoke.texi: Document -march=armv7ve.
33853
33854 2014-01-29  Richard Biener  <rguenther@suse.de>
33855
33856         PR tree-optimization/58742
33857         * tree-ssa-forwprop.c (associate_plusminus): Return true
33858         if we changed sth, defer EH cleanup to ...
33859         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
33860         (simplify_mult): New function.
33861
33862 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
33863
33864         PR middle-end/59917
33865         PR tree-optimization/59920
33866         * tree.c (build_common_builtin_nodes): Remove
33867         __builtin_setjmp_dispatcher initialization.
33868         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
33869         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
33870         instead of gsi_after_labels + manually skipping debug stmts.
33871         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
33872         ignore bbs with IFN_ABNORMAL_DISPATCHER.
33873         * tree-inline.c (copy_edges_for_bb): Remove
33874         can_make_abnormal_goto argument, instead add abnormal_goto_dest
33875         argument.  Ignore computed_goto_p stmts.  Don't call
33876         make_abnormal_goto_edges.  If a call might need abnormal edges
33877         for non-local gotos, see if it already has an edge to
33878         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
33879         with true argument, don't do anything then, otherwise add
33880         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
33881         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
33882         caller.
33883         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
33884         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
33885         (lower_stmt): Don't set data->calls_builtin_setjmp.
33886         (lower_builtin_setjmp): Adjust comment.
33887         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
33888         * tree-cfg.c (found_computed_goto): Remove.
33889         (factor_computed_gotos): Remove.
33890         (make_goto_expr_edges): Return bool, true for computed gotos.
33891         Don't call make_abnormal_goto_edges.
33892         (build_gimple_cfg): Don't set found_computed_goto, don't call
33893         factor_computed_gotos.
33894         (computed_goto_p): No longer static.
33895         (make_blocks): Don't set found_computed_goto.
33896         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
33897         (make_edges): If make_goto_expr_edges returns true, push bb
33898         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
33899         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
33900         vector.  Record mapping between bbs and OpenMP regions if there
33901         are any, adjust make_gimple_omp_edges caller.  Call
33902         handle_abnormal_edges.
33903         (make_abnormal_goto_edges): Remove.
33904         * tree-cfg.h (make_abnormal_goto_edges): Remove.
33905         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
33906         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
33907         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
33908         * internal-fn.def (ABNORMAL_DISPATCHER): New.
33909         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
33910         filling *region also set *region_idx to (*region)->entry->index.
33911
33912         PR other/58712
33913         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
33914         For REGs set ORIGINAL_REGNO.
33915
33916 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
33917
33918         * doc/md.texi: Mention that a target shouldn't implement
33919         vec_widen_(s|u)mul_even/odd pair if it is less efficient
33920         than hi/lo pair.
33921
33922 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
33923
33924         PR tree-optimization/59594
33925         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
33926         a copy of the datarefs vector rather than the vector itself.
33927
33928 2014-01-28  Jason Merrill  <jason@redhat.com>
33929
33930         PR c++/53756
33931         * dwarf2out.c (auto_die): New static.
33932         (gen_type_die_with_usage): Handle C++1y 'auto'.
33933         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
33934         on definition.
33935
33936 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
33937
33938         PR target/59672
33939         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
33940         (SPEC_X32): Likewise.
33941         (SPEC_64): Likewise.
33942         * config/i386/i386.c (ix86_option_override_internal): Turn off
33943         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
33944         for TARGET_16BIT.
33945         (x86_file_start): Output .code16gcc for TARGET_16BIT.
33946         * config/i386/i386.h (TARGET_16BIT): New macro.
33947         (TARGET_16BIT_P): Likewise.
33948         * config/i386/i386.opt: Add m16.
33949         * doc/invoke.texi: Document -m16.
33950
33951 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
33952
33953         PR preprocessor/59935
33954         * input.c (location_get_source_line): Bail out on when line number
33955         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
33956
33957 2014-01-28  Richard Biener  <rguenther@suse.de>
33958
33959         PR tree-optimization/58742
33960         * tree-ssa-forwprop.c (associate_plusminus): Handle
33961         pointer subtraction of the form (T)(P + A) - (T)P.
33962
33963 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33964
33965         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
33966         at const_int_cost.
33967
33968 2014-01-28  Richard Biener  <rguenther@suse.de>
33969
33970         Revert
33971         2014-01-28  Richard Biener  <rguenther@suse.de>
33972
33973         PR rtl-optimization/45364
33974         PR rtl-optimization/59890
33975         * var-tracking.c (local_get_addr_clear_given_value): Handle
33976         already cleared slot.
33977         (val_reset): Handle not allocated local_get_addr_cache.
33978         (vt_find_locations): Use post-order on the inverted CFG.
33979
33980 2014-01-28  Richard Biener  <rguenther@suse.de>
33981
33982         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
33983
33984 2014-01-28  Richard Biener  <rguenther@suse.de>
33985
33986         PR rtl-optimization/45364
33987         PR rtl-optimization/59890
33988         * var-tracking.c (local_get_addr_clear_given_value): Handle
33989         already cleared slot.
33990         (val_reset): Handle not allocated local_get_addr_cache.
33991         (vt_find_locations): Use post-order on the inverted CFG.
33992
33993 2014-01-28  Alan Modra  <amodra@gmail.com>
33994
33995         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
33996         * configure.ac <recursive call for build != host>: Define
33997         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
33998         and LD_FOR_BUILD too.
33999         * configure: Regenerate.
34000
34001 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
34002
34003         * config/i386/i386.c (get_builtin_code_for_version): Separate
34004         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34005         Broadwell from Haswell.
34006
34007 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34008
34009         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34010         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34011         * config/mips/mips.c (mips_option_override): Change setting
34012         of TARGET_DSP.
34013         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34014         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34015         Change from Mask to Var.
34016
34017 2014-01-27  Jeff Law  <law@redhat.com>
34018
34019         * ipa-inline.c (inline_small_functions): Fix typo.
34020
34021 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34022
34023         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34024         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34025         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34026         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34027         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34028         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34029         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34030         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34031         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34032         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34033         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34034         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34035         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34036         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34037         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34038         (_mm512_storeu_epi64): Ditto.
34039         (_mm512_cmpge_epi32_mask): Ditto.
34040         (_mm512_cmpge_epu32_mask): Ditto.
34041         (_mm512_cmpge_epi64_mask): Ditto.
34042         (_mm512_cmpge_epu64_mask): Ditto.
34043         (_mm512_cmple_epi32_mask): Ditto.
34044         (_mm512_cmple_epu32_mask): Ditto.
34045         (_mm512_cmple_epi64_mask): Ditto.
34046         (_mm512_cmple_epu64_mask): Ditto.
34047         (_mm512_cmplt_epi32_mask): Ditto.
34048         (_mm512_cmplt_epu32_mask): Ditto.
34049         (_mm512_cmplt_epi64_mask): Ditto.
34050         (_mm512_cmplt_epu64_mask): Ditto.
34051         (_mm512_cmpneq_epi32_mask): Ditto.
34052         (_mm512_cmpneq_epu32_mask): Ditto.
34053         (_mm512_cmpneq_epi64_mask): Ditto.
34054         (_mm512_cmpneq_epu64_mask): Ditto.
34055         (_mm512_expand_pd): Ditto.
34056         (_mm512_expand_ps): Ditto.
34057         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34058         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34059         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34060         * config/i386/i386.c (ix86_builtins): Add
34061         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34062         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34063         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34064         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34065         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34066         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34067         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34068         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34069         IX86_BUILTIN_PMOVUSQW512_MEM.
34070         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34071         __builtin_ia32_pmovsqd512mem_mask,
34072         __builtin_ia32_pmovqd512mem_mask,
34073         __builtin_ia32_pmovusqw512mem_mask,
34074         __builtin_ia32_pmovsqw512mem_mask,
34075         __builtin_ia32_pmovqw512mem_mask,
34076         __builtin_ia32_pmovusdw512mem_mask,
34077         __builtin_ia32_pmovsdw512mem_mask,
34078         __builtin_ia32_pmovdw512mem_mask,
34079         __builtin_ia32_pmovqb512mem_mask,
34080         __builtin_ia32_pmovusqb512mem_mask,
34081         __builtin_ia32_pmovsqb512mem_mask,
34082         __builtin_ia32_pmovusdb512mem_mask,
34083         __builtin_ia32_pmovsdb512mem_mask,
34084         __builtin_ia32_pmovdb512mem_mask.
34085         (bdesc_args): Add __builtin_ia32_expanddf512,
34086         __builtin_ia32_expandsf512.
34087         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34088         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34089         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34090         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34091         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34092         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34093         (avx512f_<code>v8div16qi2_mask_store): This.
34094         (avx512f_expand<mode>): New.
34095
34096 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34097
34098         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34099         New.
34100         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34101         (_mm512_prefetch_i32scatter_pd): Ditto.
34102         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34103         (_mm512_prefetch_i64scatter_pd): Ditto.
34104         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34105         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34106         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34107         (_mm512_prefetch_i32scatter_ps): Ditto.
34108         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34109         (_mm512_prefetch_i64scatter_ps): Ditto.
34110         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34111         * config/i386/i386-builtin-types.def: Define
34112         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34113         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34114         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34115         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34116         IX86_BUILTIN_SCATTERPFQPD.
34117         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34118         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34119         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34120         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34121         __builtin_ia32_scatterpfqps.
34122         (ix86_expand_builtin): Expand new built-ins.
34123         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34124         fix memory access data type.
34125         (*avx512pf_gatherpf<mode>_mask): Ditto.
34126         (*avx512pf_gatherpf<mode>): Ditto.
34127         (avx512pf_scatterpf<mode>): Ditto.
34128         (*avx512pf_scatterpf<mode>_mask): Ditto.
34129         (*avx512pf_scatterpf<mode>): Ditto.
34130         (GATHER_SCATTER_SF_MEM_MODE): New.
34131         (avx512pf_gatherpf<mode>df): Ditto.
34132         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34133         (*avx512pf_scatterpf<mode>df): Ditto.
34134
34135 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34136
34137         PR bootstrap/59934
34138         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34139         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34140         reached.
34141
34142 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34143
34144         * common/config/arm/arm-common.c
34145         (arm_rewrite_mcpu): Handle multiple names.
34146         * config/arm/arm.h
34147         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34148
34149 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34150
34151         * gimple-builder.h (create_gimple_tmp): Delete.
34152
34153 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34154
34155         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34156         words comparisons.
34157
34158 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34159
34160         * config/pa/pa.md (call): Generate indirect long calls to non-local
34161         functions when outputing 32-bit code.
34162         (call_value): Likewise except for special call to buggy powf function.
34163
34164         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34165         portable runtime and PIC indirect calls.
34166         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34167         and PIC call sequences.  Use ldo instead of blr to set return register
34168         in PIC call sequence.
34169
34170 2014-01-25  Walter Lee  <walt@tilera.com>
34171
34172         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34173         avoid clobbering a live register.
34174
34175 2014-01-25  Walter Lee  <walt@tilera.com>
34176
34177         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34178         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34179         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34180         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34181
34182 2014-01-25  Walter Lee  <walt@tilera.com>
34183
34184         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34185         arguments on even registers.
34186         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34187         STACK_BOUNDARY.
34188         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34189         (BIGGEST_ALIGNMENT): Ditto.
34190         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34191
34192 2014-01-25  Walter Lee  <walt@tilera.com>
34193
34194         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34195         insns before bundling.
34196         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34197
34198 2014-01-25  Walter Lee  <walt@tilera.com>
34199
34200         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34201         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34202         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34203
34204 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34205
34206         * config/mips/constraints.md (kl): Delete.
34207         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34208         define expands, using...
34209         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34210         instructions for MIPS16.
34211         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34212         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34213
34214 2014-01-25  Walter Lee  <walt@tilera.com>
34215
34216         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34217         (clzdi2): Ditto.
34218         (ffsdi2): Ditto.
34219
34220 2014-01-25  Walter Lee  <walt@tilera.com>
34221
34222         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34223         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34224
34225 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34226
34227         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34228         Handle XOR.
34229
34230 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34231
34232         * print-rtl.c (in_call_function_usage): New var.
34233         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34234         EXPR_LIST mode as mode and not as reg note name.
34235
34236         PR middle-end/59561
34237         * cfgloopmanip.c (copy_loop_info): If
34238         loop->warned_aggressive_loop_optimizations, make sure
34239         the flag is set in target loop too.
34240
34241 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34242
34243         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34244         flag_cilkplus.
34245         * builtins.def: Likewise.
34246         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34247         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34248         * ira.c (ira_setup_eliminable_regset): Likewise.
34249         * omp-low.c (gate_expand_omp): Likewise.
34250         (execute_lower_omp): Likewise.
34251         (diagnose_sb_0): Likewise.
34252         (gate_diagnose_omp_blocks): Likewise.
34253         (simd_clone_clauses_extract): Likewise.
34254         (gate): Likewise.
34255
34256 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34257
34258         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34259         correction for little endian...
34260         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34261         here.
34262
34263 2014-01-24  Jeff Law  <law@redhat.com>
34264
34265         PR tree-optimization/59919
34266         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34267         for non-returning calls.
34268
34269 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34270
34271         * common/config/aarch64/aarch64-common.c
34272         (aarch64_rewrite_mcpu): Handle multiple names.
34273         * config/aarch64/aarch64.h
34274         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34275
34276 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34277
34278         * input.c (add_file_to_cache_tab): Handle the case where fopen
34279         returns NULL.
34280
34281 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34282
34283         PR target/59929
34284         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34285         from push operand if code of push isn't PRE_DEC.
34286
34287 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34288
34289         PR target/59909
34290         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34291         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34292         it is only used for non-atomic loads/stores.
34293
34294         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34295         -mquad-memory or -mquad-memory-atomic switches.
34296
34297         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34298         -mquad-memory-atomic to ISA 2.07 support.
34299
34300         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34301         to separate support of normal quad word memory operations (ldq, stq)
34302         from the atomic quad word memory operations.
34303
34304         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34305         support to separate non-atomic quad word operations from atomic
34306         quad word operations.  Disable non-atomic quad word operations in
34307         little endian mode so that we don't have to swap words after the
34308         load and before the store.
34309         (quad_load_store_p): Add comment about atomic quad word support.
34310         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34311         options printed with -mdebug=reg.
34312
34313         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34314         -mquad-memory-atomic as the test for whether we have quad word
34315         atomic instructions.
34316         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34317         or -mp8-vector are used, allow byte/half-word atomic operations.
34318
34319         * config/rs6000/sync.md (load_lockedti): Insure that the address
34320         is a proper indexed or indirect address for the lqarx instruction.
34321         On little endian systems, swap the hi/lo registers after the lqarx
34322         instruction.
34323         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34324         insure the address is valid for the lqarx instruction.
34325         (store_conditionalti): Insure that the address is a proper indexed
34326         or indirect address for the stqcrx. instruction.  On little endian
34327         systems, swap the hi/lo registers before doing the stqcrx.
34328         instruction.
34329         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34330         insure the address is valid for the stqcrx. instruction.
34331
34332         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34333         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34334         type of quad memory support is available.
34335
34336 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34337
34338         PR regression/59915
34339         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34340         there is a danger of looping.
34341
34342 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34343
34344         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34345         force flag_ira_loop_pressure if set via command line.
34346
34347 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34348
34349         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34350         (ashr_simd): New builtin handling DI mode.
34351         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34352         (aarch64_sshr_simddi): New match pattern.
34353         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34354         (vshrd_n_s64): Likewise.
34355         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34356
34357 2014-01-23  Nick Clifton  <nickc@redhat.com>
34358
34359         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34360         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34361         favour of mcu specific scripts.
34362         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34363         430x multilibs.
34364
34365 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34366             Alex Velenko  <Alex.Velenko@arm.com>
34367
34368         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34369         (vaddv_s16): Likewise.
34370         (vaddv_s32): Likewise.
34371         (vaddv_u8): Likewise.
34372         (vaddv_u16): Likewise.
34373         (vaddv_u32): Likewise.
34374         (vaddvq_s8): Likewise.
34375         (vaddvq_s16): Likewise.
34376         (vaddvq_s32): Likewise.
34377         (vaddvq_s64): Likewise.
34378         (vaddvq_u8): Likewise.
34379         (vaddvq_u16): Likewise.
34380         (vaddvq_u32): Likewise.
34381         (vaddvq_u64): Likewise.
34382         (vaddv_f32): Likewise.
34383         (vaddvq_f32): Likewise.
34384         (vaddvq_f64): Likewise.
34385         (vmaxv_f32): Likewise.
34386         (vmaxv_s8): Likewise.
34387         (vmaxv_s16): Likewise.
34388         (vmaxv_s32): Likewise.
34389         (vmaxv_u8): Likewise.
34390         (vmaxv_u16): Likewise.
34391         (vmaxv_u32): Likewise.
34392         (vmaxvq_f32): Likewise.
34393         (vmaxvq_f64): Likewise.
34394         (vmaxvq_s8): Likewise.
34395         (vmaxvq_s16): Likewise.
34396         (vmaxvq_s32): Likewise.
34397         (vmaxvq_u8): Likewise.
34398         (vmaxvq_u16): Likewise.
34399         (vmaxvq_u32): Likewise.
34400         (vmaxnmv_f32): Likewise.
34401         (vmaxnmvq_f32): Likewise.
34402         (vmaxnmvq_f64): Likewise.
34403         (vminv_f32): Likewise.
34404         (vminv_s8): Likewise.
34405         (vminv_s16): Likewise.
34406         (vminv_s32): Likewise.
34407         (vminv_u8): Likewise.
34408         (vminv_u16): Likewise.
34409         (vminv_u32): Likewise.
34410         (vminvq_f32): Likewise.
34411         (vminvq_f64): Likewise.
34412         (vminvq_s8): Likewise.
34413         (vminvq_s16): Likewise.
34414         (vminvq_s32): Likewise.
34415         (vminvq_u8): Likewise.
34416         (vminvq_u16): Likewise.
34417         (vminvq_u32): Likewise.
34418         (vminnmv_f32): Likewise.
34419         (vminnmvq_f32): Likewise.
34420         (vminnmvq_f64): Likewise.
34421
34422 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34423
34424         * config/aarch64/aarch64-simd.md
34425         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
34426         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
34427         (*aarch64_mul3_elt<mode>): Likewise.
34428         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
34429         (*aarch64_mul3_elt_to_64v2df): Likewise.
34430         (*aarch64_mla_elt<mode>): Likewise.
34431         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34432         (*aarch64_mls_elt<mode>): Likewise.
34433         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34434         (*aarch64_fma4_elt<mode>): Likewise.
34435         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34436         (*aarch64_fma4_elt_to_64v2df): Likewise.
34437         (*aarch64_fnma4_elt<mode>): Likewise.
34438         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34439         (*aarch64_fnma4_elt_to_64v2df): Likewise.
34440         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
34441         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
34442         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34443         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34444         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
34445         (aarch64_sqdmull_lane<mode>_internal): Likewise.
34446         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
34447
34448 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34449
34450         * config/aarch64/aarch64-simd.md
34451         (aarch64_be_checked_get_lane<mode>): New define_expand.
34452         * config/aarch64/aarch64-simd-builtins.def
34453         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
34454         New builtin definition.
34455         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
34456         Use new safe be builtin.
34457
34458 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34459
34460         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
34461         New define_insn.
34462         (aarch64_be_st1<mode>): Likewise.
34463         (aarch_ld1<VALL:mode>): Define_expand modified.
34464         (aarch_st1<VALL:mode>): Likewise.
34465         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
34466         (UNSPEC_ST1): Likewise.
34467
34468 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
34469
34470         * config/microblaze/microblaze.md: Add trap insn and attribute
34471
34472 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
34473
34474         PR preprocessor/58580
34475         * input.h (location_get_source_line): Take an additional line_size
34476         parameter.
34477         (void diagnostics_file_cache_fini): Declare new function.
34478         * input.c (struct fcache): New type.
34479         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
34480         New static constants.
34481         (diagnostic_file_cache_init, total_lines_num)
34482         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
34483         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
34484         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
34485         (get_next_line, read_next_line, goto_next_line, read_line_num):
34486         New static function definitions.
34487         (diagnostic_file_cache_fini): New function.
34488         (location_get_source_line): Take an additional output line_len
34489         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
34490         read_line_num.
34491         * diagnostic.c (diagnostic_finish): Call
34492         diagnostic_file_cache_fini.
34493         (adjust_line): Take an additional input parameter for the length
34494         of the line, rather than calculating it with strlen.
34495         (diagnostic_show_locus): Adjust the use of
34496         location_get_source_line and adjust_line with respect to their new
34497         signature.  While displaying a line now, do not stop at the first
34498         null byte.  Rather, display the zero byte as a space and keep
34499         going until we reach the size of the line.
34500         * Makefile.in: Add vec.o to OBJS-libcommon
34501
34502 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34503             Ilya Tocar  <ilya.tocar@intel.com>
34504
34505         * config/i386/avx512fintrin.h (_mm512_kmov): New.
34506         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
34507         (__builtin_ia32_kmov16): Ditto.
34508         * config/i386/i386.md (UNSPEC_KMOV): New.
34509         (kmovw): Ditto.
34510
34511 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34512
34513         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
34514         (_mm512_storeu_si512): Ditto.
34515
34516 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
34517
34518         PR target/52125
34519         * rtl.h (get_referenced_operands): Declare.
34520         * recog.c (get_referenced_operands): New function.
34521         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
34522         operands have been referenced when recording LO_SUM references.
34523
34524 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
34525
34526         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
34527
34528 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34529
34530         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
34531         Enable for generic and recent AMD targets.
34532
34533 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34534
34535         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
34536         ARG_SIZE note when adjustment was eliminated.
34537
34538 2014-01-22  Jeff Law  <law@redhat.com>
34539
34540         PR tree-optimization/59597
34541         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
34542         in file.  Accept new argument REGISTERING and use it to modify
34543         dump output appropriately.
34544         (register_jump_thread): Corresponding changes.
34545         (mark_threaded_blocks): Reinstate code to cancel unprofitable
34546         thread paths involving joiner blocks.  Add code to dump cancelled
34547         jump threading paths.
34548
34549 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
34550
34551         PR rtl-optimization/59477
34552         * lra-constraints.c (inherit_in_ebb): Process call for living hard
34553         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
34554
34555 2014-01-22  Tom Tromey  <tromey@redhat.com>
34556
34557         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
34558         PARAMS.
34559         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
34560
34561 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34562
34563         PR rtl-optimization/59896
34564         * lra-constraints.c (process_alt_operands): Check unused note for
34565         matched operands of insn with no output reloads.
34566
34567 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
34568
34569         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
34570         (mips_move_from_gpr_cost): Likewise.
34571
34572 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34573
34574         PR rtl-optimization/59858
34575         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
34576         ira_class_hard_regs_num.
34577         (process_alt_operands): Increase reject for dying matched operand.
34578
34579 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
34580
34581         PR target/59003
34582         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
34583         smaller than size, perform several stores or loads and stores
34584         at dst + count - size to store or copy all of size bytes, rather
34585         than just last modesize bytes.
34586
34587 2014-01-20  DJ Delorie  <dj@redhat.com>
34588
34589         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
34590         that CLOBBERs are REGs before propogating their values.
34591
34592 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
34593
34594         PR middle-end/59789
34595         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
34596         (cgraph_inline_failed_type): New function.
34597         * cgraph.h (DEFCIFCODE): Add type.
34598         (cgraph_inline_failed_type_t): New enum.
34599         (cgraph_inline_failed_type): New prototype.
34600         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
34601         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34602         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
34603         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
34604         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
34605         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
34606         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
34607         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
34608         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
34609         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
34610         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
34611         OPTIMIZATION_MISMATCH.
34612         * tree-inline.c (expand_call_inline): Emit errors during
34613         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
34614
34615 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34616
34617         PR target/59685
34618         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
34619         mode attribute in insn output.
34620
34621 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
34622
34623         * output.h (output_constant): Delete.
34624         * varasm.c (output_constant): Make private.
34625
34626 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
34627
34628         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
34629
34630 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34631
34632         PR middle-end/59860
34633         * tree.h (fold_builtin_strcat): New prototype.
34634         * builtins.c (fold_builtin_strcat): No longer static.  Add len
34635         argument, if non-NULL, don't call c_strlen.  Optimize
34636         directly into __builtin_memcpy instead of __builtin_strcpy.
34637         (fold_builtin_2): Adjust fold_builtin_strcat caller.
34638         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
34639
34640 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34641
34642         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34643         for SImode_address_operand operands, having only a REG argument.
34644
34645 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34646
34647         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
34648         loader name using mbig-endian.
34649         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
34650
34651 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34652
34653         * doc/invoke.texi (-march): Clarify documentation for AArch64.
34654         (-mtune): Likewise.
34655         (-mcpu): Likewise.
34656
34657 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
34658
34659         * config/aarch64/aarch64-protos.h
34660         (aarch64_cannot_change_mode_class_ptr): Declare.
34661         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
34662         aarch64_cannot_change_mode_class_ptr): New.
34663         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
34664         backend hook aarch64_cannot_change_mode_class.
34665
34666 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34667
34668         * common/config/aarch64/aarch64-common.c
34669         (aarch64_handle_option): Don't handle any option order logic here.
34670         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
34671         selected_cpu, warn on architecture version mismatch.
34672         (aarch64_override_options): Fix parsing order for option strings.
34673
34674 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34675             Iain Sandoe  <iain@codesourcery.com>
34676
34677         PR bootstrap/59496
34678         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
34679         warning.  Amend comment to reflect current functionality.
34680
34681 2014-01-20  Richard Biener  <rguenther@suse.de>
34682
34683         PR middle-end/59860
34684         * builtins.c (fold_builtin_strcat): Remove case better handled
34685         by tree-ssa-strlen.c.
34686
34687 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
34688
34689         * config/aarch64/aarch64.opt
34690         (mcpu, march, mtune): Make case-insensitive.
34691
34692 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34693
34694         PR target/59880
34695         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34696         if operands[1] is a REG or ZERO_EXTEND of a REG.
34697
34698 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
34699
34700         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
34701
34702 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
34703
34704         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
34705         long non-pic millicode calls.
34706
34707 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34708
34709         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
34710
34711 2014-01-19  Kito Cheng  <kito@0xlab.org>
34712
34713         * builtins.c (expand_movstr): Check movstr expand done or fail.
34714
34715 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34716             H.J. Lu  <hongjiu.lu@intel.com>
34717
34718         PR target/59379
34719         * config/i386/i386.md (*lea<mode>): Zero-extend return register
34720         to DImode for zero-extended addresses.
34721
34722 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
34723
34724         PR rtl-optimization/57763
34725         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
34726         on the new indirect jump_insn and increment LABEL_NUSES (label).
34727
34728 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
34729
34730         PR bootstrap/59580
34731         PR bootstrap/59583
34732         * config.gcc (x86_archs): New variable.
34733         (x86_64_archs): Likewise.
34734         (x86_cpus): Likewise.
34735         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
34736         --with-arch/--with-cpu= options.
34737         Support --with-arch=/--with-cpu={nehalem,westmere,
34738         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
34739
34740 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34741
34742         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
34743         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
34744
34745 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34746
34747         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
34748
34749 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
34750
34751         PR target/58944
34752         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
34753         clear cpp_get_options (parse_in)->warn_unused_macros for
34754         ix86_target_macros_internal with cpp_define.
34755
34756 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
34757
34758         * jump.c (delete_related_insns): Keep (use (insn))s.
34759         * reorg.c (redundant_insn): Check for barriers too.
34760
34761 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34762
34763         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
34764
34765 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
34766
34767         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
34768         call to $$dyncall when TARGET_LONG_CALLS is true.
34769
34770 2014-01-17  Jeff Law  <law@redhat.com>
34771
34772         * ree.c (combine_set_extension): Temporarily disable test for
34773         changing number of hard registers.
34774
34775 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34776
34777         PR middle-end/58125
34778         * ipa-inline-analysis.c (inline_free_summary):
34779         Do not free summary of aliases.
34780
34781 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34782
34783         PR middle-end/59706
34784         * gimplify.c (gimplify_expr): Use create_tmp_var
34785         instead of create_tmp_var_raw.  If cond doesn't have
34786         integral type, don't add the IFN_ANNOTATE builtin at all.
34787
34788 2014-01-17  Martin Jambor  <mjambor@suse.cz>
34789
34790         PR ipa/59736
34791         * ipa-cp.c (prev_edge_clone): New variable.
34792         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
34793         Also resize prev_edge_clone vector.
34794         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
34795         (ipcp_edge_removal_hook): New function.
34796         (ipcp_driver): Register ipcp_edge_removal_hook.
34797
34798 2014-01-17  Andrew Pinski  <apinski@cavium.com>
34799             Steve Ellcey  <sellcey@mips.com>
34800
34801         PR target/59462
34802         * config/mips/mips.c (mips_print_operand): Check operand mode instead
34803         of operator mode.
34804
34805 2014-01-17  Jeff Law  <law@redhat.com>
34806
34807         PR middle-end/57904
34808         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
34809         so that pass_ccp runs first.
34810
34811 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34812
34813         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
34814         (ix86_adjust_cost): Use !TARGET_XXX.
34815         (do_reorder_for_imul): Likewise.
34816         (swap_top_of_ready_list): Likewise.
34817         (ix86_sched_reorder): Likewise.
34818
34819 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34820
34821         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34822         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
34823         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
34824         (intel_memset): New.  Duplicate slm_memset.
34825         (intel_cost): New.  Duplicate slm_cost.
34826         (m_INTEL): New macro.
34827         (processor_target_table): Add "intel".
34828         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
34829         with PROCESSOR_INTEL for "intel".
34830         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
34831         PROCESSOR_SILVERMONT.
34832         (ix86_issue_rate): Likewise.
34833         (ix86_adjust_cost): Likewise.
34834         (ia32_multipass_dfa_lookahead): Likewise.
34835         (swap_top_of_ready_list): Likewise.
34836         (ix86_sched_reorder): Likewise.
34837         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
34838         instead of TARGET_OPT_AGU.
34839         * config/i386/i386.h (TARGET_INTEL): New.
34840         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
34841         (processor_type): Add PROCESSOR_INTEL.
34842         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
34843         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
34844
34845 2014-01-17  Marek Polacek  <polacek@redhat.com>
34846
34847         PR c/58346
34848         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
34849         size is zero.
34850
34851 2014-01-17  Richard Biener  <rguenther@suse.de>
34852
34853         PR tree-optimization/46590
34854         * opts.c (default_options_table): Add entries for
34855         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
34856         all enabled at -O1 but not for -Og.
34857         * common.opt (fbranch-count-reg): Remove Init(1).
34858         (fmove-loop-invariants): Likewise.
34859         (ftree-pta): Likewise.
34860
34861 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34862
34863         * config/i386/i386.c (ix86_data_alignment): For compatibility with
34864         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
34865         decls to at least the GCC 4.8 used alignments.
34866
34867         PR fortran/59440
34868         * tree-nested.c (convert_nonlocal_reference_stmt,
34869         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
34870         of GIMPLE_BIND stmts, adjust associated decls.
34871
34872 2014-01-17  Richard Biener  <rguenther@suse.de>
34873
34874         PR tree-optimization/46590
34875         * vec.h (vec<>::bseach): New member function implementing
34876         binary search according to C89 bsearch.
34877         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
34878         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
34879         bitmap pointer again.  Make accesses_in_loop a flat array.
34880         (mem_ref_obstack): New global.
34881         (outermost_indep_loop): Adjust for mem_ref->stored changes.
34882         (mark_ref_stored): Likewise.
34883         (ref_indep_loop_p_2): Likewise.
34884         (set_ref_stored_in_loop): New helper function.
34885         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
34886         (memref_free): Adjust.
34887         (record_mem_ref_loc): Simplify.
34888         (gather_mem_refs_stmt): Adjust.
34889         (sort_locs_in_loop_postorder_cmp): New function.
34890         (analyze_memory_references): Sort accesses_in_loop after
34891         loop postorder number.
34892         (find_ref_loc_in_loop_cmp): New function.
34893         (for_all_locs_in_loop): Find relevant cluster of locs in
34894         accesses_in_loop and iterate without recursion.
34895         (execute_sm): Avoid uninit warning.
34896         (struct ref_always_accessed): Simplify.
34897         (ref_always_accessed::operator ()): Likewise.
34898         (ref_always_accessed_p): Likewise.
34899         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
34900         loop postorder numbers here.
34901         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
34902         numbers.
34903
34904 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34905
34906         PR c++/57945
34907         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
34908         on decls for which assemble_alias has been called.
34909
34910 2014-01-17  Nick Clifton  <nickc@redhat.com>
34911
34912         * config/msp430/msp430.opt: (mcpu): New option.
34913         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
34914         (msp430_option_override): Parse target_cpu.  If the MCU name
34915         matches a generic string, clear target_mcu.
34916         (msp430_attr): Allow numeric interrupt values up to 63.
34917         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
34918         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
34919         option.
34920         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
34921         Add mcpu matches.
34922         * config/msp430/msp430.md (popm): Use %J rather than %I.
34923         (addsi3): Use msp430_nonimmediate_operand for operand 2.
34924         (addhi_cy_i): Use immediate_operand for operand 2.
34925         * doc/invoke.texi: Document -mcpu option.
34926
34927 2014-01-17  Richard Biener  <rguenther@suse.de>
34928
34929         PR rtl-optimization/38518
34930         * df.h (df_analyze_loop): Declare.
34931         * df-core.c: Include cfgloop.h.
34932         (df_analyze_1): Split out main part of df_analyze.
34933         (df_analyze): Adjust.
34934         (loop_inverted_post_order_compute): New function.
34935         (loop_post_order_compute): Likewise.
34936         (df_analyze_loop): New function avoiding whole-function
34937         postorder computes.
34938         * loop-invariant.c (find_defs): Use df_analyze_loop.
34939         (find_invariants): Adjust.
34940         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
34941
34942 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
34943
34944         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
34945         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
34946
34947 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
34948
34949         * ipa-ref.c (ipa_remove_stmt_references): Fix references
34950         traversal when removing references.
34951
34952 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
34953
34954         PR ipa/59775
34955         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
34956
34957 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
34958
34959         PR middle-end/56791
34960         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
34961         pushing a reload for an autoinc when we had previously reloaded an
34962         inner part of the address.
34963
34964 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
34965
34966         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
34967         field.
34968         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
34969         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
34970         when not giving up or versioning for alias only because of
34971         loop->safelen.
34972         (vect_analyze_data_ref_dependences): Set to true.
34973         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
34974         is a GIMPLE_PHI.
34975         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
34976         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
34977         to the condition.
34978
34979         PR middle-end/58344
34980         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
34981
34982         PR target/59839
34983         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
34984         operand 0 predicate for gathers, use a new pseudo as subtarget.
34985
34986 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
34987
34988         PR middle-end/59609
34989         * lra-constraints.c (process_alt_operands): Add printing debug info.
34990         Check absence of input/output reloads for matched operands too.
34991
34992 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
34993
34994         PR rtl-optimization/59835
34995         * ira.c (ira_init_register_move_cost): Increase cost for
34996         impossible modes.
34997
34998 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
34999
35000         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35001
35002 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
35003
35004         PR target/59780
35005         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35006         non-register objects.  Use gen_(high/low)part more consistently.
35007         Fix assertions.
35008
35009 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35010
35011         PR target/59844
35012         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35013         endian support, remove tests for WORDS_BIG_ENDIAN.
35014         (p8_mfvsrd_3_<mode>): Likewise.
35015         (reload_gpr_from_vsx<mode>): Likewise.
35016         (reload_gpr_from_vsxsf): Likewise.
35017         (p8_mfvsrd_4_disf): Likewise.
35018
35019 2014-01-16  Richard Biener  <rguenther@suse.de>
35020
35021         PR rtl-optimization/46590
35022         * lcm.c (compute_antinout_edge): Use postorder iteration.
35023         (compute_laterin): Use inverted postorder iteration.
35024
35025 2014-01-16  Nick Clifton  <nickc@redhat.com>
35026
35027         PR middle-end/28865
35028         * varasm.c (output_constant): Return the number of bytes actually
35029         emitted.
35030         (output_constructor_array_range): Update the field size with the
35031         number of bytes emitted by output_constant.
35032         (output_constructor_regular_field): Likewise.  Also do not
35033         complain if the total number of bytes emitted is now greater
35034         than the expected fieldpos.
35035         * output.h (output_constant): Update prototype and descriptive comment.
35036
35037 2014-01-16  Marek Polacek  <polacek@redhat.com>
35038
35039         PR middle-end/59827
35040         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35041         it is error_mark_node.
35042
35043 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35044
35045         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35046         VALID_AVX256_REG_OR_OI_MODE.
35047
35048 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35049
35050         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35051         current procedure should be profiled.
35052
35053 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35054
35055         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35056         of moving from/to the STACK_REG register class.
35057
35058 2014-01-15  Richard Henderson  <rth@redhat.com>
35059
35060         PR debug/54694
35061         * reginfo.c (global_regs_decl): Globalize.
35062         * rtl.h (global_regs_decl): Declare.
35063         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35064         reserved via global_regs.
35065
35066 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35067
35068         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35069
35070 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35071
35072         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35073         and vmulosh rather than call gen_vec_widen_smult_*.
35074         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35075         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35076         (vec_widen_smult_even_v16qi): Likewise.
35077         (vec_widen_umult_even_v8hi): Likewise.
35078         (vec_widen_smult_even_v8hi): Likewise.
35079         (vec_widen_umult_odd_v16qi): Likewise.
35080         (vec_widen_smult_odd_v16qi): Likewise.
35081         (vec_widen_umult_odd_v8hi): Likewise.
35082         (vec_widen_smult_odd_v8hi): Likewise.
35083         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35084         vmuloub rather than call gen_vec_widen_umult_*.
35085         (vec_widen_umult_lo_v16qi): Likewise.
35086         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35087         vmulosb rather than call gen_vec_widen_smult_*.
35088         (vec_widen_smult_lo_v16qi): Likewise.
35089         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35090         rather than call gen_vec_widen_umult_*.
35091         (vec_widen_umult_lo_v8hi): Likewise.
35092         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35093         rather than call gen_vec_widen_smult_*.
35094         (vec_widen_smult_lo_v8hi): Likewise.
35095
35096 2014-01-15  Jeff Law  <law@redhat.com>
35097
35098         PR tree-optimization/59747
35099         * ree.c (find_and_remove_re): Properly handle case where a second
35100         eliminated extension requires widening a copy created for elimination
35101         of a prior extension.
35102         (combine_set_extension): Ensure that the number of hard regs needed
35103         for a destination register does not change when we widen it.
35104
35105 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35106
35107         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35108         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35109         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35110         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35111         (avr-*-rtems*): Likewise.
35112         (bfin*-rtems*): Likewise.
35113         (moxie-*-rtems*): Likewise.
35114         (h8300-*-rtems*): Likewise.
35115         (i[34567]86-*-rtems*): Likewise.
35116         (lm32-*-rtems*): Likewise.
35117         (m32r-*-rtems*): Likewise.
35118         (m68k-*-rtems*): Likewise.
35119         (microblaze*-*-rtems*): Likewise.
35120         (mips*-*-rtems*): Likewise.
35121         (powerpc-*-rtems*): Likewise.
35122         (sh-*-rtems*): Likewise.
35123         (sparc-*-rtems*): Likewise.
35124         (sparc64-*-rtems*): Likewise.
35125         (v850-*-rtems*): Likewise.
35126         (m32c-*-rtems*): Likewise.
35127
35128 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35129
35130         PR rtl-optimization/59511
35131         * ira.c (ira_init_register_move_cost): Use memory costs for some
35132         cases of register move cost calculations.
35133         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35134         instead of BB frequency.
35135         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35136         * lra-assigns.c (find_hard_regno_for): Ditto.
35137
35138 2014-01-15  Richard Biener  <rguenther@suse.de>
35139
35140         PR tree-optimization/59822
35141         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35142         (vectorizable_load): Use it to hoist defs of uses of invariant
35143         loads out of the loop.
35144
35145 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35146             Kugan Vivekanandarajah  <kuganv@linaro.org>
35147
35148         PR target/59695
35149         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35150         truncation.
35151
35152 2014-01-15  Richard Biener  <rguenther@suse.de>
35153
35154         PR rtl-optimization/59802
35155         * lcm.c (compute_available): Use inverted postorder to seed
35156         the initial worklist.
35157
35158 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35159
35160         PR target/59803
35161         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35162         ADDR_REGS for invalid symrefs in non-PIC code.
35163
35164 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35165
35166         PR other/58712
35167         * builtins.c (determine_block_size): Initialize *probable_max_size
35168         even if len_rtx is CONST_INT.
35169
35170 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35171
35172         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35173         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35174         (cortexa53_tunings): Likewise.
35175         (aarch64_sched_issue_rate): New function.
35176         (TARGET_SCHED_ISSUE_RATE): Define.
35177
35178 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35179
35180         * ira-costs.c (find_costs_and_classes): Add missed
35181         ira_init_register_move_cost_if_necessary.
35182
35183 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35184
35185         PR target/59787
35186         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35187
35188 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35189
35190         PR target/59794
35191         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35192         to indicate if type is used for function return value.  Warn ABI
35193         change if the vector mode isn't available for function return value.
35194         (ix86_function_arg_advance): Pass false to type_natural_mode.
35195         (ix86_function_arg): Likewise.
35196         (ix86_gimplify_va_arg): Likewise.
35197         (function_arg_32): Don't warn ABI change.
35198         (ix86_function_value): Pass true to type_natural_mode.
35199         (ix86_return_in_memory): Likewise.
35200         (ix86_struct_value_rtx): Removed.
35201         (TARGET_STRUCT_VALUE_RTX): Likewise.
35202
35203 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35204
35205         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35206         converting a conditional jump into a conditional return.
35207
35208 2014-01-14  Richard Biener  <rguenther@suse.de>
35209
35210         PR tree-optimization/58921
35211         PR tree-optimization/59006
35212         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35213         hoisting invariant stmts.
35214         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35215         invariant loads on the preheader edge if possible.
35216
35217 2014-01-14  Joey Ye  <joey.ye@arm.com>
35218
35219         * doc/plugin.texi (Building GCC plugins): Update to C++.
35220
35221 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35222
35223         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35224         (_mm_rcp28_round_ss): Ditto.
35225         (_mm_rsqrt28_round_sd): Ditto.
35226         (_mm_rsqrt28_round_ss): Ditto.
35227         (_mm_rcp28_sd): Ditto.
35228         (_mm_rcp28_ss): Ditto.
35229         (_mm_rsqrt28_sd): Ditto.
35230         (_mm_rsqrt28_ss): Ditto.
35231         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35232         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35233         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35234         (IX86_BUILTIN_RCP28SD): Ditto.
35235         (IX86_BUILTIN_RCP28SS): Ditto.
35236         (IX86_BUILTIN_RSQRT28SD): Ditto.
35237         (IX86_BUILTIN_RSQRT28SS): Ditto.
35238         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35239         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35240         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35241         (ix86_expand_special_args_builtin): Expand new FTYPE.
35242         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35243         (srcp14<mode>): Make insn unary.
35244         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35245         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35246         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35247         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35248         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35249         Fix rounding: make it SAE only.
35250         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35251         Ditto.
35252         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35253         Ditto.
35254         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35255         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35256         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35257         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35258         (round_saeonly_mask_scalar_operand4): Ditto.
35259         (round_saeonly_mask_scalar_op3): Ditto.
35260         (round_saeonly_mask_scalar_op4): Ditto.
35261
35262 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35263
35264         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35265         Implement -maltivec=be for vec_insert and vec_extract.
35266
35267 2014-01-10  DJ Delorie  <dj@redhat.com>
35268
35269         * config/msp430/msp430.md (call_internal): Don't allow memory
35270         references with SP as the base register.
35271         (call_value_internal): Likewise.
35272         * config/msp430/constraints.md (Yc): New.  For memory references
35273         that don't use SP as a base register.
35274
35275         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35276         "an integer without a # prefix"
35277         * config/msp430/msp430.md (epilogue_helper): Use it.
35278
35279 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35280
35281         PR target/59617
35282         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35283         AVX512F gather builtins.
35284         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35285         on gather decls with INTEGER_TYPE masktype.
35286         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35287         directly into the builtin rather than hoisting it before loop.
35288
35289         PR tree-optimization/59387
35290         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35291         (scev_const_prop): If folded_casts and type has undefined overflow,
35292         use force_gimple_operand instead of force_gimple_operand_gsi and
35293         for each added stmt if it is assign with
35294         arith_code_with_undefined_signed_overflow, call
35295         rewrite_to_defined_overflow.
35296         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35297         gimple-fold.h instead.
35298         (arith_code_with_undefined_signed_overflow,
35299         rewrite_to_defined_overflow): Moved to ...
35300         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35301         rewrite_to_defined_overflow): ... here.  No longer static.
35302         Include gimplify-me.h.
35303         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35304         rewrite_to_defined_overflow): New prototypes.
35305
35306 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35307
35308         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35309
35310 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35311
35312         * builtins.c (get_object_alignment_2): Minor tweak.
35313         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35314
35315 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35316
35317         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35318         optimized non constant lengths.
35319
35320 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35321
35322         PR libgomp/59194
35323         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35324         load as __atomic_load_N if possible.
35325
35326 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35327
35328         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35329         target parameter.
35330         (rs6000_expand_builtin): Adjust call.
35331
35332 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35333
35334         PR target/58115
35335         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35336         * config/rs6000/rs6000.c: Include target-globals.h.
35337         (rs6000_set_current_function): Instead of doing target_reinit
35338         unconditionally, use save_target_globals_default_opts and
35339         restore_target_globals.
35340
35341         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35342         FPSCR.
35343         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35344         (rs6000_expand_builtin): Handle mffs and mtfsf.
35345         (rs6000_init_builtins): Define mffs and mtfsf.
35346         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35347         (rs6000_mffs): New pattern.
35348         (rs6000_mtfsf): New pattern.
35349
35350 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
35351
35352         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35353         Start narrowing with START.  Apply candidate-use pair
35354         and check overall cost in narrowing.
35355         (iv_ca_prune): Pass new argument.
35356
35357 2014-01-10  Jeff Law  <law@redhat.com>
35358
35359         PR middle-end/59743
35360         * ree.c (combine_reaching_defs): Ensure the defining statement
35361         occurs before the extension when optimizing extensions with
35362         different source and destination hard registers.
35363
35364 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35365
35366         PR ipa/58585
35367         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35368         vtables into the type inheritance graph.
35369
35370 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35371
35372         PR rtl-optimization/59754
35373         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35374         modes in the REGNO != REGNO case.
35375
35376 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35377
35378         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35379
35380 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35381
35382         PR tree-optimization/59745
35383         * tree-predcom.c (tree_predictive_commoning_loop): Call
35384         free_affine_expand_cache if giving up because components is NULL.
35385
35386         * target-globals.c (save_target_globals): Allocate < 4KB structs using
35387         GC in payload of target_globals struct instead of allocating them on
35388         the heap and the larger structs separately using GC.
35389         * target-globals.h (struct target_globals): Make regs, hard_regs,
35390         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35391         of GTY((skip)) and change type to void *.
35392         (reset_target_globals): Cast loads from those fields to corresponding
35393         types.
35394
35395 2014-01-10  Steve Ellcey  <sellcey@mips.com>
35396
35397         PR plugins/59335
35398         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
35399         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
35400         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
35401
35402 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
35403
35404         PR target/59744
35405         * aarch64-modes.def (CC_Zmode): New flags mode.
35406         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
35407         represents an equality.
35408         (aarch64_get_condition_code): Handle CC_Zmode.
35409         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
35410
35411 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35412
35413         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
35414         extraction in good case.
35415
35416 2014-01-10  Richard Biener  <rguenther@suse.de>
35417
35418         PR tree-optimization/59374
35419         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
35420         checking after SLP discovery.  Mark stmts not participating
35421         in any SLP instance properly.
35422
35423 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35424
35425         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
35426         when handling a SET rtx.
35427
35428 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35429
35430         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
35431         (cortex-a57): Likewise.
35432         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
35433
35434 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35435
35436         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
35437         non-iwmmxt builtins.
35438
35439 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35440
35441         PR ipa/58252
35442         PR ipa/59226
35443         * ipa-devirt.c record_target_from_binfo): Take as argument
35444         stack of binfos and lookup matching one for virtual inheritance.
35445         (possible_polymorphic_call_targets_1): Update.
35446
35447 2014-01-10  Huacai Chen  <chenhc@lemote.com>
35448
35449         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
35450         kernel strings for Loongson-2E/2F/3A.
35451
35452 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35453
35454         PR middle-end/59670
35455         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
35456         is_gimple_call before calling gimple_call_internal_p.
35457
35458 2014-01-09  Steve Ellcey  <sellcey@mips.com>
35459
35460         * Makefile.in (TREE_FLOW_H): Remove.
35461         (TREE_SSA_H): Add file names from tree-flow.h.
35462         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
35463         * tree.h: Remove tree-flow.h reference.
35464         * hash-table.h: Remove tree-flow.h reference.
35465         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
35466         reference with tree-ssa-loop.h.
35467
35468 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35469
35470         * doc/invoke.texi: Add -maltivec={be,le} options, and document
35471         default element-order behavior for -maltivec.
35472         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
35473         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
35474         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
35475         when targeting big endian, at least for now.
35476         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
35477
35478 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35479
35480         PR middle-end/47735
35481         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
35482         var satisfies use_register_for_decl, just take into account type
35483         alignment, rather than decl alignment.
35484
35485         PR tree-optimization/59622
35486         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
35487         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
35488         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
35489         Don't devirtualize for inplace at all.  For targets.length () == 1,
35490         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
35491
35492 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35493
35494         * config/i386/i386.md (cpu): Remove the unused btver1.
35495
35496 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35497
35498         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
35499
35500 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35501
35502         PR target/58115
35503         * tree-core.h (struct target_globals): New forward declaration.
35504         (struct tree_target_option): Add globals field.
35505         * tree.h (TREE_TARGET_GLOBALS): Define.
35506         (prepare_target_option_nodes_for_pch): New prototype.
35507         * target-globals.h (struct target_globals): Define even if
35508         !SWITCHABLE_TARGET.
35509         * tree.c (prepare_target_option_node_for_pch,
35510         prepare_target_option_nodes_for_pch): New functions.
35511         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
35512         * config/i386/i386.c: Include target-globals.h.
35513         (ix86_set_current_function): Instead of doing target_reinit
35514         unconditionally, use save_target_globals_default_opts and
35515         restore_target_globals.
35516
35517 2014-01-09  Richard Biener  <rguenther@suse.de>
35518
35519         PR tree-optimization/59715
35520         * tree-cfg.h (split_critical_edges): Declare.
35521         * tree-cfg.c (split_critical_edges): Export.
35522         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
35523
35524 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
35525
35526         * cfgexpand.c (expand_stack_vars): Optionally disable
35527         asan stack protection.
35528         (expand_used_vars): Likewise.
35529         (partition_stack_vars): Likewise.
35530         * asan.c (asan_emit_stack_protection): Optionally disable
35531         after return stack usage.
35532         (instrument_derefs): Optionally disable memory access instrumentation.
35533         (instrument_builtin_call): Likewise.
35534         (instrument_strlen_call): Likewise.
35535         (asan_protect_global): Optionally disable global variables protection.
35536         * doc/invoke.texi: Added doc for new options.
35537         * params.def: Added new options.
35538         * params.h: Likewise.
35539
35540 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35541
35542         PR rtl-optimization/59724
35543         * ifcvt.c (cond_exec_process_if_block): Don't call
35544         flow_find_head_matching_sequence with 0 longest_match.
35545         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
35546         non-active insns if !stop_after.
35547         (try_head_merge_bb): Revert 2014-01-07 changes.
35548
35549 2014-01-08  Jeff Law  <law@redhat.com>
35550
35551         * ree.c (get_sub_rtx): New function, extracted from...
35552         (merge_def_and_ext): Here.
35553         (combine_reaching_defs): Use get_sub_rtx.
35554
35555 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
35556
35557         * cgraph.h (varpool_variable_node): Do not choke on null node.
35558
35559 2014-01-08  Catherine Moore  <clm@codesourcery.com>
35560
35561         * config/mips/mips.md (simple_return): Attempt to use JRC
35562         for microMIPS.
35563         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
35564
35565 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35566
35567         PR rtl-optimization/59137
35568         * reorg.c (steal_delay_list_from_target): Call update_block for
35569         elided insns.
35570         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
35571
35572 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35573
35574         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
35575         two duplicate entries.
35576
35577 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35578
35579         Revert:
35580         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
35581
35582         * config/mips/mips.c (mips_truncated_op_cost): New function.
35583         (mips_rtx_costs): Adjust test for BADDU.
35584         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
35585
35586         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
35587
35588         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
35589         (*baddu_si): ...this new pattern.
35590
35591 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35592
35593         PR ipa/59722
35594         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
35595
35596 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35597
35598         PR middle-end/57748
35599         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
35600         inner_reference_p.
35601         (expand_expr, expand_normal): Adjust.
35602         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
35603         inner_reference_p. Use inner_reference_p to expand inner references.
35604         (store_expr): Adjust.
35605         * cfgexpand.c (expand_call_stmt): Adjust.
35606
35607 2014-01-08  Rong Xu  <xur@google.com>
35608
35609         * gcov-io.c (gcov_var): Move from gcov-io.h.
35610         (gcov_position): Ditto.
35611         (gcov_is_error): Ditto.
35612         (gcov_rewrite): Ditto.
35613         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
35614         only part to libgcc/libgcov.h.
35615
35616 2014-01-08  Marek Polacek  <polacek@redhat.com>
35617
35618         PR middle-end/59669
35619         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
35620
35621 2014-01-08  Marek Polacek  <polacek@redhat.com>
35622
35623         PR sanitizer/59667
35624         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
35625
35626 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35627
35628         PR rtl-optimization/59649
35629         * stor-layout.c (get_mode_bounds): For BImode return
35630         0 and STORE_FLAG_VALUE.
35631
35632 2014-01-08  Richard Biener  <rguenther@suse.de>
35633
35634         PR middle-end/59630
35635         * gimple.h (is_gimple_builtin_call): Remove.
35636         (gimple_builtin_call_types_compatible_p): New.
35637         (gimple_call_builtin_p): New overload.
35638         * gimple.c (is_gimple_builtin_call): Remove.
35639         (validate_call): Rename to ...
35640         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
35641         check return types.
35642         (validate_type): New static function.
35643         (gimple_call_builtin_p): New overload and adjust.
35644         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
35645         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
35646         (gimple_fold_stmt_to_constant_1): Likewise.
35647         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
35648
35649 2014-01-08  Richard Biener  <rguenther@suse.de>
35650
35651         PR middle-end/59471
35652         * gimplify.c (gimplify_expr): Gimplify register-register type
35653         VIEW_CONVERT_EXPRs to separate stmts.
35654
35655 2014-01-07  Jeff Law  <law@redhat.com>
35656
35657         PR middle-end/53623
35658         * ree.c (combine_set_extension): Handle case where source
35659         and destination registers in an extension insn are different.
35660         (combine_reaching_defs): Allow source and destination registers
35661         in extension to be different under limited circumstances.
35662         (add_removable_extension): Remove restriction that the
35663         source and destination registers in the extension are the same.
35664         (find_and_remove_re): Emit a copy from the extension's
35665         destination to its source after the defining insn if
35666         the source and destination registers are different.
35667
35668         PR middle-end/59285
35669         * ifcvt.c (merge_if_block): If we are merging a block with more than
35670         one successor with a block with no successors, remove any BARRIER
35671         after the second block.
35672
35673 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
35674
35675         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
35676
35677 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
35678
35679         PR target/59652
35680         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
35681         for 14-bit register offsets when INT14_OK_STRICT is false.
35682
35683 2014-01-07  Roland Stigge  <stigge@antcom.de>
35684             Michael Meissner  <meissner@linux.vnet.ibm.com>
35685
35686         PR 57386/target
35687         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
35688         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
35689
35690 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
35691
35692         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
35693         -mcpu.
35694
35695 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
35696
35697         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
35698         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
35699         rtx is const0_rtx or not.
35700
35701 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
35702
35703         PR target/58115
35704         * target-globals.c (save_target_globals): Remove this_fn_optab
35705         handling.
35706         * toplev.c: Include optabs.h.
35707         (target_reinit): Temporarily restore the global options if another
35708         set of options are in force.
35709
35710 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
35711
35712         PR rtl-optimization/58668
35713         * cfgcleanup.c (flow_find_cross_jump): Don't count
35714         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
35715         to determine what is counted.
35716         (flow_find_head_matching_sequence): Use active_insn_p to determine
35717         what is counted.
35718         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
35719         counting change.
35720         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
35721         determine what is counted.
35722
35723         PR tree-optimization/59643
35724         * tree-predcom.c (split_data_refs_to_components): If one dr is
35725         read and one write, determine_offset fails and the write isn't
35726         in the bad component, just put the read into the bad component.
35727
35728 2014-01-07  Mike Stump  <mikestump@comcast.net>
35729             Jakub Jelinek  <jakub@redhat.com>
35730
35731         PR pch/59436
35732         * tree-core.h (struct tree_optimization_option): Change optabs
35733         type from unsigned char * to void *.
35734         * optabs.c (init_tree_optimization_optabs): Adjust
35735         TREE_OPTIMIZATION_OPTABS initialization.
35736
35737 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
35738
35739         PR target/59644
35740         * config/i386/i386.h (struct machine_function): Add
35741         no_drap_save_restore field.
35742         * config/i386/i386.c (ix86_save_reg): Use
35743         !cfun->machine->no_drap_save_restore instead of
35744         crtl->stack_realign_needed.
35745         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
35746         this function clears frame_pointer_needed.  Set
35747         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
35748         and DRAP reg is needed.
35749
35750 2014-01-06  Marek Polacek  <polacek@redhat.com>
35751
35752         PR c/57773
35753         * doc/implement-c.texi: Mention that other integer types are
35754         permitted as bit-field types in strictly conforming mode.
35755
35756 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
35757
35758         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
35759         is newly allocated.
35760
35761 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
35762
35763         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
35764
35765 2014-01-06  Martin Jambor  <mjambor@suse.cz>
35766
35767         PR ipa/59008
35768         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
35769         to int.
35770         * ipa-prop.c (ipa_print_node_params): Fix indentation.
35771
35772 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
35773
35774         PR debug/59350
35775         PR debug/59510
35776         * var-tracking.c (add_stores): Preserve the value of the source even if
35777         we don't record the store.
35778
35779 2014-01-06  Terry Guo  <terry.guo@arm.com>
35780
35781         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
35782
35783 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
35784
35785         PR bootstrap/59541
35786         * config/darwin.c (darwin_function_section): Adjust return values to
35787         correspond to optimisation changes made in r206070.
35788
35789 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
35790
35791         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
35792         from prefetch_block tune setting.
35793         (nocona_cost): Correct size of prefetch block to 64.
35794
35795 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
35796
35797         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
35798         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
35799         used to save the static chain register in the computation of the offset
35800         from which the FP registers need to be restored.
35801
35802 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
35803
35804         PR tree-optimization/59519
35805         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
35806         ICE if get_current_def (current_new_name) is already non-NULL, as long
35807         as it is a phi result of some other phi in *new_exit_bb that has
35808         the same argument.
35809
35810         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
35811         or vmovdqu* for misaligned_operand.
35812         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
35813         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
35814         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
35815         aligned_mem for AVX512F masked aligned load and store builtins and for
35816         non-temporal moves.
35817
35818 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
35819
35820         PR tree-optimization/59651
35821         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
35822         Address range for negative step should be added by TYPE_SIZE_UNIT.
35823
35824 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
35825
35826         * config/m68k/m68k.c (handle_move_double): Handle pushes with
35827         overlapping registers also for registers other than the stack pointer.
35828
35829 2014-01-03  Marek Polacek  <polacek@redhat.com>
35830
35831         PR other/59661
35832         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
35833         __builtin_FILE.
35834
35835 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
35836
35837         PR target/59625
35838         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
35839         asm goto as jump.
35840
35841         * config/i386/i386.md (MODE_SIZE): New mode attribute.
35842         (push splitter): Use <P:MODE_SIZE> instead of
35843         GET_MODE_SIZE (<P:MODE>mode).
35844         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
35845         (mov -1, reg peephole2): Likewise.
35846         * config/i386/sse.md (*mov<mode>_internal,
35847         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
35848         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
35849         *<code><mode>3, *andnot<mode>3<mask_name>,
35850         <mask_codefor><code><mode>3<mask_name>): Likewise.
35851         * config/i386/subst.md (mask_mode512bit_condition,
35852         sd_mask_mode512bit_condition): Likewise.
35853
35854 2014-01-02  Xinliang David Li  <davidxl@google.com>
35855
35856         PR tree-optimization/59303
35857         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
35858         (dump_predicates): Better output format.
35859         (pred_equal_p): New function.
35860         (is_neq_relop_p): Ditto.
35861         (is_neq_zero_form_p): Ditto.
35862         (pred_expr_equal_p): Ditto.
35863         (pred_neg_p): Ditto.
35864         (simplify_pred): Ditto.
35865         (simplify_preds_2): Ditto.
35866         (simplify_preds_3): Ditto.
35867         (simplify_preds_4): Ditto.
35868         (simplify_preds): Ditto.
35869         (push_pred): Ditto.
35870         (push_to_worklist): Ditto.
35871         (get_pred_info_from_cmp): Ditto.
35872         (is_degenerated_phi): Ditto.
35873         (normalize_one_pred_1): Ditto.
35874         (normalize_one_pred): Ditto.
35875         (normalize_one_pred_chain): Ditto.
35876         (normalize_preds): Ditto.
35877         (normalize_cond_1): Remove function.
35878         (normalize_cond): Ditto.
35879         (is_gcond_subset_of): Ditto.
35880         (is_subset_of_any): Ditto.
35881         (is_or_set_subset_of): Ditto.
35882         (is_and_set_subset_of): Ditto.
35883         (is_norm_cond_subset_of): Ditto.
35884         (pred_chain_length_cmp): Ditto.
35885         (convert_control_dep_chain_into_preds): Type change.
35886         (find_predicates): Ditto.
35887         (find_def_preds): Ditto.
35888         (destroy_predicates_vecs): Ditto.
35889         (find_matching_predicates_in_rest_chains): Ditto.
35890         (use_pred_not_overlap_with_undef_path_pred): Ditto.
35891         (is_pred_expr_subset): Ditto.
35892         (is_pred_chain_subset_of): Ditto.
35893         (is_included_in): Ditto.
35894         (is_superset_of): Ditto.
35895
35896 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35897
35898         Update copyright years.
35899
35900 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35901
35902         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
35903         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
35904         config/arc/arc.md, config/arc/arc.opt,
35905         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
35906         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
35907         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
35908         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
35909         config/linux-protos.h, config/linux.c, config/winnt-c.c,
35910         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
35911         vtable-verify.c, vtable-verify.h: Use the standard form for the
35912         copyright notice.
35913
35914 2014-01-02  Tobias Burnus  <burnus@net-b.de>
35915
35916         * gcc.c (process_command): Update copyright notice dates.
35917         * gcov-dump.c: Ditto.
35918         * gcov.c: Ditto.
35919         * doc/cpp.texi: Bump @copying's copyright year.
35920         * doc/cppinternals.texi: Ditto.
35921         * doc/gcc.texi: Ditto.
35922         * doc/gccint.texi: Ditto.
35923         * doc/gcov.texi: Ditto.
35924         * doc/install.texi: Ditto.
35925         * doc/invoke.texi: Ditto.
35926
35927 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35928
35929         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
35930
35931 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
35932
35933         * config/i386/sse.md (*mov<mode>_internal): Guard
35934         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
35935
35936         PR rtl-optimization/59647
35937         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
35938         new_rtx into UNSIGNED_FLOAT rtxes.
35939 \f
35940 Copyright (C) 2014 Free Software Foundation, Inc.
35941
35942 Copying and distribution of this file, with or without modification,
35943 are permitted in any medium without royalty provided the copyright
35944 notice and this notice are preserved.