re PR tree-optimization/63641 (Invalid shift leads to incorrect code on 32-bit system)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
2
3         PR tree-optimization/63641
4         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
5         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
6
7 2014-10-25  Alan Modra  <amodra@gmail.com>
8
9         PR rtl-optimization/63615
10         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
11         decomposing PLUS or MINUS if operands are not placed adjacent
12         in the "ops" array.
13
14 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
15
16         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
17         not allow e500 double in registers not satisyfing
18         SPE_SIMD_REGNO_P.
19
20 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
21
22         * dwarf2out.c (declare_in_namespace): Only emit external
23         declarations in the local scope once.
24
25 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
26
27         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
28
29 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
30
31         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
32         update uses to use new macro arguments.
33         (__LD3_LANE_FUNC): Likewise.
34         (__LD4_LANE_FUNC): Likewise.
35
36 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
37
38         * config/aarch64/aarch64-builtins.c
39         (aarch64_types_loadstruct_lane_qualifiers): Define.
40         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
41         ld4_lane): New builtins.
42         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
43         New pattern.
44         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
45         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
46         (aarch64_ld2_lane<mode>): New expand.
47         (aarch64_ld3_lane<mode>): Likewise.
48         (aarch64_ld4_lane<mode>): Likewise.
49         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
50         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
51
52 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
53
54         * avr-protos.h (avr_out_sign_extend): New.
55         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
56         (avr_out_sign_extend): New function.
57         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
58         (extendhisi2, extendpsisi2): Use it.
59         (adjust_len) [sext]: New.
60
61 2014-10-24  Martin Liska  <mliska@suse.cz>
62
63         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
64         added.
65
66 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
67
68         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
69         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
70         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
71         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
72
73 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
74
75         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
76         do while (0).
77         * config/aarch64/aarch64.c (is_mem_p): Delete.
78         (is_memory_op): Rename to...
79         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
80         (dep_between_memop_and_curr): Assert that the input is a SET.
81         (aarch64_madd_needs_nop): Add comment.  Do not call
82         dep_between_memop_and_curr on NULL body.
83         (aarch64_final_prescan_insn): Add comment.
84         Include rtl-iter.h.
85
86 2014-10-24  Richard Biener  <rguenther@suse.de>
87
88         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
89         to genmatch BUILD_LIBS instead.
90
91 2014-10-24  Richard Biener  <rguenther@suse.de>
92
93         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
94         and build_call_expr_loc.
95         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
96         non_lvalue_loc to build it for GENERIC.
97         (decision_tree::gen_generic): Add location argument to
98         generic_simplify prototype.
99         (capture_info): New class.
100         (capture_info::capture_info): New constructor.
101         (capture_info::walk_match): New method.
102         (capture_info::walk_result): New method.
103         (capture_info::walk_c_expr): New method.
104         (dt_simplify::gen): Handle preserving side-effects for
105         GENERIC code generation.
106         (decision_tree::gen_generic): Do not reject operands
107         with TREE_SIDE_EFFECTS.
108         * generic-match.h: New file.
109         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
110         * match.pd: Add some constant folding patterns from fold-const.c.
111         * fold-const.c: Include generic-match.h.
112         (fold_unary_loc): Dispatch to generic_simplify.
113         (fold_ternary_loc): Likewise.
114         (fold_binary_loc): Likewise.  Remove patterns now implemented
115         by generic_simplify.
116         * gimple-fold.c (replace_stmt_with_simplification): New function.
117         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
118         (no_follow_ssa_edges): New function.
119         (fold_stmt): New overload with valueization hook.  Use
120         no_follow_ssa_edges for the overload without hook.
121         (fold_stmt_inplace): Likewise.
122         * gimple-fold.h (no_follow_ssa_edges): Declare.
123
124 2014-10-24  Felix Yang  <felix.yang@huawei.com>
125         Jiji Jiang  <jiangjiji@huawei.com>
126
127         PR target/63173
128         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
129         (__LD3R_FUNC): Ditto.
130         (__LD4R_FUNC): Ditto.
131         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
132          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
133          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
134          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
135          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
136          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
137         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
138          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
139          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
140          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
141          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
142          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
143         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
144          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
145          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
146          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
147          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
148          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
149         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
150         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
151         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
152         builtins.
153         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
154         (aarch64_simd_ld3r<mode>): Likewise.
155         (aarch64_simd_ld4r<mode>): Likewise.
156         (aarch64_ld2r<mode>): New expand.
157         (aarch64_ld3r<mode>): Likewise.
158         (aarch64_ld4r<mode>): Likewise.
159
160 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
161
162         * rtlanal.c (get_base_term): Handle SCRATCH.
163
164 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
165
166         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
167         register pressure.
168
169 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
170
171         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
172         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
173         (max_issue, choose_ready, sched_init): Update.
174
175 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
176
177         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
178         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
179         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
180         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
181         (print_rank_for_schedule_stats): Print out elements of ready list that
182         ended up on their respective places due to each of the sorting
183         heuristics.
184         (ready_sort): Update.
185         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
186         (schedule_block): Update.
187
188 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
189
190         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
191         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
192         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
193         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
194         (model_start_schedule): Update.
195         (sched_pressure_start_bb): New static function.  Calculate
196         sched_class_regs_num.
197         (schedule_block): Use it.
198         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
199
200 2014-10-24  Richard Biener  <rguenther@suse.de>
201
202         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
203         host library and make sure to pull in the required libintl
204         and libiconv dependencies.
205
206 2014-10-24  Richard Biener  <rguenther@suse.de>
207
208         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
209
210 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
211
212         PR bootstrap/63632
213         * collect2.c (main): Filter out -fno-lto.
214
215 2014-10-24  Martin Liska  <mliska@suse.cz>
216
217         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
218         division by zero in dumps.
219         (sem_item_optimizer::merge_classes): Ditto.
220
221 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
222
223         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
224
225 2014-10-23  Ian Lance Taylor  <iant@google.com>
226
227         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
228
229 2014-10-23  Ian Lance Taylor  <iant@google.com>
230
231         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
232
233 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
234
235         PR debug/63623
236         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
237         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
238         instead of only handling autoinc in dest if it is a MEM.
239         (vt_stack_adjustments): Fix up formatting.
240
241 2014-10-23  DJ Delorie  <dj@redhat.com>
242
243         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
244         independend of -mlarge.
245         * config/msp430/constraints.md (Ys): Update comment.
246
247 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
248
249         PR target/63534
250         PR target/63618
251         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
252         while it is pseudo.
253         * dse.c (deletable_insn_p): Likewise.
254
255 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
256
257         * config/avr/avr.c: Fix GNU coding rules and typos.
258         * config/avr/avr.h: Dito.
259         * config/avr/avr-c.c: Dito.
260         * config/avr/avr.md: Dito.
261
262 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
263
264         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
265         New.
266         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
267         iterator.
268         (define_expand "abs<mode>2"): Ditto.
269
270 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
271
272         * tree-core.h (tree_var_decl): Extend `function_code' field
273         by one bit, move `regdecl_flag' field to ...
274         (tree_decl_with_vis): Here.
275         * tree.h (DECL_STATIC_CHAIN): Update struct name.
276
277 2014-10-23  Richard Biener  <rguenther@suse.de>
278
279         * Makefile.in (BUILD_CPPLIB): Add.
280         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
281         Drop LIBIBERTY.
282
283 2014-10-23  Richard Biener  <rguenther@suse.de>
284
285         * fold-const.c (fold_binary_loc): Preserve side-effects of
286         X - X when simplifying to 0.
287         * stor-layout.c (finish_bitfield_representative): Strip
288         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
289
290 2014-10-22  Richard Biener  <rguenther@suse.de>
291             Tobias Burnus <burnus@net-b.de>
292
293         PR lto/63603
294         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
295
296 2014-10-22  Dehao Chen  <dehao@google.com>
297
298         * auto-profile.c: Change order of header files.
299
300 2014-10-22  Guozhi Wei  <carrot@google.com>
301
302         PR tree-optimization/63530
303         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
304         pointer alignment according to DR_MISALIGNMENT.
305
306 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
307
308         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
309
310 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
311
312         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
313         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
314         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
315         * dominance.h: New.  Add prototypes for dominance.c.
316         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
317         * cfghooks.h: (struct profile_record) Relocate here.
318         Relocate 2 prototypes from basic-block.h.
319         * basic-block.h: Move prototypes and struct to new header files.
320         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
321         * rtl.h: Move a few prototypes to new header files.
322         * cfgcleanup.c (merge_memattrs): Make static.
323         * genopinit.c (main): Add predict.h to list of includes.
324         * predict.h: Update prototype list to match predict.c.
325         * predict.c (maybe_hot_count_p): Export.
326         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
327         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
328         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
329         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
330         * profile.h: Adjust prototypes.
331         * ifcvt.h: New.  Relocate struct ce_if_block here.
332         * ifcvt.c: Include ifcvt.h.
333         * config/frv/frv.c: Include ifcvt.h.
334         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
335
336 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
337
338         * lra.c (lra): Remove call to recog_init.
339         * config/i386/i386.md (preferred_for_speed): New attribute
340         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
341         "enabled".  Remove check for sched1.
342
343 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
344
345         * recog.h (recog_data_d): Remove enabled_alternatives.
346         * recog.c (extract_insn): Don't set it.
347         * reload.c (find_reloads): Call get_enabled_alternatives.
348
349 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
350
351         * recog.h (constrain_operands): Add an alternative_mask parameter.
352         (constrain_operands_cached): Likewise.
353         (get_preferred_alternatives): Declare new form.
354         * recog.c (get_preferred_alternatives): New bb-taking instance.
355         (constrain_operands): Take the set of available alternatives as
356         a parameter.
357         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
358         (extract_constrain_insn_cached): Update calls to constrain_operands.
359         * caller-save.c (reg_save_code): Likewise.
360         * ira.c (setup_prohibited_mode_move_regs): Likewise.
361         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
362         * ree.c (combine_reaching_defs): Likewise.
363         * reload.c (can_reload_into): Likewise.
364         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
365         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
366         (emit_insn_if_valid_for_reload): Likewise.
367         * reorg.c (fill_slots_from_thread): Likewise.
368         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
369         * config/pa/pa.c (pa_can_combine_p): Likewise.
370         * config/rl78/rl78.c (insn_ok_now): Likewise.
371         * config/sh/sh.md (define_peephole2): Likewise.
372         * final.c (final_scan_insn): Update call to constrain_operands_cached.
373
374 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
375
376         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
377         attributes.
378         * genattr.c (main): Handle "preferred_for_size" and
379         "preferred_for_speed" in the same way as "enabled".
380         * recog.h (bool_attr): New enum.
381         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
382         (get_preferred_alternatives, check_bool_attrs): Declare.
383         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
384         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
385         New functions.
386         (get_enabled_alternatives): Use get_bool_attr_mask.
387         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
388         instead of recog_data.enabled_alternatives.
389         * ira.c (ira_setup_alts): Likewise.
390         * postreload.c (reload_cse_simplify_operands): Likewise.
391         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
392         * ira-lives.c (preferred_alternatives): New variable.
393         (process_bb_node_lives): Set it.
394         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
395         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
396         of recog_data.enabled_alternatives.
397         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
398         to preferred_alternatives.
399         * lra-constraints.c (process_alt_operands): Update accordingly.
400         * lra.c (lra_set_insn_recog_data): Likewise.
401         (lra_update_insn_recog_data): Assert check_bool_attrs.
402
403 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
404
405         * recog.h (extract_constrain_insn): Declare.
406         * recog.c (extract_constrain_insn): New function.
407         * lra.c (check_rtl): Use it.
408         * postreload.c (reload_cse_simplify_operands): Likewise.
409         * reg-stack.c (check_asm_stack_operands): Likewise.
410         (subst_asm_stack_regs): Likewise.
411         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
412         * regrename.c (build_def_use): Likewise.
413         * sel-sched.c (get_reg_class): Likewise.
414         * config/arm/arm.c (note_invalid_constants): Likewise.
415         * config/s390/predicates.md (execute_operation): Likewise.
416
417 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
418             Yury Gribov  <y.gribov@samsung.com>
419
420         * common.opt (flag_sanitize_recover): New variable.
421         (fsanitize-recover): Remove Var/Init, deprecate.
422         (fsanitize-recover=): New option.
423         * doc/invoke.texi (fsanitize-recover): Update docs.
424         * opts.c (finish_options): Use opts->x_flag_sanitize
425         instead of flag_sanitize.  Prohibit -fsanitize-recover
426         for anything besides UBSan.  Formatting.
427         (common_handle_option): Handle OPT_fsanitize_recover_
428         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
429         instead of flag_sanitize.
430         * asan.c (pass_sanopt::execute): Fix up formatting.
431         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
432         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
433         instrument_bool_enum_load, ubsan_instrument_float_cast,
434         instrument_nonnull_arg, instrument_nonnull_return): Check
435         bits in flag_sanitize_recover bitmask instead of
436         flag_sanitize_recover as bool flag.
437
438 2014-10-22  Jiong Wang <jiong.wang@arm.com>
439
440         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
441
442 2014-10-22  Renlin Li <renlin.li@arm.com>
443
444         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
445         __ARM_FEATURE_IDIV__.
446
447 2014-10-22  Richard Biener  <rguenther@suse.de>
448
449         * Makefile.in (s-match): Adjust dependencies to only catch
450         match.pd.
451
452 2014-10-22  Richard Biener  <rguenther@suse.de>
453         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
454
455         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
456         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
457         (gimple-match.c): Generate by triggering s-match.
458         (generic-match.c): Likewise.
459         (s-match): Rule to build gimple-match.c and generic-match.c
460         by running the genmatch generator program.
461         (build/hash-table.o): Dependencies to build hash-table.c for the host.
462         (build/genmatch.o): Dependencies to build genmatch.
463         (genprog): Add match.
464         (build/genmatch): Likewise.
465         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
466         * generic-match-head.c: New file.
467         * gimple-match-head.c: Likewise.
468         * gimple-match.h: Likewise.
469         * genmatch.c: Likewise.
470         * match.pd: Likewise.
471         * builtins.h (fold_builtin_n): Export.
472         * builtins.c (fold_builtin_n): Likewise.
473         * gimple-fold.h (gimple_build): Declare various overloads.
474         (gimple_simplify): Likewise.
475         (gimple_convert): Re-implement in terms of gimple_build.
476         * gimple-fold.c (gimple_convert): Remove.
477         (gimple_build): New functions.
478         * doc/match-and-simplify.texi: New file.
479         * doc/gccint.texi: Add menu item Match and Simplify and include
480         match-and-simplify.texi.
481
482 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
483
484         PR target/63594
485         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
486         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
487         even for just TARGET_AVX2, not only for
488         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
489         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
490         otherwise build it using concatenation of 256-bit
491         broadcast.
492         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
493         avx512 broadcast patterns.
494         (vec_dup<mode>): Likewise.  For avx2 use
495         v<sseintprefix>broadcast<bcstscalarsuff> instead of
496         vbroadcast<ssescalarmodesuffix>.
497         (AVX2_VEC_DUP_MODE): New mode iterator.
498         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
499         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
500
501         PR target/63542
502         * config/i386/i386.c (ix86_pic_register_p): Also return
503         true if x is a hard register with ORIGINAL_REGNO equal to
504         pic_offset_table_rtx pseudo REGNO.
505         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
506         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
507
508 2014-10-22  Alan Modra  <amodra@gmail.com>
509
510         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
511         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
512         (gcc_obstack_init): Use obstack_specify_allocation in place of
513         _obstack_begin.
514         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
515         (regexp_representation): Likewise.
516         * godump.c (go_output_type): Likewise.
517
518 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
519
520         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
521         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
522         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
523
524 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
525
526         * doc/invoke.texi (pedantic-errors): Explain better.
527
528 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
529             Vidya Praveen <vidya.praveen@atmel.com>
530             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
531             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
532             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
533
534         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
535         __MEMX for avrtiny.
536         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
537         (avr_nonconst_pointer_addrspace): Likewise.
538         * config/avr/avr.h (AVR_HAVE_LPM): Define.
539
540         Added AVRTINY architecture to avr target.
541         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
542         (base_arch_s): member added for AVRTINY architecture.
543         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
544         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
545         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
546         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
547         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
548         in callee saved register list.
549         (avr_option_override): CCP address updated for AVRTINY.
550         (avr_init_expanders): tmp and zero rtx initialized as per arch.
551         Reset avr_have_dimode if AVRTINY.
552         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
553         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
554         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
555         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
556         (expand_epilogue): Likewise.
557         (avr_print_operand): Print CCP address in case of AVRTINY also.
558         <TBD>bad address
559         (function_arg_regno_p): Check different register list for arguments
560         if AVRTINY.
561         (init_cumulative_args): Check for AVRTINY to update number of argument
562         registers.
563         (tiny_valid_direct_memory_access_range): New function. Return false if
564         direct memory access range is not in accepted range for AVRTINY.
565         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
566         indirect load (with displacement) for AVRTINY.
567         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
568         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
569         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
570         indirect load (no displacement) for AVRTINY.
571         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
572         indirect load (with displacement) for AVRTINY.
573         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
574         indirect load for pre-decrement address.
575         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
576         functions. Update instruction length for AVRTINY.
577         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
578         SImode.
579         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
580         (out_movsi_r_mr): Likewise, for SImode.
581         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
582         indirect store (no displacement) for AVRTINY.
583         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
584         indirect store (with displacement) for AVRTINY.
585         (out_movsi_mr_r): Emit out insn for IO address store. Update store
586         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
587         store functions.
588         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
589         indirect load (no displacement) for PSImode in AVRTINY.
590         (avr_out_load_psi_reg_disp_tiny): New function to handle register
591         indirect load (with displacement) for PSImode in AVRTINY.
592         (avr_out_load_psi): Call PSImode register indirect load functions for
593         AVRTINY. Update instruction length for AVRTINY.
594         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
595         indirect store (no displacement) for PSImode in AVRTINY.
596         (avr_out_store_psi_reg_disp_tiny): New function to handle register
597         indirect store (with displacement) for PSImode in AVRTINY.
598         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
599         register indirect store functions for AVRTINY.
600         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
601         register indirect store (with displacement) for AVRTINY.
602         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
603         register indirect store function for QImode in AVRTINY.
604         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
605         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
606         indirect store (no displacement) for HImode in AVRTINY.
607         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
608         indirect store (with displacement) for HImode in AVRTINY.
609         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
610         indirect store for post-increment address in HImode.
611         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
612         register indirect store function for HImode in AVRTINY.
613         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
614         in case of AVRTINY.
615         (order_regs_for_local_alloc): Updated register allocation order for
616         AVRTINY.
617         (avr_conditional_register_usage): New function. It is a target hook
618         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
619         used registers list and register allocation order for AVRTINY.
620         (avr_return_in_memory): Update return value size for AVRTINY.
621         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
622         for AVRTINY arch and tiny program memory base address.
623         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
624         (avr_texinfo): Added description for AVRTINY arch.
625         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
626         STATIC_CHAIN_REGNUM for AVRTINY.
627         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
628         * config/avr/avr.md: Added constants for tmp/ zero registers in
629         AVRTINY. Attributes for AVRTINY added.
630         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
631         memory access range.
632         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
633         in AVRTINY memory access range.
634         (*mov<mode>): Likewise for HImode and SImode.
635         (*movsf): Likewise for SFmode.
636         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
637         not have sbiw.
638         * config/avr/avr-protos.h: Added function prototype for
639         tiny_valid_direct_memory_access_range.
640         * config/avr/avr-tables.opt: Regenerate.
641         * gcc/config/avr/t-multilib: Regenerate.
642         * doc/avr-mmcu.texi: Regenerate.
643
644 2014-10-21  Andrew Pinski  <apinski@cavium.com>
645
646         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
647         available option also.
648         * config/aarch64/aarch64-cost-tables.h: New file.
649         * config/aarch64/aarch64-cores.def (thunderx): New core.
650         * config/aarch64/aarch64-tune.md: Regenerate.
651         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
652         of config/arm/aarch-cost-tables.h.
653         (thunderx_regmove_cost): New variable.
654         (thunderx_tunings): New variable.
655
656 2014-10-21  Dehao Chen  <dehao@google.com>
657
658         * auto-profile.c: New file.
659         * auto-profile.h: New file.
660         * basic-block.h (maybe_hot_count_p): New export func.
661         (add_working_set): New export func.
662         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
663         (GCOV_TAG_AFDO_FUNCTION): Likewise.
664         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
665         * opts.c (enable_fdo_optimizations): New func.
666         (common_handle_option): Handle -fauto-profile flag.
667         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
668         (class pass_early_inline): Export early_inliner.
669         (early_inliner): Likewise.
670         (pass_early_inline::execute): Likewise.
671         * ipa-inline.h (early_inliner): Likewise.
672         * predict.c (maybe_hot_count_p): New export func.
673         (counts_to_freqs): AutoFDO logic.
674         (rebuild_frequencies): Likewise.
675         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
676         * profile.c (add_working_set): New func.
677         * Makefile.in (auto-profile.o): New object file.
678         * passes.def (pass_ipa_auto_profile): New pass.
679         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
680         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
681         * toplev.c (compile_file): AutoFDO logic.
682         * doc/invoke.texi (-fauto-profile): New doc.
683         * coverage.c (coverage_init): AutoFDO logic.
684         * common.opt (-fauto-profile): New flag.
685         * timevar.def (TV_IPA_AUTOFDO): New tag.
686         * value-prof.c (gimple_alloc_histogram_value): New export func.
687         (check_ic_target): Likewise.
688         * value-prof.h (gimple_alloc_histogram_value): Likewise.
689         (check_ic_target): Likewise.
690
691 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
692
693         * cgraph.c (cgraph_c_finalize): New function.
694         * cgraph.h (cgraph_c_finalize): New prototype.
695         (cgraphunit_c_finalize): New prototype.
696         * cgraphunit.c (first_analyzed): Move from analyze_functions
697         to file-scope.
698         (first_analyzed_var): Likewise.
699         (analyze_functions): Move static variables into file-scope.
700         (cgraphunit_c_finalize): New function.
701         * diagnostic.c (diagnostic_finish): Free the memory for
702         context->classify_diagnostic and context->printer, running the
703         destructor for the latter.
704         (bt_stop): Use toplev::main.
705         * dwarf2out.c (dwarf2out_finalize): New function.
706         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
707         * gcse.c (gcse_c_finalize): New function.
708         * gcse.h (gcse_c_finalize): New prototype.
709         * ggc-page.c (init_ggc): Make idempotent.
710         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
711         * ipa-cp.c (ipa_cp_c_finalize): New function.
712         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
713         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
714         a field of class pass_ipa_pure_const.
715         (node_duplication_hook_holder): Likewise.
716         (node_removal_hook_holder): Likewise.
717         (register_hooks): Convert to method...
718         (pass_ipa_pure_const::register_hooks): ...here, converting
719         static variable init_p into...
720         (pass_ipa_pure_const::init_p): ...new field.
721         (pure_const_generate_summary): Update invocation of
722         register_hooks to invoke as a method of current_pass.
723         (pure_const_read_summary): Likewise.
724         (propagate): Convert to...
725         (pass_ipa_pure_const::execute): ...method.
726         * ipa-reference.c (ipa_init): Move static bool init_p from here
727         to...
728         (ipa_init_p): New file-scope variable, so that it can be reset
729         when repeatedly invoking the compiler within one process by...
730         (ipa_reference_c_finalize): New function.
731         * ipa-reference.h (ipa_reference_c_finalize): New.
732         * main.c (main): Replace invocation of toplev_main with
733         construction of a toplev instance, and call its "main" method.
734         * params.c (global_init_params): Add an assert that
735         params_finished is false.
736         (params_c_finalize): New.
737         * params.h (params_c_finalize): New.
738         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
739         invoking generate_summary, for the benefit of pass_ipa_pure_const.
740         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
741         before calling write_summary hook.
742         (ipa_write_optimization_summaries_1): Likewise when calling
743         write_optimization_summary hook.
744         (ipa_read_summaries_1): Likewise for read_summary hook.
745         (ipa_read_optimization_summaries_1): Likewise for
746         read_optimization_summary hook.
747         (execute_ipa_stmt_fixups): Likewise.
748         * stringpool.c (init_stringpool): Clean up if we're called more
749         than once.
750         * timevar.c (timevar_init): Ignore repeated calls.
751         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
752         "ipa-prop.h".
753         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
754         (initialize_rtl): Move static local "initialized_once"
755         into file scope, and rename to...
756         (rtl_initialized): New variable.
757         (do_compile): Move timevar initialization from here to
758         toplev::start_timevars.
759         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
760         toplev::finalize): New functions.
761         (toplev_main): Rename to...
762         (toplev::main): ...this.
763         * toplev.h (class toplev): New class.
764
765 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
766
767         * loop-doloop.c: Include loop-unroll.h.
768
769 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
770
771         * cfg.h: New.  Header file for cfg.c.
772         * cfganal.h: New.  Header file for cfganal.c.
773         * lcm.h: New.  Header file for lcm.c.
774         * loop-unroll.h: New.  Header file for loop-unroll.h.
775         * cfgloop.h: (unroll_loops): Remove prototype.
776         * basic-block.h: Move prototypes and structs to new header files.
777         Include cfg.h, cfganal.h, and lcm.h.
778         * loop-init.c: Include loop-unroll.h.
779         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
780         * modulo-sched.c: Include loop-unroll.h.
781
782 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
783
784         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
785         MARKER_BYTE_UNKNOWN markers when handling casts.
786
787 2014-10-21  Richard Biener  <rguenther@suse.de>
788
789         * tree-ssa-phiopt.c (value_replacement): Properly verify we
790         are the non-singleton PHI.
791
792 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
793
794         PR tree-optimization/63563
795         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
796         if either dra or drb stmts are not normal loads/stores.
797
798 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
799
800         * config/i386/i386.c (expand_vec_perm_1): Fix
801         expand_vec_perm_palignr case.
802         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
803         VI1_AVX512.
804
805 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
806
807         * cfgloopanal.c (seq_cost): Delete.
808         * rtl.h (seq_cost): New prototype.
809         * rtlanal.c (seq_cost): New function.
810         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
811
812 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
813
814         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
815         * basic-block.h: Remove prototypes for cfgrtl.c.
816         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
817         prototypes to cfgrtl.h.
818         * profile.h (profile_info): Add extern export declaration.
819         * rtl.h: Remove prototypes for cfgrtl.h.
820         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
821         * ipa-inline.c: Include profile.h.
822         * loop-unroll.c: Ditto.
823         * modulo-sched.c: Ditto.
824         * postreload-gcse.c: Ditto.
825         * predict.c: Ditto.
826         * sched-ebb.c: Ditto.
827         * sched-rgn.c: Ditto.
828         * tracer.c: Ditto.
829         * tree-ssa-loop-ivcanon.c: Ditto.
830
831 2014-10-20  Richard Biener  <rguenther@suse.de>
832
833         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
834         operands to get a def operand kind match.  Signal mismatches
835         to the parent so we can try swapping its operands.
836         (vect_build_slp_tree): Try swapping operands if they have
837         a mismatched operand kind.
838
839 2014-10-20  Alan Modra  <amodra@gmail.com>
840
841         PR debug/60655
842         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
843         Increase "ops" array size.  Correct array size tests.  Init
844         n_constants in loop.  Break out of innermost loop when finding
845         a trivial CONST expression.
846
847 2014-10-20  Martin Liska  <mliska@suse.cz>
848
849         PR ipa/63583
850         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
851         Gimple tempate string is compared.
852
853 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
854
855         * varasm.c (const_alias_set): Remove.
856         (init_varasm_once): Remove initialization of const_alias_set.
857         (build_constant_desc): Do not set alias set to const_alias_set.
858
859 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
860
861         * configure: Regenerate.
862         * configure.ac: Move the test for section attribute specifier "e" in GAS
863         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
864         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
865         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
866         ifdef HAVE_GAS_SECTION_EXCLUDE.
867
868 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
869
870         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
871         match_operand expression.
872
873 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
874             David Edelsohn  <dje.gcc@gmail.com>
875
876         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
877         function.
878         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
879
880 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
881
882         * doc/invoke.texi (Options to Request or Suppress Warnings):
883         Explain options precedence.
884         (Wtrampolines): Do not indent paragraph.
885
886 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
887
888         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
889         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
890         (pa_jump_in_call_delay): Likewise.
891         * config/pa/pa.c (pa_option_override): Remove jump in call delay
892         override.
893         (pa_output_millicode_call): Remove support for jump in call delay.
894         (pa_output_call): Likewise.
895         (pa_jump_in_call_delay): Delete.
896         (pa_following_call): Likewise.
897         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
898         (uncond_branch): Remove following call check from attribute length.
899
900 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
901
902         PR target/53513
903         * config/sh/sh-modes.def (PSI): Remove.
904         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
905         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
906         (sh_reorg): Remove commented out FPSCR code.
907         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
908         insn instead of move insn.
909         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
910         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
911         handling.
912         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
913         (sh1_builtin_p): Uncomment.
914         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
915         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
916         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
917         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
918         (general_movsrc_operand, general_movdst_operand): Disallow
919         fpscr_operand.
920         * config/sh/sh.md (FPSCR_FR): New constant.
921         (push_fpscr): Emit sts_fpscr insn.
922         (pop_fpscr): Emit lds_fpscr_insn.
923         (movsi_ie): Disallow FPSCR operands.
924         (fpu_switch, unnamed related split, extend_psi_si,
925         truncate_si_psi): Remove insns.
926         (lds_fpscr, sts_fpscr): New insns.
927         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
928
929 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
930
931         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
932         (clone_inlined_nodes): Do not overwrite the clone if above predicate
933         returns true.
934
935 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
936
937         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
938         (expand_vec_perm_d): Ditto.
939         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
940         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
941         V4DFmode.
942         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
943         (ix86_expand_sse_unpack): Handle V64QImode.
944         (expand_vec_perm_blend): Update conditions for TARGET, handle
945         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
946         (expand_vec_perm_pshufb): Handle V64QImode.
947         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
948         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
949         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
950         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
951         (ix86_expand_vecop_qihi): Handle V64QImode.
952         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
953         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
954         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
955         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
956         (mul<mode>3): Use VI1_AVX512.
957         (<sse2_avx2>_packsswb): Ditto.
958         (<sse2_avx2>_packuswb): Ditto.
959         (<ssse3_avx2>_pshufb<mode>3): Ditto.
960         (<shift_insn><mode>3): Ditto.
961
962 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
963
964         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
965         conditions to fix bootstrap.
966
967 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
968
969         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
970
971 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
972             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
973             Anna Tikhonova  <anna.tikhonova@intel.com>
974             Ilya Tocar  <ilya.tocar@intel.com>
975             Andrey Turetskiy  <andrey.turetskiy@intel.com>
976             Ilya Verbin  <ilya.verbin@intel.com>
977             Kirill Yukhin  <kirill.yukhin@intel.com>
978             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
979
980         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
981         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
982         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
983         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
984         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
985         (define_expand "vec_init<mode>"): Use VF48_I1248.
986
987 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
988             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
989             Anna Tikhonova  <anna.tikhonova@intel.com>
990             Ilya Tocar  <ilya.tocar@intel.com>
991             Andrey Turetskiy  <andrey.turetskiy@intel.com>
992             Ilya Verbin  <ilya.verbin@intel.com>
993             Kirill Yukhin  <kirill.yukhin@intel.com>
994             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
995
996         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
997         expand_sse2_mulvxdi3.
998
999 2014-10-17  Richard Biener  <rguenther@suse.de>
1000
1001         * fold-const.c (fold_comparison): Remove redundant constant
1002         folding and operand swapping.
1003         (fold_binary_loc): Do comparison operand swapping here.
1004         (fold_ternary_loc): Canonicalize operand order for
1005         commutative ternary operations.
1006         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1007         and FMA_EXPR.
1008
1009 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1010
1011         PR tree-optimization/63464
1012         * gimple.h (gimple_seq_discard): New prototype.
1013         * gimple.c: Include stringpool.h and tree-ssanames.h.
1014         (gimple_seq_discard): New function.
1015         * optabs.h (lshift_cheap_p): New prototype.
1016         * optabs.c (lshift_cheap_p): New function, moved from...
1017         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1018         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1019         (reassoc_branch_fixups): New variable.
1020         (update_range_test): Add otherrangep and seq arguments.
1021         Unshare exp.  If otherrange is NULL, use for other ranges
1022         array of pointers pointed by otherrangep instead.
1023         Emit seq before gimplified statements for tem.
1024         (optimize_range_tests_diff): Adjust update_range_test
1025         caller.
1026         (optimize_range_tests_xor): Likewise.  Fix up comment.
1027         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1028         functions.
1029         (optimize_range_tests): Adjust update_range_test caller.
1030         Call optimize_range_tests_to_bit_test.
1031         (branch_fixup): New function.
1032         (execute_reassoc): Call branch_fixup.
1033
1034         PR tree-optimization/63302
1035         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1036         optimize_range_tests_diff): Use !integer_pow2p () instead of
1037         tree_log2 () < 0.
1038
1039 2014-10-17  Martin Liska  <mliska@suse.cz>
1040
1041         * ipa-icf.c (sem_function::merge): Local flags are set to false
1042         to enforce equal calling convention to be used.
1043         * opts.c (common_handle_option): Indentation fix.
1044
1045 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1046
1047         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1048
1049 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1050
1051         PR rtl-optimization/61605
1052         * regcprop.c (copyprop_hardreg_forward_1): Use
1053         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1054
1055 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1056
1057         PR rtl-optimization/61605
1058         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1059         notice stores for noops.  Don't regard noops as copies.
1060
1061 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1062
1063         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1064         register in a special way.
1065         (__cpuid_count): Ditto.
1066         * config/i386/driver-i386.h: Protect with
1067         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1068         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1069         is required to compile the function.
1070
1071 2014-10-16  DJ Delorie  <dj@redhat.com>
1072
1073         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1074         integers.
1075
1076         * config/rs6000/rs6000-c.c (rid_int128): New.
1077         (rs6000_macro_to_expand): Use instead of RID_INT128.
1078
1079 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1080
1081         * function.h: Flatten file.  Remove includes, adjust prototypes to
1082         reflect only what is in function.h.
1083         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1084         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1085         from expr.h.
1086         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1087         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1088         prototypes to predict.h.
1089         (init_varasm_status): Move prototype to varasm.h.
1090         * expr.h: Adjust include files.
1091         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1092         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1093         to function.h.
1094         (locate_and_pad_parm): Move prototype to function.h.
1095         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1096         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1097         assign_temp, reposition_prologue_and_epilogue_notes,
1098         prologue_epilogue_contains, sibcall_epilogue_contains,
1099         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1100         set_return_jump_label): Move prototypes to function.h.
1101         * predict.h (optimize_function_for_size_p,
1102         optimize_function_for_speed_p): Relocate prototypes from function.h.
1103         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1104         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1105         function.h.
1106         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1107         * genattrtab.c (write_header): Add predict.h to include list.
1108         * genconditions.c (write_header): Add predict.h to include list.
1109         * genemit.c (main): Adjust header file includes.
1110         * gengtype.c (ifiles): Add flattened function.h header files.
1111         * genoutput.c (output_prologue): Add predict.h to include list.
1112         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1113         * genrecog.c (write_header): Add flattened function.h header files.
1114         * alias.c: Adjust include files.
1115         * auto-inc-dec.c: Likewise.
1116         * basic-block.h: Likewise.
1117         * bb-reorder.c: Likewise.
1118         * bt-load.c: Likewise.
1119         * builtins.c: Likewise.
1120         * caller-save.c: Likewise.
1121         * calls.c: Likewise.
1122         * cfgbuild.c: Likewise.
1123         * cfgcleanup.c: Likewise.
1124         * cfgexpand.c: Likewise.
1125         * cfgloop.c: Likewise.
1126         * cfgloop.h: Likewise.
1127         * cfgrtl.c: Likewise.
1128         * cgraph.h: Likewise.
1129         * cgraphclones.c: Likewise.
1130         * cgraphunit.c: Likewise.
1131         * combine-stack-adj.c: Likewise.
1132         * combine.c: Likewise.
1133         * coverage.c: Likewise.
1134         * cprop.c: Likewise.
1135         * cse.c: Likewise.
1136         * cselib.c: Likewise.
1137         * dbxout.c: Likewise.
1138         * ddg.c: Likewise.
1139         * df-core.c: Likewise.
1140         * df-problems.c: Likewise.
1141         * df-scan.c: Likewise.
1142         * dojump.c: Likewise.
1143         * dwarf2cfi.c: Likewise.
1144         * dwarf2out.c: Likewise.
1145         * emit-rtl.c: Likewise.
1146         * except.c: Likewise.
1147         * explow.c: Likewise.
1148         * expr.c: Likewise.
1149         * final.c: Likewise.
1150         * function.c: Likewise.
1151         * gcse.c: Likewise.
1152         * gimple-fold.c: Likewise.
1153         * gimple-low.c: Likewise.
1154         * gimple-streamer.h: Likewise.
1155         * haifa-sched.c: Likewise.
1156         * ifcvt.c: Likewise.
1157         * ira.c: Likewise.
1158         * jump.c: Likewise.
1159         * lcm.c: Likewise.
1160         * loop-invariant.c: Likewise.
1161         * lra-assigns.c: Likewise.
1162         * lra-coalesce.c: Likewise.
1163         * lra-constraints.c: Likewise.
1164         * lra-eliminations.c: Likewise.
1165         * lra-lives.c: Likewise.
1166         * lra-spills.c: Likewise.
1167         * lra.c: Likewise.
1168         * lto-cgraph.c: Likewise.
1169         * lto-section-in.c: Likewise.
1170         * lto-section-out.c: Likewise.
1171         * lto-streamer-in.c: Likewise.
1172         * lto-streamer-out.c: Likewise.
1173         * mode-switching.c: Likewise.
1174         * modulo-sched.c: Likewise.
1175         * omp-low.c: Likewise.
1176         * optabs.c: Likewise.
1177         * passes.c: Likewise.
1178         * postreload-gcse.c: Likewise.
1179         * postreload.c: Likewise.
1180         * predict.c: Likewise.
1181         * profile.c: Likewise.
1182         * recog.c: Likewise.
1183         * ree.c: Likewise.
1184         * reg-stack.c: Likewise.
1185         * regcprop.c: Likewise.
1186         * reginfo.c: Likewise.
1187         * regrename.c: Likewise.
1188         * reload.c: Likewise.
1189         * reload1.c: Likewise.
1190         * reorg.c: Likewise.
1191         * resource.c: Likewise.
1192         * rtlanal.c: Likewise.
1193         * sched-deps.c: Likewise.
1194         * sched-ebb.c: Likewise.
1195         * sched-rgn.c: Likewise.
1196         * sel-sched-dump.c: Likewise.
1197         * sel-sched-ir.c: Likewise.
1198         * sel-sched.c: Likewise.
1199         * shrink-wrap.c: Likewise.
1200         * simplify-rtx.c: Likewise.
1201         * statistics.c: Likewise.
1202         * stmt.c: Likewise.
1203         * stor-layout.c: Likewise.
1204         * store-motion.c: Likewise.
1205         * symtab.c: Likewise.
1206         * targhooks.c: Likewise.
1207         * toplev.c: Likewise.
1208         * trans-mem.c: Likewise.
1209         * tree-cfg.c: Likewise.
1210         * tree-cfgcleanup.c: Likewise.
1211         * tree-dfa.c: Likewise.
1212         * tree-eh.c: Likewise.
1213         * tree-inline.c: Likewise.
1214         * tree-into-ssa.c: Likewise.
1215         * tree-nested.c: Likewise.
1216         * tree-nrv.c: Likewise.
1217         * tree-profile.c: Likewise.
1218         * tree-ssa-alias.c: Likewise.
1219         * tree-ssa-ccp.c: Likewise.
1220         * tree-ssa-copy.c: Likewise.
1221         * tree-ssa-copyrename.c: Likewise.
1222         * tree-ssa-dom.c: Likewise.
1223         * tree-ssa-operands.c: Likewise.
1224         * tree-ssa-propagate.c: Likewise.
1225         * tree-ssa-structalias.c: Likewise.
1226         * tree-ssa-tail-merge.c: Likewise.
1227         * tree-ssa-threadedge.c: Likewise.
1228         * tree-ssa-threadupdate.c: Likewise.
1229         * tree-ssa-uncprop.c: Likewise.
1230         * tree-ssa-uninit.c: Likewise.
1231         * tree-ssa.c: Likewise.
1232         * tree-stdarg.c: Likewise.
1233         * tree-tailcall.c: Likewise.
1234         * tree.c: Likewise.
1235         * tsan.c: Likewise.
1236         * valtrack.c: Likewise.
1237         * varasm.c: Likewise.
1238         * vmsdbgout.c: Likewise.
1239         * web.c: Likewise.
1240         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1241         * config/alpha/alpha.c: Likewise.
1242         * config/arc/arc.c: Likewise.
1243         * config/arm/arm.c: Likewise.
1244         * config/avr/avr-log.c: Likewise.
1245         * config/avr/avr.c: Likewise.
1246         * config/bfin/bfin.c: Likewise.
1247         * config/c6x/c6x.c: Likewise.
1248         * config/cr16/cr16.c: Likewise.
1249         * config/cris/cris.c: Likewise.
1250         * config/darwin.c: Likewise.
1251         * config/epiphany/epiphany.c: Likewise.
1252         * config/epiphany/mode-switch-use.c: Likewise.
1253         * config/epiphany/resolve-sw-modes.c: Likewise.
1254         * config/fr30/fr30.c: Likewise.
1255         * config/frv/frv.c: Likewise.
1256         * config/h8300/h8300.c: Likewise.
1257         * config/i386/i386.c: Likewise.
1258         * config/ia64/ia64.c: Likewise.
1259         * config/iq2000/iq2000.c: Likewise.
1260         * config/lm32/lm32.c: Likewise.
1261         * config/m32c/m32c.c: Likewise.
1262         * config/m32r/m32r.c: Likewise.
1263         * config/m68k/m68k.c: Likewise.
1264         * config/mcore/mcore.c: Likewise.
1265         * config/mep/mep-pragma.c: Likewise.
1266         * config/mep/mep.c: Likewise.
1267         * config/microblaze/microblaze.c: Likewise.
1268         * config/mips/mips.c: Likewise.
1269         * config/mmix/mmix.c: Likewise.
1270         * config/mn10300/mn10300.c: Likewise.
1271         * config/moxie/moxie.c: Likewise.
1272         * config/msp430/msp430.c: Likewise.
1273         * config/nds32/nds32-cost.c: Likewise.
1274         * config/nds32/nds32-fp-as-gp.c: Likewise.
1275         * config/nds32/nds32-intrinsic.c: Likewise.
1276         * config/nds32/nds32-isr.c: Likewise.
1277         * config/nds32/nds32-md-auxiliary.c: Likewise.
1278         * config/nds32/nds32-memory-manipulation.c: Likewise.
1279         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1280         * config/nds32/nds32-predicates.c: Likewise.
1281         * config/nds32/nds32.c: Likewise.
1282         * config/nios2/nios2.c: Likewise.
1283         * config/pa/pa.c: Likewise.
1284         * config/pdp11/pdp11.c: Likewise.
1285         * config/rl78/rl78.c: Likewise.
1286         * config/rs6000/rs6000.c: Likewise.
1287         * config/rx/rx.c: Likewise.
1288         * config/s390/s390.c: Likewise.
1289         * config/score/score.c: Likewise.
1290         * config/sh/sh.c: Likewise.
1291         * config/sparc/sparc.c: Likewise.
1292         * config/spu/spu.c: Likewise.
1293         * config/stormy16/stormy16.c: Likewise.
1294         * config/tilegx/tilegx.c: Likewise.
1295         * config/tilepro/tilepro.c: Likewise.
1296         * config/v850/v850.c: Likewise.
1297         * config/vax/vax.c: Likewise.
1298         * config/xtensa/xtensa.c: Likewise.
1299
1300 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1301
1302         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1303         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1304
1305 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1306
1307         * config/sh/sh-protos.h (fldi_ok): Remove.
1308         * config/sh/sh.c (fldi_ok): Likewise.
1309         (sh_secondary_reload): Don't use fldi_ok.
1310         * config/sh/constraints.md (G constraint, H constraint): Don't use
1311         fldi_ok.
1312
1313 2014-10-16  Martin Liska  <mliska@suse.cz>
1314
1315         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1316         Cast to unsigned long.
1317         (sem_item_optimizer::dump_cong_classes): Likewise.
1318
1319 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1320
1321         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1322         with SSA_NAME_IN_FREELIST.
1323
1324 2014-10-16  Richard Biener  <rguenther@suse.de>
1325
1326         PR middle-end/63554
1327         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1328         (fold_builtin_strncat_chk): Move ...
1329         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1330         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1331
1332 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1333
1334         PR target/59401
1335         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1336         GBR to 0.
1337
1338 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1339             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1340             Anna Tikhonova  <anna.tikhonova@intel.com>
1341             Ilya Tocar  <ilya.tocar@intel.com>
1342             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1343             Ilya Verbin  <ilya.verbin@intel.com>
1344             Kirill Yukhin  <kirill.yukhin@intel.com>
1345             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1346
1347         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1348         V64QI modes.
1349
1350 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1351             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1352             Anna Tikhonova  <anna.tikhonova@intel.com>
1353             Ilya Tocar  <ilya.tocar@intel.com>
1354             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1355             Ilya Verbin  <ilya.verbin@intel.com>
1356             Kirill Yukhin  <kirill.yukhin@intel.com>
1357             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1358
1359         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1360         V16SI, V32HI, V64QI modes.
1361
1362 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1363
1364         PR target/53513
1365         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1366         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1367
1368         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1369         to match fp insn patterns.
1370         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1371         list.
1372         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1373         expand_df_unop, expand_df_binop): Remove.
1374         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1375         FPSCR_STAT_REG as not call clobbered.
1376         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1377         invoking fpscr_set_from_mem.
1378
1379         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1380         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1381         FPSCR_STAT_REG.
1382         (REGISTER_NAMES): Adjust.
1383         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1384         (FIRST_PSEUDO_REGISTER): Increase to 156.
1385         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1386         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1387         FPSCR_STAT_REG.
1388         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1389         FPSCR_MODES_REG and FPSCR_STAT_REG.
1390         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1391
1392         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
1393         FPSCR_SZ): Add new constants.
1394         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
1395
1396         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
1397         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
1398         Use TARGET_FPU_ANY condition.
1399         (fpu_switch peephole2): Remove.
1400         (fpu_switch split): Use simple_mem_operand to capture the mem and
1401         adjust split implementation.
1402         (extend_psi_si, truncate_si_psi): New insns.
1403         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
1404         set of FPSCR_MODES_REG.
1405
1406         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
1407         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
1408         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
1409         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
1410         call_value_compact, call_value_compact_rettramp, call,
1411         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
1412         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
1413         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1414         sibcall_value_compact, sibcall_value, call_value_pop_compact,
1415         call_value_pop_compact_rettramp, various unnamed splits):
1416         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
1417         function uses.
1418
1419         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
1420         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
1421         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
1422         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
1423         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
1424
1425         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
1426         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
1427         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
1428         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
1429         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
1430         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
1431         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
1432
1433 2014-10-16  Martin Liska  <mliska@suse.cz>
1434             Jan Hubicka  <hubicka@ucw.cz>
1435
1436         * Makefile.in: New object files included.
1437         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
1438         is printed.
1439         (verify_edge_corresponds_to_fndecl): More sensitive verification
1440         of nodes that are merged by IPA ICF.
1441         * cgraph.h (cgraph_node::num_references): New function.
1442         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
1443         * common.opt: New options ipa-icf, ipa-icf-functions and
1444         ipa-icf-variables introduced.
1445         * doc/invoke.texi: Documentation of new options introduced.
1446         * ipa-icf-gimple.c: New file.
1447         * ipa-icf-gimple.h: New file.
1448         * ipa-icf.c: New file.
1449         * ipa-icf.h: New file.
1450         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
1451         (input_overwrite_node): Likewise.
1452         * lto-section-in.c: New icf section added.
1453         * lto-streamer.h (enum lto_section_type): Likewise.
1454         * opts.c (common_handle_option): New option added.
1455         * passes.def: New pass included.
1456         * timevar.def: Time variable for IPA ICF added.
1457         * tree-pass.h: New IPA ICF pass entry point added.
1458
1459 2014-10-16  Richard Biener  <rguenther@suse.de>
1460
1461         PR tree-optimization/63168
1462         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
1463         latches if after merging they are no longer simple.
1464         * cfghooks.c (merge_blocks): Handle merging a latch block
1465         into another block.
1466
1467 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1468             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1469             Anna Tikhonova  <anna.tikhonova@intel.com>
1470             Ilya Tocar  <ilya.tocar@intel.com>
1471             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1472             Ilya Verbin  <ilya.verbin@intel.com>
1473             Kirill Yukhin  <kirill.yukhin@intel.com>
1474             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1475
1476         * config/i386/sse.md
1477         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
1478         support AVX-512VL instructions.
1479
1480 2014-10-16  DJ Delorie  <dj@redhat.com>
1481
1482         * tree-core.h: Fix comment to not assume pointers are multiples of
1483         bytes.
1484
1485 2014-10-15  Tom Tromey  <tromey@redhat.com>
1486
1487         * timevar.h (class auto_timevar): New class.
1488
1489 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
1490
1491         PR go/59432
1492         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1493         Remove the second alternative.
1494         (regprefix): Remove mode attribute.
1495         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
1496         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
1497
1498         Revert:
1499         2013-11-05  Ian Lance Taylor  <iant@google.com>
1500
1501         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
1502         If possible, add .cfi directives to record change to bx.
1503         * config/i386/i386.c (ix86_emit_cfi): New function.
1504         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
1505
1506 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
1507
1508         PR lto/62026
1509         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
1510         to duplicate.
1511         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
1512         at WPA time.
1513
1514 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1515
1516         PR rtl-optimization/63448
1517         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1518         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1519         (LRA_MAX_INHERITANCE_PASSES): Use it.
1520         (lra_constraint_iter_after_spill): Remove.
1521         (lra_assignment_iter): New.
1522         (lra_assignment_iter_after_spill): New.
1523         * lra-assigns.c (lra_assignment_iter): New.
1524         (lra_assignment_iter_after_spill): New.
1525         (former_reload_pseudo_spill_p): New.
1526         (spill_for): Set up former_reload_pseudo_spill_p.
1527         (setup_live_pseudos_and_spill_after_risky): Ditto.
1528         (assign_by_spills): Ditto.
1529         (lra_assign): Increment lra_assignment_iter.  Print the iteration
1530         number.  Reset former_reload_pseudo_spill_p.  Check
1531         lra_assignment_iter_after_spill.
1532         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
1533         lra_assignment_iter and lra_assignment_iter_after_spill.
1534         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1535         (lra_constraints): Remove code with
1536         lra_assignment_iter_after_spill.
1537
1538 2014-10-15  Teresa Johnson  <tejohnson@google.com>
1539
1540         PR bootstrap/63432
1541         * tree-ssa-threadupdate.c (recompute_probabilities): Better
1542         overflow checking.
1543
1544 2014-10-15  Renlin Li <renlin.li@arm.com>
1545
1546         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1547         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
1548         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
1549         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
1550
1551 2014-10-15  Richard Biener  <rguenther@suse.de>
1552
1553         * gimple-fold.c (gimple_fold_call): Properly keep virtual
1554         SSA form up-to-date when devirtualizing a call to
1555         __builtin_unreachable and avoid fixing up EH info here.
1556
1557 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1558             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1559             Anna Tikhonova  <anna.tikhonova@intel.com>
1560             Ilya Tocar  <ilya.tocar@intel.com>
1561             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1562             Ilya Verbin  <ilya.verbin@intel.com>
1563             Kirill Yukhin  <kirill.yukhin@intel.com>
1564             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1565
1566         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
1567         to support AVX-512BW.
1568         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
1569         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
1570         (define_insn "*<plusminus_insn><mode>3"): Ditto.
1571         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
1572         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1573         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
1574         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
1575         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
1576         (define_insn "*andnot<mode>3"): Ditto.
1577         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
1578         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
1579         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
1580         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
1581         (define_insn "*abs<mode>2"): Remove masking support.
1582         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
1583         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
1584         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
1585
1586 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1587             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1588             Anna Tikhonova  <anna.tikhonova@intel.com>
1589             Ilya Tocar  <ilya.tocar@intel.com>
1590             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1591             Ilya Verbin  <ilya.verbin@intel.com>
1592             Kirill Yukhin  <kirill.yukhin@intel.com>
1593             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1594
1595         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
1596         * config/i386/sse.md
1597         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
1598         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
1599         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
1600         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1601         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
1602         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1603         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
1604
1605 2014-10-15  Renlin Li <renlin.li@arm.com>
1606
1607         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
1608
1609 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
1610
1611         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
1612         MINUS_EXPR in unsigned type to avoid undefined behavior.
1613
1614 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1615
1616         * stor-layout.c (self_referential_size): Do not promote arguments.
1617
1618 2014-10-15  Marek Polacek  <polacek@redhat.com>
1619
1620         * doc/invoke.texi: Update to reflect that GNU11 is the default
1621         mode for C.
1622         * c-common.h (c_language_kind): Update comment.
1623
1624 2014-10-15  Richard Biener  <rguenther@suse.de>
1625
1626         * hash-table.c: Include bconfig.h if building for the host.
1627         * hash-table.h: Do not include ggc.h on the host but just declare
1628         a few ggc allocation templates.
1629
1630 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
1631             Jeff Law  <law@redhat.com>
1632
1633         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
1634         multiple hard registers, use smaller mode derived from MODE.
1635
1636 2014-10-15  Andreas Schwab  <schwab@suse.de>
1637
1638         * explow.c (convert_memory_address_addr_space_1): Mark in_const
1639         as ATTRIBUTE_UNUSED.
1640
1641 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
1642
1643         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
1644         (decide_unrolling): ... this one.
1645         (peel_loops_completely): Remove.
1646         (decide_peel_simple): Remove.
1647         (decide_peel_once_rolling): Remove.
1648         (decide_peel_completely): Remove.
1649         (peel_loop_simple): Remove.
1650         (peel_loop_completely): Remove.
1651         (unroll_and_peel_loops): Rename to ...
1652         (unroll_loops): ... this one; handle only unrolling.
1653         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
1654         LPT_PEEL_SIMPLE.
1655         (UAP_PEEL): Remove.
1656         (unroll_and_peel_loops): Remove.
1657         (unroll_loops): New.
1658         * passes.def: Replace
1659         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
1660         * loop-init.c (gate_rtl_unroll_and_peel_loops,
1661         rtl_unroll_and_peel_loops): Rename to ...
1662         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
1663         (pass_rtl_unroll_and_peel_loops): Rename to ...
1664         (pass_rtl_unroll_loops): ... this one.
1665         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
1666         (make_pass_rtl_unroll_loops): New.
1667         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
1668         (canonicalize_loop_induction_variables): Update.
1669
1670 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1671
1672         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
1673         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
1674         !TARGET_HARD_FLOAT_POSTINC.
1675         (*lsip, *ssip): new instructions.
1676
1677 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
1678
1679         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
1680         remove.
1681
1682 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1683
1684         * explow.c (convert_memory_address_addr_space): Rename to ...
1685         (convert_memory_address_addr_space_1): This.  Add in_const argument.
1686         Inside a CONST RTL, permute the conversion and addition of constant
1687         for zero and sign extended pointers.
1688         (convert_memory_address_addr_space): New function.
1689
1690 2014-10-14  Andrew Pinski  <apinski@cavium.com>
1691
1692         Revert:
1693         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1694
1695         PR middle-end/49721
1696         * explow.c (convert_memory_address_addr_space): Also permute the
1697         conversion and addition of constant for zero-extend.
1698
1699 2014-10-14  DJ Delorie  <dj@redhat.com>
1700
1701         * config/msp430/msp430-modes.def (PSI): Add.
1702
1703         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
1704         (msp430_hard_regno_nregs_with_padding): New.
1705         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
1706         (msp430_hard_regno_nregs_has_padding): New.
1707         (msp430_hard_regno_nregs_with_padding): New.
1708         (msp430_unwind_word_mode): Use PSImode instead of SImode.
1709         (msp430_addr_space_legitimate_address_p): New.
1710         (msp430_asm_integer): New.
1711         (msp430_init_dwarf_reg_sizes_extra): New.
1712         (msp430_print_operand): Use X suffix for PSImode even in small model.
1713         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
1714         (PTR_SIZE): ...but 4 bytes for EH.
1715         (SIZE_TYPE): Use __int20.
1716         (PTRDIFF_TYPE): Likewise.
1717         (INCOMING_FRAME_SP_OFFSET): Adjust.
1718         * config/msp430/msp430.md (movqi_topbyte): New.
1719         (movpsi): Use fixed suffixes.
1720         (movsipsi2): Enable for 430X, not large model.
1721         (extendhipsi2): Likewise.
1722         (zero_extendhisi2): Likewise.
1723         (zero_extendhisipsi2): Likewise.
1724         (extend_and_shift1_hipsi2): Likewise.
1725         (extendpsisi2): Likewise.
1726         (*bitbranch<mode>4_z): Fix suffix logic.
1727
1728 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1729
1730         PR ada/62019
1731         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
1732         do not choke on null node.
1733         <VAR_DECL>: Likewise.
1734
1735 2014-10-14  DJ Delorie  <dj@redhat.com>
1736
1737         * machmode.h (int_n_data_t): New.
1738         (int_n_enabled_p): New.
1739         (int_n_data): New.
1740         * tree.c (int_n_enabled_p): New.
1741         (int_n_trees): New.
1742         (make_or_reuse_type): Check for all __intN types, not just
1743         __int128.
1744         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
1745         entries.
1746         * tree.h (int128_integer_type_node): Remove.
1747         (int128_unsigned_type_node): Remove.
1748         (int_n_trees_t): New.
1749         (int_n_enabled_p): New.
1750         (int_n_trees): New.
1751         * toplev.c (standard_type_bitsize): New.
1752         (do_compile): Check which __intN types are enabled for the current
1753         run.
1754         * builtin-types.def (BT_INT128): Remove.
1755         (BT_UINT128): Remove.
1756         * machmode.def: Add macro to create __int128 for all targets.
1757         * stor-layout.c (mode_for_size): Support __intN types.
1758         (smallest_mode_for_size): Likewise.
1759         (initialize_sizetypes): Support __intN types.
1760         * genmodes.c (struct mode_data): Add int_n field.
1761         (blank_mode): Likewise.
1762         (INT_N): New.
1763         (make_int_n): New.
1764         (emit_insn_modes_h): Count __intN entries and define
1765         NUM_INT_N_ENTS.
1766         (emit_mode_int_n): New.
1767         (emit_insn_modes_c): Call it.
1768         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
1769         types, not just __int128.
1770         * tree-core.h (integer_type_kind): Remove __int128-specific
1771         entries, reserve spots for __intN entries.
1772
1773         * config/msp430/msp430-modes.def (PSI): Add.
1774
1775 2014-10-14  Kito Cheng  <kito@0xlab.org>
1776
1777         * ira.c: Fix typo in comment.
1778         * ira.h: Ditto.
1779         * ira-build.c: Ditto.
1780         * ira-color.c: Ditto.
1781         * ira-emit.c: Ditto.
1782         * ira-int.h: Ditto.
1783         * ira-lives.c: Ditto.
1784
1785 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
1786
1787         PR rtl-optimization/63475
1788         * alias.c (true_dependence_1): Always use get_addr to extract
1789         true address operands from x_addr and mem_addr.  Use extracted
1790         address operands to check for references with alignment ANDs.
1791         Use extracted address operands with find_base_term and
1792         base_alias_check. For noncanonicalized operands call canon_rtx with
1793         extracted address operand.
1794         (write_dependence_1): Ditto.
1795         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
1796
1797 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
1798
1799         PR target/63534
1800         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
1801         __morestack local.
1802
1803 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1804             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1805             Anna Tikhonova  <anna.tikhonova@intel.com>
1806             Ilya Tocar  <ilya.tocar@intel.com>
1807             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1808             Ilya Verbin  <ilya.verbin@intel.com>
1809             Kirill Yukhin  <kirill.yukhin@intel.com>
1810             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1811
1812         * config/i386/i386.c
1813         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
1814         (ix86_expand_int_vcond): Ditto.
1815
1816 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1817             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1818             Anna Tikhonova  <anna.tikhonova@intel.com>
1819             Ilya Tocar  <ilya.tocar@intel.com>
1820             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1821             Ilya Verbin  <ilya.verbin@intel.com>
1822             Kirill Yukhin  <kirill.yukhin@intel.com>
1823             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1824
1825         * config/i386/i386.c
1826         (emit_reduc_half): Handle V64QI and V32HI mode.
1827         * config/i386/sse.md
1828         (define_mode_iterator VI_AVX512BW): New.
1829         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
1830
1831 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1832             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1833             Anna Tikhonova  <anna.tikhonova@intel.com>
1834             Ilya Tocar  <ilya.tocar@intel.com>
1835             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1836             Ilya Verbin  <ilya.verbin@intel.com>
1837             Kirill Yukhin  <kirill.yukhin@intel.com>
1838             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1839
1840         * config/i386/sse.md
1841         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
1842
1843 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1844             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1845             Anna Tikhonova  <anna.tikhonova@intel.com>
1846             Ilya Tocar  <ilya.tocar@intel.com>
1847             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1848             Ilya Verbin  <ilya.verbin@intel.com>
1849             Kirill Yukhin  <kirill.yukhin@intel.com>
1850             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1851
1852         * config/i386/i386.c
1853         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
1854         * config/i386/sse.md
1855         (define_mode_iterator VI): Add V64QI and V32HI modes.
1856
1857 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1858             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1859             Anna Tikhonova  <anna.tikhonova@intel.com>
1860             Ilya Tocar  <ilya.tocar@intel.com>
1861             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1862             Ilya Verbin  <ilya.verbin@intel.com>
1863             Kirill Yukhin  <kirill.yukhin@intel.com>
1864             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1865
1866         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
1867
1868 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1869             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1870             Anna Tikhonova  <anna.tikhonova@intel.com>
1871             Ilya Tocar  <ilya.tocar@intel.com>
1872             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1873             Ilya Verbin  <ilya.verbin@intel.com>
1874             Kirill Yukhin  <kirill.yukhin@intel.com>
1875             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1876
1877         * config/i386/sse.md
1878         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
1879         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
1880
1881 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1882             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1883             Anna Tikhonova  <anna.tikhonova@intel.com>
1884             Ilya Tocar  <ilya.tocar@intel.com>
1885             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1886             Ilya Verbin  <ilya.verbin@intel.com>
1887             Kirill Yukhin  <kirill.yukhin@intel.com>
1888             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1889
1890         * config/i386/sse.md
1891         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
1892         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
1893
1894 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1895             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1896             Anna Tikhonova  <anna.tikhonova@intel.com>
1897             Ilya Tocar  <ilya.tocar@intel.com>
1898             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1899             Ilya Verbin  <ilya.verbin@intel.com>
1900             Kirill Yukhin  <kirill.yukhin@intel.com>
1901             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1902
1903         * config/i386/sse.md
1904         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
1905         (define_mode_iterator VI2_AVX2): Add V32HI mode.
1906         (define_expand "mul<mode>3<mask_name>"): Add masking.
1907         (define_insn "*mul<mode>3<mask_name>"): Ditto.
1908         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
1909         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
1910         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
1911         (define_mode_attr SDOT_PMADD_SUF): Ditto.
1912         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
1913         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
1914         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
1915         (define_insn "avx2_packusdw"): Delete.
1916         (define_insn "sse4_1_packusdw"): Ditto.
1917         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
1918
1919 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1920             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1921             Anna Tikhonova  <anna.tikhonova@intel.com>
1922             Ilya Tocar  <ilya.tocar@intel.com>
1923             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1924             Ilya Verbin  <ilya.verbin@intel.com>
1925             Kirill Yukhin  <kirill.yukhin@intel.com>
1926             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1927
1928         * config/i386/sse.md
1929         (define_insn "vec_dup<mode>"): Update constraints.
1930
1931 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1932             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1933             Anna Tikhonova  <anna.tikhonova@intel.com>
1934             Ilya Tocar  <ilya.tocar@intel.com>
1935             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1936             Ilya Verbin  <ilya.verbin@intel.com>
1937             Kirill Yukhin  <kirill.yukhin@intel.com>
1938             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1939
1940         * config/i386/sse.md
1941         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
1942         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
1943         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
1944
1945 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1946             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1947             Anna Tikhonova  <anna.tikhonova@intel.com>
1948             Ilya Tocar  <ilya.tocar@intel.com>
1949             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1950             Ilya Verbin  <ilya.verbin@intel.com>
1951             Kirill Yukhin  <kirill.yukhin@intel.com>
1952             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1953
1954         * config/i386/sse.md
1955         (define_expand "mul<mode>3<mask_name>"): Add masking.
1956
1957 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1958             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1959             Anna Tikhonova  <anna.tikhonova@intel.com>
1960             Ilya Tocar  <ilya.tocar@intel.com>
1961             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1962             Ilya Verbin  <ilya.verbin@intel.com>
1963             Kirill Yukhin  <kirill.yukhin@intel.com>
1964             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1965
1966         * config/i386/sse.md
1967         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
1968         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
1969
1970 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1971             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1972             Anna Tikhonova  <anna.tikhonova@intel.com>
1973             Ilya Tocar  <ilya.tocar@intel.com>
1974             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1975             Ilya Verbin  <ilya.verbin@intel.com>
1976             Kirill Yukhin  <kirill.yukhin@intel.com>
1977             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1978
1979         * config/i386/sse.md
1980         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
1981         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
1982         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
1983         Ditto.
1984
1985 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1986             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1987             Anna Tikhonova  <anna.tikhonova@intel.com>
1988             Ilya Tocar  <ilya.tocar@intel.com>
1989             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1990             Ilya Verbin  <ilya.verbin@intel.com>
1991             Kirill Yukhin  <kirill.yukhin@intel.com>
1992             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1993
1994         * config/i386/sse.md
1995         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
1996         use VF_128_256 mode iterator and update assembler emit code.
1997         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
1998         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
1999         Add masking, use VF_128_256 mode iterator.
2000         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2001         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2002         Add masking, use VF_128_256 mode iterator and update assembler emit
2003         code.
2004         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2005         (define_mode_attr avx512flogicsuff): Delete.
2006         (define_insn "avx512f_<logic><mode>"): Ditto.
2007         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2008         MODE_TI.
2009         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2010
2011 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2012             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2013             Anna Tikhonova  <anna.tikhonova@intel.com>
2014             Ilya Tocar  <ilya.tocar@intel.com>
2015             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2016             Ilya Verbin  <ilya.verbin@intel.com>
2017             Kirill Yukhin  <kirill.yukhin@intel.com>
2018             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2019
2020         * config/i386/sse.md
2021         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2022         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2023         use VI12_128 mode iterator.
2024         (define_expand "ashrv2di3<mask_name>"): New.
2025
2026 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2027             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2028             Anna Tikhonova  <anna.tikhonova@intel.com>
2029             Ilya Tocar  <ilya.tocar@intel.com>
2030             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2031             Ilya Verbin  <ilya.verbin@intel.com>
2032             Kirill Yukhin  <kirill.yukhin@intel.com>
2033             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2034
2035         * config/i386/i386.c
2036         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2037         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2038         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2039         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2040         CODE_FOR_avx512vl_ucmpv4si3_mask.
2041         * config/i386/sse.md
2042         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2043         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2044         (define_insn
2045         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2046         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2047         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2048         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2049         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2050         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2051
2052 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2053             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2054             Anna Tikhonova  <anna.tikhonova@intel.com>
2055             Ilya Tocar  <ilya.tocar@intel.com>
2056             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2057             Ilya Verbin  <ilya.verbin@intel.com>
2058             Kirill Yukhin  <kirill.yukhin@intel.com>
2059             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2060
2061         * config/i386/sse.md
2062         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2063         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2064         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2065         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2066         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2067         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2068         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2069         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2070         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2071
2072 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2073             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2074             Anna Tikhonova  <anna.tikhonova@intel.com>
2075             Ilya Tocar  <ilya.tocar@intel.com>
2076             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2077             Ilya Verbin  <ilya.verbin@intel.com>
2078             Kirill Yukhin  <kirill.yukhin@intel.com>
2079             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2080
2081         * config/i386/sse.md
2082         (define_insn "avx512f_blendm<mode>"): Delete.
2083         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2084         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2085         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2086         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2087         (define_insn
2088         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2089         Remove.
2090         (define_insn
2091         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2092         New.
2093         (define_insn
2094         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2095         Ditto.
2096         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2097         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2098         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2099         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2100         Delete.
2101         (define_insn
2102         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2103         New.
2104         (define_insn
2105         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2106         Ditto.
2107         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2108         Delete.
2109         (define_insn
2110         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2111         New.
2112         (define_insn
2113         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2114         Ditto.
2115
2116 2014-10-14  Richard Biener  <rguenther@suse.de>
2117
2118         PR tree-optimization/63512
2119         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2120         modified.
2121
2122 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2123
2124         PR target/63260
2125         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2126         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2127         of FPSCR.
2128         (negsf2_i): Rename to *negsf2_i.
2129         (abssf2_i): Rename to *abssf2_i.
2130         (negdf2_i): Rename to *negdf2_i.
2131         (absdf2_i): Rename to *absdf2_i.
2132
2133 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2134             Jeff Law  <law@redhat.com>
2135
2136         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2137         "replace" into boolean bitfields; turn member "loop_depth" into a short
2138         integer; add new member "no_equiv" and "reserved".
2139         (no_equiv): Set no_equiv of struct equivalence if register is marked
2140         as having no known equivalence.
2141         (update_equiv_regs): Check all definitions for a multiple-set
2142         register to make sure that the RHS have the same value.
2143
2144 2014-10-13  Richard Henderson  <rth@redhat.com>
2145
2146         * combine-stack-adj.c (no_unhandled_cfa): New.
2147         (maybe_merge_cfa_adjust): New.
2148         (combine_stack_adjustments_for_block): Use them.
2149
2150 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2151
2152         * Makefile.in (TAGS): Tag ../include files.
2153
2154 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2155
2156         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2157         to rs6000_dbx_register_number.
2158         (DWARF_FRAME_REGNUM): Redefine as identity map.
2159         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2160         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2161         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2162         argument to handle .debug_frame and .eh_frame directly.  Always
2163         translate SPE high register numbers.  Add special treatment for CR,
2164         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2165
2166         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2167         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2168         (RS6000_USE_DWARF_NUMBERING): Define.
2169         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2170         (RS6000_USE_DWARF_NUMBERING): Define.
2171         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2172         (RS6000_USE_DWARF_NUMBERING): Define.
2173         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2174         (RS6000_USE_DWARF_NUMBERING): Define.
2175         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2176         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2177
2178 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2179
2180         * config/i386/i386.c (ix86_address_cost): Lower cost for
2181         when address contains GOT register.
2182
2183 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2184             Vladimir Makarov  <vmakarov@redhat.com>
2185
2186         PR target/8340
2187         PR middle-end/47602
2188         PR rtl-optimization/55458
2189         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2190         (ix86_init_pic_reg): New.
2191         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2192         (ix86_save_reg): Likewise.
2193         (ix86_expand_prologue): Remove PIC register initialization
2194         now performed in ix86_init_pic_reg.
2195         (ix86_output_function_epilogue): Add check on pseudo register.
2196         (set_pic_reg_ever_alive): New.
2197         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2198         set_pic_reg_ever_alive.
2199         (legitimize_tls_address): Likewise.
2200         (ix86_pic_register_p): New check.
2201         (ix86_delegitimize_address): Add check on pseudo register.
2202         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2203         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2204         (TARGET_INIT_PIC_REG): New.
2205         (TARGET_USE_PSEUDO_PIC_REG): New.
2206         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2207         if pic_offset_table_rtx exists.
2208         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2209         Document.
2210         * doc/tm.texi: Regenerate.
2211         * function.c (assign_parms): Generate pseudo register for PIC.
2212         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2213         register.
2214         * ira-color.c (color_pass): Add check on pseudo register.
2215         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2216         register.
2217         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2218         register.
2219         (ira): Add target specific PIC register initialization.
2220         (do_reload): Keep PIC pseudo register.
2221         * lra-assigns.c (spill_for): Add checks on pseudo register.
2222         * lra-constraints.c (contains_symbol_ref_p): New.
2223         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2224         register.
2225         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2226         * target.def (use_pseudo_pic_reg): New.
2227         (init_pic_reg): New.
2228
2229 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2230
2231         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2232         Remove m_SILVERMONT and m_INTEL from the tune.
2233
2234 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2235
2236         PR libfortran/63471
2237         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2238         when _HPUX_SOURCE is defined.
2239
2240 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2241
2242         PR tree-optimization/62127
2243         * tree.c (remap_type_1): When remapping array, remap
2244         also its type.
2245
2246 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2247
2248         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2249         longer impact parallelization.
2250
2251 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2252
2253         PR bootstrap/63496
2254         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2255
2256 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2257
2258         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2259
2260 2014-10-13  Richard Biener  <rguenther@suse.de>
2261
2262         PR tree-optimization/63419
2263         * gimple-fold.h (gimple_convert): New function.
2264         * gimple-fold.c (gimple_convert): Likewise.
2265         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2266         to split out required conversions early.
2267
2268 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2269
2270         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2271         Add the parts of an insn in reverse order, with the pattern at
2272         the top of the queue.  Detect when we're iterating over a SEQUENCE
2273         pattern and in that case just consider patterns of subinstructions.
2274
2275 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2276
2277         PR target/59401
2278         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2279         of rtx.
2280         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2281         insn walking.
2282         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2283         address.  Use def chains to handle GBR clobbering call insns.
2284
2285 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2286
2287         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2288         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2289         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2290         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2291         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2292         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2293         * doc/gty.texi (for_user): Document new option.
2294         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2295         char.
2296         (walk_type): Don't error out on for_user option.
2297         (write_func_for_structure): Emit user marking routines if requested by
2298         for_user option.
2299         (write_local_func_for_structure): Likewise.
2300         (main): Mark types with for_user option as used.
2301         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2302         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2303         * hash-table.h (ggc_hasher): New struct.
2304         (hash_table::create_ggc): New function.
2305         (gt_pch_nx): New overload for hash_table.
2306
2307 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2308
2309         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2310         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2311         * config/sh/sh.c: Likewise.
2312         * config/sh/sh-mem.cc: Likewise.
2313         * config/sh/sh.md: Likewise.
2314         * config/sh/predicates.md: Likewise.
2315         * config/sh/sync.md: Likewise.
2316
2317 2014-10-11  Martin Liska  <mliska@suse.cz>
2318
2319         PR middle-end/63376
2320         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2321         for call_cgraph_insertion_hooks added.
2322
2323 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2324
2325         PR c/63495
2326         * stor-layout.c (min_align_of_type): Don't decrease alignment
2327         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2328         TYPE_USER_ALIGN is set.
2329
2330 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2331
2332         PR rtl-optimization/63483
2333         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2334         references when alignment ANDs are involved.
2335         (write_dependence_p): Ditto.
2336         (may_alias_p): Ditto.
2337
2338 2014-10-10  Marek Polacek  <polacek@redhat.com>
2339
2340         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2341         * doc/invoke.texi: Document -fsanitize=object-size.
2342         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2343         or it into SANITIZE_UNDEFINED.
2344         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2345         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2346         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2347         * opts.c (common_handle_option): Handle -fsanitize=object-size.
2348         * ubsan.c: Include tree-object-size.h.
2349         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2350         (ubsan_expand_bounds_ifn): Use false instead of 0.
2351         (ubsan_expand_objsize_ifn): New function.
2352         (instrument_object_size): New function.
2353         (pass_ubsan::execute): Add object size instrumentation.
2354         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2355
2356 2014-10-10  Richard Henderson  <rth@redhat.com>
2357
2358         PR target/63404
2359         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2360         Restrict the set of expressions we're willing to move.
2361
2362 2014-10-10  Jeff Law  <law@redhat.com>
2363
2364         * ira.c (struct equivalence): Promote INIT_INSNs field to
2365         an rtx_insn_list.  Add comments.
2366         (no_equiv): Promote LIST to an rtx_insn_list.  Update
2367         testing for and creating the special marker.  Use methods
2368         to extract the insn and next pointers.  Promote INSN to an
2369         rtx_insn.
2370         (update_equiv_regs): Update test for special marker in the
2371         INIT_INSNs list.
2372
2373 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2374
2375         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2376         * configure: Regenerate.
2377         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2378         TARGET_FIX_ERR_A53_835769_DEFAULT.
2379         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2380         value to 2.
2381         * doc/install.texi (aarch64*-*-*): Document
2382         new --enable-fix-cortex-a53-835769 option.
2383
2384 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2385             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2386
2387         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2388         (ADJUST_INSN_LENGTH): Define.
2389         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2390         * config/aarch64/aarch64.c (is_mem_p): New function.
2391         (is_memory_op): Likewise.
2392         (aarch64_prev_real_insn): Likewise.
2393         (is_madd_op): Likewise.
2394         (dep_between_memop_and_curr): Likewise.
2395         (aarch64_madd_needs_nop): Likewise.
2396         (aarch64_final_prescan_insn): Likewise.
2397         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2398         and -mno-fix-cortex-a53-835769 options.
2399
2400 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2401
2402         PR tree-optimization/63464
2403         * tree-switch-conversion.c (struct case_bit_test): Remove
2404         hi and lo fields, add wide_int mask field.
2405         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
2406         hi/lo fields into wide_int mask operations, optimize by pretending
2407         minval to be 0 if maxval is small enough.
2408         (process_switch): Adjust caller.
2409
2410 2014-10-10  Richard Biener  <rguenther@suse.de>
2411
2412         PR tree-optimization/63379
2413         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2414         a neutral operand for min/max when it is not a reduction chain.
2415
2416 2014-10-10  Richard Biener  <rguenther@suse.de>
2417
2418         PR tree-optimization/63476
2419         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
2420         (BB_LIVE_VOP_ON_EXIT): New define.
2421         (create_expression_by_pieces): Assign VUSEs to stmts.
2422         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
2423         (pass_pre::execute): Assert virtual SSA form is up-to-date
2424         after insertion.
2425
2426 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         * lra-assigns.c (assign_by_spills): Error out on spill failure.
2429
2430 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
2431
2432         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
2433         assertion.
2434
2435 2014-10-09  Richard Biener  <rguenther@suse.de>
2436
2437         PR tree-optimization/63380
2438         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2439         may trap.
2440
2441 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2442
2443         * config/avr/avr.opt (mmcu=): Change to have a string value.
2444         (mn-flash=, mskip-bug, march=, mrmw): New options.
2445         (HeaderInclude): New.
2446         (mmcu=): Remove Var / Init clauses.
2447         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
2448         -specs option.
2449         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
2450         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
2451         (SYMBOL_FLAG_IO_LOW): Define.
2452         (avr_device_to_as, avr_device_to_ld): Don't declare.
2453         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2454         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
2455         (EXTRA_SPEC_FUNCTIONS): Don't define.
2456         (ASM_SPEC): Translate -arch= option to -mmcu= option.
2457         (LINK_SPEC): Translate -arch= option to -m= option.
2458         Don't use device_to_ld / device_to_data_start.
2459         (STARTFILE_SPEC): Now empty.
2460         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
2461         * config/avr/gen-avr-mmcu-specs.c: New file.
2462         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
2463         (s-device-specs): Likewise.
2464         (GCC_PASSES): Add s-device-specs.
2465         (install-driver): Depend on install-device-specs.
2466         (install-device-specs): New rule.
2467         * config/avr/avr.c (avr_option_override): Look up mcu arch by
2468         avr_arch_index and provide fallback initialization for avr_n_flash.
2469         (varasm.h): #include.
2470         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
2471         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
2472         (avr_attribute_table): Add "io", "address" and "io_low".
2473         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
2474         Add special handling for symbols with "io" and/or "address" attributes.
2475         (avr_asm_asm_output_aligned_bss): New function.
2476         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
2477         as appropriate.  Handle io_low attribute.
2478         (avr_out_sbxx_branch): Handle symbolic io addresses.
2479         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
2480         avr_n_flash instead of avr_current_device->n_flash.
2481         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
2482         (avr_emit_movmemhi): Likewise.
2483         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
2484         Use TARGET_RMW instead of avr_current_device->dev_attributes.
2485         Don't define avr_current_device->macro (that's the specfile's job).
2486         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
2487         * config/avr/avr.c (avr_2word_insn_p): Likewise.
2488         * config/avr/avr.md (*cpse.ne): Likewise.
2489         (mov<mode>): Use avr_eval_addr_attrib.
2490         (cbi): Change constraint for low_io_address_operand operand to "i".
2491         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
2492         * config/avr/predicates.md (io_address_operand):
2493         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
2494         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
2495         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
2496         Update prototype.
2497         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
2498         * config/avr/genmultilib.awk: Use -march=.
2499         Remove Multilib matches processing.
2500         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
2501         * config/avr/avr-arch.h: Add double include guard.
2502         (avr_mcu_t) <library_name>: Update comment.
2503         * config/avr/driver-avr.c (avr_device_to_as): Delete.
2504         (avr_device_to_ld, avr_device_to_data_start): Likewise.
2505         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
2506         (avr_device_to_sp8): Likewise.
2507         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
2508
2509         * doc/extend.texi (io, address): Document new AVR variable attributes.
2510         (io_low): Likewise.
2511
2512 2014-10-09  Marek Polacek  <polacek@redhat.com>
2513
2514         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
2515
2516 2014-10-08  Richard Biener  <rguenther@suse.de>
2517
2518         PR tree-optimization/61969
2519         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
2520         variables.
2521
2522 2014-10-09  Richard Biener  <rguenther@suse.de>
2523
2524         PR tree-optimization/63445
2525         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
2526         overflow for non-equality compares.
2527
2528 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
2529
2530         PR rtl-optimization/57003
2531         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
2532         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
2533         killing regs_invalidated_by_call.
2534
2535 2014-10-08  Teresa Johnson  <tejohnson@google.com>
2536
2537         PR bootstrap/63432.
2538         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
2539         (ssa_fix_duplicate_block_edges): Invoke it.
2540         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
2541
2542 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
2543
2544         PR target/52941
2545         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
2546         atomic_fetch_<fetchop_name>si_hard,
2547         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
2548         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
2549         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
2550         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
2551
2552 2014-10-08  Rong Xu  <xur@google.com>
2553
2554         * gcov-tool.c (profile_overlap): New driver function
2555         to compute profile overlap.
2556         (print_overlap_usage_message): New.
2557         (overlap_usage): New.
2558         (do_overlap): New.
2559         (print_usage): Add calls to overlap function.
2560         (main): Ditto.
2561         * doc/gcov-tool.texi: Add documentation.
2562
2563 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2564
2565         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
2566         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
2567
2568 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
2569
2570         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
2571         pattern matching of MEM_REF.
2572         (check_stmt_for_type_change): Update.
2573
2574 2014-10-08  Steve Ellcey  <sellcey@mips.com>
2575
2576         * config/mips/linux64.h: Remove.
2577         * config/mips/gnu-user64.h: Remove.
2578         * gcc.config (mips*-*-*): Remove references to linux64.h and
2579         gnu-user64.h
2580         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
2581         with modified version from gnu-user64.h.
2582         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
2583         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
2584         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
2585         linux64.h.
2586         (GNU_USER_LINK_EMULATION64): Ditto.
2587         (GNU_USER_LINK_EMULATIONN32): Ditto.
2588         (GLIBC_DYNAMIC_LINKER32): Ditto.
2589         (GLIBC_DYNAMIC_LINKER64): Ditto.
2590         (GLIBC_DYNAMIC_LINKERN32): Ditto.
2591         (UCLIBC_DYNAMIC_LINKER32): Ditto.
2592         (UCLIBC_DYNAMIC_LINKER64): Ditto.
2593         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
2594         (BIONIC_DYNAMIC_LINKERN32): Ditto.
2595         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
2596         (GLIBC_DYNAMIC_LINKER): Delete.
2597         (UCLIBC_DYNAMIC_LINKER): Delete.
2598
2599 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
2600             Richard Biener  <rguenther@suse.de>
2601
2602         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
2603         Get address space from operand 0 (BASE).
2604
2605 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
2606
2607         PR target/61387
2608         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
2609
2610 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
2611
2612         * dwarf2out.c: Remove current_function_has_inlines.
2613         (gen_subprogram_die): Same.
2614         (gen_inlined_subroutine_die): Same.
2615
2616 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
2617
2618         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
2619         type.
2620         (_addcarry_u64): Ditto.
2621         (_addcarryx_u64): Ditto.
2622
2623 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2624
2625         * cgraph.h (cgraph_node::get_fun): Declare.
2626         * cgraph.c (cgraph_node::get_fun): New method.
2627         * ipa-inline.c (can_inline_edge_p): Use it.
2628
2629 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2630
2631         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
2632         and -ftrapping-math.
2633         * lto-wrapper.c (merge_and_complain): Likewise.
2634         (run_gcc): Likewise.
2635
2636 2014-10-06  Rong Xu  <xur@google.com>
2637
2638         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
2639         * tree-profile.c: (params.h): New include.
2640         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
2641         and __gcov_indirect_call_topn_counters for
2642         indirect_call_topn_profile.
2643         (gimple_init_edge_profiler): New decls for
2644         __gcov_indirect_call_topn_profiler.
2645         (gimple_gen_ic_profiler): Generate the correct profiler call.
2646         (gimple_gen_ic_func_profiler): Fix format.
2647         * value-prof.c (params.h): New include.
2648         (dump_histogram_value): Hanlde indirect_call_topn counters.
2649         (stream_in_histogram_value): Ditto.
2650         (gimple_indirect_call_to_profile): Use indirect_call_topn
2651         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
2652         (gimple_find_values_to_profile): Hanlde indirect_call_topn
2653         counters.
2654         * value-prof.h (enum hist_type): Histrogram type for
2655         indirect_call_topn counters.
2656         * profile.c (instrument_values): Instrument
2657         indirect_call_topn counters.
2658
2659 2014-10-06  Rong Xu  <xur@google.com>
2660
2661         * Makefile.in: Fix dependence.
2662         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
2663         indirect call topn profiler.
2664         * gcov-io.h: Ditto.
2665
2666 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2667
2668         * calls.c (expand_call): Do not use the target as the return slot if
2669         it is not sufficiently aligned.
2670
2671 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2672
2673         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
2674         discussion of permutes and why we don't handle them.
2675
2676 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2677
2678         * config/sparc/predicates.md (int_register_operand): Delete.
2679
2680 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2681
2682         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
2683
2684 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
2685
2686         * ubsan.h (ubsan_get_source_location): New prototype.
2687         * ubsan.c (ubsan_source_location_type): New variable.
2688         Function renamed to ...
2689         (ubsan_get_source_location_type): ... this.  Cache
2690         return value in ubsan_source_location_type variable.
2691         (ubsan_source_location, ubsan_create_data): Use
2692         ubsan_get_source_location_type instead of
2693         ubsan_source_location_type.
2694         * asan.c (asan_protect_global): Don't protect globals
2695         with ubsan_get_source_location_type () type.
2696         (asan_add_global): Provide global decl location info
2697         if possible.
2698
2699 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2700
2701         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
2702         sanity check.
2703
2704 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2705
2706         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
2707         on size.
2708         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
2709         into vptr pointer.
2710         (ipa_polymorphic_call_context::dump): Fix formating.
2711         (walk_ssa_copies): Add logic avoiding loops; update uses.
2712         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
2713
2714 2014-10-02  Mark Wielaard  <mjw@redhat.com>
2715
2716         PR debug/63239
2717         * dwarf2out.c (gen_subprogram_die): When a member function is
2718         explicitly deleted then add a DW_AT_GNU_deleted attribute.
2719         * langhooks.h (struct lang_hooks_for_decls): Add
2720         function_decl_deleted_p langhook.
2721         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
2722         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
2723
2724 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2725
2726         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
2727         NULL pointer checks.
2728         (ipa_polymorphic_call_context::get_dynamic_type): Return true
2729         if type doesn't change.
2730         * cgraph.h (cgraph_indirect_call_info): New flag.
2731         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
2732         (cgraph_node::dump): Dump it.
2733         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
2734         of context.get_dynamic_type.
2735         (ipa_make_edge_direct_to_target): Do not speculate
2736         edge that is already speuclative.
2737         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
2738         speculate to __builtin_unreachable
2739         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
2740         vptr_changed.
2741         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
2742
2743 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
2744
2745         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
2746         get_dynamic_type; drop TODO.
2747         * ipa-polymorphic-call.c
2748         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
2749         for otr_type to be unknown.
2750
2751 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2752
2753         * common/config/score/score-common.c: Remove.
2754         * config.gcc: Remove support for score-*.
2755         * config/score/constraints.md: Remove.
2756         * config/score/elf.h: Remove.
2757         * config/score/predicates.md: Remove.
2758         * config/score/score-conv.h: Remove.
2759         * config/score/score-generic.md: Remove.
2760         * config/score/score-modes.def: Remove.
2761         * config/score/score-protos.h: Remove.
2762         * config/score/score.c: Remove.
2763         * config/score/score.h: Remove.
2764         * config/score/score.md: Remove.
2765         * config/score/score.opt: Remove.
2766         * doc/md.texi: Don't document score-*.
2767
2768 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
2769
2770         PR pch/63429
2771         * genconditions.c: Directly include ggc.h before rtl.h.
2772
2773 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2774
2775         * ipa-polymorphic-call.c
2776         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
2777         code determining speculative type.
2778         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
2779
2780 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2781
2782         * altivec.md (altivec_lvsl): New define_expand.
2783         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
2784         (altivec_lvsr): New define_expand.
2785         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
2786         * rs6000.c (rs6000_expand_builtin): Change to use
2787         altivec_lvs[lr]_direct; remove commented-out code.
2788
2789 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2790
2791         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2792         Issue a warning message when vec_lvsl or vec_lvsr is used with a
2793         little endian target.
2794
2795 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2796
2797         * tree-pretty-print.c (dump_location): Make it extern. Dump also
2798         the column.
2799         * tree-pretty-print.h (dump_location): Declare.
2800         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
2801         (pp_gimple_stmt_1): Likewise.
2802         (dump_implicit_edges): Likewise.
2803         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
2804         LOCATION_LINE.
2805
2806
2807 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2808
2809         * gcc.c (driver::global_initializations): Remove "const" so
2810         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
2811         and decoded_options_count.
2812
2813 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
2814
2815         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
2816         macro.
2817         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
2818         TARGET_E500_DOUBLE case here.
2819
2820 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
2821
2822         PR c++/54427
2823         PR c++/57198
2824         PR c++/58845
2825         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
2826
2827 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
2828
2829         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
2830         * lto-cgraph.c (lto_output_edge, input_edge): Stream
2831         in_polymorphic_cdtor
2832         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
2833         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
2834         * cgraphclones.c (cgraph_edge::clone): Likewise.
2835         * ipa-prop.c (update_jump_functions_after_inlining,
2836         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
2837         to possible_dynamic_type_change.
2838         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
2839         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2840         IN_POLY_CDOTR argument.
2841
2842         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
2843         for BASE and OUTER_TYPE being NULL.
2844         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
2845         in_poly_cdtor parameter.
2846
2847 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2848
2849         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
2850         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
2851         TARGET_AVX512F.
2852         (expand_vec_perm_1): Likewise.
2853
2854 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2855             Uros Bizjak  <ubizjak@gmail.com>
2856
2857         PR tree-optimization/61403
2858         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
2859         error in comment.  Also optimize 256-bit vectors for AVX2
2860         or AVX (floating vectors only), provided the first permutation
2861         can be performed in one insn.
2862
2863 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
2864
2865         * gcc.c (class driver): New class.
2866         (main): Reimplement in terms of driver::main, moving most of the
2867         locals to be locals within individual methods of class driver.
2868         The remaining locals "explicit_link_files", "decoded_options" and
2869         "decoded_options_count" are used by multiple driver:: methods, and
2870         so become member data.  Doing so isolates the argc/argv reads and
2871         writes.  Replace "goto out" with a special exit code from
2872         new method driver::prepare_infiles.  Split out the old
2873         implementation of main into the following...
2874         (driver::main): New function, corresponding to the old "main"
2875         implementation.
2876         (driver::set_progname): New function, taken from the old
2877         "main" implementation.
2878         (driver::expand_at_files): Likewise.
2879         (driver::decode_argv): Likewise.
2880         (driver::global_initializations): Likewise.
2881         (driver::build_multilib_strings): Likewise.
2882         (driver::set_up_specs): Likewise.
2883         (driver::putenv_COLLECT_GCC): Likewise.
2884         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
2885         (driver::handle_unrecognized_options): Likewise.
2886         (driver::maybe_print_and_exit): Likewise.
2887         (driver::prepare_infiles): Likewise.
2888         (driver::do_spec_on_infiles): Likewise.
2889         (driver::maybe_run_linker): Likewise.
2890         (driver::final_actions): Likewise.
2891         (driver::get_exit_code): Likewise.
2892
2893 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
2894
2895         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
2896         don't emit empty ctors.
2897
2898 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
2899
2900         * convert.c (convert_to_integer): Do not introduce useless conversions
2901         between integral types.
2902
2903 2014-10-03  David Sherwood  <david.sherwood@arm.com>
2904
2905         * ira-int.h (ira_allocno): Mark hard_regno as signed.
2906
2907 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
2908
2909         * lra-constraints.c (inherit_in_ebb): Handle calls with
2910         multiple return values.
2911         * caller-save.c (save_call_clobbered_regs): Likewise.
2912
2913 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
2914
2915         * tree-vect-data-refs.c (vect_permute_load_chain,
2916         vect_shift_permute_load_chain): Fix a typo in temporary var names,
2917         suffle3 to shuffle3.
2918
2919         PR libgomp/61200
2920         * omp-low.c (taskreg_contexts): New variable.
2921         (scan_omp_parallel): Push newly created context into taskreg_contexts
2922         vector and move record layout code to finish_taskreg_scan.
2923         (scan_omp_task): Likewise.
2924         (finish_taskreg_scan): New function.
2925         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
2926         vector elements and release it.
2927
2928         PR target/62128
2929         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
2930         of palignr arguments can't be used due to min 0 or max - min
2931         too high, try also op0, op1 order of palignr arguments.
2932
2933 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
2934
2935         * cgraph.h (ipa_polymorphic_call_context):
2936         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
2937         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
2938         * ipa-polymorphic-call.c
2939         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
2940         past end of dynamic types.
2941         (ipa_polymorphic_call_context::stream_out,
2942         speculative_outer_type): Stream dynamic flag.
2943         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
2944         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
2945         Clear DYNAMIC.
2946         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
2947         set it.
2948         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
2949         * ipa-prop.c (update_jump_functions_after_inlining,
2950         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
2951
2952 2014-10-02  Teresa Johnson  <tejohnson@google.com>
2953
2954         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
2955         up when synthesizing counts to avoid rounding errors.
2956
2957 2014-10-02  Teresa Johnson  <tejohnson@google.com>
2958
2959         PR middle-end/63422
2960         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
2961         asserts to handle incoming insanities.
2962
2963 2014-10-02  Martin Jambor  <mjambor@suse.cz>
2964
2965         PR tree-optimization/63375
2966         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
2967         references.
2968
2969 2014-10-02  Olivier Hainque  <hainque@adacore.com>
2970
2971         * Makefile.in (CROSS): Define, to @CROSS.
2972
2973 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
2974
2975         PR target/62128
2976         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
2977         if it expands to a single insn only.
2978         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
2979         fail unless in_order is true.  Add forward declaration.
2980         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
2981         is useful for one_operand_p.
2982         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
2983
2984 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
2985
2986         * cgraphclones.c (build_function_type_skip_args): Do not make new
2987         type variant of old.
2988
2989 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
2990
2991         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
2992         when speculation is added.
2993         (ipa_edge_args): Add polymorphic_call_contexts.
2994         (ipa_get_ith_polymorhic_call_context): New accesor.
2995         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
2996         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
2997         (ipa_compute_jump_functions_for_edge): Compute contexts.
2998         (update_jump_functions_after_inlining): Update contexts.
2999         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3000         update dumping; add speculative edge creation.
3001         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3002         context updating.
3003         (update_indirect_edges_after_inlining): Pass down context.
3004         (ipa_edge_duplication_hook): Duplicate contexts.
3005         (ipa_write_node_info): Stream out contexts.
3006         (ipa_read_node_info): Stream in contexts.
3007         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3008         types.
3009         (try_speculative_devirtualization): New function.
3010         * ipa-utils.h (try_speculative_devirtualization): Declare.
3011
3012 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3013
3014         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3015         dumping during WPA.
3016
3017 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3018
3019         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3020         type variants.
3021
3022 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3023
3024         * ipa-polymorphic-call.c
3025         (ipa_polymorphic_call_context::restrict_to_inner_class):
3026         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3027         use speculation_consistent_p to do so; Add CONSDER_BASES
3028         and CONSIDER_PLACEMENT_NEW parameters.
3029         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3030         short circuit obvious cases.
3031         (ipa_polymorphic_call_context::dump): Improve formatting.
3032         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3033         combine_speculation_with to record speculations; Do not ICE when
3034         object is located in pointer type decl; do not ICE for methods
3035         of UNION_TYPE; do not record nonpolymorphic types.
3036         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3037         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3038         (ipa_polymorphic_call_context::combine_with): New method.
3039         (ipa_polymorphic_call_context::make_speculative): Move here; use
3040         combine speculation.
3041         * cgraph.h (ipa_polymorphic_call_context): Update
3042         restrict_to_inner_class prototype; add offset_by, make_speculative,
3043         combine_with, useless_p, combine_speculation_with and
3044         speculation_consistent_p methods.
3045         (ipa_polymorphic_call_context::offset_by): New method.
3046         (ipa_polymorphic_call_context::useless_p): New method.
3047
3048 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3049
3050         PR rtl-optimization/62151
3051         * combine.c (can_combine_p): Allow the destination register of INSN
3052         to be clobbered in I3.
3053         (subst): Do not substitute into clobbers of registers.
3054
3055 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3056
3057         PR debug/63342
3058         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3059         offset, TARGET_MEM_REF and SSA_NAME.
3060
3061         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3062         256-bit vectors for TARGET_AVX2.
3063
3064         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3065         dfirst permutation.
3066
3067         PR target/63428
3068         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3069         argument to avx2_permv2ti.
3070
3071 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3072
3073         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3074
3075 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3076
3077         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3078         (fmod<mode>3): Ditto.
3079         (fpremxf4_i387): Ditto.
3080         (reminderxf3): Ditto.
3081         (reminder<mode>3): Ditto.
3082         (fprem1xf4_i387): Ditto.
3083
3084 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3085
3086         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3087         duplicate_blocks bitmap.
3088         (remove_ctrl_stmt_and_useless_edges): Ditto.
3089         (create_block_for_threading): Ditto.
3090         (compute_path_counts): New function.
3091         (update_profile): Ditto.
3092         (recompute_probabilities): Ditto.
3093         (update_joiner_offpath_counts): Ditto.
3094         (freqs_to_counts_path): Ditto.
3095         (clear_counts_path): Ditto.
3096         (ssa_fix_duplicate_block_edges): Update profile info.
3097         (ssa_create_duplicates): Pass new parameter.
3098         (ssa_redirect_edges): Remove old profile update.
3099         (thread_block_1): New duplicate_blocks bitmap,
3100         remove old profile update.
3101         (thread_single_edge): Pass new parameter.
3102
3103 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3104
3105         PR middle-end/62120
3106         * varasm.c (decode_reg_name_and_count): Check availability for
3107         registers from ADDITIONAL_REGISTER_NAMES.
3108
3109 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3110
3111         PR plugins/63410
3112         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3113         (PLUGIN_HEADERS): Add pass-instances.def.
3114
3115 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3116
3117         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3118         iterator.
3119         * config/aarch64/aarch64-simd.md
3120         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3121         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3122         (vqdmulls_lane_s32): Fix return type.
3123         (vqdmulls_laneq_s32): New.
3124
3125 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3126
3127         PR inline-asm/63282
3128         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3129         or invert_jump_1 if jump isn't any_condjump_p.
3130
3131 2014-09-30  Terry Guo  <terry.guo@arm.com>
3132
3133         * config/arm/arm-cores.def (cortex-m7): New core name.
3134         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3135         (fpv5-d16): Ditto.
3136         * config/arm/arm-tables.opt: Regenerated.
3137         * config/arm/arm-tune.md: Regenerated.
3138         * config/arm/arm.h (TARGET_VFP5): New macro.
3139         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3140         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3141         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3142         * doc/invoke.texi: Document new cpu and fpu names.
3143
3144 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3145
3146         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3147         before sinking insn.
3148
3149 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3150
3151         * ira-int.h (ira_allocno): Add "wmode" field.
3152         * ira-build.c (create_insn_allocnos): Add new "parent" function
3153         parameter.
3154         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3155         that cannot be accessed in wmode.
3156
3157 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3158
3159         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3160         integer overflow.
3161
3162 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3163
3164         * opts.c (print_filtered_help): Print --param min/max/default
3165         with -Q.
3166
3167 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3168
3169         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3170
3171 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3172
3173         * tree-vrp.c (get_single_symbol): New function.
3174         (build_symbolic_expr): Likewise.
3175         (symbolic_range_based_on_p): New predicate.
3176         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3177         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3178         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3179         operand is symbolic and based on the other operand.
3180
3181 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3182
3183         * config/microblaze/microblaze.md (call_internal1): Use VOID
3184         instead of SI to fix "((void (*)(void)) 0)()" issue
3185
3186 2014-09-29  Nick Clifton  <nickc@redhat.com>
3187
3188         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3189         CLOBBER rtx for naked functions.
3190         (msp430_expand_epilogue): Likewise.
3191         (msp430_use_f5_series_hwmult): Cache result.
3192         (use_32bit_hwmult): Cache result.
3193         (msp430_no_hwmult): New function.
3194         (msp430_output_labelref): Use it.
3195
3196 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3197
3198         PR middle-end/63247
3199         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3200         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3201         use the alignment of avar rather than ovar.
3202
3203 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3204
3205         * config/pa/pa.c (pa_output_function_epilogue): Only update
3206         last_address when a nonnote insn is found.
3207
3208 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3209
3210         PR ipa/60665
3211         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3212
3213 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3214
3215         PR ipa/62121
3216         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3217         fix pasto in checking array size.
3218
3219 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3220
3221         PR middle-end/35545
3222         * passes.def (pass_tracer): Move before last dominator pass.
3223
3224 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3225
3226         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3227         users.
3228         (run_attempt): Handle errors of "pex_run" invocation.
3229
3230 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3231
3232         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3233         (CC1_SPEC): Define.
3234         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3235         (TARGET_ASAN_SHADOW_OFFSET): Define.
3236
3237 2014-09-26  Martin Liska  <mliska@suse.cz>
3238
3239         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3240         introduced.
3241         * cgraph.h: Likewise.
3242         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3243         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3244         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3245         * tree-ssa-alias.h: Likewise.
3246
3247 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3248             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3249
3250         * common.opt: New option.
3251         * doc/invoke.texi: Describe new option.
3252         * gcc.c (execute): Don't free first string early, but at the end
3253         of the function.  Call retry_ice if compiler exited with
3254         ICE_EXIT_CODE.
3255         (main): Factor out common code.
3256         (print_configuration): New function.
3257         (files_equal_p): Likewise.
3258         (check_repro): Likewise.
3259         (run_attempt): Likewise.
3260         (do_report_bug): Likewise.
3261         (append_text): Likewise.
3262         (try_generate_repro): Likewise
3263
3264 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3265
3266         * config/i386/i386.c (x86_print_call_or_nop): New function.
3267         (x86_function_profiler): Support -mnop-mcount and
3268         -mrecord-mcount.
3269         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3270         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3271
3272 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3273
3274         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3275         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3276         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3277         Remove.
3278
3279 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3280
3281         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3282         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3283         types_odr_comparable): Declare.
3284         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3285         * ipa-polymorphic-call.c: New file.
3286         (contains_polymorphic_type_p, possible_placement_new,
3287         ipa_polymorphic_call_context::restrict_to_inner_class,
3288         contains_type_p, decl_maybe_in_construction_p,
3289         ipa_polymorphic_call_context::stream_out,
3290         ipa_polymorphic_call_context::debug,
3291         ipa_polymorphic_call_context::stream_in,
3292         ipa_polymorphic_call_context::set_by_decl,
3293         ipa_polymorphic_call_context::set_by_invariant,
3294         walk_ssa_copies,
3295         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3296         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3297         extr_type_from_vtbl_ptr_store, record_known_type
3298         check_stmt_for_type_change,
3299         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3300         ipa-devirt.c
3301         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3302         and streamer-hooks.h
3303         (contains_polymorphic_type_p, possible_placement_new,
3304         ipa_polymorphic_call_context::restrict_to_inner_class,
3305         contains_type_p, decl_maybe_in_construction_p,
3306         ipa_polymorphic_call_context::stream_out,
3307         ipa_polymorphic_call_context::debug,
3308         ipa_polymorphic_call_context::stream_in,
3309         ipa_polymorphic_call_context::set_by_decl,
3310         ipa_polymorphic_call_context::set_by_invariant,
3311         walk_ssa_copies,
3312         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3313         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3314         extr_type_from_vtbl_ptr_store, record_known_type
3315         check_stmt_for_type_change,
3316         ipa_polymorphic_call_context::get_dynamic_type): Move to
3317         ipa-polymorphic-call.c
3318         (type_all_derivations_known_p, types_odr_comparable,
3319         types_must_be_same_for_odr): Export.
3320         (type_known_to_have_no_deriavations_p): New function.
3321         * Makefile.in: Add ipa-polymorphic-call.c
3322
3323 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3324
3325         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3326         for better storage.
3327         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3328         (possible_polymorphic_call_targets): Instead of computing both
3329         speculative and non-speculative answers, do just one at a time.
3330         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3331         (dump_targets): Break out from ...
3332         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3333         and non-speculative lists.
3334         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3335         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3336
3337 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3338
3339         PR rtl-optimization/63348
3340         * emit-rtl.c (try_split): Do not emit extra barrier.
3341
3342 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
3343
3344         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3345         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3346         new predicates.
3347         (aarch64_<sur>shll2_n<mode>): Likewise.
3348         (aarch64_<sur>shr_n<mode>): Likewise.
3349         (aarch64_<sur>sra_n<mode>: Likewise.
3350         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3351         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3352         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3353         * config/aarch64/iterators.md (ve_mode): New.
3354         (offsetlr): Remap to infix text for use in new predicates.
3355         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3356         (aarch64_simd_shift_imm_hi): Likewise.
3357         (aarch64_simd_shift_imm_si): Likewise.
3358         (aarch64_simd_shift_imm_di): Likewise.
3359         (aarch64_simd_shift_imm_offset_qi): Likewise.
3360         (aarch64_simd_shift_imm_offset_hi): Likewise.
3361         (aarch64_simd_shift_imm_offset_si): Likewise.
3362         (aarch64_simd_shift_imm_offset_di): Likewise.
3363         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3364         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3365         (aarch64_simd_shift_imm_bitsize_si): Likewise.
3366         (aarch64_simd_shift_imm_bitsize_di): Likewise.
3367
3368 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
3369
3370         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3371         new created BB as the intersection of live-in from "old_dest" and
3372         live-out from "bb".
3373
3374 2014-09-25  Felix Yang  <felix.yang@huawei.com>
3375
3376         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3377         * genautomata.c (merge_states): Ditto.
3378
3379 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
3380
3381         PR target/62218
3382         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3383         in instruction sequence.
3384
3385 2014-09-25  Nick Clifton  <nickc@redhat.com>
3386
3387         PR target/62218
3388         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3389         in instruction sequence.
3390
3391 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3392
3393         PR target/63335
3394         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
3395         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
3396
3397 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3398             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3399             Anna Tikhonova  <anna.tikhonova@intel.com>
3400             Ilya Tocar  <ilya.tocar@intel.com>
3401             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3402             Ilya Verbin  <ilya.verbin@intel.com>
3403             Kirill Yukhin  <kirill.yukhin@intel.com>
3404             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3405
3406         * config/i386/sse.md
3407         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
3408         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
3409         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
3410         (define_expand "<avx512>_perm<mode>_mask"): ... this.
3411         Use VI8F_256_512 mode iterator.
3412         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
3413         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
3414
3415 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3416             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3417             Anna Tikhonova  <anna.tikhonova@intel.com>
3418             Ilya Tocar  <ilya.tocar@intel.com>
3419             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3420             Ilya Verbin  <ilya.verbin@intel.com>
3421             Kirill Yukhin  <kirill.yukhin@intel.com>
3422             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3423
3424         * config/i386/sse.md
3425         (define_insn "avx_movshdup256<mask_name>"): Add masking.
3426         (define_insn "sse3_movshdup<mask_name>"): Ditto.
3427         (define_insn "avx_movsldup256<mask_name>"): Ditto.
3428         (define_insn "sse3_movsldup<mask_name>"): Ditto.
3429         (define_insn "vec_dupv2df<mask_name>"): Ditto.
3430         (define_insn "*vec_concatv2df"): Add EVEX version.
3431
3432 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3433             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3434             Anna Tikhonova  <anna.tikhonova@intel.com>
3435             Ilya Tocar  <ilya.tocar@intel.com>
3436             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3437             Ilya Verbin  <ilya.verbin@intel.com>
3438             Kirill Yukhin  <kirill.yukhin@intel.com>
3439             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3440
3441         * config/i386/sse.md
3442         (define_insn "vec_set<mode>_0"): Add EVEX version.
3443
3444 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3445             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3446             Anna Tikhonova  <anna.tikhonova@intel.com>
3447             Ilya Tocar  <ilya.tocar@intel.com>
3448             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3449             Ilya Verbin  <ilya.verbin@intel.com>
3450             Kirill Yukhin  <kirill.yukhin@intel.com>
3451             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3452
3453         * config/i386/sse.md
3454         (define_insn
3455         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
3456         New.
3457         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3458         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
3459         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
3460         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
3461         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
3462         (define_expand "sse2_cvtpd2ps_mask): New.
3463         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
3464         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
3465
3466 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3467             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3468             Anna Tikhonova  <anna.tikhonova@intel.com>
3469             Ilya Tocar  <ilya.tocar@intel.com>
3470             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3471             Ilya Verbin  <ilya.verbin@intel.com>
3472             Kirill Yukhin  <kirill.yukhin@intel.com>
3473             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3474
3475         * config/i386/i386.c
3476         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
3477         (ufix_notruncv8dfv8si2_mask_round): ... this.
3478         * config/i386/sse.md
3479         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
3480         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
3481         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
3482         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
3483         (define_expand "sse2_cvtpd2dq"): Delete.
3484         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
3485         make 2nd operand const0 vector.
3486         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
3487         Delete.
3488         (define_mode_attr pd2udqsuff): New.
3489         (define_insn
3490         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
3491         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
3492         (define_insn "*avx_cvttpd2dq256_2"): Delete.
3493         (define_expand "sse2_cvttpd2dq"): Ditto.
3494         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
3495         make 2nd operand const0 vector.
3496
3497 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
3498
3499         PR tree-optimization/63341
3500         * tree-vectorizer.h (vect_create_data_ref_ptr,
3501         vect_create_addr_base_for_vector_ref): Add another tree argument
3502         defaulting to NULL_TREE.
3503         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
3504         argument, pass it down to vect_create_addr_base_for_vector_ref.
3505         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
3506         add that to base_offset too if non-NULL.
3507         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
3508         for dr_explicit_realign_optimized set it to vector byte size
3509         - 1 instead of setting offset, pass byte_offset down to
3510         vect_create_data_ref_ptr.
3511
3512 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3513
3514         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
3515         forgotten debug output; canonicalize querries more wtih LTO.
3516
3517 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3518
3519         * cgraph.h (class ipa_polymorphic_call_context): Move here from
3520         ipa-utils.h; add stream_int and stream_out methods.
3521         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
3522         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
3523         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
3524         add CONTEXT.
3525         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3526         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3527         ipa_polymorphic_call_context::clear_speculation,
3528         ipa_polymorphic_call_context::clear_outer_type): Move here from
3529         ipa-utils.h
3530         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
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): Likewise.
3535         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
3536         streamer-hooks.h
3537         (ipa_polymorphic_call_context::stream_out): New method.
3538         (ipa_polymorphic_call_context::stream_in): New method.
3539         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
3540         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
3541         OUTER_TYPE.
3542         (ipa_analyze_call_uses): Simplify.
3543         (update_indirect_edges_after_inlining): Do not care about outer_type.
3544         (ipa_write_indirect_edge_info): Update.
3545         (ipa_write_indirect_edge_info): Likewise.
3546         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
3547         (dump_edge_flags): Break out from ...
3548         (cgraph_node::dump): ... here; dump indirect edges.
3549
3550 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
3551
3552         * ipa-utils.h (polymorphic_call_context): Add
3553         metdhos dump, debug and clear_outer_type.
3554         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3555         (ipa_polymorphic_call_context::clear_outer_type): New method.
3556         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
3557         * ipa-devirt.c (types_odr_comparable): New function.
3558         (types_must_be_same_for_odr): New function.
3559         (odr_subtypes_equivalent_p): Simplify.
3560         (possible_placement_new): Break out from ...
3561         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
3562         be more cuatious about returning false in cases the context may be
3563         valid in derived type or via placement new.
3564         (contains_type_p): Clear maybe_derived_type
3565         (ipa_polymorphic_call_context::dump): New method.
3566         (ipa_polymorphic_call_context::debug): New method.
3567         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
3568         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
3569         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
3570         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
3571         to suceed on all valid cases; remove confused sanity check.
3572         (dump_possible_polymorphic_call_targets): Simplify.
3573
3574 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
3575
3576         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
3577         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
3578         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
3579         varpool.c: Rename all instances of DECL_ABSTRACT to
3580         DECL_ABSTRACT_P.
3581
3582 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3583
3584         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
3585         special handling for stores whose SET_SRC is an UNSPEC (such as
3586         UNSPEC_STVE).
3587
3588 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
3589
3590         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
3591         !REG_P (src) to release more instruction sink opportunities.
3592
3593 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
3594
3595         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
3596         move costs for 128-bit types.
3597
3598 2014-09-24  Martin Jambor  <mjambor@suse.cz>
3599
3600         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
3601         when duplicating a PASS_THROUGH jump function when creating a
3602         speculative edge.
3603
3604 2014-09-24  Marek Polacek  <polacek@redhat.com>
3605
3606         PR c/61405
3607         PR c/53874
3608         * asan.c (maybe_instrument_call): Add default case.
3609         * ipa-pure-const.c (special_builtin_state): Likewise.
3610         * predict.c (expr_expected_value_1): Likewise.
3611         * lto-streamer-out.c (write_symbol): Initialize variable.
3612
3613 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3614
3615         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
3616         the lane.
3617         (vmuld_laneq_f64): Likewise.
3618         (vmuls_lane_f32): Likewise.
3619         (vmuls_laneq_f32): Likewise.
3620
3621 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
3622
3623         PR bootstrap/63235
3624         * varpool.c (varpool_node::add): Pass decl attributes
3625         to lookup_attribute.
3626
3627 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
3628
3629         PR sanitizer/63316
3630         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
3631
3632 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3633
3634         PR tree-optimization/63266
3635         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
3636         marker for unknown byte value.
3637         (MARKER_MASK): New macro.
3638         (MARKER_BYTE_UNKNOWN): New macro.
3639         (HEAD_MARKER): New macro.
3640         (do_shift_rotate): Mark bytes with unknown values due to sign
3641         extension when doing an arithmetic right shift. Replace hardcoded
3642         mask for marker by new MARKER_MASK macro.
3643         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
3644         numbers accordingly.
3645
3646 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3647             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3648             Anna Tikhonova  <anna.tikhonova@intel.com>
3649             Ilya Tocar  <ilya.tocar@intel.com>
3650             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3651             Ilya Verbin  <ilya.verbin@intel.com>
3652             Kirill Yukhin  <kirill.yukhin@intel.com>
3653             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3654
3655         * config/i386/sse.md
3656         (define_insn
3657         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
3658         Add masking.
3659         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
3660         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
3661
3662 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3663             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3664             Anna Tikhonova  <anna.tikhonova@intel.com>
3665             Ilya Tocar  <ilya.tocar@intel.com>
3666             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3667             Ilya Verbin  <ilya.verbin@intel.com>
3668             Kirill Yukhin  <kirill.yukhin@intel.com>
3669             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3670
3671         * config/i386/sse.md
3672         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
3673         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
3674         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
3675         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
3676         (define_expand "avx512vl_pshuflw_mask"): New.
3677         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
3678         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
3679         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
3680         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
3681         (define_expand "avx512vl_pshufhw_mask"): New.
3682         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
3683
3684 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3685             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3686             Anna Tikhonova  <anna.tikhonova@intel.com>
3687             Ilya Tocar  <ilya.tocar@intel.com>
3688             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3689             Ilya Verbin  <ilya.verbin@intel.com>
3690             Kirill Yukhin  <kirill.yukhin@intel.com>
3691             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3692
3693         * config/i386/i386.c
3694         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
3695         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
3696         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
3697         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
3698         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
3699         * config/i386/sse.md
3700         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
3701         (define_insn
3702         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
3703         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
3704         (define_insn
3705         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
3706         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
3707         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
3708         (define_expand "avx512vl_pshufd_mask"): New.
3709         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
3710
3711 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3712             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3713             Anna Tikhonova  <anna.tikhonova@intel.com>
3714             Ilya Tocar  <ilya.tocar@intel.com>
3715             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3716             Ilya Verbin  <ilya.verbin@intel.com>
3717             Kirill Yukhin  <kirill.yukhin@intel.com>
3718             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3719
3720         * config/i386/i386.c
3721         (CODE_FOR_avx2_extracti128): Rename to ...
3722         (CODE_FOR_avx_vextractf128v4di): this.
3723         (CODE_FOR_avx2_inserti128): Rename to ...
3724         (CODE_FOR_avx_vinsertf128v4di): this.
3725         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
3726         CODE_FOR_avx_vextractf128v4di.
3727         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
3728         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
3729         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
3730         CODE_FOR_avx512vl_vinsertv8si.
3731         * config/i386/sse.md
3732         (define_expand
3733         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
3734         AVX512_VEC mode iterator.
3735         (define_insn
3736         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
3737         Ditto.
3738         (define_expand
3739         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
3740         AVX512_VEC_2 mode iterator.
3741         (define_insn "vec_set_lo_<mode><mask_name>"): New.
3742         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3743         (define_expand "avx512vl_vinsert<mode>"): Ditto.
3744         (define_insn "avx2_vec_set_lo_v4di"): Delete.
3745         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
3746         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
3747         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3748         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
3749         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
3750         (define_expand "avx2_extracti128"): Delete.
3751         (define_expand "avx2_inserti128"): Ditto.
3752
3753 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3754             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3755             Anna Tikhonova  <anna.tikhonova@intel.com>
3756             Ilya Tocar  <ilya.tocar@intel.com>
3757             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3758             Ilya Verbin  <ilya.verbin@intel.com>
3759             Kirill Yukhin  <kirill.yukhin@intel.com>
3760             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3761
3762         * config/i386/sse.md
3763         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
3764         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
3765         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
3766         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
3767         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
3768         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
3769         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
3770         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
3771         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
3772         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
3773         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
3774         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
3775         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
3776
3777 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
3778
3779         PR rtl-optimization/63210
3780         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
3781         HARD_REGNO is not available for CONFLICT_A.
3782
3783 2014-09-23  Andi Kleen  <ak@linux.intel.com>
3784
3785         * cgraph.h (symtab_node): Add no_reorder attribute.
3786         (symbol_table::output_asm_statements): Remove.
3787         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
3788         (cgraph_node::create_version_clone): Dito.
3789         (symbol_table::output_asm_statements): Remove.
3790         * trans-mem.c (ipa_tm_create_version_alias): Dito.
3791         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
3792         (output_in_order): Add no_reorder flag. Only handle no_reorder
3793         nodes when set.
3794         (symbol_table::compile): Add separate pass for no_reorder nodes.
3795         (process_common_attributes): Set no_reorder flag in symtab node.
3796         Add node argument.
3797         (process_function_and_variable_attributes): Pass symtab nodes to
3798         process_common_attributes.
3799         * doc/extend.texi (no_reorder): Document no_reorder attribute.
3800         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
3801         (lto_output_varpool_node): Dito.
3802         (input_overwrite_node): Dito.
3803         (input_varpool_node): Dito.
3804         * varpool.c (varpool_node::add): Set no_reorder attribute.
3805         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
3806         (symbol_table::output_variables): Dito.
3807         * symtab.c (symtab_node::dump_base): Print no_reorder.
3808
3809 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
3810
3811         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
3812         be INVALID_REGNUM.
3813
3814 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
3815
3816         * configure: Regenerate.
3817
3818 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
3819
3820         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
3821         when result_mode == shift_mode.
3822
3823 2014-09-23  Kostya Serebryany  <kcc@google.com>
3824
3825         Update to match the changed asan API.
3826         * asan.c (asan_global_struct): Update the __asan_global definition
3827         to match the new API.
3828         (asan_add_global): Ditto.
3829         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
3830         to __asan_init_v4.
3831
3832 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3833
3834         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
3835         refine the constraints used on 32/64-bit floating point moves.
3836         (f32_av): Likewise.
3837         (f64_vsx): Likewise.
3838         (f64_dm): Likewise.
3839         (f64_av): Likewise.
3840         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
3841         (BOOL_REGS_OP1): Likewise.
3842         (BOOL_REGS_OP2): Likewise.
3843         (BOOL_REGS_UNARY): Likewise.
3844         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
3845         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
3846         for moves involving VSX registers.  Do not use constraints that
3847         target VSX registers for decimal types.
3848         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
3849         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
3850
3851 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
3852
3853         * tree.h (int_bit_position): Turn into inline function;
3854         implement using wide int.
3855         * tree.c (int_bit_position): Remove.
3856
3857 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
3858
3859         PR bootstrap/63280
3860         * target-globals.c (target_globals::~target_globals): Fix location
3861         of ira_int destruction.
3862
3863 2014-09-23  Renlin Li  <renlin.li@arm.com>
3864
3865         * config/aarch64/aarch64.md (return): New.
3866         (simple_return): Likewise.
3867         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
3868         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
3869
3870 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
3871
3872         * common/config/aarch64/aarch64-common.c:
3873         (default_options aarch_option_optimization_table):
3874         Default to -fsched-pressure.
3875
3876 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
3877
3878         * cfgcleanup.c (try_optimize_cfg): Do not remove label
3879         with LABEL_PRESERVE_P flag set.
3880
3881 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3882             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3883             Anna Tikhonova  <anna.tikhonova@intel.com>
3884             Ilya Tocar  <ilya.tocar@intel.com>
3885             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3886             Ilya Verbin  <ilya.verbin@intel.com>
3887             Kirill Yukhin  <kirill.yukhin@intel.com>
3888             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3889
3890         * config/i386/sse.md
3891         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
3892         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
3893         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
3894         (define_insn "sse2_shufpd_v2df_mask"): New.
3895
3896 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3897             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3898             Anna Tikhonova  <anna.tikhonova@intel.com>
3899             Ilya Tocar  <ilya.tocar@intel.com>
3900             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3901             Ilya Verbin  <ilya.verbin@intel.com>
3902             Kirill Yukhin  <kirill.yukhin@intel.com>
3903             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3904
3905         * config/i386/sse.md
3906         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
3907         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
3908         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
3909         (define_insn "sse_shufps_v4sf_mask"): New.
3910
3911 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3912             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3913             Anna Tikhonova  <anna.tikhonova@intel.com>
3914             Ilya Tocar  <ilya.tocar@intel.com>
3915             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3916             Ilya Verbin  <ilya.verbin@intel.com>
3917             Kirill Yukhin  <kirill.yukhin@intel.com>
3918             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3919
3920         * config/i386/sse.md
3921         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
3922         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
3923         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
3924         (define_insn "unpcklps128_mask"): New.
3925
3926 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3927             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3928             Anna Tikhonova  <anna.tikhonova@intel.com>
3929             Ilya Tocar  <ilya.tocar@intel.com>
3930             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3931             Ilya Verbin  <ilya.verbin@intel.com>
3932             Kirill Yukhin  <kirill.yukhin@intel.com>
3933             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3934
3935         * config/i386/sse.md
3936         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
3937         (define_insn "avx512vl_unpckhpd128_mask"): New.
3938         (define_expand "avx_movddup256<mask_name>"): Add masking.
3939         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
3940         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
3941         (define_insn "avx512vl_unpcklpd128_mask"): New.
3942
3943 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
3944
3945         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3946         * doc/tm.texi: Regenerate.
3947         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
3948         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3949         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3950         Remove.
3951         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3952         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3953         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3954         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3955         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3956         Remove.
3957         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3958         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3959         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3960         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3961         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3962         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3963         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3964         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3965         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3966         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
3967         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
3968         Remove.
3969
3970 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
3971
3972         * tree-ssa-ccp.c (prop_value_d): Rename to ...
3973         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
3974         * ipa-prop.c (struct type_change_info): Rename to ...
3975         (prop_type_change_info): ... this; update uses.
3976         * ggc-page.c (globals): Rename to ...
3977         (static struct ggc_globals): ... this; update uses.
3978         * tree-ssa-loop-im.c (mem_ref): Rename to ...
3979         (im_mem_ref): ... this; update uses.
3980         * ggc-common.c (loc_descriptor): Rename to ...
3981         (ggc_loc_descriptor): ... this; update uses.
3982         * lra-eliminations.c (elim_table): Rename to ...
3983         (lra_elim_table): ... this; update uses.
3984         * bitmap.c (output_info): Rename to ...
3985         (bitmap_output_info): ... this; update uses.
3986         * gcse.c (expr): Rename to ...
3987         (gcse_expr) ... this; update uses.
3988         (occr): Rename to ...
3989         (gcse_occr): .. this; update uses.
3990         * tree-ssa-copy.c (prop_value_d): Rename to ...
3991         (prop_value_t): ... this.
3992         * predict.c (block_info_def): Rename to ...
3993         (block_info): ... this; update uses.
3994         (edge_info_def): Rename to ...
3995         (edge_info): ... this; update uses.
3996         * profile.c (bb_info): Rename to ...
3997         (bb_profile_info): ... this; update uses.
3998         * alloc-pool.c (output_info): Rename to ...
3999         (pool_output_info): ... this; update uses.
4000         * ipa-cp.c (topo_info): Rename to ..
4001         (ipa_topo_info): ... this; update uses.
4002         * tree-nrv.c (nrv_data): Rename to ...
4003         (nrv_data_t): ... this; update uses.
4004         * ipa-split.c (bb_info): Rename to ...
4005         (split_bb_info): ... this one.
4006         * profile.h (edge_info): Rename to ...
4007         (edge_profile_info): ... this one; update uses.
4008         * dse.c (bb_info): Rename to ...
4009         (dse_bb_info): ... this one; update uses.
4010         * cprop.c (occr): Rename to ...
4011         (cprop_occr): ... this one; update uses.
4012         (expr): Rename to ...
4013         (cprop_expr): ... this one; update uses.
4014
4015 2014-09-22  Jason Merrill  <jason@redhat.com>
4016
4017         * Makefile.in (check-parallel-%): Add @.
4018
4019 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4020
4021         * config/aarch64/geniterators.sh: New.
4022         * config/aarch64/iterators.md (VDQF_DF): New.
4023         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4024         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4025
4026 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4027
4028         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4029         -lnosys when -msim absent.
4030
4031 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4032
4033         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4034
4035 2014-09-22  Richard Biener  <rguenther@suse.de>
4036
4037         * gimplify.c (gimplify_init_constructor): Do not leave
4038         non-GIMPLE vector constructors around.
4039         * tree-cfg.c (verify_gimple_assign_single): Verify that
4040         CONSTRUCTORs have gimple elements.
4041
4042 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4043
4044         PR debug/63328
4045         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4046         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4047         instead of a normal gimple assignment stmt.
4048
4049 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4050
4051         * config/bfin/bfin.md: Fix use of constraints in define_split.
4052
4053 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4054
4055         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4056         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4057
4058 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4059
4060         * hard-reg-set.h: Include hash-table.h.
4061         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4062         field.
4063         * target-globals.c (target_globals::~target_globals): Call
4064         hard_regs->finalize.
4065         * rtl.h (subreg_shape): New structure.
4066         (shape_of_subreg): New function.
4067         (simplifiable_subregs): Declare.
4068         * reginfo.c (simplifiable_subreg): New structure.
4069         (simplifiable_subregs_hasher): Likewise.
4070         (simplifiable_subregs): New function.
4071         (invalid_mode_changes): Delete.
4072         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4073         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4074         Record valid mode changes in valid_mode_changes.
4075         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4076         Update calls to record_subregs_of_mode.
4077         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4078         handling.  Initialize new variables.  Update call to
4079         find_subregs_of_mode.
4080         (invalid_mode_change_p): Check new variables instead of
4081         invalid_mode_changes.
4082         (finish_subregs_of_mode): Finalize new variables instead of
4083         invalid_mode_changes.
4084         (target_hard_regs::finalize): New function.
4085         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4086         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4087
4088 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4089
4090         * combine.c (subst): Use simplify_subreg_regno rather than
4091         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4092
4093 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4094
4095         * rtl.h (subreg_info): Expand commentary
4096         * rtlanal.c (subreg_get_info): Likewise.
4097
4098 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4099
4100         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4101         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4102         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4103
4104 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4105
4106         * config/arm/arm.c: #include "tm-constrs.h"
4107         (thumb1_size_rtx_costs): Adjust rtx costs.
4108
4109 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4110
4111         * configure.ac (target_header_dir): Move block defining
4112         this to before the block setting inhibit_libc.
4113         (inhibit_libc): When considering $with_headers, just
4114         check it it's explicitly "no".  If not, also check if
4115         $target_header_dir/stdio.h is present.  If not, set
4116         inhibit_libc=true.
4117         * configure: Regenerate.
4118
4119 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4120
4121         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4122
4123 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4124
4125         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4126         insn for divides by integer powers of two.
4127         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4128         (mod<mode>3): Fix formatting.
4129         (three anonymous define_insn and two define_split): Delete.
4130
4131 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4132
4133         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4134         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4135         (floatdisf2_internal2): Ditto.
4136         (ashrdi3_no_power): Ditto.  Fix formatting.
4137
4138 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4139
4140         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4141         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4142         Tidy.
4143
4144 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4145
4146         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4147         constant, use addsi3 directly.
4148         (three anonymous define_insn, two define_split): Delete.
4149         (sub<mode>3): Move.  Do not allow constant second operand.
4150         Generate different insn for constant first operand.
4151         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4152         (subf<mode>3_imm): New.
4153         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4154         (*plus_ltu<mode>): Only handle registers.
4155         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4156         (*plus_gtu<mode>): Only handle registers.
4157         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4158
4159 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4160
4161         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4162         (iorxor): New code_attr.
4163         (IORXOR): New code_attr.
4164         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4165         (ior<mode>3, xor<mode>3): Delete.
4166         (<iorxor><mode>3): New.
4167         (splitter for "big" integer ior, xor): New.
4168         (*bool<mode>3): Move.  Also handle AND.
4169         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4170         (splitter for "big" integer ior, xor): Delete.
4171
4172 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4173
4174         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4175         (two anonymous define_insn and two define_split): Delete.
4176         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4177
4178 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4179
4180         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4181         (two anonymous define_insn and two define_split): Delete.
4182         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4183
4184 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4185
4186         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4187
4188 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4189
4190         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4191         (input_operand): Do not allow ca_operand.
4192         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4193         carry bit, allow SImode and Pmode.
4194         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4195
4196 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4197
4198         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4199         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4200         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4201         (*call_rex64_ms_sysv): Remove.
4202         (*call_value_rex64_ms_sysv): Ditto.
4203         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4204
4205 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4206
4207         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4208         operand 3 to "CnL".
4209
4210 2014-09-20  Andreas Schwab  <schwab@suse.de>
4211
4212         * config/ia64/ia64.md: Remove constraints from define_split
4213         patterns.
4214
4215 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4216
4217         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4218         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4219         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4220         (get_dynamic_type): Remove.
4221         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4222         (clear_speculation): Bring to ipa-deivrt.h
4223         (get_class_context): Rename to ...
4224         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4225         (contains_type_p): Update.
4226         (get_dynamic_type): Rename to ...
4227         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4228         (possible_polymorphic_call_targets): UPdate.
4229         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4230         * ipa-prop.c (ipa_analyze_call_uses): Update.
4231
4232 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4233
4234         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4235         privatize dynamic TLS variables.
4236
4237 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4238
4239         * diagnostic.c (warning_n): New function.
4240         * diagnostic-core.h (warning_n): Declare.
4241         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4242         output dynamic counts when available.
4243
4244 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4245
4246         PR tree-optimization/63255
4247         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4248         issue in setting body_removed flag.
4249
4250 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4251
4252         PR c++/61825
4253         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4254         that visibility change is possible
4255         (handle_weakref_attribute): Likewise.
4256         * cgraph.h (symtab_node): Add method get_create and
4257         field refuse_visibility_changes.
4258         (symtab_node::get_create): New method.
4259         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4260         * varasm.c (mark_weak): Verify that visibility change is
4261         possible.
4262
4263 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4264
4265         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4266         for base_reg_operand to be common between LO_SUM and PLUS.
4267         (fusion_gpr_mem_combo): New predicate to match a fused address
4268         that combines the addis and memory offset address.
4269
4270         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4271         calling signature.
4272         (emit_fusion_gpr_load): Likewise.
4273
4274         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4275         signature to pass each argument separately, rather than
4276         using an operands array.  Rewrite the insns found by peephole2 to
4277         be a single insn, rather than hoping the insns will still be
4278         together when the peephole pass is done.  Drop being called via a
4279         normal peephole.
4280         (emit_fusion_gpr_load): Change calling signature to be called from
4281         the fusion_gpr_load_<mode> insns with a combined memory address
4282         instead of the peephole pass passing the addis and offset
4283         separately.
4284
4285         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4286         fusion.
4287         (power8 fusion peephole): Drop support for doing power8 via a
4288         normal peephole that was created by the peephole2 pass.
4289         (power8 fusion peephole2): Create a new insn with the fused
4290         address, so that the fused operation is kept together after
4291         register allocation is done.
4292         (fusion_gpr_load_<mode>): Likewise.
4293
4294 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4295
4296         PR lto/63286
4297         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4298
4299 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4300
4301         * recog.c (scratch_operand): Do not simply allow all hard registers:
4302         only allow those that are allocatable.
4303
4304 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4305
4306         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4307         comments and fix spacing to conform to coding style.
4308
4309 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4310
4311         * genrecog.c (validate_pattern): Allow empty constraints in
4312         a match_scratch.
4313
4314 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4315
4316         * dwarf2out.c (decl_ultimate_origin): Update comment.
4317         * tree.c (block_ultimate_origin): Same.
4318
4319 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4320
4321         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4322         Update GCC version name to GCC 5.
4323         (rs6000_function_arg_boundary): Likewise.
4324         (rs6000_function_arg): Likewise.
4325
4326 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4327
4328         * config/sh/sh.md: Fix use of constraints in define_split.
4329
4330 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4331
4332         PR ipa/61998
4333         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4334
4335 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4336
4337         * doc/md.texi (Modifiers): Consistently use "read/write"
4338         nomenclature rather than "input/output".
4339         * genrecog.c (constraints_supported_in_insn_p): New.
4340         (validate_pattern): If needed, also check constraints on
4341         MATCH_SCRATCH operands.
4342         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4343         operands with no '=' or '+' modifier.
4344
4345 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4346
4347         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4348         scratch register as written.
4349
4350 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4351
4352         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4353         assignment.
4354
4355 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4356
4357         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4358         expanders.
4359
4360 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4361
4362         PR target/62662
4363         * config/s390/s390.c (s390_emit_epilogue): When doing the return
4364         address load optimization force s390_optimize_prologue to leave it
4365         that way.  Only do the optimization if we already decided to push
4366         r14 into a stack slot.
4367
4368 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
4369
4370         * asan.c (build_check_stmt): Alignment arg was added.
4371         (asan_expand_check_ifn): Optimization for alignment >= 8.
4372
4373 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4374
4375         * config/i386/vxworksae.h: Remove obsolete definitions.
4376         (STACK_CHECK_PROTECT): Define.
4377         * config/i386/vx-common.h: Remove.  Merge contents within
4378         config/i386/vxworks.h.
4379         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4380         i386/vx-common.h.
4381
4382 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4383
4384         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4385         * config/rs6000/t-vxworksmils: New file.
4386         * config/rs6000/vxworksmils.h: New file.
4387
4388 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4389
4390         * varasm.c (default_section_type_flags): Flag .persistent.bss
4391         sections as SECTION_BSS.
4392
4393 2014-09-19  Nick Clifton  <nickc@redhat.com>
4394
4395         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
4396         pop'ed registers so that DCE does not eliminate them.
4397
4398 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
4399
4400         PR lto/63298
4401         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
4402
4403 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
4404
4405         * system.h (LIBGCC2_TF_CEXT): Poison.
4406         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
4407         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
4408         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
4409         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
4410         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
4411         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
4412         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
4413         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
4414         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
4415
4416 2014-09-19  Kito Cheng  <kito@0xlab.org>
4417
4418         * except.h: Fix header guard.
4419         * addresses.h: Add missing header guard.
4420         * cfghooks.h: Likewise.
4421         * collect-utils.h: Likewise.
4422         * collect2-aix.h: Likewise.
4423         * conditions.h: Likewise.
4424         * cselib.h: Likewise.
4425         * dwarf2asm.h: Likewise.
4426         * graphds.h: Likewise.
4427         * graphite-scop-detection.h: Likewise.
4428         * gsyms.h: Likewise.
4429         * hw-doloop.h: Likewise.
4430         * incpath.h: Likewise.
4431         * ipa-inline.h: Likewise.
4432         * ipa-ref.h: Likewise.
4433         * ira-int.h: Likewise.
4434         * ira.h: Likewise.
4435         * lra-int.h: Likewise.
4436         * lra.h: Likewise.
4437         * lto-section-names.h: Likewise.
4438         * read-md.h: Likewise.
4439         * reload.h: Likewise.
4440         * rtl-error.h: Likewise.
4441         * sdbout.h: Likewise.
4442         * targhooks.h: Likewise.
4443         * tree-affine.h: Likewise.
4444         * xcoff.h: Likewise.
4445         * xcoffout.h: Likewise.
4446
4447 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4448
4449         PR debug/63285
4450         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
4451         if advance != 0.
4452
4453 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4454
4455         PR target/61360
4456         * lra.c (lra): Call recog_init.
4457
4458 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
4459
4460         PR c++/62017
4461         * asan.c (transform_statements): Don't instrument clobber statements.
4462
4463 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4464
4465         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
4466         to neon_load1_1reg<q>.
4467
4468 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
4469
4470         PR debug/63284
4471         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
4472         if there are only debug stmts after the noreturn call, instead
4473         remove the debug stmts.
4474
4475 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
4476
4477         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
4478         (odr_types_equivalent_p): Use pair hash.
4479         (odr_subtypes_equivalent_p): Likewise, do structural compare
4480         on ODR types that may be mismatched.
4481         (warn_odr): Support warning when only one field is given.
4482         (odr_types_equivalent_p): Strenghten comparsions made;
4483         support VOIDtype.
4484         (add_type_duplicate): Update VISITED hash set.
4485
4486 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4487
4488         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
4489         Enable selection of 'posix' or no thread model.
4490
4491 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
4492
4493         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
4494         when architecture is older than ARMv7.
4495
4496 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
4497
4498         PR target/61853
4499         * config/pa/pa.c (pa_function_value): Directly handle aggregates
4500         that fit exactly in a word or double word.
4501
4502 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
4503
4504         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
4505         zmm/k regs support.
4506
4507 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4508             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4509             Anna Tikhonova  <anna.tikhonova@intel.com>
4510             Ilya Tocar  <ilya.tocar@intel.com>
4511             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4512             Ilya Verbin  <ilya.verbin@intel.com>
4513             Kirill Yukhin  <kirill.yukhin@intel.com>
4514             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4515
4516         * config/i386/i386.c
4517         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
4518         * config/i386/sse.md
4519         (define_mode_iterator VI48F_256): New.
4520         (define_mode_attr extract_type): Ditto.
4521         (define_mode_attr extract_suf): Ditto.
4522         (define_mode_iterator AVX512_VEC): Ditto.
4523         (define_expand
4524         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
4525         AVX512_VEC.
4526         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
4527         (define_insn
4528         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
4529         Ditto.
4530         (define_mode_attr extract_type_2): Ditto.
4531         (define_mode_attr extract_suf_2): Ditto.
4532         (define_mode_iterator AVX512_VEC_2): Ditto.
4533         (define_expand
4534         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
4535         AVX512_VEC_2 mode iterator.
4536         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4537         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
4538         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4539         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4540         (define_split for V16FI mode): Ditto.
4541         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4542         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4543         (define_split for VI8F_256 mode): Ditto.
4544         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4545         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
4546         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
4547         (define_split for VI4F_256 mode): Ditto.
4548         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
4549         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
4550         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
4551         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
4552         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
4553         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
4554         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
4555         Update `type' attribute, remove explicit `memory' attribute calculation.
4556
4557 2014-09-16  Kito Cheng  <kito@0xlab.org>
4558
4559         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
4560         ira_spilled_reg_stack_slots_num if using lra.
4561         (do_reload): Remove release ira_spilled_reg_stack_slots part.
4562         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
4563         make sure not using lra.
4564         (ira_reuse_stack_slot): Likewise.
4565         (ira_mark_new_stack_slot): Likewise.
4566
4567 2014-09-15  Andi Kleen  <ak@linux.intel.com>
4568
4569         * function.c (allocate_struct_function): Force
4570         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
4571         profiling is disabled.
4572
4573 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4574
4575         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
4576         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
4577         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
4578         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
4579         macro with statically checked member functions.
4580         * rtl.h (rtx_insn::deleted): New method.
4581         (rtx_insn::set_deleted): Likewise.
4582         (rtx_insn::set_undeleted): Likewise.
4583         (INSN_DELETED_P): Remove.
4584
4585 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
4586
4587         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
4588         result of emit_jump_insn_before to a new variable.
4589         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
4590         (mark_jump_label_1): Likewise.
4591         (mark_jump_label_asm): Likewise.
4592         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
4593         * rtl.h (mark_jump_label): Adjust.
4594
4595 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
4596
4597         * Makefile.in (dg_target_exps): Remove.
4598         (check_gcc_parallelize): Change to just an upper bound number.
4599         (check-%-subtargets): Always print the non-parallelized goals.
4600         (check_p_vars, check_p_comma, check_p_subwork): Remove.
4601         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
4602         check_p_numbers3, check_p_numbers4, check_p_numbers5,
4603         check_p_numbers6): New variables.
4604         (check_p_numbers): Set to sequence from 1 to 9999.
4605         (check_p_subdirs): Set to sequence from 1 to minimum of
4606         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
4607         or 128.
4608         (check-%, check-parallel-%): Rewritten so that for parallelized
4609         testing each job runs all the *.exp files, with
4610         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
4611
4612 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4613
4614         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
4615         rtx to rtx_insn *.
4616         (arc_sets_cc_p): Likewise.
4617         * config/arc/arc.c (arc_print_operand): Use methods of
4618         "final_sequence" for clarity, and to enable strengthening of
4619         locals "jump" and "delay" from rtx to rtx_insn *.
4620         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
4621         rtx_insn *; use method of rtx_sequence for typesafety.
4622         (arc_get_insn_variants): Use insn method of rtx_sequence for
4623         typesafety.
4624         (arc_pad_return): Likewise.
4625         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
4626         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
4627         dyn_cast to rtx_sequence *, using insn method for typesafety.
4628         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
4629         rtx_sequence * and use insn method when invoking get_attr_length.
4630         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
4631         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
4632         rtx_sequence *, introducing a local "seq", using its insn method
4633         from typesafety and clarity.
4634         (add_sched_insns_for_speculation): Strengthen local "next" from
4635         rtx to rtx_insn *.
4636         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
4637         (predicate_insn): Likewise.
4638         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
4639         second param.
4640         * config/cris/cris.c (cris_notice_update_cc): Likewise.
4641         * config/epiphany/epiphany-protos.h
4642         (extern void epiphany_insert_mode_switch_use): Likewise for param
4643         "insn".
4644         (get_attr_sched_use_fpu): Likewise for param.
4645         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
4646         Likewise for param "insn".
4647         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
4648         param "insn" of "target_insert_mode_switch_use" callback.
4649         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
4650         (frv_issues_to_branch_unit_p): Likewise.
4651         (frv_pack_insn_p): Likewise.
4652         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
4653         const rtx * (i.e. mutable rtx_def * const *) to
4654         rtx_insn * const *.
4655         * config/i386/i386-protos.h (standard_sse_constant_opcode):
4656         Strengthen first param from rtx to rtx_insn *.
4657         (output_fix_trunc): Likewise.
4658         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
4659         (output_fix_trunc): Likewise.
4660         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
4661         local "insn".
4662         (min_insn_size): Likewise for param "insn".
4663         (get_mem_group): Likewise.
4664         (is_cmp): Likewise.
4665         (get_insn_path): Likewise.
4666         (get_insn_group): Likewise.
4667         (count_num_restricted): Likewise.
4668         (fits_dispatch_window): Likewise.
4669         (add_insn_window): Likewise.
4670         (add_to_dispatch_window): Likewise.
4671         (debug_insn_dispatch_info_file): Likewise.
4672         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
4673         first param.
4674         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
4675         "cmp" and local "prev".
4676         (m32c_output_compare): Likewise for param "insn".
4677         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
4678         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
4679         (define_predicate "large_insn_p"): Likewise.
4680         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
4681         param from rtx to rtx_insn *.
4682         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
4683         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
4684         (m68k_sched_attr_size): Likewise.
4685         (sched_get_opxy_mem_type): Likewise for param "insn".
4686         (m68k_sched_attr_op_mem): Likewise.
4687         (sched_mem_operand_p): Likewise.
4688         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
4689         * config/mep/mep.c (mep_multi_slot): Likewise.
4690         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
4691         first param.
4692         (mips_sync_loop_insns): Likewise.
4693         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
4694         method of "final_sequence" for typesafety.
4695         (mips_process_sync_loop): Strengthen param "insn" from rtx to
4696         rtx_insn *.
4697         (mips_output_sync_loop): Likewise.
4698         (mips_sync_loop_insns): Likewise.
4699         (mips_74k_agen_init): Likewise.
4700         (mips_sched_init): Use NULL rather than NULL_RTX when working with
4701         insns.
4702         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
4703         Strengthen param "insn" from rtx to rtx_insn *.
4704         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
4705         local "insn".
4706         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
4707         param.
4708         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
4709         "insn".  Use method of rtx_sequence for typesafety.
4710         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
4711         rtx_insn *.
4712         (branch_needs_nop_p): Likewise.
4713         (use_skip_p): Likewise.
4714         (pa_insn_refs_are_delayed): Likewise.
4715         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
4716         for locals "insn", "ninsn".
4717         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
4718         "insn".
4719         (is_cracked_insn): Likewise.
4720         (is_branch_slot_insn): Likewise.
4721         (is_nonpipeline_insn): Likewise.
4722         (insn_terminates_group_p): Likewise.
4723         (insn_must_be_first_in_group): Likewise.
4724         (insn_must_be_last_in_group): Likewise.
4725         (force_new_group): Likewise for param "next_insn".
4726         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
4727         "insn".
4728         (s390_sched_score): Likewise.
4729         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
4730         (rtx sfunc_uses_reg): Likewise for sole param.
4731         * config/sh/sh.c (sh_print_operand): Use insn method of
4732         final_sequence for typesafety.
4733         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
4734         Use insn method of final_sequence for typesafety.
4735         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
4736         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
4737         for param.
4738         (eligible_for_return_delay): Likewise.
4739         (eligible_for_sibcall_delay): Likewise.
4740         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
4741         (eligible_for_return_delay): Likewise.
4742         (eligible_for_sibcall_delay): Likewise.
4743         * config/stormy16/stormy16-protos.h
4744         (xstormy16_output_cbranch_hi): Likewise for final param.
4745         (xstormy16_output_cbranch_si): Likewise.
4746         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
4747         (xstormy16_output_cbranch_si): Likewise.
4748         * config/v850/v850-protos.h (notice_update_cc): Likewise.
4749         * config/v850/v850.c (notice_update_cc): Likewise.
4750
4751         * final.c (get_attr_length_1): Strengthen param "insn" and param
4752         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
4753         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
4754         (get_attr_min_length): Likewise.
4755         (shorten_branches): Likewise for signature of locals "length_fun"
4756         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
4757         from a checked cast and use its methods for clarity and to enable
4758         strengthening local "inner_insn" from rtx to rtx_insn *.
4759         * genattr.c (gen_attr): When writing out the prototypes of the
4760         various generated "get_attr_" functions, strengthen the params of
4761         the non-const functions from rtx to rtx_insn *.
4762         Similarly, strengthen the params of insn_default_length,
4763         insn_min_length, insn_variable_length_p, insn_current_length.
4764         (main): Similarly, strengthen the param of num_delay_slots,
4765         internal_dfa_insn_code, insn_default_latency, bypass_p,
4766         insn_latency, min_issue_delay, print_reservation,
4767         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
4768         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
4769         to hook_int_rtx_insn_unreachable.
4770         * genattrtab.c (write_attr_get): When writing out the generated
4771         "get_attr_" functions, strengthen the param "insn" from rtx to
4772         rtx_insn *, eliminating a checked cast.
4773         (make_automaton_attrs): When writing out prototypes of
4774         "internal_dfa_insn_code_", "insn_default_latency_" functions
4775         and the "internal_dfa_insn_code" and "insn_default_latency"
4776         callbacks, strengthen their params from rtx to rtx_insn *
4777         * genautomata.c (output_internal_insn_code_evaluation): When
4778         writing out code, add a checked cast from rtx to rtx_insn * when
4779         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
4780         (output_dfa_insn_code_func): Strengthen param of generated
4781         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
4782         (output_trans_func): Likewise for generated function
4783         "state_transition".
4784         (output_internal_insn_latency_func): When writing out generated
4785         function "internal_insn_latency", rename params from "insn" and
4786         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
4787         locals "insn" and "insn2" as rtx_insn * with checked casts once
4788         we've proven that we're not dealing with const0_rtx.
4789         (output_insn_latency_func):  Strengthen param of generated
4790         function "insn_latency" from rtx to rtx_insn *.
4791         (output_print_reservation_func): Likewise for generated function
4792         "print_reservation".
4793         (output_insn_has_dfa_reservation_p): Likewise for generated
4794         function "insn_has_dfa_reservation_p".
4795         * hooks.c (hook_int_rtx_unreachable): Rename to...
4796         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
4797         from rtx to rtx_insn *.
4798         * hooks.h (hook_int_rtx_unreachable): Likewise.
4799         (extern int hook_int_rtx_insn_unreachable): Likewise.
4800         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
4801         (get_attr_min_length): Likewise.
4802         * recog.c (get_enabled_alternatives): Likewise.
4803         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
4804         * reorg.c (find_end_label): Introduce local rtx "pat" and
4805         strengthen local "insn" from rtx to rtx_insn *.
4806         (redundant_insn): Use insn method of "seq" rather than element for
4807         typesafety; strengthen local "control" from rtx to rtx_insn *.
4808         * resource.c (mark_referenced_resources): Add checked cast to
4809         rtx_insn * within INSN/JUMP_INSN case.
4810         (mark_set_resources): Likewise.
4811         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
4812         rtx to rtx_insn *.
4813
4814 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4815
4816         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
4817         param "label" from rtx to rtx_insn *.
4818         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
4819         and local "op".
4820         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
4821         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
4822         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4823         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4824         * final.c (default_label_align_after_barrier_max_skip): Strengthen
4825         param from rtx to rtx_insn *.
4826         (default_loop_align_max_skip): Likewise.
4827         (default_label_align_max_skip): Likewise.
4828         (default_jump_align_max_skip): Likewise.
4829         * target.def (label_align_after_barrier_max_skip): Likewise.
4830         (loop_align_max_skip): Likewise.
4831         (label_align_max_skip): Likewise.
4832         (jump_align_max_skip): Likewise.
4833         * targhooks.h (default_label_align_after_barrier_max_skip):
4834         Likewise.
4835         (default_loop_align_max_skip): Likewise.
4836         (default_label_align_max_skip): Likewise.
4837         (default_jump_align_max_skip): Likewise.
4838
4839 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4840
4841         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
4842         from const_rtx to const rtx_insn *.  Update union members from rtx
4843         to rtx_insn *.
4844         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
4845         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
4846         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
4847         strengthen both params from const_rtx to const rtx_insn *.
4848         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
4849         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
4850         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
4851         rtx_insn *.
4852         * target.def (can_follow_jump): Strengthen both params from
4853         const_rtx to const rtx_insn *, and update default implementation
4854         from hook_bool_const_rtx_const_rtx_true to
4855         hook_bool_const_rtx_insn_const_rtx_insn_true.
4856
4857 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
4858
4859         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
4860         "insn" from rtx to rtx_insn *.
4861         * sched-int.h (deps_start_bb): Likewise for 2nd param.
4862
4863 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4864             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4865             Anna Tikhonova  <anna.tikhonova@intel.com>
4866             Ilya Tocar  <ilya.tocar@intel.com>
4867             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4868             Ilya Verbin  <ilya.verbin@intel.com>
4869             Kirill Yukhin  <kirill.yukhin@intel.com>
4870             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4871
4872         * config/i386/sse.md
4873         (define_insn "vcvtph2ps<mask_name>"): Add masking.
4874         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
4875         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
4876         (define_expand "vcvtps2ph_mask"): New.
4877         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
4878         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
4879         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
4880
4881 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4882             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4883             Anna Tikhonova  <anna.tikhonova@intel.com>
4884             Ilya Tocar  <ilya.tocar@intel.com>
4885             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4886             Ilya Verbin  <ilya.verbin@intel.com>
4887             Kirill Yukhin  <kirill.yukhin@intel.com>
4888             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4889
4890         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
4891         New.
4892         (define_mode_iterator VI24_AVX512BW_1): Ditto.
4893         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
4894         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
4895         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
4896         also for TARGET_AVX512VL.
4897         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
4898
4899 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
4900
4901         * doc/install.texi (Options specification): add
4902         --disable-libsanitizer item.
4903
4904 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
4905             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4906
4907         PR target/61407
4908         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
4909         and above.
4910         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
4911         kernel version check to avoid incrementing it after every major OS X
4912         release.
4913         (darwin_default_min_version): Avoid static memory buffer.
4914
4915 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
4916
4917         * tree.c (need_assembler_name_p): Store C++ type mangling only
4918         for aggregates.
4919
4920 2014-09-13  Marek Polacek  <polacek@redhat.com>
4921
4922         * tree.c (protected_set_expr_location): Don't check whether T is
4923         non-null here.
4924
4925 2014-09-12  DJ Delorie  <dj@redhat.com>
4926
4927         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
4928         (extend_and_shift1_hipsi2): Likewise.
4929         (extend_and_shift2_hipsi2): Likewise.
4930
4931 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
4932
4933         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
4934         with NULL when dealing with an insn.
4935         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
4936         from rtx to rtx_insn *.
4937         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
4938         const_rtx to const rtx_insn *.
4939         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
4940
4941 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
4942
4943         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
4944         assert.
4945
4946 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
4947
4948         * target.def (libgcc_floating_mode_supported_p): New hook.
4949         * targhooks.c (default_libgcc_floating_mode_supported_p): New
4950         function.
4951         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
4952         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
4953         (LIBGCC2_HAS_TF_MODE): Remove.
4954         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
4955         * doc/tm.texi: Regenerate.
4956         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
4957         machine mode.
4958         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
4959         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
4960         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
4961         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
4962         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4963         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
4964         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
4965         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
4966         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
4967         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
4968         function.
4969         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
4970         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4971         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4972         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4973         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4974         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4975         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4976         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
4977         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
4978         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
4979         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
4980         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
4981         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
4982         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
4983         Remove.
4984         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
4985         New macro.
4986         (ia64_libgcc_floating_mode_supported_p): New function.
4987         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
4988         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
4989         (IA64_NO_LIBGCC_TFMODE): Define.
4990         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
4991         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
4992         macro.
4993         (pdp11_scalar_mode_supported_p): New function.
4994         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
4995         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
4996
4997 2014-09-12  Richard Biener  <rguenther@suse.de>
4998
4999         PR middle-end/63237
5000         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5001
5002 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5003
5004         * tree.c (integer_each_onep): New function.
5005         * tree.h (integer_each_onep): Declare it.
5006         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5007         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5008         (X & 1) == 0 for vector and complex.
5009
5010 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5011
5012         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5013         for A57.
5014         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5015         cost to spilling from integer to FP registers.
5016
5017 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5018
5019         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5020         move handling.
5021         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5022         are now handled correctly.
5023
5024 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5025
5026         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5027         handling of CALLER_SAVE_REGS and POINTER_REGS.
5028
5029 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5030
5031         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5032         the number of hard registers.
5033
5034 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5035             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5036             Anna Tikhonova  <anna.tikhonova@intel.com>
5037             Ilya Tocar  <ilya.tocar@intel.com>
5038             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5039             Ilya Verbin  <ilya.verbin@intel.com>
5040             Kirill Yukhin  <kirill.yukhin@intel.com>
5041             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5042
5043         * config/i386/sse.md
5044         (define_mode_iterator VI48_AVX512VL): New.
5045         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5046         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5047         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5048         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5049         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5050         "avx512f_vternlog<mode>_mask" and update mode iterator.
5051         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5052         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5053         iterator.
5054         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5055         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5056         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5057         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5058         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5059         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5060
5061 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5062             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5063             Anna Tikhonova  <anna.tikhonova@intel.com>
5064             Ilya Tocar  <ilya.tocar@intel.com>
5065             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5066             Ilya Verbin  <ilya.verbin@intel.com>
5067             Kirill Yukhin  <kirill.yukhin@intel.com>
5068             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5069
5070         * config/i386/sse.md (VI128_256): Delete.
5071         (define_mode_iterator VI124_256): New.
5072         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5073         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5074         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5075         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5076         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5077         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5078         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5079         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5080         iterator.
5081         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5082         in presence of AVX-512.
5083
5084 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5085             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5086             Anna Tikhonova  <anna.tikhonova@intel.com>
5087             Ilya Tocar  <ilya.tocar@intel.com>
5088             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5089             Ilya Verbin  <ilya.verbin@intel.com>
5090             Kirill Yukhin  <kirill.yukhin@intel.com>
5091             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5092
5093         * config/i386/sse.md
5094         (define_expand "<avx512>_gathersi<mode>"): Rename from
5095         "avx512f_gathersi<mode>".
5096         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5097         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5098         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5099         "avx512f_gatherdi<mode>".
5100         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5101         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5102         wide versions.
5103         (define_expand "<avx512>_scattersi<mode>"): Rename from
5104         "avx512f_scattersi<mode>".
5105         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5106         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5107         "avx512f_scatterdi<mode>".
5108         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5109
5110 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5111
5112         * ira.h (ira_finish_once): Delete.
5113         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5114         (target_ira_int::free_ira_costs): Likewise.
5115         (target_ira_int::free_register_move_costs): Likewise.
5116         (ira_finish_costs_once): Delete.
5117         * ira.c (free_register_move_costs): Replace with...
5118         (target_ira_int::free_register_move_costs): ...this new function.
5119         (target_ira_int::~target_ira_int): Define.
5120         (ira_init): Call free_register_move_costs as a member function rather
5121         than a global function.
5122         (ira_finish_once): Delete.
5123         * ira-costs.c (free_ira_costs): Replace with...
5124         (target_ira_int::free_ira_costs): ...this new function.
5125         (ira_init_costs): Call free_ira_costs as a member function rather
5126         than a global function.
5127         (ira_finish_costs_once): Delete.
5128         * target-globals.c (target_globals::~target_globals): Call the
5129         target_ira_int destructor.
5130         * toplev.c: Include lra.h.
5131         (finalize): Call lra_finish_once rather than ira_finish_once.
5132
5133 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5134
5135         * common.opt (flto-odr-type-merging): New flag.
5136         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5137         (types_same_for_odr): Likewise.
5138         (odr_subtypes_equivalent_p): Likewise.
5139         (add_type_duplicate): Do not walk type variants.
5140         (register_odr_type): New function.
5141         * ipa-utils.h (register_odr_type): Declare.
5142         (odr_type_p): New function.
5143         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5144         TYPE_DECLs
5145         * doc/invoke.texi (-flto-odr-type-merging): Document.
5146         * tree.c (need_assembler_name_p): Compute ODR names when asked
5147         for it.
5148         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5149
5150 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5151
5152         PR target/63228
5153         * config/i386/i386.c (ix86_option_override_internal): Also turn
5154         off OPTION_MASK_ABI_X32 for -m16.
5155
5156 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5157
5158         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5159         GPR instead of P.
5160
5161 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5162
5163         PR target/58757
5164         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5165         Directly forward to __*_DENORM_MIN__.
5166
5167 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5168
5169         * rtl.h (LABEL_REF_LABEL): New macro.
5170
5171         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5172         of XEXP (, 0), where we know that we have a LABEL_REF.
5173         * cfgbuild.c (make_edges): Likewise.
5174         (purge_dead_tablejump_edges): Likewise.
5175         * cfgexpand.c (convert_debug_memory_address): Likewise.
5176         * cfgrtl.c (patch_jump_insn): Likewise.
5177         * combine.c (distribute_notes): Likewise.
5178         * cse.c (hash_rtx_cb): Likewise.
5179         (exp_equiv_p): Likewise.
5180         (fold_rtx): Likewise.
5181         (check_for_label_ref): Likewise.
5182         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5183         (cselib_hash_rtx): Likewise.
5184         * emit-rtl.c (mark_label_nuses): Likewise.
5185         * explow.c (convert_memory_address_addr_space): Likewise.
5186         * final.c (output_asm_label): Likewise.
5187         (output_addr_const): Likewise.
5188         * gcse.c (add_label_notes): Likewise.
5189         * genconfig.c (walk_insn_part): Likewise.
5190         * genrecog.c (validate_pattern): Likewise.
5191         * ifcvt.c (cond_exec_get_condition): Likewise.
5192         (noce_emit_store_flag): Likewise.
5193         (noce_get_alt_condition): Likewise.
5194         (noce_get_condition): Likewise.
5195         * jump.c (maybe_propagate_label_ref): Likewise.
5196         (mark_jump_label_1): Likewise.
5197         (redirect_exp_1): Likewise.
5198         (rtx_renumbered_equal_p): Likewise.
5199         * lra-constraints.c (operands_match_p): Likewise.
5200         * reload.c (operands_match_p): Likewise.
5201         (find_reloads): Likewise.
5202         * reload1.c (set_label_offsets): Likewise.
5203         * reorg.c (get_branch_condition): Likewise.
5204         * rtl.c (rtx_equal_p_cb): Likewise.
5205         (rtx_equal_p): Likewise.
5206         * rtlanal.c (reg_mentioned_p): Likewise.
5207         (rtx_referenced_p): Likewise.
5208         (get_condition): Likewise.
5209         * sched-vis.c (print_value): Likewise.
5210         * varasm.c (const_hash_1): Likewise.
5211         (compare_constant): Likewise.
5212         (const_rtx_hash_1): Likewise.
5213         (output_constant_pool_1): Likewise.
5214
5215 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5216
5217         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5218         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5219         instead of minus.
5220         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5221         cr6_test_for_lt_reverse): Ditto.
5222
5223 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5224
5225         PR c++/61489
5226         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5227
5228 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5229
5230         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5231         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5232         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5233         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5234         Delete.
5235
5236         (aarch64_fold_builtin): Remove all reinterpret cases.
5237
5238         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5239
5240         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5241
5242         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5243         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5244         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5245         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5246         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5247         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5248         aarch64_reinterpretv2df<mode>): Delete.
5249
5250         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5251
5252         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5253         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5254         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5255         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5256         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5257         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5258         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5259         vreinterpret_u32_f64): Use cast.
5260
5261         * config/aarch64/iterators.md (VD_RE): Delete.
5262
5263 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5264
5265         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5266         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5267         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5268         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5269         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5270         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5271         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5272         Replace inline assembler with __aarch64_vset_lane_any.
5273
5274 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5275
5276         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5277         types.
5278         (vmull_high_lane_s32): Likewise.
5279         (vmull_high_lane_u16): Likewise.
5280         (vmull_high_lane_u32): Likewise.
5281
5282 2014-09-11  Jason Merrill  <jason@redhat.com>
5283
5284         PR c++/58678
5285         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5286
5287 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5288
5289         PR target/63223
5290         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5291         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5292         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5293
5294 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5295             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5296             Anna Tikhonova  <anna.tikhonova@intel.com>
5297             Ilya Tocar  <ilya.tocar@intel.com>
5298             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5299             Ilya Verbin  <ilya.verbin@intel.com>
5300             Kirill Yukhin  <kirill.yukhin@intel.com>
5301             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5302
5303         * config/i386/sse.md
5304         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5305         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5306         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5307         New.
5308         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5309         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5310         iterator.
5311         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5312         New.
5313         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5314         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5315         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5316         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5317         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5318         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5319         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5320         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5321         iterator.
5322         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5323         New.
5324         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5325         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5326         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5327
5328 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5329
5330         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5331         to access removed nodes.
5332
5333 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5334
5335         PR tree-optimization/63186
5336         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5337         (mark_nonssa_use): Likewise.
5338         (verify_non_ssa_vars): Verify all header blocks for label
5339         definitions.
5340
5341 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5342             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5343             Anna Tikhonova  <anna.tikhonova@intel.com>
5344             Ilya Tocar  <ilya.tocar@intel.com>
5345             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5346             Ilya Verbin  <ilya.verbin@intel.com>
5347             Kirill Yukhin  <kirill.yukhin@intel.com>
5348             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5349
5350         * config/i386/sse.md
5351         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5352         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5353         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5354         "<avx2_avx512f>_permvar<mode><mask_name>".
5355         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5356         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5357         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5358         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5359         Ditto.
5360         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5361         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5362         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5363         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5364
5365 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5366
5367         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5368         V2DF, V4SF, DF, and DI modes.
5369         (vsx_fmav2df2): Likewise.
5370         (vsx_float_fix_<mode>2): Likewise.
5371         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5372
5373 2014-09-10  Xinliang David Li  <davidxl@google.com>
5374
5375         PR target/63209
5376         * config/arm/arm.md (movcond_addsi): Handle case where source
5377         and target operands are the same.
5378
5379 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5380
5381         * final.c (this_is_asm_operands): Strengthen this variable from
5382         rtx to const rtx_insn *.
5383         * output.h (this_is_asm_operands): Likewise.
5384         * rtl-error.c (location_for_asm): Strengthen param "insn" from
5385         const_rtx to const rtx_insn *.
5386         (diagnostic_for_asm): Likewise.
5387         * rtl-error.h (error_for_asm): Likewise.
5388         (warning_for_asm): Likewise.
5389
5390 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5391
5392         * genextract.c (print_header): When writing out insn_extract to
5393         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
5394         * recog.h (insn_extract): Strengthen the param from rtx to
5395         rtx_insn *.
5396
5397 2014-09-10  Mike Stump  <mikestump@comcast.net>
5398
5399         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
5400         8.6.1.
5401
5402 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5403
5404         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
5405         (analyze): Do not set analyze flag if expand_thunk returns false;.
5406         (create_wrapper): Likewise.
5407         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5408
5409 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5410
5411         PR ipa/61654
5412         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
5413         new decl properly.  Analyze the new thunk if it is expanded.
5414
5415 2014-09-10  Andreas Schwab  <schwab@suse.de>
5416
5417         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
5418         [USED_FOR_TARGET]: Define.
5419
5420 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
5421
5422         * config/mips/mips.c (mips_secondary_reload_class): Handle
5423         regno < 0 case.
5424
5425 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
5426
5427         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
5428         assignment.
5429
5430 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
5431
5432         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
5433         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
5434         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
5435         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
5436         flag_delete_null_pointer_checks for them.
5437         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
5438         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
5439         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
5440         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
5441         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
5442         stmt's iterator.
5443         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
5444         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
5445         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
5446         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
5447         * doc/invoke.texi (-fsanitize=nonnull-attribute,
5448         -fsanitize=returns-nonnull-attribute): Document.
5449
5450         * ubsan.h (struct ubsan_mismatch_data): Removed.
5451         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5452         * ubsan.c (ubsan_source_location): For unknown locations,
5453         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
5454         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5455         Allow more than one location and arbitrary extra arguments passed
5456         in ... instead of through MISMATCH pointer.
5457         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
5458         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5459         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
5460         callers.
5461
5462 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5463             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5464             Anna Tikhonova  <anna.tikhonova@intel.com>
5465             Ilya Tocar  <ilya.tocar@intel.com>
5466             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5467             Ilya Verbin  <ilya.verbin@intel.com>
5468             Kirill Yukhin  <kirill.yukhin@intel.com>
5469             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5470
5471         * config/i386/sse.md
5472         (define_mode_iterator VI48F): New.
5473         (define_insn "<avx512>_compress<mode>_mask"): Rename from
5474         "avx512f_compress<mode>_mask" and update mode iterator.
5475         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
5476         "avx512f_compressstore<mode>_mask" and update mode iterator.
5477         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
5478         "avx512f_expand<mode>_maskz" and update mode iterator.
5479         (define_insn "<avx512>_expand<mode>_mask"): Rename from
5480         "avx512f_expand<mode>_mask" and update mode iterator.
5481
5482 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5483             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5484             Anna Tikhonova  <anna.tikhonova@intel.com>
5485             Ilya Tocar  <ilya.tocar@intel.com>
5486             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5487             Ilya Verbin  <ilya.verbin@intel.com>
5488             Kirill Yukhin  <kirill.yukhin@intel.com>
5489             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5490
5491         * config/i386/i386.c
5492         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
5493         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
5494         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
5495         avx512dq_rangepv4sf_mask.
5496         * config/i386/sse.md
5497         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
5498         UNSPEC_RANGE.
5499         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
5500         (define_insn "reduces<mode>"): Ditto.
5501         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
5502         Ditto.
5503         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
5504         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
5505         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
5506
5507 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5508             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5509             Anna Tikhonova  <anna.tikhonova@intel.com>
5510             Ilya Tocar  <ilya.tocar@intel.com>
5511             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5512             Ilya Verbin  <ilya.verbin@intel.com>
5513             Kirill Yukhin  <kirill.yukhin@intel.com>
5514             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5515
5516         * config/i386/i386.c
5517         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
5518         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
5519         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
5520         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
5521         avx512vl_getmantv2df_mask.
5522         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
5523         avx512f_vgetmantv4sf_round.
5524         * config/i386/sse.md
5525         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
5526         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
5527         mode iterator.
5528         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
5529         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
5530         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
5531         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
5532         iterator..
5533         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
5534         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
5535         update mode iterator.
5536         (define_expand
5537         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
5538         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
5539         mode iterator.
5540         (define_insn
5541         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
5542         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
5543         update mode iterator.
5544         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
5545         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
5546         iterator..
5547         (define_insn
5548         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
5549         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
5550         mode iterator..
5551         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
5552         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
5553         update mode iterator.
5554         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
5555         "avx512f_getmant<mode><round_saeonly_name>".
5556
5557 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5558
5559         PR ipa/63166
5560         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
5561
5562 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5563             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5564             Anna Tikhonova  <anna.tikhonova@intel.com>
5565             Ilya Tocar  <ilya.tocar@intel.com>
5566             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5567             Ilya Verbin  <ilya.verbin@intel.com>
5568             Kirill Yukhin  <kirill.yukhin@intel.com>
5569             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5570
5571         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
5572         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
5573         (define_mode_iterator FMAMODE_AVX512): New.
5574         (define_mode_iterator FMAMODE): Remove conditions.
5575         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
5576         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
5577         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
5578         mode iterator.
5579         (define_mode_iterator FMAMODE_NOVF512): Remove.
5580         (define_insn "*fma_fmadd_<mode>"): Rename from
5581         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
5582         FMAMODE mode iterator.
5583         (define_mode_iterator VF_SF_AVX512VL): New.
5584         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
5585         Use VF_SF_AVX512VL mode iterator.
5586         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
5587         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5588         iterator.
5589         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
5590         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5591         iterator.
5592         (define_insn "*fma_fmsub_<mode>"): Rename from
5593         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
5594         FMAMODE mode iterator.
5595         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
5596         Use VF_SF_AVX512VL mode iterator.
5597         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
5598         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5599         iterator.
5600         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
5601         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5602         iterator.
5603         (define_insn "*fma_fnmadd_<mode>"): Rename from
5604         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
5605         use FMAMODE mode iterator.
5606         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
5607         Use VF_SF_AVX512VL mode iterator.
5608         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
5609         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5610         iterator.
5611         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
5612         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5613         iterator.
5614         (define_insn "*fma_fnmsub_<mode>"): Rename from
5615         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
5616         FMAMODE mode iterator.
5617         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
5618         Use VF_SF_AVX512VL mode iterator.
5619         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
5620         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5621         iterator.
5622         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
5623         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5624         iterator.
5625         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
5626         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
5627         use VF_AVX512VL mode iterator.
5628         (define_insn "*fma_fmaddsub_<mode>"): Rename from
5629         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
5630         remove subst usage.
5631         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
5632         Use VF_SF_AVX512VL mode iterator.
5633         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
5634         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
5635         iterator.
5636         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
5637         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5638         iterator.
5639         (define_insn "*fma_fmsubadd_<mode>"): Rename from
5640         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
5641         remove usage of subst.
5642         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
5643         Use VF_SF_AVX512VL mode iterator.
5644         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
5645         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
5646         iterator.
5647         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
5648         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
5649         iterator.
5650
5651 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
5652
5653         Revert r213751:
5654         * calls.c (precompute_arguments): Check
5655          promoted_for_signed_and_unsigned_p and set the promoted mode.
5656         (promoted_for_signed_and_unsigned_p): New function.
5657         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
5658         and set the promoted mode.
5659         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
5660         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
5661         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
5662
5663 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5664
5665         * opth-gen.awk: Generate mapping from cpp message reasons to the
5666         options that enable them.
5667         * doc/options.texi (CppReason): Document.
5668
5669 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5670
5671         * doc/invoke.texi (Wnormalized=): Update.
5672
5673 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
5674
5675         PR target/63195
5676         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
5677         operands.  Split off the constant operand alternative to ...
5678         (*bool<mode>3_imm): New.
5679
5680 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5681
5682         * rtl.h (single_set_2): Strengthen first param from const_rtx to
5683         const rtx_insn *, and move prototype to above...
5684         (single_set): ...this.  Convert this from a macro to an inline
5685         function, enforcing the requirement that the param is a const
5686         rtx_insn *.
5687         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
5688
5689         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
5690         Strengthen both params from rtx to rtx_insn *.
5691         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
5692         Likewise; introduce locals "producer_set", "consumer_set", using
5693         them in place of "producer" and "consumer" when dealing with SET
5694         rather than insn.
5695         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
5696         when invoking single_set in region guarded by INSN_P.
5697         (avr_out_bitop): Likewise.
5698         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
5699         region guarded by GET_CODE check, using methods to strengthen
5700         local "this_insn" from rtx to rtx_insn *, and for clarity.
5701         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
5702         Strengthen local "insn" from rtx to rtx_insn *.
5703         (define_insn_and_split "xload<mode>_A"): Likewise.
5704         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
5705         "insn".
5706         (find_load): Likewise for return type.
5707         (workaround_speculation): Likewise for both locals named
5708         "load_insn".
5709         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
5710         local "cc0_user".
5711         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
5712         for local "prev".
5713         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
5714         param 2.
5715         * config/h8300/h8300.c (notice_update_cc): Likewise.
5716         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
5717         "insn" and "dep_insn".
5718         (exact_store_load_dependency): Likewise for both params.
5719         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
5720         since this now clashes with inline function.  Instead, delay
5721         calling single_set until the point where its needed, and then
5722         assign the result to "compare_set" and rework the conditional that
5723         follows.
5724         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
5725         local "last" from rtx to rtx_insn *.
5726         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
5727         second param.
5728         (mips_store_data_bypass_p): Likewise for both params.
5729         * config/mips/mips.c (mips_load_store_insns): Likewise for second
5730         param.
5731         (mips_store_data_bypass_p): Likewise for both params.
5732         (mips_orphaned_high_part_p): Likewise for param "insn".
5733         * config/mn10300/mn10300.c (extract_bundle): Likewise.
5734         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
5735         Introduce local rtx "insn2_pat".
5736         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
5737         "ninsn".
5738         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
5739         Introduce local rtx "set", using it in place of "insn" for the
5740         result of single_set.  This appears to fix a bug, since the call
5741         to find_regno_note on a SET does nothing.
5742         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
5743         params from rtx to rtx_insn *.
5744         (set_to_load_agen): Likewise.
5745         * config/s390/s390.c (s390_label_align): Likewise for local
5746         "prev_insn".  Introduce new rtx locals "set" and "src", using
5747         them in place of "prev_insn" for the results of single_set
5748         and SET_SRC respectively.
5749         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
5750         Introduce new rtx local "set" using in place of "jump" for the
5751         result of single_set.  Use SET_SRC (set) rather than plain
5752         XEXP (set, 1).
5753         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
5754         rtx to rtx_insn *.
5755         (noncall_uses_reg): Likewise.
5756         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
5757         guarded by GET_CODE check, using its methods for clarity, and to
5758         enable strengthening local "this_insn" from rtx to rtx_insn *.
5759         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
5760         "insn" from rtx to rtx_insn *.
5761         (define_expand "umulhisi3"): Likewise.
5762         (define_expand "smulsi3_highpart"): Likewise.
5763         (define_expand "umulsi3_highpart"): Likewise.
5764         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
5765         local "after".  Replace GET_CODE check with a dyn_cast,
5766         introducing new local rtx_sequence * "seq", using insn method for
5767         typesafety.
5768
5769         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
5770         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
5771         place of "insn" once we're dealing with patterns rather than the
5772         input insn.
5773         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
5774         (scan_trace): Likewise for local "elt", updating lookups within
5775         sequence to use insn method rather than element method.
5776         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
5777         to rtx_insn *.
5778         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
5779         * ifcvt.c (noce_try_abs): Likewise for local "insn".
5780         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
5781         invoking single_set.
5782         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
5783         "insn" from rtx to rtx_insn *.
5784         (skip_usage_debug_insns): Likewise for return type, adding a
5785         checked cast.
5786         (check_secondary_memory_needed_p): Likewise for local "insn".
5787         (inherit_reload_reg): Likewise.
5788         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
5789         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
5790         checked casts.
5791         (store_data_bypass_p): Likewise for both params.
5792         (if_test_bypass_p): Likewise.
5793         * recog.h (store_data_bypass_p): Likewise for both params.
5794         (if_test_bypass_p): Likewise.
5795         * reload.c (find_equiv_reg): Likewise for local "where".
5796         * reorg.c (delete_jump): Likewise for param "insn".
5797         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
5798         to const rtx_insn *.
5799         * store-motion.c (replace_store_insn): Likewise for param "del".
5800         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
5801         and use its methods for clarity, and to strengthen local "del"
5802         from rtx to rtx_insn *.
5803         (build_store_vectors): Use insn method of "st" when calling
5804         replace_store_insn for typesafety and clarity.
5805
5806 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5807
5808         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
5809         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
5810         on how to make it legal in future.
5811
5812 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
5813
5814         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
5815         to rtx_insn *.
5816         (restinsn): Likewise.
5817         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
5818         Likewise for param.
5819         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
5820         Likewise.
5821         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
5822         first param.
5823         (arc_hazard): Likewise for both params.
5824         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
5825         checked casts to rtx_sequence * and uses of the insn method for
5826         type-safety.
5827         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
5828         (arc_adjust_insn_length): Likewise for param "insn".
5829         (struct insn_length_parameters_s): Likewise for first param of
5830         "get_variants" callback field.
5831         (arc_get_insn_variants): Likewise for first param and local
5832         "inner".  Replace a check of GET_CODE with a dyn_cast to
5833         rtx_sequence *, using methods for type-safety and clarity.
5834         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
5835         rtx_sequence * and uses of the insn method for type-safety when
5836         invoking arc_adjust_insn_length.
5837         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
5838         for param.
5839         (arm_address_offset_is_imm): Likewise.
5840         (struct tune_params): Likewise for params 1 and 3 of the
5841         "sched_adjust_cost" callback field.
5842         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
5843         params 1 and 3 ("insn" and "dep").
5844         (xscale_sched_adjust_cost): Likewise.
5845         (fa726te_sched_adjust_cost): Likewise.
5846         (cortexa7_older_only): Likewise for param "insn".
5847         (cortexa7_younger): Likewise.
5848         (arm_attr_length_move_neon): Likewise.
5849         (arm_address_offset_is_imm): Likewise.
5850         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
5851         * config/avr/avr.c (avr_notice_update_cc): Likewise.
5852         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
5853         (workaround_speculation): Likewise for local "last_condjump".
5854         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
5855         (shadow_or_blockage_p): Likewise.
5856         (get_unit_reqs): Likewise.
5857         (get_unit_operand_masks): Likewise.
5858         (c6x_registers_update): Likewise.
5859         (returning_call_p): Likewise.
5860         (can_use_callp): Likewise.
5861         (convert_to_callp): Likewise.
5862         (find_last_same_clock): Likwise for local "t".
5863         (reorg_split_calls): Likewise for local "shadow".
5864         (hwloop_pattern_reg): Likewise for param "insn".
5865         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
5866         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
5867         (frv_extract_membar): Likewise.
5868         (frv_optimize_membar_local): Strengthen param "last_membar" from
5869         rtx * to rtx_insn **.
5870         (frv_optimize_membar_global): Strengthen param "membar" from rtx
5871         to rtx_insn *.
5872         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
5873         to rtx_insn **.
5874         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
5875         both params from rtx to rtx_insn *.
5876         (ia64_ld_address_bypass_p): Likewise.
5877         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
5878         "insn".
5879         (ia64_safe_type): Likewise.
5880         (group_barrier_needed): Likewise.
5881         (safe_group_barrier_needed): Likewise.
5882         (ia64_single_set): Likewise.
5883         (is_load_p): Likewise.
5884         (record_memory_reference): Likewise.
5885         (get_mode_no_for_insn): Likewise.
5886         (important_for_bundling_p): Likewise.
5887         (unknown_for_bundling_p): Likewise.
5888         (ia64_st_address_bypass_p): Likewise for both params.
5889         (ia64_ld_address_bypass_p): Likewise.
5890         (expand_vselect): Introduce new local rtx_insn * "insn", using it
5891         in place of rtx "x" after the emit_insn call.
5892         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
5893         Strengthen param from rtx to rtx_insn *.
5894         (ix86_agi_dependent): Likewise for both params.
5895         (ix86_attr_length_immediate_default): Likewise for param 1.
5896         (ix86_attr_length_address_default): Likewise for param.
5897         (ix86_attr_length_vex_default): Likewise for param 1.
5898         * config/i386/i386.c (ix86_attr_length_immediate_default):
5899         Likewise for param "insn".
5900         (ix86_attr_length_address_default): Likewise.
5901         (ix86_attr_length_vex_default): Likewise.
5902         (ix86_agi_dependent): Likewise for both params.
5903         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
5904         (vselect_insn): Likewise for this variable.
5905         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
5906         for param 1.
5907         (m68k_sched_attr_opy_type): Likewise.
5908         * config/m68k/m68k.c (sched_get_operand): Likewise.
5909         (sched_attr_op_type): Likewise.
5910         (m68k_sched_attr_opx_type): Likewise.
5911         (m68k_sched_attr_opy_type): Likewise.
5912         (sched_get_reg_operand): Likewise.
5913         (sched_get_mem_operand): Likewise.
5914         (m68k_sched_address_bypass_p): Likewise for both params.
5915         (sched_get_indexed_address_scale): Likewise.
5916         (m68k_sched_indexed_address_bypass_p): Likewise.
5917         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
5918         (m68k_sched_indexed_address_bypass_p): Likewise.
5919         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
5920         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
5921         removing another.
5922         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
5923         params from rtx to rtx_insn *.
5924         (mips_fmadd_bypass): Likewise.
5925         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
5926         (mips_linked_madd_p): Likewise.
5927         (mips_macc_chains_last_hilo): Likewise for this variable.
5928         (mips_macc_chains_record): Likewise for param.
5929         (vr4130_last_insn): Likewise for this variable.
5930         (vr4130_swap_insns_p): Likewise for both params.
5931         (mips_ls2_variable_issue): Likewise for param.
5932         (mips_need_noat_wrapper_p): Likewise for param "insn".
5933         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
5934         in place of "x" after the emit_insn.
5935         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
5936         params from rtx to rtx_insn *.
5937         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
5938         (pa_combine_instructions): Introduce local "par" for result of
5939         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
5940         to make_insn_raw.
5941         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
5942         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
5943         (rl78_alloc_physical_registers_op1): Likewise.
5944         (rl78_alloc_physical_registers_op2): Likewise.
5945         (rl78_alloc_physical_registers_ro1): Likewise.
5946         (rl78_alloc_physical_registers_cmp): Likewise.
5947         (rl78_alloc_physical_registers_umul): Likewise.
5948         (rl78_alloc_address_registers_macax): Likewise.
5949         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
5950         * config/s390/predicates.md (execute_operation): Likewise for
5951         local "insn".
5952         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
5953         params.
5954         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
5955         (addr_generation_dependency_p): Likewise for param "insn".
5956         (s390_agen_dep_p): Likewise for both params.
5957         (s390_fpload_toreg): Likewise for param "insn".
5958         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
5959         * config/sh/sh.c (sh_loop_align): Likewise for param and local
5960         "next".
5961         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
5962         * config/sh/sh_treg_combine.cc
5963         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
5964         and local "i".
5965         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
5966         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
5967         "and_insn", "load", "shift".
5968         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
5969         "insn".
5970         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
5971         for XEXP (note, 0) of the REG_CC_SETTER note.
5972         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
5973         rtx_insn *, eliminating a checked cast made redundant by this.
5974         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
5975         to rtx_insn *.
5976         * genattr.c (main): When writing out the prototype to
5977         const_num_delay_slots, strengthen the param from rtx to
5978         rtx_insn *.
5979         * genattrtab.c (write_const_num_delay_slots): Likewise when
5980         writing out the implementation of const_num_delay_slots.
5981         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
5982         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
5983         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
5984         favor of new rtx locals "src" and "set" and new local rtx_insn *
5985         "insn" and "seq".
5986         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
5987         to rtx_insn *.
5988         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
5989         locals "cond", "if_then_else", "set" and new rtx_insn * locals
5990         "insn" and "seq".
5991         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
5992         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
5993         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
5994         the top-level scope, replacing with new more tightly-scoped rtx
5995         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
5996         "new_insn", "copy_of_insn_b", and make local rtx "set" more
5997         tightly-scoped.
5998         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
5999         rtx_insn *.
6000         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6001         "move_insn".
6002         (ira_setup_alts): Likewise for param "insn".
6003         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6004         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6005         and an rtx_insn *.
6006         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6007         new more-tightly scoped rtx locals "add3_insn", "insn",
6008         "add2_insn" and rtx_insn * "move_insn".
6009         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6010         checked cast on result of gen_move_insn when invoking
6011         extract_insn.
6012         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6013         rtx_insn *.
6014         (verify_changes): Add a checked cast on "object" when invoking
6015         insn_invalid_p.
6016         (extract_insn_cached): Strengthen param "insn" from rtx to
6017         rtx_insn *.
6018         (extract_constrain_insn_cached): Likewise.
6019         (extract_insn): Likewise.
6020         * recog.h (insn_invalid_p): Likewise for param 1.
6021         (recog_memoized): Likewise for param.
6022         (extract_insn): Likewise.
6023         (extract_constrain_insn_cached): Likewise.
6024         (extract_insn_cached): Likewise.
6025         * reload.c (can_reload_into): Likewise for local "test_insn".
6026         * reload.h (cleanup_subreg_operands): Likewise for param.
6027         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6028         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6029         result of emit_insn.  Remove a checked cast made redundant by this
6030         change.
6031         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6032         rtx to rtx_insn *.
6033         * sel-sched.c (get_reg_class): Likewise.
6034
6035 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6036             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6037
6038         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6039         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6040         Define.
6041         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6042
6043 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6044
6045         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6046         const rtx_insn *, and from rtx to rtx_insn * for the other
6047         overloaded variant.
6048         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6049         INSN_LOCATION, since we know INSN_P holds.
6050         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6051         (insn_file): Likewise.
6052         (insn_scope): Likewise.
6053         (insn_location): Likewise.
6054
6055         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6056         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6057         for the result of gen_load_const_gp.
6058         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6059         param from rtx to rtx_insn *.
6060         * config/rs6000/rs6000.c (output_call): Likewise.
6061         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6062         introducing a checked cast to rtx_sequence * and use of the insn
6063         method.
6064         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6065         from rtx to rtx_insn *.
6066         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6067         (insn_line): Likewise.
6068         (insn_file): Likewise.
6069         (insn_location): Likewise.
6070         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6071         from rtx to rtx_insn *.
6072         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6073         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6074         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6075         via a checked cast.
6076         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6077         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6078
6079 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6080
6081         * combine.c (try_combine): Eliminate checked cast on result of
6082         gen_rtx_INSN.
6083         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6084         autogenerated one by strengthening the return type and params 2 and 3
6085         from rtx to rtx_insn *, and by naming the params.
6086         * gengenrtl.c (special_rtx): Add INSN to those that are
6087         special-cased.
6088         * rtl.h (gen_rtx_INSN): New prototype.
6089
6090 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6091
6092         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6093         than NULL_RTX.
6094         (no_equiv): Likewise.
6095         (update_equiv_regs): Likewise.
6096         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6097         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6098         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6099         clarity.
6100         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6101         from rtx to rtx_insn_list *.
6102         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6103         rtx_insn_list * and use methods for clarity and typesafety.
6104         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6105         "list".
6106         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6107         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6108         an INSN_LIST, not an insn.
6109         (reverse_equiv_p): Strengthen local "insns" from rtx to
6110         rtx_insn_list * and use methods for clarity and typesafety.
6111         (contains_reloaded_insn_p): Likewise for local "list".
6112
6113 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6114
6115         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6116         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6117         (arm_builtin_vectorized_function): Likewise.
6118         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6119         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6120
6121 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6122
6123         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6124         * builtins.h (default_target_builtins): Likewise.
6125         * gcse.h (default_target_gcse): Likewise.
6126         * target-globals.h (target_globals): Add a destructor.  Convert
6127         void-pointer fields back to their real type and change from
6128         GTY((atomic)) to GTY((skip)).
6129         (restore_target_globals): Remove casts accordingly.
6130         * target-globals.c (save_target_globals): Use XCNEW rather than
6131         ggc_internal_cleared_alloc to allocate non-GC structures.
6132         Use ggc_cleared_alloc to allocate the target_globals structure
6133         itself.
6134         (target_globals::~target_globals): Define.
6135
6136 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6137
6138         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6139         mnemonic instead of fldmfdd.
6140         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6141         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6142         Output vpush when address register is SP.
6143         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6144         (vfp_output_vstmd): ... This.
6145         * config/arm/vfp.md (push_multi_vfp): Update call to
6146         vfp_output_vstmd.
6147
6148 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6149
6150         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6151
6152 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6153
6154         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6155         (*sqrtdf2_vfp): Likewise.
6156         (*cmpsf_vfp): Likewise.
6157         (*cmpsf_trap_vfp): Likewise.
6158         (*cmpdf_vfp): Likewise.
6159         (*cmpdf_trap_vfp): Likewise.
6160
6161 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6162
6163         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6164         (*truncdfsf2_vfp): Likewise.
6165         (*truncsisf2_vfp): Likewise.
6166         (*truncsidf2_vfp): Likewise.
6167         (fixuns_truncsfsi2): Likewise.
6168         (fixuns_truncdfsi2): Likewise.
6169         (*floatsisf2_vfp): Likewise.
6170         (*floatsidf2_vfp): Likewise.
6171         (floatunssisf2): Likewise.
6172         (floatunssidf2): Likewise.
6173
6174 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6175
6176         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6177         (*muldf3_vfp): Likewise.
6178         (*mulsf3negsf_vfp): Likewise.
6179         (*muldf3negdf_vfp): Likewise.
6180         (*mulsf3addsf_vfp): Likewise.
6181         (*muldf3adddf_vfp): Likewise.
6182         (*mulsf3subsf_vfp): Likewise.
6183         (*muldf3subdf_vfp): Likewise.
6184         (*mulsf3negsfaddsf_vfp): Likewise.
6185         (*fmuldf3negdfadddf_vfp): Likewise.
6186         (*mulsf3negsfsubsf_vfp): Likewise.
6187         (*muldf3negdfsubdf_vfp): Likewise.
6188
6189 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6190
6191         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6192         (*absdf2_vfp): Likewise.
6193         (*negsf2_vfp): Likewise.
6194         (*negdf2_vfp): Likewise.
6195         (*addsf3_vfp): Likewise.
6196         (*adddf3_vfp): Likewise.
6197         (*subsf3_vfp): Likewise.
6198         (*subdf3_vfp): Likewise.
6199         (*divsf3_vfp): Likewise.
6200         (*divdf3_vfp): Likewise.
6201
6202 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6203
6204         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6205         multiple.
6206         (arm_print_operand): Don't convert real values to decimal
6207         representation in default case.
6208         (fp_immediate_constant): Delete.
6209         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6210         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6211         syntax.
6212         (*thumb2_movsi_vfp): Likewise.
6213         (*movdi_vfp): Likewise.
6214         (*movdi_vfp_cortexa8): Likewise.
6215         (*movhf_vfp_neon): Likewise.
6216         (*movhf_vfp): Likewise.
6217         (*movsf_vfp): Likewise.
6218         (*thumb2_movsf_vfp): Likewise.
6219         (*movdf_vfp): Likewise.
6220         (*thumb2_movdf_vfp): Likewise.
6221         (*movsfcc_vfp): Likewise.
6222         (*thumb2_movsfcc_vfp): Likewise.
6223         (*movdfcc_vfp): Likewise.
6224         (*thumb2_movdfcc_vfp): Likewise.
6225
6226 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6227
6228         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6229         (-mtune): Likewise.
6230         (-mcpu): Likewise.
6231
6232 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6233
6234         PR target/61749
6235         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6236         Use qualifier_immediate for last operand.  Rename to...
6237         (aarch64_types_ternop_lane_qualifiers): ... This.
6238         (TYPES_QUADOP): Rename to...
6239         (TYPES_TERNOP_LANE): ... This.
6240         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6241         error.  Change return of 0 to return of NULL_RTX.
6242         (aarch64_crc32_expand_builtin): Likewise.
6243         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6244         ICE when expanding unknown builtin.
6245         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6246         TERNOP_LANE qualifiers.
6247         (sqdmlsl_lane): Likewise.
6248         (sqdmlal_laneq): Likewise.
6249         (sqdmlsl_laneq): Likewise.
6250         (sqdmlal2_lane): Likewise.
6251         (sqdmlsl2_lane): Likewise.
6252         (sqdmlal2_laneq): Likewise.
6253         (sqdmlsl2_laneq): Likewise.
6254
6255 2014-09-09  Nick Clifton  <nickc@redhat.com>
6256
6257         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6258         end of a line.
6259         (S/390 and zSeries Options): Remove superfluous word from the
6260         description of the -mhotpatch option.
6261
6262 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6263
6264         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6265         * ira.c: #include "shrink-wrap.h"
6266         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6267         * ifcvt.c: #include "shrink-wrap.h"
6268         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6269
6270 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6271
6272         * common/config/picochip/picochip-common.c: Remove.
6273         * config.gcc: Remove support for picochip.
6274         * config/picochip/constraints.md: Remove.
6275         * config/picochip/dfa_space.md: Remove.
6276         * config/picochip/dfa_speed.md: Remove.
6277         * config/picochip/picochip-protos.h: Remove.
6278         * config/picochip/picochip.c: Remove.
6279         * config/picochip/picochip.h: Remove.
6280         * config/picochip/picochip.md: Remove.
6281         * config/picochip/picochip.opt: Remove.
6282         * config/picochip/predicates.md: Remove.
6283         * config/picochip/t-picochip: Remove.
6284         * doc/md.texi: Don't document picochi.
6285
6286 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6287
6288         * basic-block.h (control_flow_insn_p): Strengthen param from
6289         const_rtx to const rtx_insn *.
6290         * cfgbuild.c (control_flow_insn_p): Likewise.
6291
6292 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6293
6294         * gcse.c (modify_mem_list): Strengthen this variable from
6295         vec<rtx> * to vec<rtx_insn *> *.
6296         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6297         vec<rtx_insn *>.
6298         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6299         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6300         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6301         rtx_insn *.
6302         (record_last_set_info): Likewise for local "last_set_insn".
6303
6304 2014-09-08  DJ Delorie  <dj@redhat.com>
6305
6306         * doc/invoke.texi (MSP430 Options): Add -minrt.
6307
6308 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6309
6310         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6311         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6312         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6313         handling SH_SPLAT.
6314         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6315         of extracted lane.
6316         (adjust_splat): New function.
6317         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6318         (dump_swap_insn_table): Add case for SH_SPLAT.
6319
6320 2014-09-08  Richard Biener  <rguenther@suse.de>
6321
6322         PR ipa/63196
6323         * tree-inline.c (copy_loops): The source loop header should
6324         always be non-NULL.
6325         (tree_function_versioning): If loops need fixup after removing
6326         unreachable blocks fix them.
6327         * omp-low.c (simd_clone_adjust): Do not add incr block to
6328         loop under construction.
6329
6330 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6331
6332         * config/aarch64/aarch64-builtins.c
6333         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6334
6335 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6336
6337         * config/i386/cygming.h (TF_SIZE): Remove.
6338         * config/i386/darwin.h (TF_SIZE): Remove.
6339         * config/i386/dragonfly.h (TF_SIZE): Remove.
6340         * config/i386/freebsd.h (TF_SIZE): Remove.
6341         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6342         * config/i386/openbsdelf.h (TF_SIZE): Remove.
6343         * config/i386/sol2.h (TF_SIZE): Remove.
6344         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6345         * config/ia64/linux.h (TF_SIZE): Remove.
6346         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6347         * doc/tm.texi: Regenerate.
6348         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6349
6350 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6351
6352         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6353         Remove.
6354         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6355         Remove.
6356         * doc/tm.texi: Regenerate.
6357         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6358         Poison.
6359         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6360         * config/cris/cris.h (__make_dp): Remove.
6361
6362 2014-09-08  Richard Biener  <rguenther@suse.de>
6363
6364         PR bootstrap/63204
6365         * cfgloop.c (mark_loop_for_removal): Track former header
6366         unconditionally.
6367         * cfgloop.h (struct loop): Add former_header member unconditionally.
6368         * loop-init.c (fix_loop_structure): Enable bogus loop removal
6369         diagnostic unconditionally.
6370
6371 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6372
6373         PR target/63190
6374         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6375         constraint for operand0 and remove write only modifier from operand3.
6376
6377 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
6378
6379         PR rtl-optimization/62208
6380         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6381         rather than const0_rtx in eq/ne-xor simplifications.
6382
6383 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
6384
6385         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6386         (arc_output_mi_thunk): Likewise.
6387
6388         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6389         arguments to silence bogus warning.
6390
6391 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
6392
6393         PR middle-end/63171
6394         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
6395
6396 2014-09-06  Tom de Vries  <tom@codesourcery.com>
6397
6398         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
6399         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
6400         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6401
6402 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
6403
6404         PR target/63188
6405         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
6406         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
6407
6408 2014-09-05  Easwaran Raman  <eraman@google.com>
6409
6410         PR rtl-optimization/62146
6411         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
6412         hoisted instruction unconditional.
6413
6414 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
6415
6416         PR target/63187
6417         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
6418         Do not allow any_mask_operand for operands[2].
6419         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
6420
6421 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6422
6423         * config/arc/arc.c (arc_print_operand): Use insn method of
6424         final_sequence for type-safety.
6425         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
6426         "insn" from rtx to rtx_insn *.
6427         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
6428         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6429         Likewise for locals "branch", "label".
6430         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
6431         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
6432         (same_cmp_following_p): Likewise for locals "i2", "i3".
6433         * config/sh/sh_optimize_sett_clrt.cc
6434         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
6435         param "cbranch_insn".
6436         * function.c (convert_jumps_to_returns): Likewis for local "jump".
6437         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
6438         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
6439         const rtx_insn *.
6440         (condjump_p): Likewise.
6441         (condjump_in_parallel_p): Likewise.
6442         (pc_set): Likewise.
6443         (any_uncondjump_p): Likewise.
6444         (any_condjump_p): Likewise.
6445         (condjump_label): Likewise.
6446         (returnjump_p): Strengthen param "insn" from rtx to
6447         const rtx_insn *.
6448         (onlyjump_p): Strengthen param "insn" from const_rtx to
6449         const rtx_insn *.
6450         (jump_to_label_p): Likewise.
6451         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
6452         (invert_jump): Likewise.
6453         * reorg.c (simplejump_or_return_p): Add checked cast when calling
6454         simplejump_p.
6455         (get_jump_flags): Strengthen param "insn" from rtx to
6456         const rtx_insn *.
6457         (get_branch_condition): Likewise.
6458         (condition_dominates_p): Likewise.
6459         (make_return_insns): Move declaration of local "pat" earlier, to
6460         after we've handled NONJUMP_INSN_P and non-sequences, using its
6461         methods to simplify the code and for type-safety.
6462         * rtl.h (find_constant_src): Strengthen param from const_rtx to
6463         const rtx_insn *.
6464         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
6465         (condjump_p): Strengthen param from const_rtx to
6466         const rtx_insn *.
6467         (any_condjump_p): Likewise.
6468         (any_uncondjump_p): Likewise.
6469         (pc_set): Likewise.
6470         (condjump_label): Likewise.
6471         (simplejump_p): Likewise.
6472         (returnjump_p): Likewise.
6473         (onlyjump_p): Likewise.
6474         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
6475         (invert_jump): Likewise.
6476         (condjump_in_parallel_p): Strengthen param from const_rtx to
6477         const rtx_insn *.
6478         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
6479         to const rtx_insn *.
6480         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
6481         to const rtx_insn *.
6482         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
6483
6484 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6485
6486         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
6487         above the conditional, and convert the check on GET_CODE to a
6488         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
6489         the conditional.  Simplify the conditional by using methods of
6490         "trial_seq".
6491
6492 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6493
6494         * haifa-sched.c (check_clobbered_conditions): Strengthen local
6495         "link" from rtx to rtx_insn_list *, and use its methods for
6496         clarity and type-safety.
6497         (toggle_cancelled_flags): Likewise.
6498         (restore_last_backtrack_point): Likewise.
6499         (queue_to_ready): Use insn method of "link" in one place.
6500         (schedule_block): Strengthen local "link" from rtx to
6501         rtx_insn_list *, and use its methods for clarity and type-safety.
6502
6503 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6504
6505         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
6506         param "insn" from const_rtx to const rtx_insn *.
6507         (sched_get_reverse_condition_uncached): Likewise.
6508         (sched_get_condition_with_rev): Likewise.
6509         (sched_has_condition_p): Likewise.
6510         (sched_insns_conditions_mutex_p): Likewise for both params.
6511         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
6512         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
6513         (setup_insn_reg_uses): Move local "list" to be more tightly
6514         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
6515         its methods for clarity and type-safety.
6516         (sched_analyze_1): Strengthen local "pending" from rtx to
6517         rtx_insn_list *, and local "pending_mem" from rtx to
6518         rtx_expr_list *.  Use methods of each for clarity and type-safety.
6519         (sched_analyze_2): Likewise.
6520         (sched_analyze_insn): Likewise.
6521
6522         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
6523         param from const_rtx to const rtx_insn *.
6524         (sched_insns_conditions_mutex_p): Likewise for both params.
6525         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
6526         param.
6527
6528         * system.h (CONST_CAST_RTX_INSN): New macro.
6529
6530 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6531
6532         * recog.c (peep2_attempt): Strengthen return type from rtx to
6533         rtx_insn *.
6534         (peep2_update_life): Likewise for params "last", "prev", removing
6535         a checked cast made redundant by this.
6536         (peephole2_optimize): Likewise for local "last".
6537
6538 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6539
6540         * basic-block.h (set_block_for_insn): Eliminate this macro in
6541         favor of...
6542         * rtl.h (set_block_for_insn): New inline function, imposing the
6543         requirement that the "insn" param is an rtx_insn *.
6544
6545 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6546
6547         * caller-save.c (setup_save_areas): Strengthen local "insn" from
6548         rtx to rtx_insn *.
6549         * final.c (get_call_reg_set_usage): Likewise for first param,
6550         eliminating a checked cast.
6551         * regs.h (get_call_reg_set_usage): Likewise for first param.
6552         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
6553         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
6554         cast, replacing references to "x" with "call_insn" where
6555         appropriate.
6556         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
6557         rtx_insn *, adding a checked cast.
6558
6559 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6560
6561         * output.h (final_scan_insn): Strengthen first param from rtx to
6562         rtx_insn *.
6563
6564         * final.c (final_scan_insn): Likewise, renaming it back from
6565         "uncast_insn" to "insn", eliminating the checked cast.
6566
6567         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
6568         "vec" with an rtx_sequence * "seq", taking a copy of
6569         "final_sequence", and using methods of "seq" for clarity, and for
6570         type-safety in the calls to final_scan_insn.
6571         * config/mips/mips.c (mips_output_conditional_branch): Use methods
6572         of "final_sequence" for clarity, and for type-safety in the call to
6573         final_scan_insn.
6574         * config/sh/sh.c (print_slot): Strengthen param from rtx to
6575         rtx_sequence * and rename from "insn" to "seq".
6576
6577 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6578
6579         * jump.c (delete_related_insns): Introduce a new local "table" by
6580         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
6581         get_labels method of "table" to simplify access to the labels in
6582         the jump table.
6583
6584 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6585
6586         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
6587         f_minmaxs, f_minmaxd types.
6588
6589 2014-09-05  Richard Biener  <rguenther@suse.de>
6590
6591         * cfgloop.c (mark_loop_for_removal): Record former header
6592         when ENABLE_CHECKING.
6593         * cfgloop.h (strut loop): Add former_header member when
6594         ENABLE_CHECKING.
6595         * loop-init.c (fix_loop_structure): Sanity check loops
6596         marked for removal if they re-appeared.
6597
6598 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6599
6600         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
6601         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
6602
6603         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
6604         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
6605         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
6606         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
6607         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
6608         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
6609         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
6610         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
6611         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
6612         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
6613         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
6614         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
6615         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
6616         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
6617         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
6618         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
6619         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
6620         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
6621         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
6622         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
6623         with int{32,16,8}_t.
6624
6625 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6626
6627         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
6628         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
6629         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
6630         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
6631         Remove temporary __asm__ and reimplement.
6632
6633 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6634
6635         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
6636         handling cmge, cmgt, cmeq, cmtst.
6637
6638         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
6639         cmlt, cmgeu, cmgtu, cmtst): Remove.
6640
6641         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
6642         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
6643         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
6644         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
6645
6646 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6647
6648         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
6649         TYPES_TST): Define.
6650         (aarch64_fold_builtin): Update pattern for cmtst.
6651
6652         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
6653         Declare.
6654
6655         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
6656
6657         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
6658         Switch operands, separate out more cases, refactor.
6659
6660         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
6661
6662         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
6663         argument; rename old version to...
6664         (aarch64_const_vec_all_same_in_range_p): ...this.
6665         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
6666
6667         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
6668
6669 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6670
6671         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
6672         Remove qualifier_const_pointer, update comment.
6673
6674 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6675
6676         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
6677
6678 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6679
6680         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
6681         varargs with pointer parameter.
6682         (aarch64_simd_expand_builtin): pass pointer into previous.
6683
6684 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6685
6686         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
6687         alus_ext.
6688
6689 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
6690
6691         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
6692         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
6693         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
6694         Replace temporary asm with call to builtin.
6695         (vrbit_p8, vrbitq_p8): New functions.
6696
6697 2014-09-05  Richard Biener  <rguenther@suse.de>
6698
6699         * cfgloop.c (mark_loop_for_removal): New function.
6700         * cfgloop.h (mark_loop_for_removal): Declare.
6701         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
6702         (merge_blocks): Likewise.
6703         (duplicate_block): Likewise.
6704         * except.c (sjlj_emit_dispatch_table): Likewise.
6705         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
6706         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
6707         (thread_through_loop_header): Likewise.
6708
6709 2014-09-05  Richard Biener  <rguenther@suse.de>
6710
6711         PR middle-end/63148
6712         * fold-const.c (try_move_mult_to_index): Remove.
6713         (fold_binary_loc): Do not call it.
6714         * tree-data-ref.c (dr_analyze_indices): Strip conversions
6715         from the base object again.
6716
6717 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
6718
6719         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
6720         DImode.
6721
6722 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6723
6724         PR target/55701
6725         * config/arm/arm.md (setmem): New pattern.
6726         * config/arm/arm-protos.h (struct tune_params): New fields.
6727         (arm_gen_setmem): New prototype.
6728         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
6729         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
6730         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
6731         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
6732         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
6733         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
6734         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
6735         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
6736         (arm_const_inline_cost): New function.
6737         (arm_block_set_max_insns): New function.
6738         (arm_block_set_non_vect_profit_p): New function.
6739         (arm_block_set_vect_profit_p): New function.
6740         (arm_block_set_unaligned_vect): New function.
6741         (arm_block_set_aligned_vect): New function.
6742         (arm_block_set_unaligned_non_vect): New function.
6743         (arm_block_set_aligned_non_vect): New function.
6744         (arm_block_set_vect, arm_gen_setmem): New functions.
6745
6746 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6747
6748         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
6749
6750 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
6751
6752         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
6753
6754 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6755
6756         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
6757         an rtx.
6758         * valtrack.h: Adjust.
6759
6760 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6761
6762         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
6763         an rtx.
6764         (emit_jump_insn_before_noloc): Likewise.
6765         (emit_call_insn_before_noloc): Likewise.
6766         (emit_label_before): Likewise.
6767         (emit_label_after): Likewise.
6768         (emit_insn_before_setloc): Likewise.
6769         (emit_jump_insn_before_setloc): Likewise.
6770         (emit_call_insn_before_setloc): Likewise.
6771         (emit_call_insn_before): Likewise.
6772         * rtl.h: Adjust.
6773
6774 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6775
6776         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
6777         rtx_insn *, eliminating a checked cast.
6778
6779 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6780
6781         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
6782         const_rtx to const rtx_insn *.
6783         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
6784         cast.
6785
6786 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6787
6788         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
6789         fixup_args_size_notes.
6790         * expr.c (fixup_args_size_notes): Strengthen first two params from
6791         rtx to rtx_insn *, eliminating a checked cast.
6792         * rtl.h (fixup_args_size_notes): Strengthen first two params from
6793         rtx to rtx_insn *.
6794
6795 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6796
6797         * haifa-sched.c (get_ready_element): Strengthen return type from
6798         rtx to rtx_insn *.
6799         * sched-int.h (get_ready_element): Likewise.
6800
6801 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
6802
6803         PR target/63165
6804         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
6805         indexed_or_indirect_operand instead of memory_operand.
6806         (floatsi<mode>2_lfiwzx_mem): Ditto.
6807
6808 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6809
6810         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
6811         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
6812         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
6813
6814 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
6815
6816         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
6817         rtx.
6818         (get_last_nonnote_insn): Likewise.
6819         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
6820         * resource.c (find_basic_block): Likewise.
6821         * rtl.h: Adjust.
6822         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
6823         const_rtx.
6824
6825 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6826
6827         * genattr.c (main): Within the prototype of insn_latency written
6828         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
6829         * genautomata.c (output_internal_maximal_insn_latency_func):
6830         Within the implementation of insn_latency written out to
6831         insn-automata.c, strengthen both params from rtx to rtx_insn *,
6832         eliminating a pair of checked casts.
6833
6834 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
6835
6836         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
6837         rtx_insn *.
6838
6839         * rtl.h (eh_returnjump_p): Likewise.
6840
6841 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
6842
6843         * Makefile.in (TAGS): Handle constructs in timevar.def.
6844
6845 2014-09-04  Guozhi Wei  <carrot@google.com>
6846
6847         PR target/62040
6848         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
6849         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
6850         it into two patterns.
6851         (move_lo_quad_internal_be_<mode>): Likewise.
6852
6853 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6854
6855         * doc/options.texi: Document that Var and Init are required if CPP
6856         is given.
6857         * optc-gen.awk: Require Var and Init if CPP is given.
6858         * common.opt (Wpedantic): Use Init.
6859
6860 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6861
6862         * config/rs6000/rs6000.c (special_handling_values): Add
6863         SH_EXTRACT.
6864         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
6865         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
6866         as swappable with special handling SH_EXTRACT.  Remove
6867         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
6868         optimization.
6869         (adjust_extract): New function.
6870         (handle_special_swappables): Add default to case statement; add
6871         case for SH_EXTRACT that calls adjust_extract.
6872         (dump_swap_insn_table): Handle SH_EXTRACT.
6873
6874 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6875
6876         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
6877         selection of 0th memory doubleword, regardless of endianness.
6878
6879 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6880
6881         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
6882
6883 2014-09-04  Alan Modra  <amodra@gmail.com>
6884
6885         PR debug/60655
6886         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
6887         can't be output.
6888
6889 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
6890
6891         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
6892         * targhooks.c (default_dwarf_frame_reg_mode): New function.
6893         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
6894         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
6895         * doc/tm.texi: Regenerate.
6896         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
6897         selection logic to default_dwarf_frame_reg_mode.
6898
6899 2014-09-03  Marek Polacek  <polacek@redhat.com>
6900
6901         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
6902         by -Wall.
6903
6904 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
6905
6906         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
6907         the automodified register.
6908
6909 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
6910
6911         * output.h (get_some_local_dynamic_name): Declare.
6912         * final.c (some_local_dynamic_name): New variable.
6913         (get_some_local_dynamic_name): New function.
6914         (final_end_function): Clear some_local_dynamic_name.
6915         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
6916         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6917         (print_operand): Report an error if '%&' is used inappropriately.
6918         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
6919         (get_some_local_dynamic_name_1): Delete.
6920         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
6921         (rs6000_get_some_local_dynamic_name): Delete.
6922         (rs6000_get_some_local_dynamic_name_1): Delete.
6923         (print_operand): Report an error if '%&' is used inappropriately.
6924         * config/s390/s390.c (machine_function): Remove some_ld_name.
6925         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6926         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
6927         * config/sparc/sparc.c: Include rtl-iter.h.
6928         (machine_function): Remove some_ld_name.
6929         (sparc_print_operand): Report an error if '%&' is used inappropriately.
6930         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
6931
6932 2014-09-03  Richard Henderson  <rth@redhat.com>
6933
6934         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
6935         (aarch64_popwb_pair_reg): Remove.
6936         (aarch64_set_frame_expr): Remove.
6937         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
6938         the restore ops performed by the insns generated.
6939         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
6940         insn.  Perform the calls_eh_return addition later; do not attempt to
6941         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
6942         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
6943         special markup at all.  Load cfun->machine->frame.hard_fp_offset
6944         into a local variable.
6945         (aarch64_frame_pointer_required): Don't check calls_alloca.
6946
6947 2014-09-03  Richard Biener  <rguenther@suse.de>
6948
6949         * opts.c (default_options_optimization): Adjust
6950         max-combine-insns to 2 for -Og.
6951
6952 2014-09-03  Martin Jambor  <mjambor@suse.cz>
6953
6954         PR ipa/62015
6955         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
6956         pass-trough jump functions correctly.
6957
6958 2014-09-03  Martin Jambor  <mjambor@suse.cz>
6959
6960         PR ipa/61986
6961         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
6962         created replacements in ascending order of offsets.
6963         (known_aggs_to_agg_replacement_list): Likewise.
6964
6965 2014-09-03  Martin Liska  <mliska@suse.cz>
6966
6967         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
6968         is set to set uninitialized value for vnresult.
6969
6970 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6971
6972         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
6973         for TARGET_MUST_PASS_IN_STACK.
6974
6975 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6976
6977         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
6978         for TARGET_ARG_PARTIAL_BYTES.
6979
6980 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6981
6982         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
6983         instructions for varargs implementation.
6984         (nds32_expand_epilogue): Emit stack adjustment instructions for
6985         varargs implementation.
6986
6987 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6988
6989         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
6990         optimization detection.
6991
6992 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
6993
6994         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
6995         arguments.
6996         (nds32_function_arg_advance): Deal with nameless arguments.
6997         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
6998         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
6999         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7000
7001 2014-09-03  Richard Biener  <rguenther@suse.de>
7002
7003         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7004         (struct bb_bitmap_sets): Remove deferred member.
7005         (BB_DEFERRED): Remove.
7006         (defer_or_phi_translate_block): Remove.
7007         (compute_antic_aux): Remove deferring of blocks, assert
7008         proper iteration order.
7009         (compute_antic): Do not set BB_DEFERRED.
7010         (eliminate): Allocate el_avail of proper size initially.
7011
7012 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7013
7014         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7015         according to the value of crtl->args.pretend_args_size.
7016
7017 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7018
7019         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7020         varargs information.
7021
7022 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7023
7024         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7025         implementation for TARGET_SETUP_INCOMING_VARARGS.
7026         (nds32_strict_argument_naming): Refine comment.
7027         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7028         Define for future implementation.
7029
7030 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7031
7032         * config/i386/adxintrin.h (_subborrow_u32): New.
7033         (_addcarry_u32): Ditto.
7034         (_subborrow_u64): Ditto.
7035         (_addcarry_u64): Ditto.
7036         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7037         IX86_BUILTIN_SBB64.
7038         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7039         __builtin_ia32_sbb_u64
7040
7041 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7042
7043         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7044         GPR-specific stuff.
7045         (nds32_function_arg_advance): Likewise.
7046         (nds32_init_cumulative_args): Likewise.
7047         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7048         (NDS32_FIRST_GPR_REGNUM): Define.
7049         (NDS32_LAST_GPR_REGNUM): Define.
7050         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7051         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7052         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7053         (machine_function): Use GRP-specific stuff.
7054
7055 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7056
7057         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7058         (nds32_expand_epilogue): Likewise.
7059         (nds32_expand_prologue_v3push): Likewise.
7060         (nds32_expand_epilogue_v3pop): Likewise.
7061
7062 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7063
7064         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7065         v3push/v3pop for variadic function.
7066         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7067
7068 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7069
7070         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7071         Check rtx for varargs implementation.
7072         (nds32_output_stack_pop): Likewise.
7073         * config/nds32/nds32-protos.h: Have a rtx argument for
7074         nds32_output_stack_push and nds32_output_stack_pop.
7075         * config/nds32/nds32.md: Likewise.
7076
7077 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7078
7079         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7080         to check if FUNC is an interrupt service routine.
7081         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7082
7083 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7084
7085         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7086         arguments implementation.
7087
7088 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7089
7090         * config/nds32/nds32-predicates.c
7091         (nds32_valid_stack_push_pop): Rename to ...
7092         (nds32_valid_stack_push_pop_p): ... this.
7093         * config/nds32/nds32-protos.h: Likewise.
7094         * config/nds32/predicates.md: Likewise.
7095
7096 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7097
7098         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7099         (nds32_emit_stack_v3push): ... this.
7100         (nds32_gen_stack_v3pop): Rename to ...
7101         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7102         information.
7103
7104 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7105
7106         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7107         (nds32_emit_stack_push_multiple): ... this.
7108         (nds32_gen_stack_pop_multiple): Rename to ...
7109         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7110         information.
7111
7112 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7113
7114         PR target/61078
7115         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7116         and add a second splitter to handle the remaining cases.
7117
7118 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7119
7120         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7121
7122 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7123
7124         * cfgexpand.c (label_rtx_for_bb): Change type to
7125         hash_map<basic_block, rtx_code_label *> *.
7126         (expand_gimple_basic_block): Adjust.
7127         (pass_expand::execute): Likewise.
7128
7129 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7130
7131         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7132         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7133         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7134         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7135         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7136         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7137         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7138         of rtx.
7139
7140 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7141
7142         * alloc-pool.c: Include coretypes.h.
7143         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7144         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7145         hash_set instead of htab.
7146         * ggc-page.c (in_gc): New variable.
7147         (ggc_free): Do nothing if a collection is taking place.
7148         (ggc_collect): Set in_gc appropriately.
7149         * ggc.h (gt_ggc_mx(const char *)): New function.
7150         (gt_pch_nx(const char *)): Likewise.
7151         (gt_ggc_mx(int)): Likewise.
7152         (gt_pch_nx(int)): Likewise.
7153         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7154         (hash_map::hash_entry::pch_nx): Likewise.
7155         (hash_map::hash_entry::pch_nx_helper): Likewise.
7156 (hash_map::hash_map): Adjust.
7157 (hash_map::create_ggc): New function.
7158 (gt_ggc_mx): Likewise.
7159 (gt_pch_nx): Likewise.
7160         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7161 (default_hashset_traits::pch_nx): Likewise.
7162 (hash_set::hash_entry::ggc_mx): Likewise.
7163 (hash_set::hash_entry::pch_nx): Likewise.
7164 (hash_set::hash_entry::pch_nx_helper): Likewise.
7165 (hash_set::hash_set): Adjust.
7166 (hash_set::create_ggc): New function.
7167 (hash_set::elements): Likewise.
7168 (gt_ggc_mx): Likewise.
7169 (gt_pch_nx): Likewise.
7170         * hash-table.h (hash_table::hash_table): Adjust.
7171 (hash_table::m_ggc): New member.
7172         (hash_table::~hash_table): Adjust.
7173         (hash_table::expand): Likewise.
7174         (hash_table::empty): Likewise.
7175 (gt_ggc_mx): New function.
7176         (hashtab_entry_note_pointers): Likewise.
7177 (gt_pch_nx): Likewise.
7178
7179 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7180
7181         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7182         built-in definition.
7183         (XVCVUXDDP_SCALE): Likewise.
7184         (XVCVDPSXDS_SCALE): Likewise.
7185         (XVCVDPUXDS_SCALE): Likewise.
7186         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7187         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7188         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7189         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7190         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7191         prototype.
7192         * config/rs6000/rs6000.c (real.h): New include.
7193         (rs6000_scale_v2df): New function.
7194         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7195         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7196         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7197         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7198         (vsx_xvcvsxddp_scale): New define_expand.
7199         (vsx_xvcvsxddp): New define_insn.
7200         (vsx_xvcvuxddp_scale): New define_expand.
7201         (vsx_xvcvuxddp): New define_insn.
7202         (vsx_xvcvdpsxds_scale): New define_expand.
7203         (vsx_xvcvdpsxds): New define_insn.
7204         (vsx_xvcvdpuxds_scale): New define_expand.
7205         (vsx_xvcvdpuxds): New define_insn.
7206         * doc/extend.texi (vec_ctf): Add new prototypes.
7207         (vec_cts): Likewise.
7208         (vec_ctu): Likewise.
7209         (vec_splat): Likewise.
7210         (vec_div): Likewise.
7211         (vec_mul): Likewise.
7212
7213 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7214
7215         PR target/62275
7216         * config/arm/neon.md
7217         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7218         <v_cmp_result>): New pattern.
7219         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7220         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7221         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7222         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7223         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7224         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7225
7226 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7227
7228         PR target/62275
7229         * config/arm/iterators.md (FIXUORS): New code iterator.
7230         (VCVT): New int iterator.
7231         (su_optab): New code attribute.
7232         (su): Likewise.
7233         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7234
7235 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7236
7237         * config/aarch64/predicates.md (aarch64_comparison_operation):
7238         New special predicate.
7239         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7240         aarch64_comparison_operation instead of matching an operator.
7241         Update operand numbers.
7242         (csinc3<mode>_insn): Likewise.
7243         (*csinv3<mode>_insn): Likewise.
7244         (*csneg3<mode>_insn): Likewise.
7245         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7246         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7247         Return -1 instead of aborting on invalid condition codes.
7248         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7249         to assert that the returned condition code is valid.
7250         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7251
7252 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7253
7254         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7255         tree.def, and gimple.def
7256
7257 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7258             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7259             Igor Zamyatin  <igor.zamyatin@intel.com>
7260
7261         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7262         (__cilkrts_cilk_for_64): Likewise.
7263         * cilk-common.c (declare_cilk_for_builtin): New function.
7264         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7265         __cilkrts_cilk_for_64 bultins.
7266         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7267         CILK_TI_F_LOOP_64.
7268         (cilk_for_32_fndecl): New define.
7269         (cilk_for_64_fndecl): Likewise.
7270         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7271         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7272         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7273         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7274         GF_OMP_FOR_COMBINED_INTO.
7275         * gimplify.c (gimplify_scan_omp_clauses): Added
7276         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7277         (gimplify_adjust_omp_clauses): Ditto.
7278         (gimplify_omp_for): Added CILK_FOR case.
7279         (gimplify_expr): Ditto.
7280         * omp-low.c: Include cilk.h.
7281         (extract_omp_for_data): Set appropriate kind for
7282         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7283         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7284         (create_omp_child_function_name): Added second argument to handle
7285         cilk_for case.
7286         (cilk_for_check_loop_diff_type): New function.
7287         (expand_cilk_for_call): Likewise.
7288         (expand_cilk_for): Likewise.
7289         (create_omp_child_function): Set cilk_for_count; handle the cases when
7290         it is true; call create_omp_child_function_name with second argument.
7291         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7292         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7293         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7294         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7295         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7296         (convert_local_omp_clauses): Ditto.
7297         * tree-pretty-print.c (dump_omp_clause): Added
7298         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7299         (dump_generic_node): Added CILK_FOR case.
7300         * tree.c (omp_clause_num_ops): New element
7301         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7302         (omp_clause_code_name): New element _Cilk_for_count_.
7303         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7304         * tree.def: Add tree code for CILK_FOR.
7305
7306 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7307
7308         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7309         (ppc403-compare): Add "exts with dot" case.
7310         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7311         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7312         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7313         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7314         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7315         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7316         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7317         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7318         cell-cmp-microcoded): Similarly.
7319         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7320         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7321         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7322         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7323         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7324         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7325         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7326         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7327         (power6-compare): Add "exts with dot" case.
7328         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7329         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7330         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7331
7332         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7333         if avoiding Cell microcode.
7334         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7335         (is_cracked_insn): Ditto.
7336         (insn_must_be_first_in_group): Ditto.
7337         * config/rs6000/rs6000.md (dot): Adjust comment.
7338         (cell_micro): Handle exts+dot.
7339         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7340         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7341         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7342         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7343         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7344         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7345         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7346
7347 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7348
7349         * config/rs6000/rs6000.md (QHSI): Delete.
7350         (EXTQI, EXTHI, EXTSI): New mode iterators.
7351         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7352         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7353         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7354         9 anonymous instructions, and 8 splitters): Delete.
7355         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7356         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7357         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7358         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7359         *zero_extendsi<mode>2_dot2): New.
7360
7361 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7362
7363         * config/rs6000/rs6000.md (any_extend): New code iterator.
7364         (u, su): New code attributes.
7365         (dmode, DMODE): New mode attributes.
7366         (<su>mul<mode>3_highpart): New.
7367         (*<su>mul<mode>3_highpart): New.
7368         (<su>mulsi3_highpart_le): New.
7369         (<su>muldi3_highpart_le): New.
7370         (<su>mulsi3_highpart_64): New.
7371         (<u>mul<mode><dmode>3): New.
7372         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7373         splitters): Delete.
7374         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7375         splitters): Delete.
7376
7377 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7378
7379         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7380         *mulsi3_internal2, and two splitters): Delete.
7381         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7382         Delete.
7383         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7384
7385 2014-09-02  Richard Biener  <rguenther@suse.de>
7386
7387         PR tree-optimization/62695
7388         * tree-ssa-structalias.c (find_func_clobbers): Add missing
7389         vector truncate.
7390
7391 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
7392
7393         PR target/62312
7394         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
7395
7396 2014-09-01  Andi Kleen  <ak@linux.intel.com>
7397
7398         * file-find.c (add_prefix_begin): Add.
7399         (do_add_prefix): Rename from add_prefix with first argument.
7400         (add_prefix): Add new wrapper.
7401         * file-find.h (add_prefix_begin): Add.
7402         * gcc-ar.c (main): Support -B option.
7403
7404 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
7405
7406         * genemit.c: Include dumpfile.h.
7407         (gen_split): Print name of splitter function to dump file.
7408
7409 2014-09-01  Richard Biener  <rguenther@suse.de>
7410
7411         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
7412         Use stack auto_vecs for constraint expressions.
7413         (find_func_aliases_for_call): Likewise.
7414         (find_func_aliases): Likewise.
7415         (find_func_clobbers): Likewise.
7416
7417 2014-09-01  Richard Biener  <rguenther@suse.de>
7418
7419         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
7420         operands vector in most cases.  Remove redundant code.
7421
7422 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7423
7424         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
7425         $WIND_BASE instead of designating a harcoded arbitrary home dir.
7426         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
7427
7428 2014-09-01  Richard Biener  <rguenther@suse.de>
7429
7430         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
7431         copy_reference_ops_from_call, vn_nary_op_compute_hash,
7432         vn_reference_compute_hash, vn_reference_insert): Remove.
7433         (vn_reference_lookup_call): New function.
7434         * tree-ssa-sccvn.c (vn_reference_compute_hash,
7435         copy_reference_ops_from_ref, copy_reference_ops_from_call,
7436         vn_reference_insert, vn_nary_op_compute_hash): Make static.
7437         (create_reference_ops_from_call): Remove.
7438         (vn_reference_lookup_3): Properly update shared_lookup_references.
7439         (vn_reference_lookup_pieces): Assert that we updated
7440         shared_lookup_references properly.
7441         (vn_reference_lookup): Likewise.
7442         (vn_reference_lookup_call): New function.
7443         (visit_reference_op_call): Use it.  Avoid re-building the
7444         reference ops.
7445         (visit_reference_op_load): Remove redundant lookup.
7446         (visit_reference_op_store): Perform special tail-merging work
7447         only when possibly doing tail-merging.
7448         (visit_use): Likewise.
7449         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
7450
7451 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7452
7453         PR target/62025
7454         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
7455         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
7456         (find_inc): Revert 2014-08-13 change.
7457
7458 2014-09-01  Marek Polacek  <polacek@redhat.com>
7459
7460         PR middle-end/61903
7461         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
7462         Change the type of V to unsigned HOST_WIDE_INT.
7463
7464 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7465
7466         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
7467         the size of byte markers.
7468         (do_shift_rotate): Fix confusion between host, target and marker byte
7469         size.
7470         (verify_symbolic_number_p): Likewise.
7471         (find_bswap_or_nop_1): Likewise.
7472         (find_bswap_or_nop): Likewise.
7473
7474 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7475
7476         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
7477         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
7478
7479 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7480
7481         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
7482         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
7483         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
7484
7485 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
7486
7487         PR sanitizer/61897
7488         PR sanitizer/62140
7489         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
7490         (build_check_stmt): Likewise.
7491         (instrument_strlen_call): Likewise.
7492         (asan_expand_check_ifn): Likewise and fix types.
7493         (maybe_cast_to_ptrmode): New function.
7494
7495 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7496
7497         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
7498
7499 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
7500
7501         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
7502
7503 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
7504
7505         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
7506         prefix to function labels when generating fast indirect calls.
7507
7508 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
7509
7510         PR bootstrap/62304
7511
7512         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
7513         param back from rtx_insn * to rtx.  Rename param from "label" to
7514         "label_or_return", reintroducing "label" as an rtx_insn * after
7515         we've ensured it's not a RETURN.
7516         (first_active_target_insn): Likewise for return type and param;
7517         add a checked cast to rtx_insn * once we've ensured "insn" is not
7518         a RETURN.
7519         (steal_delay_list_from_target): Convert param "pnew_thread" back
7520         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
7521         with JUMP_LABEL.
7522         (own_thread_p): Convert param "thread" back from an rtx_insn * to
7523         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
7524         cast once we've established we're not dealing with a RETURN,
7525         renaming subsequent uses of "thread" to "thread_insn".
7526         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
7527         to JUMP_LABEL.
7528         (follow_jumps): Convert return type and param "label" from
7529         rtx_insn * back to rtx.  Move initialization of "value" to after
7530         the handling for ANY_RETURN_P, adding a checked cast there to
7531         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
7532         rename to "this_label_or_return", reintroducing "this_label" as
7533         an rtx_insn * once we've handled the case where it could be an
7534         ANY_RETURN_P.
7535         (fill_slots_from_thread): Rename param "thread" to
7536         "thread_or_return", converting from an rtx_insn * back to an rtx.
7537         Reintroduce name "thread" as an rtx_insn * local with a checked
7538         cast once we've handled the case of it being an ANY_RETURN_P.
7539         Convert local "new_thread" from an rtx_insn * back to an rtx.
7540         Add a checked cast when assigning to "trial" from "new_thread".
7541         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
7542         checked cast to rtx_insn * from "new_thread" when invoking
7543         get_label_before.
7544         (fill_eager_delay_slots): Convert locals "target_label",
7545         "insn_at_target" from rtx_insn * back to rtx.
7546         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
7547         (relax_delay_slots): Convert locals "trial", "target_label" from
7548         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
7549         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
7550         invoking update_block.
7551         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
7552         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
7553
7554         * resource.h (mark_target_live_regs): Undo erroneous conversion
7555         of second param of r214693, converting it back from rtx_insn * to
7556         rtx, since it could be a RETURN.
7557
7558         * resource.c (find_dead_or_set_registers): Similarly, convert
7559         param "jump_target" back from an rtx_insn ** to an rtx *, as we
7560         could be writing back a RETURN.  Rename local rtx_insn * "next" to
7561         "next_insn", and introduce "lab_or_return" as a local rtx,
7562         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
7563         (mark_target_live_regs): Undo erroneous conversion
7564         of second param of r214693, converting it back from rtx_insn * to
7565         rtx, since it could be a RETURN.  Rename it from "target" to
7566         "target_maybe_return", reintroducing the name "target" as a local
7567         rtx_insn * with a checked cast, after we've handled the case of
7568         ANY_RETURN_P.
7569
7570 2014-08-29  DJ Delorie  <dj@redhat.com>
7571
7572         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
7573         pointer size up to a power of two.
7574         * defaults.h (DWARF2_ADDR_SIZE): Round up.
7575         (POINTER_SIZE_UNITS): New, rounded up value.
7576         * dwarf2asm.c (size_of_encoded_value): Use it.
7577         (dw2_output_indirect_constant_1): Likewise.
7578         * expmed.c (init_expmed_one_conv): We now know the sizes of
7579         partial int modes.
7580         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
7581         * optabs.c (expand_float): Use precision, not size.
7582         (expand_fix): Likewise.
7583         * simplify-rtx (simplify_unary_operation_1): Likewise.
7584         * tree-dfa.c (get_ref_base_and_extent): Likewise.
7585         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
7586         (default_assemble_integer) Likewise.
7587         (dump_tm_clone_pairs): Likewise.
7588         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
7589         * var-tracking.c (adjust_mems): Allow partial-int modes also.
7590         (prepare_call_arguments): Likewise.
7591         * stor-layout.c (finalize_type_size): Preserve precision.
7592         (layout_type): Use precision, not size.
7593
7594         * expr.c (convert_move): If the target has an explicit converter,
7595         use it.
7596
7597 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7598
7599         * gdbinit.in: Skip various inline functions in rtl.h when
7600         stepping.
7601
7602 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
7603
7604         PR bootstrap/62301
7605         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
7606
7607 2014-08-29  Richard Biener  <rguenther@suse.de>
7608
7609         PR tree-optimization/62291
7610         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
7611         exactly the vector size needed and use quick_push.
7612         (phi_translate_1): Adjust comment.
7613         (valid_in_sets): Remove block argument and remove pointless
7614         checking of NAMEs.
7615         (dependent_clean): Adjust for removal of block argument.
7616         (clean): Likewise.
7617         (compute_antic_aux): Likewise.
7618         (compute_partial_antic_aux): Likewise.
7619
7620 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7621             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7622             Anna Tikhonova  <anna.tikhonova@intel.com>
7623             Ilya Tocar  <ilya.tocar@intel.com>
7624             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7625             Ilya Verbin  <ilya.verbin@intel.com>
7626             Kirill Yukhin  <kirill.yukhin@intel.com>
7627             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7628
7629         * config/i386/sse.md
7630         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
7631         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
7632         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
7633         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
7634
7635 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7636             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7637             Anna Tikhonova  <anna.tikhonova@intel.com>
7638             Ilya Tocar  <ilya.tocar@intel.com>
7639             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7640             Ilya Verbin  <ilya.verbin@intel.com>
7641             Kirill Yukhin  <kirill.yukhin@intel.com>
7642             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7643
7644         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
7645         * config/i386/sse.md
7646         (define_mode_iterator VI4_128_8_256): New.
7647         (define_mode_iterator VI2_128_4_256): Ditto.
7648         (define_mode_iterator PMOV_DST_MODE): Rename into
7649         (define_mode_iterator PMOV_DST_MODE_1): this.
7650         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
7651         Use PMOV_DST_MODE_1 mode iterator.
7652         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7653         Ditto.
7654         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
7655         Ditto.
7656         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
7657         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
7658         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
7659         (define_mode_iterator PMOV_DST_MODE_2): New.
7660         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
7661         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
7662         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
7663         Ditto.
7664         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
7665         (define_mode_attr pmov_dst_3): Ditto.
7666         (define_mode_attr pmov_dst_zeroed_3): Ditto.
7667         (define_mode_attr pmov_suff_3): Ditto.
7668         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
7669         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
7670         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
7671         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
7672         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
7673         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
7674         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
7675         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
7676         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
7677         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
7678         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
7679         (define_mode_attr pmov_dst_4): Ditto.
7680         (define_mode_attr pmov_dst_zeroed_4): Ditto.
7681         (define_mode_attr pmov_suff_4): Ditto.
7682         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
7683         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
7684         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
7685         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
7686         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
7687         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
7688         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
7689         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
7690         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
7691         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
7692         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
7693
7694 2014-08-29  Richard Biener  <rguenther@suse.de>
7695
7696         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
7697         NON_LVALUE_EXPR in gimple.
7698
7699 2014-08-29  Richard Biener  <rguenther@suse.de>
7700
7701         PR middle-end/62292
7702         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
7703         from previous refactoring.
7704         (gimple_fold_builtin_strncpy): Likewise.
7705
7706 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
7707
7708         PR bootstrap/62300
7709         * function.c (assign_parm_setup_reg): Remove erroneous checked
7710         cast to rtx_insn * on result of gen_extend_insn in favor of
7711         introducing a new local rtx "pat".
7712
7713 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7714
7715         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
7716         to silence warning.
7717         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
7718
7719 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7720
7721         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
7722         (next_insn): Likewise.
7723         * emit-rtl.c (next_insn): Likewise.
7724         (previous_insn): Likewise.
7725         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
7726         "insn" and "next" from rtx to rtx_insn *.
7727         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
7728         "insn", "insn1", "vliw_start",  "prologue_end_note",
7729         "last_insn_in_packet".
7730
7731 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7732
7733         * shrink-wrap.h (active_insn_between): Strengthen both params from
7734         rtx to rtx_insn *.
7735         * function.c (active_insn_between): Likewise.
7736
7737 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7738
7739         * genattr.c (main): When writing out insn-attr.h, strengthen param
7740         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
7741         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
7742         writing out the definition of dfa_clear_single_insn_cache to the
7743         generated insn-automata.c
7744
7745 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7746
7747         * resource.h (clear_hashed_info_for_insn): Strengthen param from
7748         rtx to rtx_insn *.
7749         (incr_ticks_for_insn): Likewise.
7750         (init_resource_info): Likewise.
7751
7752         * resource.c (init_resource_info): Likewise.
7753         (clear_hashed_info_for_insn): Likewise.
7754         (incr_ticks_for_insn): Likewise.
7755
7756         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
7757         rtx to rtx_insn *.
7758         (steal_delay_list_from_target): Use methods of "seq".
7759         (try_merge_delay_insns): Use methods of "merged_insns".
7760         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
7761         (reorg_redirect_jump): Likewise for param "jump".
7762
7763 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7764
7765         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
7766         rtx to rtx_insn *.
7767         * config/s390/s390.c (s390_split_branches): Eliminate top-level
7768         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
7769         "set_insn".
7770         (s390_mainpool_finish): In three places, split out a local rtx
7771         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
7772         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
7773         and split another local rtx "insn" out into rtx "pat" and
7774         rtx_insn * "insn".
7775         * config/sh/sh.c (output_branchy_insn): Rather than working
7776         directly on operands[9], introduce local rtx_code_label *
7777         variables named "lab" in two places, working on them, and then
7778         assigning them to operands[9], so that the intervening operations
7779         are known by the type system to be on insns.
7780
7781 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7782
7783         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
7784         const rtx_insn *.
7785
7786         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
7787         in invocation of INSN_HAS_LOCATION.
7788
7789 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7790
7791         * config/rs6000/altivec.h (vec_xl): New #define.
7792         (vec_xst): Likewise.
7793         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
7794         (XXSPLTD_V2DI): Likewise.
7795         (DIV_V2DI): Likewise.
7796         (UDIV_V2DI): Likewise.
7797         (MUL_V2DI): Likewise.
7798         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7799         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
7800         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
7801         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
7802         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
7803         (UNSPEC_VSX_DIVSD): Likewise.
7804         (UNSPEC_VSX_DIVUD): Likewise.
7805         (UNSPEC_VSX_MULSD): Likewise.
7806         (vsx_mul_v2di): New insn-and-split.
7807         (vsx_div_v2di): Likewise.
7808         (vsx_udiv_v2di): Likewise.
7809         (vsx_xxspltd_<mode>): New insn.
7810
7811 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
7812
7813         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
7814         NEXT_INSN.
7815         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
7816         (NEXT_INSN): Likewise.
7817         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
7818         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
7819         const rtx_insn *.
7820         (no_labels_between_p): Likewise for both params.
7821
7822         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
7823         cast when using NEXT_INSN on operands[2].
7824         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
7825         "insn" from rtx to rtx_insn *, adding a checked cast.
7826         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
7827         rtx_insn *.
7828         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
7829         for third param.
7830         (arc_text_label): Likewise for param "insn".
7831         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
7832         "insn".
7833         (arc_ccfsm_record_condition): Likewise for param "jump".
7834         (arc_text_label): Likewise for local "label".
7835         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
7836         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
7837         a method for typesafety.  Add a checked cast.
7838         * config/arc/constraints.md (Clb): Add a checked cast when getting
7839         the CODE_LABEL from a LABEL_REF.
7840         * config/arm/arm.c (require_pic_register): Strengthen locals
7841         "seq", "insn" from rtx to rtx_insn *.
7842         (create_fix_barrier): Likewise for locals "selected", "next".
7843         (thumb1_reorg): Likewise for locals "prev", "insn".
7844         (arm_expand_prologue): Likewise for local "last".
7845         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
7846         operands[0].
7847         (thumb2_output_casesi): Likewise for operands[2].
7848         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
7849         strengthen local "insn" from rtx to rtx_insn *.
7850         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
7851         type and param "insn".
7852         (find_prev_insn_start): Likewise.
7853         (hwloop_optimize): Likewise for locals "insn", "last_insn",
7854         "prev".
7855         (gen_one_bundle): Likewise for loal "t".
7856         (find_load): Likewise for param "insn".
7857         (workaround_speculation): Likewise for locals "insn", "next",
7858         "target", "next_tgt".
7859         * config/c6x/c6x.c (assign_reservations): Likewise for both params
7860         and for locals "insn", "within", "last".
7861         (count_unit_reqs): Likewise for params "head", "tail" and local
7862         "insn".
7863         (try_rename_operands): Likewise for params "head", "tail".
7864         (reshuffle_units): Likewise for locals "head", "tail", "insn".
7865         (struct c6x_sched_context): Likewise for fields
7866         "last_scheduled_insn", "last_scheduled_iter0".
7867         (init_sched_state): Replace NULL_RTX with NULL.
7868         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
7869         to rtx_insn *.
7870         (undo_split_delayed_nonbranch): Likewise for param and for local
7871         "prev".
7872         (conditionalize_after_sched): Likewise for local "insn".
7873         (bb_earliest_end_cycle): Likewise.
7874         (filter_insns_above): Likewise for locals "insn", "next".
7875         (hwloop_optimize): Remove redundant checked cast.
7876         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
7877         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
7878         NULL_RTX with NULL.
7879         (cris_simple_epilogue): Likewise.
7880         (cris_expand_prologue): Likewise.
7881         (cris_expand_epilogue): Likewise.
7882         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
7883         local "insn" from rtx to rtx_insn *.
7884         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
7885         (struct frv_packet_group): Likewise for the elements within array
7886         fields "insns", "sorted", and for field "nop".
7887         (frv_packet): Likewise for the elements within array field
7888         "insns".
7889         (frv_add_insn_to_packet): Likewise for param "insn".
7890         (frv_insert_nop_in_packet): Likewise for param "insn" and local
7891         "last".
7892         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
7893         (frv_sort_insn_group_1): Likewise for local "insn".
7894         (frv_optimize_membar_local): Likewise.
7895         (frv_align_label): Likewise for locals "x", "last", "barrier",
7896         "label".
7897         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
7898         local.
7899         (ia64_sched_init): Likewise for local "insn".
7900         (scheduled_good_insn): Likewise for param "last".
7901         (struct _ia64_sched_context): Likewise for field
7902         "last_scheduled_insn".
7903         (ia64_init_sched_context): Replace NULL_RTX with NULL.
7904         (struct bundle_state): Likewise for field "insn".
7905         (issue_nops_and_insn): Likewise for param "insn".
7906         (get_next_important_insn): Likewise for return type and both
7907         params.
7908         (ia64_add_bundle_selector_before): Likewise for param "insn".
7909         (bundling): Likewise for params "prev_head_insn", "tail" and
7910         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
7911         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
7912         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
7913         Strengthen final param from rtx to rtx_insn *.
7914         (iq2000_move_1word): Likewise for second param.
7915         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
7916         param "cur_insn" and local "next_insn".
7917         (iq2000_move_1word): Likewise for param "insn".
7918         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
7919         casts when using NEXT_INSN on operands[1].
7920         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
7921         "insn" from rtx to rtx_insn *.
7922         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
7923         "x", introducing local rtx_insn * "insn" for when working with the
7924         CODE_LABEL of the LABEL_REF.
7925         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
7926         rtx_insn *.
7927         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
7928         param.
7929         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
7930         type.
7931         (conditionalize_block): Likewise for return type and param.
7932         (mcore_is_dead): Likewise for param "first" and local "insn".
7933         (emit_new_cond_insn): Likewise for return type.
7934         (conditionalize_block): Likewise for return type, param, and
7935         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
7936         "newinsn".
7937         (conditionalize_optimization): Likewise for local "insn".
7938         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
7939         using NEXT_INSN.
7940         * config/microblaze/microblaze.md: Add checked casts when using
7941         NEXT_INSN.
7942         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
7943         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
7944         and rtx_insn * "insn".
7945         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
7946         checked cast when using NEXT_INSN on operands[2].
7947         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
7948         local "insn" from rtx to rtx_insn *.
7949         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
7950         Likewise.
7951         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
7952         Add a checked cast when using NEXT_INSN on operands[1].
7953         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
7954         rtx to rtx_insn *.
7955         (pa_output_cbranch): Likewise for final param.
7956         (pa_output_lbranch): Likewise for second param.
7957         (pa_output_bb): Likewise for third param.
7958         (pa_output_bvb): Likewise.
7959         (pa_output_dbra): Likewise for second param.
7960         (pa_output_movb): Likewise.
7961         (pa_output_parallel_movb): Likewise.
7962         (pa_output_parallel_addb): Likewise.
7963         (pa_output_millicode_call): Likewise for first param.
7964         (pa_output_mul_insn): Likewise for second param.
7965         (pa_output_div_insn): Likewise for third param.
7966         (pa_output_mod_insn): Likewise for second param.
7967         (pa_jump_in_call_delay): Likewise for param.
7968         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
7969         (pa_output_div_insn): Likewise.
7970         (pa_output_mod_insn): Likewise.
7971         (pa_output_cbranch): Likewise.
7972         (pa_output_lbranch): Likewise.
7973         (pa_output_bb): Likewise.
7974         (pa_output_bvb): Likewise.
7975         (pa_output_dbra): Likewise.
7976         (pa_output_movb): Likewise.
7977         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
7978         to simplify and for typesafety.
7979         (pa_output_call): Use method of rtx_sequence *.
7980         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
7981         (pa_jump_in_call_delay): Likewise.
7982         (pa_output_parallel_movb): Likewise.
7983         (pa_output_parallel_addb): Likewise.
7984         (pa_following_call): Likewise.
7985         (pa_combine_instructions): Likewise for locals "anchor",
7986         "floater".
7987         (pa_can_combine_p): Likewise for params "anchor", "floater" and
7988         locals "start", "end".
7989         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
7990         param "insn" and local "local_insn".
7991         (picochip_final_prescan_insn): Likewise for local "local_insn".
7992         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
7993         local "insn".
7994         (uses_TOC): Likewise.
7995         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
7996         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
7997         splitting out to more tightly-scoped locals, 3 as rtx and one as
7998         rtx_insn *.
7999         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8000         to rtx_insn *.
8001         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8002         where needed.
8003         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8004         to rtx_insn *.
8005         (fixup_addr_diff_vecs): Likewise.
8006         (reg_unused_after): Likewise for param 2.
8007         (sh_can_redirect_branch): Likewise for both params.
8008         (check_use_sfunc_addr): Likewise for param 1.
8009         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8010         (find_barrier): Likewise for local "last_got".
8011         (gen_block_redirect): Likewise for return type, param "jump" and
8012         locals "prev", "scan", "next", "insn".
8013         (struct far_branch): Likewise for fields "near_label",
8014         "insert_place", "far_label".
8015         (gen_far_branch): Likewise for local "jump".
8016         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8017         "insn", "prev".
8018         (barrier_align): Likewise for param and for locals "prev", "x".
8019         Introduce local rtx_sequence * "prev_seq" and use insn method for
8020         typesafety and clarity.
8021         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8022         (get_dest_uid): Likewise for local "dest".
8023         (split_branches): Likewise for locals "next", "beyond", "label",
8024         "block", "far_label".  Add checked casts when assigning to
8025         bp->far_label and "far_label".
8026         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8027         (sequence_insn_p): Likewise.
8028         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8029         more loop-scoped rtx "insn" when walking LABEL_REFS.
8030         (sh_can_redirect_branch): Strengthen both params from rtx to
8031         rtx_insn *.
8032         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8033         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8034         for clarity and typesafety.
8035         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8036         "insn" from rtx to rtx_insn *.
8037         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8038         when using NEXT_INSN on the CODE_LABEL in operands[2].
8039         (define_insn "casesi_worker_2"): Likewise.
8040         (define_insn "casesi_shift_media"): Likewise.
8041         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8042         operands[3].
8043         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8044         Strengthen field "insn" from rtx to rtx_insn *.
8045         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8046         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8047         param "start_insn" and local "start_insn".
8048         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8049         field "insn".
8050         (find_set_of_reg_bb): Likewise for param "insn".
8051         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8052         (trace_reg_uses): Likewise for param "start_insn".
8053         (sh_treg_combine::cbranch_trace): Likewise for field
8054         "cbranch_insn".
8055         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8056         param "insn".
8057         (sh_treg_combine::record_set_of_reg): Likewise for param
8058         "start_insn" and local "i".
8059         (sh_treg_combine::can_remove_cstore): Likewise for local
8060         "prev_insn".
8061         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8062         "insn".
8063         (sh_treg_combine::execute): Likewise for local "i".
8064         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8065         param.
8066         (sparc_check_64): Likewise for second param.
8067         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8068         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8069         dyn_cast, using its insn method for typesafety and clarity.
8070         (empty_delay_slot): Strengthen param "insn" from rtx to
8071         rtx_insn *.
8072         (set_extends): Likewise.
8073         (sparc_check_64): Likewise.
8074         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8075         for locals "seq", "last_insn".
8076         (combine_bnp): Likewise for param "insn".
8077         (xstormy16_reorg): Likewise for local "insn".
8078         * config/v850/v850.c (substitute_ep_register): Likewise for params
8079         "first_insn", "last_insn" and local "insn".
8080         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8081         elements of "regs" array, and local "insn".
8082         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8083         * final.c (final_sequence): Strengthen this global from rtx to
8084         rtx_sequence *.
8085         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8086         rtx_insn *.
8087         (final_scan_insn): Update assignment to "final_sequence" to be
8088         from "seq", the cast version of "body", for type-safety.
8089         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8090         "insns" from rtx to rtx_insn *.
8091         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8092         * genattr.c (main): When writing out generated insn-attr.h,
8093         strengthen params 1 and 3 of eligible_for_delay,
8094         eligible_for_annul_true, eligible_for_annul_false from rtx to
8095         rtx_insn *.
8096         * genattrtab.c (write_eligible_delay): Likewise when writing out
8097         generated insn-attrtab.c; also local "insn" the generated
8098         functions.
8099         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8100         to rtx_insn *.
8101         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8102         "start_label" from rtx to rtx_insn *.
8103         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8104         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8105         "insns" and local "insn".
8106         (validate_equiv_mem): Likewise for param "start" and local "insn".
8107         (memref_used_between_p): Likewise for params "start", "end" and
8108         local "insn".
8109         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8110         final param.
8111         * loop-doloop.c (doloop_optimize): Within region guarded by
8112         INSN_P (doloop_pat), introduce a new local rtx_insn *
8113         "doloop_insn" via a checked cast, and use it for typesafety,
8114         eventually writing the value back into doloop_pat.
8115         * output.h (final_sequence): Strengthen this global from rtx to
8116         rtx_sequence *.
8117         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8118         reintroducing "insn" as an rtx_insn * via a checked cast.
8119         Strengthen param "attempt" and local "new_insn"from rtx to
8120         rtx_insn *.
8121         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8122         to rtx_insn *.
8123         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8124         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8125         "p" in favor of more tightly-scoped replacements, sometimes rtx
8126         and sometimes rtx_insn *, as appropriate.
8127         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8128         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8129         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8130         local "trial" from rtx to rtx_insn *.
8131         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8132         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8133         rtx_sequence * and use methods for clarity and typesafety.
8134         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8135         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8136         rtx_insn_list * and use its methods for clarity and typesafety.
8137         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8138         to rtx_insn *.
8139         (steal_delay_list_from_fallthrough): Likewise.
8140         (try_merge_delay_insns): Likewise for param "thread" and locals
8141         "trial", "next_trial", "delay_insn".
8142         (redundant_insn): Likewise for param "target" and local "trial".
8143         (own_thread_p): Likewise for param "thread" and locals
8144         "active_insn", "insn".
8145         (get_label_before): Likewise for param "insn".
8146         (fill_simple_delay_slots): Likewise for local "new_label"; use
8147         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8148         (label_before_next_insn): Strengthen return type and local "insn"
8149         from rtx to rtx_insn *.
8150         (relax_delay_slots): Likewise for locals "other", "tmp".
8151         (make_return_insns): Likewise for param "first" and locals "insn",
8152         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8153         and strengthen from rtx to rtx_sequence *.  Use its methods for
8154         clarity and typesafety.
8155         * rtlanal.c (no_labels_between_p): Strengthen params from
8156         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8157         rtx_insn *.
8158         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8159         from const_rtx to const rtx_insn *.
8160         (reg_set_between_p): Rename param "from_insn" to
8161         "uncast_from_insn", and reintroduce "from_insn" as a
8162         const rtx_insn * via a checked cast.
8163         (modified_between_p): Likewise for param "start" as "uncast_start".
8164         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8165         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8166         "tmp", head" from rtx to rtx_insn *.
8167         (recompute_rev_top_order): Likewise for local "insn".
8168         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8169         * store-motion.c (build_store_vectors): Likewise for local "insn".
8170         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8171         for clarity and typesafety.
8172         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8173         rtx to rtx_insn *.
8174         (computation_cost): Likewise for local "seq".
8175         (get_address_cost): Likewise.
8176
8177 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8178
8179         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8180         const rtx_insn *.
8181         (label_is_jump_target_p): Likewise for second param.
8182
8183         * rtlanal.c (tablejump_p): Likewise for param "insn".
8184         (label_is_jump_target_p): Likewise for param "jump_insn".
8185
8186 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8187
8188         * rtl.h (find_first_parameter_load): Strengthen return type and
8189         both params from rtx to rtx_insn *.
8190         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8191         both params and locals "before", "first_set" from rtx to
8192         rtx_insn *.  Remove now-redundant cast.
8193         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8194
8195 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8196
8197         * rtl.h (find_last_value): Delete.
8198         * rtlanal.c (find_last_value): Delete.
8199
8200 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8201
8202         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8203         from rtx to rtx_insn *.
8204         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8205         rtx "note" with new local rtx_insn * "new_head" when calculating
8206         head insn of new basic block.
8207         * combine.c (combine_split_insns): Strengthen return type and local
8208         "ret" from rtx to rtx_insn *.
8209         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8210         (try_combine): Eliminate local "m_split", splitting into new
8211         locals "m_split_insn" and "m_split_pat".
8212         (find_split_point): Strengthen local "seq" from rtx into
8213         rtx_insn *.
8214         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8215         locals "label", "branch".
8216         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8217         for local "insn".
8218         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8219         * dse.c (note_add_store_info): Likewise for fields "first",
8220         "current".
8221         (note_add_store): Likewise for local "insn".
8222         (emit_inc_dec_insn_before): Likewise for locals "insn",
8223         "new_insn", "cur".
8224         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8225         (replace_read): Likewise for locals "insns", "this_insn".
8226         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8227         (notice_eh_throw): Likewise for param "insn".
8228         (before_next_cfi_note): Likewise for return type, param, and local
8229         "prev".
8230         (connect_traces): Likewise for local "note".
8231         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8232         (verify_rtl_sharing): Likewise.
8233         (unshare_all_rtl_in_chain): Likewise for param "insn".
8234         (get_first_nonnote_insn): Likewise for local "insn".
8235         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8236         "seq" and use its methods to clarify things.
8237         (next_insn): Strengthen return type from rtx to rtx_insn *.
8238         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8239         local rtx_insn * using a checked cast, dropping a checked cast
8240         made redundant by this change.  Use a cast to and method of
8241         rtx_sequence to clarify the code.
8242         (previous_insn): Rename param "insn" to "uncast_insn" and
8243         reintroduce "insn" as a local rtx_insn * using a checked cast,
8244         dropping a checked cast made redundant by this change.  Use a cast
8245         to and method of rtx_sequence to clarify the code.
8246         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8247         reintroduce "insn" as a local rtx_insn * using a checked cast,
8248         dropping a checked cast made redundant by this change.
8249         (next_nonnote_insn_bb): Likewise.
8250         (prev_nonnote_insn): Likewise.
8251         (prev_nonnote_insn_bb): Likewise.
8252         (next_nondebug_insn): Likewise.
8253         (prev_nondebug_insn): Likewise.
8254         (next_nonnote_nondebug_insn): Likewise.
8255         (prev_nonnote_nondebug_insn): Likewise.
8256         (next_real_insn): Likewise.
8257         (prev_real_insn): Likewise.
8258         (next_active_insn): Likewise.
8259         (prev_active_insn): Likewise.
8260         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8261         clarity.
8262         (prev_cc0_setter): Likewise.
8263         (try_split): Rename param "trial" to "uncast_trial" and
8264         reintroduce "insn" as a local rtx_insn * using a checked cast,
8265         dropping checked casts made redundant by this change.
8266         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8267         rtx to rtx_insn *.
8268         (remove_insn): Rename param "insn" to "uncast_insn" and
8269         reintroduce "insn" as a local rtx_insn * using a checked cast.
8270         (emit_pattern_after_setloc): Likewise for param "after", as
8271         "uncast_after".
8272         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8273         rtx to rtx_insn *.
8274         (emit_pattern_before_setloc): Rename param "before" to
8275         "uncast_before" and reintroduce "before" as a local rtx_insn *
8276         using a checked cast.  Strengthen locals "first", "last" from
8277         rtx to rtx_insn *.
8278         (emit_pattern_before): Likewise rename/cast param "before" to
8279         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8280         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8281         "first" and local "insn" from rtx to rtx_insn *.
8282         (copy_reg_eh_region_note_backward): Likewise for param "last"
8283         and local "insn".
8284         * expr.c (fixup_args_size_notes): Rename param "last" to
8285         "uncast_last" and reintroduce "last" as a local rtx_insn *
8286         using a checked cast.  Strengthen local "insn" from rtx to
8287         rtx_insn *.
8288         * function.c (set_insn_locations): Strengthen param "insn" from
8289         rtx to rtx_insn *.
8290         (record_insns): Likewise for param "insns" and local "tmp".
8291         (active_insn_between): Rename param "tail" to
8292         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8293         using a checked cast.
8294         (thread_prologue_and_epilogue_insns): Split out top-level local
8295         rtx "seq" into three different rtx_insn * locals.  Strengthen
8296         local "prologue_seq" from rtx to rtx_insn *.
8297         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8298         from rtx to rtx_insn *.
8299         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8300         (priority): Likewise for locals "prev_first", "twin".
8301         (setup_insn_max_reg_pressure): Likewise for param "after".
8302         (sched_setup_bb_reg_pressure_info): Likewise.
8303         (no_real_insns_p): Strengthen params from const_rtx to
8304         const rtx_insn *.
8305         (schedule_block): Strengthen local "next_tail" from rtx to
8306         rtx_insn *.
8307         * ifcvt.c (find_active_insn_before): Strengthen return type and
8308         param "insn" from rtx to rtx_insn *.
8309         (find_active_insn_after): Likewise.
8310         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8311         (cond_exec_process_if_block): Likewise for locals "then_start",
8312         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8313         (noce_process_if_block): Likewise for local "jump".
8314         (merge_if_block): Likewise for two locals named "end".
8315         (cond_exec_find_if_block): Likewise for local "last_insn".
8316         * jump.c (delete_related_insns): Rename param "insn" to
8317         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8318         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8319         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8320         NULL.
8321         (split_reg): Likewise.
8322         * lra.c (lra_process_new_insns): Likewise.
8323         * modulo-sched.c (permute_partial_schedule): Strengthen param
8324         "last" from rtx to rtx_insn *.
8325         * optabs.c (add_equal_note): Likewise for param "insns" and local
8326         "last_insn".
8327         (expand_binop_directly): Add checked casts to rtx_insn * within
8328         NEXT_INSN (pat) uses.
8329         (expand_unop_direct): Likewise.
8330         (maybe_emit_unop_insn): Likewise.
8331         * recog.c (peep2_attempt): Strengthen locals "last",
8332         "before_try", "x" from rtx to rtx_insn *.
8333         * reorg.c (optimize_skip): Strengthen return type and local
8334         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8335         and locals "trial", "next_trial" from rtx to rtx_insn *.
8336         * resource.c (next_insn_no_annul): Strengthen return type and
8337         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8338         rtx_sequence to clarify the code.
8339         (mark_referenced_resources): Add a checked cast to rtx_insn *
8340         within PREV_INSN (x).
8341         (find_dead_or_set_registers): Strengthen return type, param
8342         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8343         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
8344         to rtx_insn **.
8345         (mark_target_live_regs): Strengthen params "insns" and "target",
8346         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8347         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
8348         the code.
8349         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8350         from rtx to rtx_insn *.
8351         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8352         from rtx to rtx_insn *.
8353         (copy_reg_eh_region_note_backward): Likewise.
8354         (unshare_all_rtl_in_chain): Likewise for sole param.
8355         (dump_rtl_slim): Strengthen second and third params from const_rtx
8356         to const rtx_insn *.
8357         * sched-deps.c (sched_free_deps): Strengthen params "head" and
8358         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8359         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8360         "next_tail" from rtx to rtx_insn *.
8361         (begin_move_insn): Likewise for local "next".
8362         * sched-int.h (sched_free_deps): Likewise for first and second
8363         params.
8364         (no_real_insns_p): Strengthen both params from const_rtx to
8365         const rtx_insn *.
8366         (sched_setup_bb_reg_pressure_info): Strengthen second params from
8367         rtx to rtx_insn *.
8368         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8369         "next_tail".
8370         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8371         and locals "insn", "tail" from const_rtx to const rtx_insn *.
8372         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8373         rtx_insn *.
8374         (debug_rtl_slim): Strengthen params "first" and "last" from
8375         const_rtx to const rtx_insn *.
8376         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8377         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8378         (convert_to_simple_return): Likewise for param "returnjump".
8379         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8380         "prologue_seq".
8381         (convert_to_simple_return): Likewise for param "returnjump".
8382         * valtrack.c (propagate_for_debug): Likewise for params
8383         "insn", "last".
8384         * valtrack.h (propagate_for_debug): Likewise for second param.
8385
8386 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8387
8388         * output.h (insn_current_reference_address): Strengthen param
8389         from rtx to rtx_insn *.
8390         * final.c (insn_current_reference_address): Likewise.
8391
8392 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8393
8394         * basic-block.h (inside_basic_block_p): Strengthen param from
8395         const_rtx to const rtx_insn *.
8396         * cfgbuild.c (inside_basic_block_p): Likewise.
8397
8398 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8399
8400         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
8401         rtx_insn *.
8402         (get_trace_info): Likewise for param "insn".
8403         (save_point_p): Likewise.
8404         (maybe_record_trace_start): Likewise for both params.
8405         (maybe_record_trace_start_abnormal): Likewise.
8406         (create_trace_edges): Likewise for sole param and for three of the
8407         locals named "lab".
8408         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
8409         to rtx_insn *, and update a call to pat->element to pat->insn.
8410
8411 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8412
8413         * function.h (struct expr_status): Convert field "x_forced_labels"
8414         from rtx_expr_list * to rtx_insn_list *.
8415
8416         * cfgbuild.c (make_edges): Convert local "x" from an
8417         rtx_expr_list * to an rtx_insn_list *, replacing use of
8418         "element" method with "insn" method.
8419         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8420         * except.c (sjlj_emit_dispatch_table): Replace use of
8421         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
8422         forced_labels.
8423         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
8424         rtx_expr_list * to an rtx_insn_list *, replacing use of
8425         "element" method with "insn" method.
8426         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8427         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
8428         rtx_insn *, adding a checked cast.  Replace use of
8429         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
8430         forced_labels.
8431         (expand_label): Likewise for local "label_r".
8432
8433 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8434
8435         * function.h (struct rtl_data): Convert field
8436         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
8437         rtx_insn_list *.
8438         * rtl.h (remove_node_from_insn_list): New prototype.
8439
8440         * builtins.c (expand_builtin): When prepending to
8441         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8442         gen_rtx_EXPR_LIST.
8443         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
8444         to rtx_insn_list *, and use its "insn" method rather than
8445         "element" method.
8446         * cfgrtl.c (delete_insn): Use new function
8447         remove_node_from_insn_list rather than
8448         remove_node_from_expr_list.
8449         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
8450         to rtx_insn_list *, and use its "insn" method rather than
8451         "element" method.
8452         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8453         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8454         * rtlanal.c (remove_node_from_insn_list): New function, adapted
8455         from remove_node_from_expr_list.
8456         * stmt.c (expand_label): When prepending to
8457         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8458         gen_rtx_EXPR_LIST.
8459
8460 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8461
8462         * function.h (struct rtl_data): Strengthen fields "x_return_label"
8463         and "x_naked_return_label" from rtx to rtx_code_label *.
8464
8465 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8466
8467         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
8468         (SET_NEXT_INSN): Likewise.
8469         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
8470
8471         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
8472         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
8473         to split out the SEQUENCE from local "bundle", strengthening the
8474         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
8475         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
8476         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
8477         and the type of the elements of the "slot" array from rtx to
8478         rtx_insn *.
8479         (reorg_split_calls): Likewise for locals "insn" and "next", and
8480         the type of the elements of the "slot" array.
8481
8482         * config/frv/frv.c (frv_nops): Likewise for the elements of this
8483         array.
8484         (frv_function_prologue): Likewise for locals "insn", "next",
8485         "last_call".
8486         (frv_register_nop): Introduce a local "nop_insn" to be the
8487         rtx_insn * containing rtx "nop".
8488
8489         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
8490         used as an insn and sometimes as a pattern, so rename it to
8491         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
8492         using it where dealing with the core insn.
8493
8494         * config/picochip/picochip.c (reorder_var_tracking_notes):
8495         Strengthen locals "insn", "next", "last_insn", "queue",
8496         "next_queue", "prev" from rtx to rtx_insn *.
8497
8498         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
8499         the second param is an rtx_insn ** rather than an rtx **.
8500         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
8501         from rtx to rtx_sequence *, and introduce local named "sequence",
8502         using methods of rtx_sequence to clarify the code.
8503         (remove_insn): Introduce local rtx_sequence * named "sequence" and
8504         use its methods.
8505         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
8506         Rename param "after" to "uncast_after", reintroducing "after" as a
8507         local rtx_insn * with a checked cast.
8508         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
8509         reintroducing "after" as a local rtx_insn * with a checked cast.
8510         Strengthen local "last" from rtx to rtx_insn * and remove the
8511         now-redundant checked casts.
8512         (copy_delay_slot_insn): Strengthen return type and param from rtx
8513         to rtx_insn *.
8514
8515         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
8516         "last" from rtx to rtx_insn *.
8517
8518 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8519
8520         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
8521         param from rtx to rtx_insn *.
8522
8523         * emit-rtl.c (copy_delay_slot_insn): Likewise.
8524
8525         * reorg.c (skip_consecutive_labels): Strengthen return type, param
8526         and local "insn" from rtx to rtx_insn *.
8527         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
8528         (unfilled_slots_next): Likewise.
8529         (function_return_label): Strengthen from rtx to rtx_code_label *.
8530         (function_simple_return_label): Likewise.
8531         (first_active_target_insn): Strengthen return type and param from
8532         rtx to rtx_insn *.
8533         (find_end_label): Strengthen return type from rtx to
8534         rtx_code_label *; strengthen locals as appropriate.
8535         (emit_delay_sequence): Strengthen return type, param "insn" and
8536         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
8537         and local "li" from rtx to rtx_insn_list *, using methods of
8538         rtx_insn_list for clarity and typesafety.
8539         (add_to_delay_list): Strengthen return type and param "insn" from
8540         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
8541         rtx_insn_list * and use methods of rtx_insn_list.
8542         (delete_from_delay_slot): Strengthen return type, param "insn",
8543         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
8544         Strengthen local "seq" from rtx to rtx_sequence *, and local
8545         "delay_list" from rtx to rtx_insn_list *, using methods of
8546         rtx_sequence for clarity and type-safety.
8547         (delete_scheduled_jump): Add checked cast when invoking
8548         delete_from_delay_slot.  Strengthen local "trial" from rtx to
8549         rtx_insn *.
8550         (optimize_skip): Strengthen return type and local "delay_list"
8551         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
8552         rtx_insn *.
8553         (steal_delay_list_from_target): Strengthen return type, param
8554         "delay_list" and local "new_delay_list" from rtx to
8555         rtx_insn_list *.  Strengthen param "seq" from rtx to
8556         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
8557         rtx_insn **.
8558         Split out local "temp" into multiple more-tightly scoped locals:
8559         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
8560         of rtx_insn_list and rtx_sequence for clarity and typesafety.
8561         Strengthen locals named "trial" from rtx to rtx_insn *.
8562         (steal_delay_list_from_fallthrough): Strengthen return type and
8563         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
8564         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
8565         Strengthen local "trial" from rtx to rtx_insn *.
8566         (try_merge_delay_insns): Strength local "merged_insns" from rtx
8567         to rtx_insn_list * and use its methods.  Strengthen local "pat"
8568         from rtx to rtx_sequence * and use its methods.  Strengthen locals
8569         "dtrial" and "new_rtx" from rtx to rtx_insn *.
8570         (get_label_before): Strengthen return type and local "label" from
8571         rtx to rtx_insn *.
8572         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
8573         "next_trial", "next", prev".  Strengthen local "delay_list" from
8574         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
8575         rtx_insn **.
8576         (follow_jumps): Strengthen return type, param "label" and locals
8577         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
8578         (fill_slots_from_thread): Strengthen return type, param
8579         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
8580         "insn", "thread", "opposite_thread" and locals "new_thread",
8581         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
8582         "sequence" from a checked cast to rtx_sequence so that we can call
8583         steal_delay_list_from_target and steal_delay_list_from_fallthrough
8584         with an rtx_sequence *.
8585         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
8586         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
8587         Strengthen local "delay_list" from rtx to rtx_insn_list *.
8588         (relax_delay_slots): Strengthen param "first" and locals "insn",
8589         "next", "trial", "delay_insn", "target_label" from rtx to
8590         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
8591         Introduce a local "trial_seq" for PATTERN (trial) of type
8592         rtx_sequence *, in both cases using methods of rtx_sequence.
8593         (dbr_schedule): Strengthen param "first" and locals "insn",
8594         "next", "epilogue_insn" from rtx to rtx_insn *.
8595
8596 2014-08-28  Richard Biener  <rguenther@suse.de>
8597
8598         PR tree-optimization/62283
8599         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8600         Do not peel loops for alignment where the vector loop likely
8601         doesn't run at least VF times.
8602
8603 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
8604
8605         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
8606         important_candidates.  Consider all important candidates if
8607         IVS doesn't give any result.  Remove check on ivs->upto.
8608         (try_add_cand_for): Call iv_ca_add_use only once.
8609
8610 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8611             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8612             Anna Tikhonova  <anna.tikhonova@intel.com>
8613             Ilya Tocar  <ilya.tocar@intel.com>
8614             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8615             Ilya Verbin  <ilya.verbin@intel.com>
8616             Kirill Yukhin  <kirill.yukhin@intel.com>
8617             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8618
8619         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
8620         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
8621         masking.
8622         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
8623         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8624         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
8625         (define_insn "*mul<mode>3"): Add EVEX version.
8626
8627 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8628             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8629             Anna Tikhonova  <anna.tikhonova@intel.com>
8630             Ilya Tocar  <ilya.tocar@intel.com>
8631             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8632             Ilya Verbin  <ilya.verbin@intel.com>
8633             Kirill Yukhin  <kirill.yukhin@intel.com>
8634             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8635
8636         * config/i386/sse.md
8637         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
8638         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
8639         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
8640         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
8641         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
8642         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
8643         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
8644         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
8645         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
8646         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
8647         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
8648         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
8649         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
8650         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
8651         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
8652         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
8653
8654 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8655             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8656             Anna Tikhonova  <anna.tikhonova@intel.com>
8657             Ilya Tocar  <ilya.tocar@intel.com>
8658             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8659             Ilya Verbin  <ilya.verbin@intel.com>
8660             Kirill Yukhin  <kirill.yukhin@intel.com>
8661             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8662
8663         * config/i386/sse.md
8664         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
8665         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
8666         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
8667
8668 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8669             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8670             Anna Tikhonova  <anna.tikhonova@intel.com>
8671             Ilya Tocar  <ilya.tocar@intel.com>
8672             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8673             Ilya Verbin  <ilya.verbin@intel.com>
8674             Kirill Yukhin  <kirill.yukhin@intel.com>
8675             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8676
8677         * config/i386/sse.md
8678         (define_mode_iterator VI128_256): New.
8679         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
8680
8681 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8682             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8683             Anna Tikhonova  <anna.tikhonova@intel.com>
8684             Ilya Tocar  <ilya.tocar@intel.com>
8685             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8686             Ilya Verbin  <ilya.verbin@intel.com>
8687             Kirill Yukhin  <kirill.yukhin@intel.com>
8688             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8689
8690         * config/i386/sse.md
8691         (define_mode_iterator VI8_256_512): New.
8692         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
8693         Ditto.
8694         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
8695         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
8696         Ditto.
8697         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
8698
8699 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8700
8701         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
8702         pointer to the cumulative reloc value and return the value for
8703         this reloc instead.
8704         (compute_reloc_for_rtx): Take a const_rtx.  Call
8705         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
8706         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
8707         for_each_rtx for the CONST case.
8708
8709 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8710
8711         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
8712         (mark_constants_in_pattern): ...this new function to iterate over
8713         all the subrtxes.
8714         (mark_constants): Update accordingly.
8715
8716 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8717
8718         * varasm.c: Include rtl-iter.h.
8719         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
8720         Remove the pointer to the cumulative hashval_t and just return
8721         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
8722         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8723         Accumulate the hashval_ts here instead of const_rtx_hash_1.
8724
8725 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8726
8727         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
8728         Give real type of data parameter.  Remove return value.
8729         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
8730         to iterate over subrtxes.
8731
8732 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8733
8734         * var-tracking.c (use_narrower_mode_test): Turn from being a
8735         for_each_rtx callback to being a function that examines each
8736         subrtx itself.
8737         (adjust_mems): Update accordingly.
8738
8739 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8740
8741         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
8742         callback to being a function that examines each subrtx itself.
8743         Remove handling of null rtxes.
8744         (add_uses): Update accordingly.
8745
8746 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8747
8748         * var-tracking.c: Include rtl-iter.h.
8749         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
8750         to being a function that examines each subrtx itself.
8751         (use_type): Update accordingly.
8752
8753 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8754
8755         * store-motion.c: Include rtl-iter.h.
8756         (extract_mentioned_regs_1): Delete.
8757         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
8758         for_each_rtx to iterate over subrtxes.
8759
8760 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8761
8762         * sel-sched.c: Include rtl-iter.h
8763         (count_occurrences_1): Delete.
8764         (count_occurrences_equiv): Turn rtxes into const_rtxes.
8765         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8766
8767 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8768
8769         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
8770         * rtlanal.c (tls_referenced_p_1): Delete.
8771         (tls_referenced_p): Take a const_rtx rather than an rtx.
8772         Use FOR_EACH_SUBRTX rather than for_each_rtx.
8773
8774 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8775
8776         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
8777         (for_each_inc_dec): Take an rtx rather than an rtx *.
8778         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
8779         (cselib_record_sets): Likewise.
8780         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
8781         (check_for_inc_dec): Likewise.
8782         * rtlanal.c (for_each_inc_dec_ops): Delete.
8783         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
8784         rather than a pointer to the memory address.  Replace
8785         for_each_inc_dec_ops argument with separate function and data
8786         arguments.  Abort on non-autoinc addresses.
8787         (for_each_inc_dec_find_mem): Delete.
8788         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
8789         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
8790
8791 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8792
8793         * rtl.h (find_all_hard_regs): Declare.
8794         * rtlanal.c (find_all_hard_regs): New function.
8795         (record_hard_reg_uses_1): Delete.
8796         (record_hard_reg_uses): Use find_all_hard_regs.
8797
8798 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8799
8800         * rtl.h (replace_label_data): Delete.
8801         (replace_label): Take the old label, new label and update-nuses flag
8802         as direct arguments.  Return void.
8803         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
8804         * rtlanal.c (replace_label): Update interface as above.  Handle
8805         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
8806         iterator.  Use FOR_EACH_SUBRTX_PTR.
8807
8808 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8809
8810         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
8811         with const_rtx parameters.
8812         * varasm.c (get_pool_constant): Likewise.
8813         * rtlanal.c (rtx_referenced_p_1): Delete.
8814         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8815         Assert that the rtx we're looking for is nonnull.  Allow searches
8816         for constant pool SYMBOL_REFs.
8817
8818 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8819
8820         * reload1.c: Include rtl-iter.h.
8821         (note_reg_elim_costly): Turn from being a for_each_rtx callback
8822         to being a function that examines each subrtx itself.
8823         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
8824
8825 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8826
8827         * regcprop.c (cprop_find_used_regs_1): Delete.
8828         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
8829
8830 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8831
8832         * regcprop.c: Include rtl-iter.h.
8833         (kill_value): Take a const_rtx.
8834         (kill_autoinc_value): Turn from being a for_each_rtx callback
8835         to being a function that examines each subrtx itself.
8836         (copyprop_hardreg_forward_1): Update accordingly.
8837
8838 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8839
8840         * reg-stack.c: Include rtl-iter.h.
8841         (subst_stack_regs_in_debug_insn): Delete.
8842         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
8843         instead of for_each_rtx.
8844
8845 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8846
8847         * lower-subreg.c (find_decomposable_subregs): Turn from being
8848         a for_each_rtx callback to being a function that examines each
8849         subrtx itself.  Remove handling of null rtxes.
8850         (decompose_multiword_subregs): Update accordingly.
8851
8852 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8853
8854         * lower-subreg.c (adjust_decomposed_uses): Delete.
8855         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
8856         Remove handling of null rtxes.
8857
8858 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8859
8860         * lower-subreg.c: Include rtl-iter.h.
8861         (resolve_subreg_use): Turn from being a for_each_rtx callback
8862         to being a function that examines each subrtx itself.  Remove
8863         handling of null rtxes.
8864         (resolve_reg_notes, resolve_simple_move): Update accordingly.
8865         (decompose_multiword_subregs): Likewise.
8866
8867 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8868
8869         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
8870         to being a function that examines each subrtx itself.
8871         (simplify_using_condition, simplify_using_initial_values): Update
8872         accordingly.
8873
8874 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8875
8876         * loop-iv.c: Include rtl-iter.h.
8877         (find_single_def_src): New function.
8878         (replace_single_def_regs): Turn from being a for_each_rtx callback
8879         to being a function that examines each subrtx itself.
8880         (replace_in_expr, simplify_using_initial_values): Update accordingly.
8881
8882 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8883
8884         * jump.c (eh_returnjump_p_1): Delete.
8885         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8886         Remove handling of null rtxes.
8887
8888 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8889
8890         * jump.c: Include rtl-iter.h.
8891         (returnjump_p_1): Delete.
8892         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
8893         Remove handling of null rtxes.
8894
8895 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8896
8897         * ira.c: Include rtl-iter.h.
8898         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
8899         to being a function that examines each subrtx itself.  Remove
8900         handling of null rtxes.
8901         (update_equiv_regs): Update call accordingly.
8902
8903 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8904
8905         * fwprop.c: Include rtl-iter.h.
8906         (varying_mem_p): Turn from being a for_each_rtx callback to being
8907         a function that examines each subrtx itself.
8908         (propagate_rtx): Update accordingly.
8909
8910 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8911
8912         * function.c: Include rtl-iter.h
8913         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
8914         callback to being a function that examines each subrtx itself.
8915         Return the changed flag.
8916         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
8917         (instantiate_virtual_regs): Update calls accordingly.
8918
8919 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8920
8921         * final.c: Include rtl-iter.h.
8922         (mark_symbol_ref_as_used): Delete.
8923         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
8924         for_each_rtx.
8925
8926 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8927
8928         * emit-rtl.c: Include rtl-iter.h.
8929         (find_auto_inc): Turn from being a for_each_rtx callback to being
8930         a function that examines each subrtx itself.  Assume the first operand
8931         to an RTX_AUTOINC is the automodified register.
8932         (try_split): Update call accordingly.
8933
8934 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8935
8936         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
8937         Return a bool, inverting the result so that 0/false means "not ok".
8938         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
8939         subrtxes of a CONST.
8940         (mem_loc_descriptor, add_const_value_attribute)
8941         (resolve_addr_in_expr): Update calls accordingly.
8942
8943 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8944
8945         * dwarf2out.c: Include rtl-iter.h.
8946         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
8947         Remove unused data parameter.  Return a bool, inverting the result
8948         so that 0/false means "not ok".
8949         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
8950         instead of for_each_rtx.
8951
8952 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8953
8954         * dse.c: Include rtl-iter.h.
8955         (check_mem_read_rtx): Change void * parameter to real type.
8956         Remove return value.
8957         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
8958         for_each_rtx.  Don't handle null rtxes.
8959
8960 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8961
8962         * df-problems.c: Include rtl-iter.h.
8963         (find_memory): Turn from being a for_each_rtx callback to being
8964         a function that examines each subrtx itself.  Continue to look for
8965         volatile references even after a nonvolatile one has been found.
8966         (can_move_insns_across): Update calls accordingly.
8967
8968 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8969
8970         * ddg.c (walk_mems_2, walk_mems_1): Delete.
8971         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
8972         to iterate over subrtxes.  Return a bool rather than an int.
8973
8974 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8975
8976         * ddg.c: Include rtl-iter.h.
8977         (mark_mem_use_1): Rename to...
8978         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
8979         instead of for_each_rtx.
8980         (mem_read_insn_p): Update accordingly.
8981
8982 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8983
8984         * cse.c (change_cc_mode_args): Delete.
8985         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
8986         a function that examines each subrtx itself.  Take the fields of
8987         change_cc_mode_args as argument and return void.
8988         (cse_change_cc_mode_insn): Update calls accordingly.
8989
8990 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
8991
8992         * cse.c (is_dead_reg): Change argument to const_rtx.
8993         (dead_debug_insn_data): Delete.
8994         (is_dead_debug_insn): Expand commentary.  Turn from being a
8995         for_each_rtx callback to being a function that examines
8996         each subrtx itself.  Take the fields of dead_debug_insn_data
8997         as argument.
8998         (delete_trivially_dead_insns): Update call accordingly.
8999
9000 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9001
9002         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9003         being a for_each_rtx callback to being a function that examines
9004         each subrtx itself.
9005         (cse_extended_basic_block): Update call accordingly.
9006
9007 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9008
9009         * cse.c (check_dependence_data): Delete.
9010         (check_dependence): Change from being a for_each_rtx callback to being
9011         a function that examines all subrtxes itself.  Don't handle null rtxes.
9012         (invalidate): Update call accordingly.
9013
9014 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9015
9016         * cse.c: Include rtl-iter.h.
9017         (approx_reg_cost_1): Delete.
9018         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9019         Don't handle null rtxes.
9020
9021 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9022
9023         * cfgcleanup.c: Include rtl-iter.h.
9024         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9025         to being a function that examines each subrtx itself.
9026         (thread_jump): Update accordingly.
9027
9028 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9029
9030         * combine-stack-adj.c: Include rtl-iter.h.
9031         (record_stack_refs_data): Delete.
9032         (record_stack_refs): Turn from being a for_each_rtx callback
9033         to being a function that examines each subrtx itself.
9034         Take a pointer to the reflist.  Invert sense of return value
9035         so that true means success and false means failure.  Don't
9036         handle null rtxes.
9037         (combine_stack_adjustments_for_block): Update accordingly.
9038
9039 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9040
9041         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9042         callback to a function that takes an rtx and returns a bool
9043         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9044         for_each_rtx.
9045
9046 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9047
9048         * combine.c: Include rtl-iter.h.
9049         (unmentioned_reg_p_1): Delete.
9050         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9051         Don't handle null rtxes.
9052
9053 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9054
9055         * calls.c: Include rtl-iter.h.
9056         (internal_arg_pointer_based_exp_1): Delete.
9057         (internal_arg_pointer_based_exp): Take a const_rtx.
9058         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9059
9060 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9061
9062         * caller-save.c: Include rtl-iter.h.
9063         (add_used_regs_1): Delete.
9064         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9065         to iterate over subrtxes.  Assert that any remaining pseudos
9066         have been spilled.
9067
9068 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9069
9070         * bt-load.c: Include rtl-iter.h.
9071         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9072         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9073         to iterate over subrtxes.
9074         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9075         find_btr_use rather than btr_referenced_p.
9076
9077 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9078
9079         * alias.c: Include rtl-iter.h.
9080         (refs_newer_value_cb): Delete.
9081         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9082
9083 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9084
9085         * rtl-iter.h: New file.
9086         * rtlanal.c: Include it.
9087         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9088         (generic_subrtx_iterator <T>::add_single_to_queue)
9089         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9090         (generic_subrtx_iterator <T>::free_array): New functions.
9091         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9092         (generic_subrtx_iterator <const_rtx_accessor>)
9093         (generic_subrtx_iterator <rtx_var_accessor>
9094         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9095         (setup_reg_subrtx_bounds): New function.
9096         (init_rtlanal): Call it.
9097
9098 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9099
9100         PR target/62261
9101         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9102         TARGET_SHMEDIA.
9103         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9104
9105 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9106
9107         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9108
9109 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9110
9111         * rtl.h (JUMP_LABEL_AS_INSN): New.
9112
9113 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9114
9115         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9116         rtx_expr_list **.
9117         (alloc_EXPR_LIST): Strengthen return type from rtx to
9118         rtx_expr_list *.
9119         (remove_free_EXPR_LIST_node): Likewise for param.
9120         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9121         from rtx to rtx_expr_list *.
9122         * sched-int.h (struct deps_desc): Strengthen fields
9123         "pending_read_mems" and "pending_write_mems" from rtx to
9124         rtx_expr_list *.
9125
9126         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9127         rtx to rtx_expr_list *.
9128         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9129         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9130         rtx_expr_list **.
9131         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9132         from rtx to rtx_expr_list *.
9133         * loop-iv.c (simplify_using_initial_values): Strengthen local
9134         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9135         "pnote_next" from rtx * to rtx_expr_list **.
9136         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9137         param "exprp" from rtx * to rtx_expr_list **.
9138         (add_insn_mem_dependence): Strengthen local "mem_list" from
9139         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9140         to rtx_expr_list *.
9141         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9142         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9143         param "old_mems_p" from rtx * to rtx_expr_list **.
9144         * var-tracking.c (struct adjust_mem_data): Strengthen field
9145         "side_effects" from rtx to rtx_expr_list *.
9146         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9147         rtx_expr_list *.
9148         (prepare_call_arguments): Likewise.
9149
9150 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9151
9152         * function.h (struct rtl_data): Strengthen field
9153         "x_stack_slot_list" from rtx to rtx_expr_list *.
9154
9155         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9156         when assigning to stack_slot_list.
9157
9158 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9159
9160         * function.h (struct rtl_data): Strengthen field
9161         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9162         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9163         rtx * to rtx_expr_list **.
9164
9165         * cfgbuild.c (make_edges): In loop over
9166         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9167         rtx_expr_list *, and use methods of the latter class to clarify
9168         the code.
9169         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9170         rtx_expr_list *, and use methods of the latter class to clarify
9171         the code.
9172         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9173         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9174         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9175         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9176         to rtx_expr_list *.  Use methods of the latter class to clarify
9177         the code.
9178
9179 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9180
9181         * function.h (struct expr_status): Strengthen field
9182         "x_forced_labels" from rtx to rtx_expr_list *.
9183
9184         * cfgbuild.c (make_edges): Split local "x" into two locals,
9185         strengthening one from rtx to rtx_expr_list *, and using methods
9186         of said class.
9187         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9188         loop over forced_labels, introduce strengthen it from rtx to
9189         rtx_expr_list *, using methods to clarify the code.
9190         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9191         to rtx_expr_list *, using methods of said class to clarify the
9192         code.
9193         * reload1.c (set_initial_label_offsets): Split local "x" into two
9194         per-loop variables, strengthening the first from rtx to
9195         rtx_expr_list * and using methods.
9196
9197 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9198
9199         * coretypes.h (class rtx_expr_list): Add forward declaration.
9200         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9201         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9202         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9203         invariant: GET_CODE (X) == EXPR_LIST.
9204         (is_a_helper <rtx_expr_list *>::test): New.
9205         (rtx_expr_list::next): New.
9206         (rtx_expr_list::element): New.
9207         (gen_rtx_EXPR_LIST): New.
9208
9209 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9210
9211         * varasm.c (mark_constants): Convert a GET_CODE check into a
9212         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9213         Use methods of rtx_sequence to clarify the code.
9214
9215 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9216
9217         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9218         local "seq" via a checked cast, and use methods of rtx_sequence
9219         to simplify the code.
9220
9221 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9222
9223         * resource.c (mark_referenced_resources): Strengthen local
9224         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9225         using methods of rtx_sequence to clarify the code.
9226         (find_dead_or_set_registers): Within the switch statement, convert
9227         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9228         the JUMP_P handling, introduce another local "seq", adding a
9229         checked cast to rtx_sequence *.  In both cases, use methods of
9230         rtx_sequence to clarify the code.
9231         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9232         via a checked cast, and use methods of rtx_sequence to simplify
9233         the code.
9234
9235 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9236
9237         * reorg.c (redundant_insn): In two places in the function, replace
9238         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9239         usings methods of rtx_sequence to clarify the code.
9240
9241 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9242
9243         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9244         local "seq" with a checked cast, and use methods of rtx_sequence
9245         to clarify the code.
9246
9247 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9248
9249         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9250         with a checked cast, in the region for where we know it's a
9251         SEQUENCE.  Use methods of rtx_sequence.
9252
9253 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9254
9255         * final.c (get_attr_length_1): Replace GET_CODE check with a
9256         dyn_cast, introducing local "seq" and the use of methods of
9257         rtx_sequence.
9258         (shorten_branches): Likewise, introducing local "body_seq".
9259         Strengthen local "inner_insn" from rtx to rtx_insn *.
9260         (reemit_insn_block_notes): Replace GET_CODE check with a
9261         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9262         Use methods of rtx_sequence.
9263         (final_scan_insn): Likewise, introducing local "seq" for when
9264         "body" is known to be a SEQUENCE, using its methods.
9265
9266 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9267
9268         * except.c (can_throw_external): Strengthen local "seq" from rtx
9269         to rtx_sequence *.  Use methods of rtx_sequence.
9270         (insn_nothrow_p): Likewise.
9271
9272 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9273
9274         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9275         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9276         Use methods of rtx_sequence.
9277         (scan_trace): Likewise for local "pat".
9278
9279 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9280
9281         * coretypes.h (class rtx_sequence): Add forward declaration.
9282         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9283         invariant: GET_CODE (X) == SEQUENCE.
9284         (is_a_helper <rtx_sequence *>::test): New.
9285         (is_a_helper <const rtx_sequence *>::test): New.
9286         (rtx_sequence::len): New.
9287         (rtx_sequence::element): New.
9288         (rtx_sequence::insn): New.
9289
9290 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9291
9292         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9293         rtx_insn_list **.
9294         (alloc_INSN_LIST): Strengthen return type from rtx to
9295         rtx_insn_list *.
9296         (copy_INSN_LIST): Likewise for return type and param.
9297         (concat_INSN_LIST): Likewise for both params and return type.
9298         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9299         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9300         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9301         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9302
9303         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9304         "implicit_sets", "control_uses", "clobbers" from rtx to
9305         rtx_insn_list *.
9306         (struct deps_desc): Likewise for fields "pending_read_insns",
9307         "pending_write_insns", "pending_jump_insns",
9308         "last_pending_memory_flush", "last_function_call",
9309         "last_function_call_may_noreturn", "sched_before_next_call",
9310         "sched_before_next_jump".
9311         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9312         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9313
9314         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9315         from rtx to rtx_insn_list *.
9316         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9317         rtx_insn_list *.
9318
9319         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9320         to rtx_insn_list **.
9321         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9322         rtx_insn_list *.
9323         (queue_insn): Likewise for local "link".
9324         (struct haifa_saved_data): Strengthen field "insn_queue" from
9325         rtx * to rtx_insn_list **.
9326         (save_backtrack_point): Update allocation of save->insn_queue to
9327         reflect the strengthening of elements from rtx to rtx_insn_list *.
9328         (queue_to_ready): Strengthen local "link" from rtx to
9329         rtx_insn_list *; use methods "next" and "insn" when traversing the
9330         list.
9331         (early_queue_to_ready): Likewise for locals "link", "next_link",
9332         "prev_link".
9333         (schedule_block): Update allocation of insn_queue to reflect the
9334         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9335         local "link" from rtx to rtx_insn_list *, and use methods when
9336         working it.
9337         (add_to_speculative_block): Strengthen locals "twins" and
9338         "next_node" from rtx to rtx_insn_list *, and use methods when
9339         working with them.  Strengthen local "twin" from rtx to
9340         rtx_insn *, eliminating a checked cast.
9341         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9342         from rtx to rtx_insn_list *, and use methods when working with
9343         them.
9344
9345         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9346         from rtx to rtx_insn_list *, adding a checked cast.
9347         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9348         rtx_insn_list **.
9349         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9350         "newlink" from rtx to rtx_insn_list *.  Strengthen local
9351         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
9352         from rtx to rtx_insn *.
9353         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9354         from rtx to rtx_insn_list *.  Use methods of the latter class.
9355         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9356         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9357         (remove_free_INSN_LIST_node): Strengthen return type and local
9358         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
9359         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
9360         rtx_insn_list *, using "insn" method.
9361
9362         * sched-deps.c (add_dependence_list):  Strengthen param "list"
9363         from rtx to rtx_insn_list *, and use methods when working with it.
9364         (add_dependence_list_and_free):  Strengthen param "listp" from
9365         rtx * to rtx_insn_list **.
9366         (remove_from_dependence_list): Strenghten param "listp" from rtx *
9367         to rtx_insn_list **, and use methods when working with *listp.
9368         (remove_from_both_dependence_lists): Strengthen param "listp" from
9369         rtx * to rtx_insn_list **
9370         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9371         to rtx_insn_list **.  Eliminate local "link", in favor of two new
9372         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9373         respectively.
9374         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9375         by introducing local "cond_deps".
9376         (remove_from_deps): Strengthen param "insn" from rtx to
9377         rtx_insn *.
9378
9379         * sched-rgn.c (concat_insn_mem_list): Strengthen param
9380         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9381         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9382         Use methods of rtx_insn_list.
9383
9384         * store-motion.c (struct st_expr): Strengthen fields
9385         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9386         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9387         rtx_insn_list *.
9388         (find_moveable_store): Split out "tmp" into multiple more-tightly
9389         scoped locals.  Use methods of rtx_insn_list *.
9390         (compute_store_table): Strengthen local "tmp" from rtx to
9391         rtx_insn *.  Use methods of rtx_insn_list *.
9392
9393 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9394
9395         * coretypes.h (class rtx_insn_list): Add forward declaration.
9396         * rtl.h (class rtx_insn_list): New subclass of rtx_def
9397         (is_a_helper <rtx_insn_list *>::test): New.
9398         (rtx_insn_list::next): New.
9399         (rtx_insn_list::insn): New.
9400         (gen_rtx_INSN_LIST): Add prototype.
9401         * emit-rtl.c (gen_rtx_INSN_LIST): New.
9402         * gengenrtl.c (special_rtx): Add INSN_LIST.
9403
9404 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9405
9406         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
9407         "prev" from rtx to rtx_insn *.
9408
9409 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9410
9411         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
9412         functions.  Require merely an rtx for now, not an rtx_insn *.
9413         (BLOCK_FOR_INSN): Likewise.
9414         (INSN_LOCATION): Likewise.
9415         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
9416
9417 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9418
9419         * rtl.h (PATTERN): Convert this macro into a pair of inline
9420         functions, for now, requiring const_rtx and rtx.
9421
9422 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9423
9424         * target.def (unwind_emit): Strengthen param "insn" from rtx to
9425         rtx_insn *.
9426         (final_postscan_insn): Likewise.
9427         (adjust_cost): Likewise.
9428         (adjust_priority): Likewise.
9429         (variable_issue): Likewise.
9430         (macro_fusion_pair_p): Likewise.
9431         (dfa_post_cycle_insn): Likewise.
9432         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
9433         (first_cycle_multipass_issue): Likewise.
9434         (dfa_new_cycle): Likewise.
9435         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
9436         (speculate_insn): Likewise for param "insn".
9437         (gen_spec_check): Likewise for params "insn" and "label".
9438         (get_insn_spec_ds): Likewise for param "insn".
9439         (get_insn_checked_ds): Likewise.
9440         (dispatch_do): Likewise.
9441         (dispatch): Likewise.
9442         (cannot_copy_insn_p): Likewise.
9443         (invalid_within_doloop): Likewise.
9444         (legitimate_combined_insn): Likewise.
9445         (needed): Likewise.
9446         (after): Likewise.
9447
9448         * doc/tm.texi: Automatically updated to reflect changes to
9449         target.def.
9450
9451         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
9452         working with insn.
9453         (schedule_block): Likewise.
9454         (sched_init): Likewise.
9455         (sched_speculate_insn): Strengthen param "insn" from rtx to
9456         rtx_insn *.
9457         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
9458         working with insn.
9459         * hooks.c (hook_bool_rtx_true): Rename to...
9460         hook_bool_rtx_insn_true): ...this, and strengthen first param from
9461         rtx to rtx_insn *.
9462         (hook_constcharptr_const_rtx_null): Rename to...
9463         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9464         first param from const_rtx to const rtx_insn *.
9465         (hook_bool_rtx_int_false): Rename to...
9466         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9467         param from rtx to rtx_insn *.
9468         (hook_void_rtx_int): Rename to...
9469         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9470         rtx to rtx_insn *.
9471
9472         * hooks.h (hook_bool_rtx_true): Rename to...
9473         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
9474         rtx to rtx_insn *.
9475         (hook_bool_rtx_int_false): Rename to...
9476         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9477         param from rtx to rtx_insn *.
9478         (hook_void_rtx_int): Rename to...
9479         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9480         rtx to rtx_insn *.
9481         (hook_constcharptr_const_rtx_null): Rename to...
9482         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9483         first param from const_rtx to const rtx_insn *.
9484
9485         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
9486         and local "prev" from rtx to rtx_insn *.
9487
9488         * sched-int.h (sched_speculate_insn): Strengthen first param from
9489         rtx to rtx_insn *.
9490
9491         * sel-sched.c (create_speculation_check): Likewise for local "label".
9492         * targhooks.c (default_invalid_within_doloop): Strengthen param
9493         "insn" from const_rtx to const rtx_insn *.
9494         * targhooks.h (default_invalid_within_doloop): Strengthen param
9495         from const_rtx to const rtx_insn *.
9496
9497         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
9498         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
9499
9500         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
9501         "insn".
9502         (arc_invalid_within_doloop): Likewise, with const.
9503
9504         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
9505         (arm_cannot_copy_insn_p): Likewise for param "insn".
9506         (arm_unwind_emit): Likewise.
9507
9508         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
9509         "dep_insn".
9510
9511         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
9512         (c6x_variable_issue): Likewise.  Removed now-redundant checked
9513         cast.
9514         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
9515
9516         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
9517         Likewise for param "insn".
9518         (epiphany_mode_after): Likewise.
9519         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
9520         params "insn", "dep_insn".
9521         (epiphany_mode_needed): Likewise for param "insn".
9522         (epiphany_mode_after): Likewise.
9523
9524         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
9525         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
9526         (ix86_avx_u128_mode_needed): Likewise.
9527         (ix86_i387_mode_needed): Likewise.
9528         (ix86_mode_needed): Likewise.
9529         (ix86_avx_u128_mode_after): Likewise.
9530         (ix86_mode_after): Likewise.
9531         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
9532         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
9533         (ix86_adjust_priority): Likewise for param "insn".
9534         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
9535         (do_dispatch): Likewise.
9536         (has_dispatch): Likewise.
9537         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
9538
9539         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
9540         reflect renaming of default hook implementation from
9541         hook_constcharptr_const_rtx_null to
9542         hook_constcharptr_const_rtx_insn_null.
9543         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
9544         rtx to rtx_insn *.
9545         (ia64_variable_issue): Likewise for param "insn".
9546         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
9547         (ia64_dfa_new_cycle): Likewise.
9548         (ia64_get_insn_spec_ds): Likewise.
9549         (ia64_get_insn_checked_ds): Likewise.
9550         (ia64_speculate_insn): Likewise.
9551         (ia64_gen_spec_check): Likewise for params "insn", "label".
9552         (ia64_asm_unwind_emit): Likewise for param "insn".
9553
9554         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
9555
9556         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
9557         "insn", "def_insn".
9558         (m68k_sched_variable_issue): Likewise for param "insn".
9559
9560         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
9561         "def_insn".
9562
9563         * config/microblaze/microblaze.c (microblaze_adjust_cost):
9564         Likewise for params "insn", "dep".
9565
9566         * config/mips/mips.c (mips_adjust_cost): Likewise.
9567         (mips_variable_issue): Likewise for param "insn".
9568         (mips_final_postscan_insn): Likewise.
9569
9570         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
9571         for params "insn", "dep".
9572
9573         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
9574         "dep_insn".
9575         (pa_adjust_priority): Likewise for param "insn".
9576
9577         * config/picochip/picochip.c (picochip_sched_adjust_cost):
9578         Likewise for params "insn", "dep_insn".
9579
9580         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
9581         param "insn".
9582         (rs6000_variable_issue): Likewise.
9583         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
9584         (rs6000_debug_adjust_cost): Likewise.
9585         (rs6000_adjust_priority): Likewise for param "insn".
9586         (rs6000_use_sched_lookahead_guard): Likewise.
9587         (get_next_active_insn): Likewise for return type and both params.
9588         (redefine_groups): Likewise for params "prev_head_insn", "tail"
9589         and locals "insn", "next_insn".
9590         (pad_groups): Likewise.
9591
9592         * config/s390/s390.c (s390_adjust_priority): Likewise for param
9593         "insn".
9594         (s390_cannot_copy_insn_p): Likewise.
9595         (s390_sched_variable_issue): Likewise for third param, eliminating
9596         checked cast.
9597         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
9598         default hook implementation from hook_constcharptr_const_rtx_null
9599         to hook_constcharptr_const_rtx_insn_null.
9600
9601         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
9602         from rtx to rtx_insn *.
9603         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
9604         (sh_variable_issue): Likewise for param "insn".
9605         (sh_dfa_new_cycle): Likewise.
9606         (sh_mode_needed): Likewise.
9607         (sh_mode_after): Likewise.
9608
9609         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
9610         params "insn", "dep_insn".
9611         (hypersparc_adjust_cost): Likewise.
9612         (sparc_adjust_cost): Likewise.
9613
9614         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
9615         param, eliminated checked cast.
9616         (spu_sched_adjust_cost): Likewise for first and third params.
9617
9618         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
9619         params "insn" and "dep_insn" from rtx to rtx_insn *.
9620
9621         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
9622
9623 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9624
9625         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
9626         (set_is_load_p): ...this, updating to work on a SET pattern rather
9627         than an insn.
9628         (is_store_insn): Rename to...
9629         (set_is_store_p): ...this, updating to work on a SET pattern
9630         rather than an insn.
9631         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
9632         top of function to where it is needed.  Rewrite the bogus
9633         condition that checks for "insn" and "dep" being PARALLEL to
9634         instead use single_set, introducing locals "insn_set" and
9635         "dep_set".  Given that we only ever returned "cost" for a non-pair
9636         of SETs, bail out early if we don't have a pair of SET.
9637         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
9638         use the new locals "insn_set" and "dep_set", and update calls to
9639         is_load_insn and is_store_insn to be calls to set_is_load_p and
9640         set_is_store_p.
9641
9642 2014-08-27  Guozhi Wei  <carrot@google.com>
9643
9644         PR target/62262
9645         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
9646         amount before using it.
9647
9648 2014-08-27  Richard Biener  <rguenther@suse.de>
9649
9650         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
9651         get_maxval_strlen inside a more useful API.
9652         (gimple_fold_builtin_with_strlen): Remove and fold into ...
9653         (gimple_fold_builtin): ... caller.
9654         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
9655         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
9656         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
9657         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
9658         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
9659         gimple_fold_builtin_sprintf): Adjust to compute maxval
9660         themselves.
9661
9662 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
9663
9664         PR other/62248
9665         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
9666
9667 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9668             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9669             Anna Tikhonova  <anna.tikhonova@intel.com>
9670             Ilya Tocar  <ilya.tocar@intel.com>
9671             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9672             Ilya Verbin  <ilya.verbin@intel.com>
9673             Kirill Yukhin  <kirill.yukhin@intel.com>
9674             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9675
9676         * config/i386/sse.md
9677         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
9678         Use `concat_tg_mode' attribute to determine asm register size.
9679
9680 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9681             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9682             Anna Tikhonova  <anna.tikhonova@intel.com>
9683             Ilya Tocar  <ilya.tocar@intel.com>
9684             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9685             Ilya Verbin  <ilya.verbin@intel.com>
9686             Kirill Yukhin  <kirill.yukhin@intel.com>
9687             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9688
9689         * config/i386/sse.md
9690         (define_mode_iterator VI48_AVX512VL): New.
9691         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
9692         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
9693         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
9694         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9695         with VI1): Change mode iterator.
9696         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9697         with VI_ULOADSTORE_BW_AVX512VL): New.
9698         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9699         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9700         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9701         with VI1): Change mode iterator.
9702         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9703         with VI_ULOADSTORE_BW_AVX512VL): New.
9704         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
9705         with VI_ULOADSTORE_F_AVX512VL): Ditto.
9706         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9707         with VI1): Change mode iterator.
9708         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9709         with VI_ULOADSTORE_BW_AVX512VL): New.
9710         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
9711         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
9712         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
9713         (define_insn "<avx512>_storedqu<mode>_mask" with
9714         VI48_AVX512VL): New.
9715         (define_insn "<avx512>_storedqu<mode>_mask" with
9716         VI12_AVX512VL): Ditto.
9717
9718 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9719             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9720             Anna Tikhonova  <anna.tikhonova@intel.com>
9721             Ilya Tocar  <ilya.tocar@intel.com>
9722             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9723             Ilya Verbin  <ilya.verbin@intel.com>
9724             Kirill Yukhin  <kirill.yukhin@intel.com>
9725             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9726
9727         * config/i386/sse.md
9728         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
9729         (define_mode_iterator VI48_AVX512BW): New.
9730         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
9731         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9732         with VI48_AVX2_48_AVX512F): New.
9733         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
9734         with VI2_AVX512VL): Ditto.
9735
9736 2014-08-27  Richard Biener  <rguenther@suse.de>
9737
9738         PR middle-end/62239
9739         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
9740         (fold_builtin_3): Do not fold strcat_chk here.
9741         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
9742         from builtins.c.
9743         (gimple_fold_builtin): Fold strcat_chk here.
9744
9745 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
9746
9747         * dwarf2out.h (dwarf2out_decl): Remove prototype.
9748         * dwarf2out.c (dwarf2out_decl): Make static.
9749
9750 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
9751
9752         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
9753
9754 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9755
9756         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
9757         from rtx to rtx_insn *.
9758         (cselib_lookup_from_insn): Likewise for final param.
9759         (cselib_subst_to_values_from_insn): Likewise.
9760         (cselib_add_permanent_equiv): Likewise.
9761
9762         * cselib.c (cselib_current_insn): Likewise for this variable.
9763         (cselib_subst_to_values_from_insn): Likewise for param "insn".
9764         (cselib_lookup_from_insn): Likewise.
9765         (cselib_add_permanent_equiv): Likewise for param "insn" and local
9766         "save_cselib_current_insn".
9767         (cselib_process_insn): Replace use of NULL_RTX with NULL.
9768
9769         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
9770         from rtx to rtx_insn *.
9771
9772 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9773
9774         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
9775         rtx_insn *.
9776
9777 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9778
9779         * df.h (df_dump_insn_problem_function): Strengthen first param of
9780         this callback from const_rtx to const rtx_insn *.
9781         (struct df_insn_info): Strengthen field "insn" from rtx to
9782         rtx_insn *.
9783         (DF_REF_INSN): Eliminate this function, reinstating the older
9784         macro definition.
9785         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
9786         (df_reg_defined): Likewise.
9787         (df_find_use): Likewise.
9788         (df_reg_used): Likewise.
9789         (df_dump_insn_top): Strengthen param 1 from const_rtx to
9790         const rtx_insn *.
9791         (df_dump_insn_bottom): Likewise.
9792         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
9793         (df_insn_debug_regno): Likewise.
9794         (debug_df_insn): Likewise.
9795         (df_rd_simulate_one_insn): Likewise for param 2.
9796         (df_word_lr_simulate_defs): Likewise for param 1.
9797         (df_word_lr_simulate_uses): Likewise.
9798         (df_md_simulate_one_insn): Likewise for param 2.
9799         (df_simulate_find_noclobber_defs): Likewise for param 1.
9800         (df_simulate_find_defs): Likewise.
9801         (df_simulate_defs): Likewise.
9802         (df_simulate_uses): Likewise.
9803         (df_simulate_one_insn_backwards): Likewise for param 2.
9804         (df_simulate_one_insn_forwards): Likewise.
9805         (df_uses_create): Likewise for param 2.
9806         (df_insn_create_insn_record): Likewise for param 1.
9807         (df_insn_delete): Likewise.
9808         (df_insn_rescan): Likewise.
9809         (df_insn_rescan_debug_internal): Likewise.
9810         (df_insn_change_bb): Likewise.
9811         (df_notes_rescan): Likewise.
9812         * rtl.h (remove_death): Likewise for param 2.
9813         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
9814         const rtx_insn *.
9815         * sched-int.h (reemit_notes): Strengthen param from rtx to
9816         rtx_insn *.
9817         * valtrack.h (propagate_for_debug): Likewise for param 1.
9818
9819         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
9820         local "tmp_rtx" from const_rtx to const rtx_insn *.
9821         * combine.c (remove_death): Strengthen param "insn" from rtx to
9822         rtx_insn *.
9823         (move_deaths): Likewise for local "where_dead".
9824         * cse.c (delete_trivially_dead_insns): Introduce local
9825         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
9826         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
9827         rtx_insn *.
9828         (df_reg_defined): Likewise.
9829         (df_find_use): Likewise.
9830         (df_reg_used): Likewise.
9831         (df_dump_insn_problem_data): Strengthen param "insn" from
9832         const_rtx to const rtx_insn *.
9833         (df_dump_insn_top): Likewise.
9834         (df_dump_insn_bottom): Likewise.
9835         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
9836         (df_insn_debug_regno): Likewise.
9837         (debug_df_insn): Likewise.
9838         (DF_REF_INSN): Delete.
9839         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
9840         from rtx to rtx_insn *.
9841         (df_chain_insn_top_dump): Strengthen param "insn" from
9842         const_rtx to const rtx_insn *.
9843         (df_chain_insn_bottom_dump): Likewise.
9844         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
9845         rtx_insn *.
9846         (df_word_lr_simulate_uses): Likewise.
9847         (df_print_note): Likewise.
9848         (df_remove_dead_and_unused_notes): Likewise.
9849         (df_set_unused_notes_for_mw): Likewise.
9850         (df_set_dead_notes_for_mw): Likewise.
9851         (df_create_unused_note): Likewise.
9852         (df_simulate_find_defs): Likewise.
9853         (df_simulate_find_uses): Likewise.
9854         (df_simulate_find_noclobber_defs): Likewise.
9855         (df_simulate_defs): Likewise.
9856         (df_simulate_uses): Likewise.
9857         (df_simulate_one_insn_backwards): Likewise.
9858         (df_simulate_one_insn_forwards): Likewise.
9859         (df_md_simulate_one_insn): Likewise.
9860         * df-scan.c (df_uses_create): Likewise.
9861         (df_insn_create_insn_record): Likewise.
9862         (df_insn_delete): Likewise.
9863         (df_insn_rescan): Likewise.
9864         (df_insn_rescan_debug_internal): Likewise.
9865         (df_insn_change_bb): Likewise.
9866         (df_notes_rescan): Likewise.
9867         (df_refs_add_to_chains): Likewise.
9868         (df_insn_refs_verify): Likewise.
9869         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
9870         when invoking df_insn_delete.
9871         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
9872         (set_unique_reg_note): Add checked cast.
9873         * final.c (cleanup_subreg_operands): Likewise.
9874         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
9875         "insn" from rtx to rtx_insn *.
9876         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
9877         "last" from rtx to rtx_insn *.
9878         * ira-emit.c (change_regs_in_insn): New function.
9879         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
9880         Invoke change_regs_in_insn rather than change_regs.
9881         * ira.c (update_equiv_regs): Strengthen locals "insn",
9882         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
9883         for_each_rtx_in_insn rather than for_each_rtx.
9884         * recog.c (confirm_change_group): Add checked casts.
9885         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
9886         Add checked cast.
9887         (peep2_fill_buffer): Add checked cast.
9888         * rtlanal.c (remove_note): Likewise.
9889         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
9890         locals "next" "end" from rtx to rtx_insn *.
9891
9892 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9893
9894         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
9895         to rtx_insn *.
9896         (struct reg_use_data): Likewise for field "insn".
9897         (insn_cost): Likewise for param.
9898         (real_insn_for_shadow): Likewise for return type and param.
9899         (increase_insn_priority): Likewise for param 1.
9900         (debug_dependencies): Likewise for both params.
9901
9902         * haifa-sched.c (insn_delay): Likewise for param "insn".
9903         (real_insn_for_shadow): Likewise for return type and param "insn".
9904         (update_insn_after_change): Likewise for param "insn".
9905         (recompute_todo_spec): Likewise for param "next" and locals "pro",
9906         "other".
9907         (insn_cost): Likewise for param "insn".
9908         (increase_insn_priority): Likewise.
9909         (calculate_reg_deaths): Likewise.
9910         (setup_insn_reg_pressure_info): Likewise.
9911         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
9912         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
9913         (model_recompute): Likewise.
9914         (must_restore_pattern_p): Likewise for param "next".
9915         (model_excess_cost): Likewise for param "insn".
9916         (queue_remove): Likewise.
9917         (adjust_priority): Likewise for param "prev".
9918         (update_register_pressure): Likewise for param "insn".
9919         (setup_insn_max_reg_pressure): Likewise for local "insn".
9920         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
9921         (model_add_to_schedule): Likewise.
9922         (model_reset_queue_indices): Likewise for local "insn".
9923         (unschedule_insns_until): Strengthen local "recompute_vec" from
9924         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
9925         "con" from rtx to rtx_insn *.
9926         (restore_last_backtrack_point): Likewise for both locals "x". Add
9927         checked casts.
9928         (estimate_insn_tick): Likewise for param "insn".
9929         (commit_schedule): Likewise for params "prev_head", "tail" and
9930         local "x".
9931         (verify_shadows): Likewise for locals "i1", "i2".
9932         (dump_insn_stream): Likewise for params "head", "tail" and locals
9933         "next_tail", "insn".
9934         (schedule_block): Likewise for locals "insn", "x".  Add a checked
9935         cast.
9936         (fix_inter_tick): Likewise for params "head", "tail".
9937         (create_check_block_twin): Likewise for local "jump".
9938         (haifa_change_pattern): Likewise for param "insn".
9939         (haifa_speculate_insn): Likewise.
9940         (dump_new_block_header): Likewise for params "head", "tail".
9941         (fix_jump_move): Likewise for param "jump".
9942         (move_block_after_check): Likewise.
9943         (sched_init_insn_luid): Likewise for param "insn".
9944         (sched_init_luids): Likewise for local "insn".
9945         (insn_luid): Likewise for param "insn".
9946         (init_h_i_d): Likewise.
9947         (haifa_init_h_i_d): Likewise for local "insn".
9948         (haifa_init_insn): Likewise for param "insn".
9949         * sched-deps.c (add_dependence): Likewise for local "real_pro",
9950         "other".
9951         (create_insn_reg_use): Likewise for param "insn".
9952         (setup_insn_reg_uses): Likewise.  Add a checked cast.
9953         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
9954         "tail" from rtx to rtx_insn *.
9955         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
9956         "insn", "next_tail".
9957
9958 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9959
9960         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
9961         from rtx to rtx_insn *.
9962         (model_add_to_schedule): Likewise for locals "start", "end",
9963         "iter".
9964
9965 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9966
9967         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
9968         rtx_insn *.
9969         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
9970         "to" and locals "insn", "next", "copy".  Remove now-redundant
9971         checked cast.
9972
9973 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
9974
9975         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
9976         rtx_insn * and param 4 from rtx * to rtx_insn **.
9977         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
9978         param 2 from rtx * to rtx_insn **.
9979
9980         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
9981         rtx_insn * and final param from rtx * to rtx_insn **.
9982
9983         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
9984         from rtx to rtx_insn *.
9985         (try_head_merge_bb): Likewise for both locals named "move_upto".
9986         * df-problems.c (can_move_insns_across): Likewise for params
9987         "from", "to", "across_from", "across_to" and locals "insn",
9988         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
9989         rtx_insn **.
9990         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
9991         from rtx to rtx_insn *.
9992         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
9993         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
9994         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
9995         rtx_insn *.
9996         (noce_try_abs): Likewise.
9997         (noce_get_condition): Likewise for param "jump".  Strengthen param
9998         "earliest" from rtx * to rtx_insn **.
9999         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10000         rtx_insn *.
10001         (find_cond_trap): Likewise.
10002         (dead_or_predicable): Likewise for local "earliest".
10003         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10004         checked cast.
10005         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10006         and local "prev".  Strengthen param "earliest" from rtx * to
10007         rtx_insn **.
10008         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10009         Strengthen param "earliest" from rtx * to rtx_insn **.
10010
10011 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10012
10013         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10014         "to" and local "insn" from rtx to rtx_insn *.
10015
10016 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10017
10018         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10019         from rtx to rtx_insn *.
10020         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10021         (code_motion_path_driver): Likewise for local "last_insn".
10022         (simplify_changed_insns): Likewise for local "insn".
10023
10024 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10025
10026         * rtl.h (push_to_sequence): Strengthen param from rtx to
10027         rtx_insn *.
10028         (push_to_sequence2): Likewise for both params.
10029         (delete_insns_since): Likewise for param.
10030         (reorder_insns_nobb): Likewise for all three params.
10031         (set_new_first_and_last_insn): Likewise for both params.
10032
10033         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10034         rtx_insn *.  Remove now-redundant cast.
10035         (set_last_insn): Likewise.
10036
10037         * builtins.c (expand_builtin_return): Strengthen local
10038         "call_fusage" from rtx to rtx_insn *.
10039         * cfgrtl.c (create_basic_block_structure): Likewise for local
10040         "after".
10041         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10042         "first", "last" and local "insn".
10043         (delete_insns_since): Likewise for param "from".
10044         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10045         and local "x".
10046         (push_to_sequence): Likewise for param "first" and local "last".
10047         (push_to_sequence2): Likewise for params "first" and "last".
10048         * lra.c (emit_add3_insn): Likewise for local "last".
10049         (lra_emit_add): Likewise.
10050         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10051         "last_insn".
10052         (process_address_1): Likewise for locals "insn", last".
10053         * modulo-sched.c (ps_first_note): Likewise for return type.
10054         * optabs.c (expand_binop_directly): Likewise for param "last".
10055
10056 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10057
10058         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10059         to rtx_insn*.
10060         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10061
10062 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10063
10064         * function.h (struct sequence_stack): Strengthen fields "first"
10065         and "last" from rtx to rtx_insn *.
10066         (struct emit_status): Likewise for fields "x_first_insn" and
10067         "x_last_insn".
10068
10069         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10070         (set_first_insn): Add checked cast.
10071         (get_last_insn): Remove now-redundant checked cast.
10072         (set_last_insn): Add checked cast.
10073
10074         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10075         "saved_first" and "saved_last" from rtx to rtx_insn *.
10076
10077 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10078
10079         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10080         (unlink_insn_chain): Strengthen both params from rtx to
10081         rtx_insn *.
10082
10083         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10084         variable.
10085         (unlink_insn_chain): Likewise for params "first" and "last".
10086         Remove now-redundant checked cast.
10087         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10088         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10089         rtx_insn *.
10090         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10091         params.
10092         (add_insn): Likewise for param "insn" and local "prev".
10093         (add_insn_after_nobb): Likewise for both params and local "next".
10094         (add_insn_before_nobb): Likewise for both params and local "prev".
10095         (add_insn_after): Rename param "after" to "uncast_after",
10096         introducing local "after" with another checked cast.
10097         (add_insn_before): Rename params "insn" and "before", giving them
10098         "uncast_" prefixes, adding the old names back using checked casts.
10099         (emit_note_after): Likewise for param "after".
10100         (emit_note_before): Likewise for param "before".
10101         (emit_label): Add a checked cast.
10102
10103 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10104
10105         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10106         "insn" from rtx to rtx_insn *.
10107
10108         * cselib.c (cselib_record_sets_hook): Likewise.
10109
10110         * var-tracking.c (add_with_sets): Likewise, renaming back from
10111         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10112         to rtx_insn *.
10113
10114 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10115
10116         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10117         and "header_" from rtx to rtx_insn *.
10118         (struct basic_block_d): Likewise for field "head_" within "x"
10119         field of union basic_block_il_dependent.
10120         (BB_HEAD): Drop function...
10121         (SET_BB_HEAD): ...and this function in favor of...
10122         (BB_HEAD): ...reinstate macro.
10123         (BB_END): Drop function...
10124         (SET_BB_END): ...and this function in favor of...
10125         (BB_END): ...reinstate macro.
10126         (BB_HEADER): Drop function...
10127         (SET_BB_HEADER): ...and this function in favor of...
10128         (BB_HEADER): ...reinstate macro.
10129
10130         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10131         (fix_crossing_unconditional_branches): Likewise.
10132         * caller-save.c (save_call_clobbered_regs): Likewise.
10133         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10134         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10135         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10136         (merge_blocks_move_successor_nojumps): Likewise.
10137         (outgoing_edges_match): Update use of for_each_rtx to
10138         for_each_rtx_in_insn.
10139         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10140         (expand_gimple_cond): Likewise.
10141         (expand_gimple_tailcall): Likewise.
10142         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10143         SET_BB_END.
10144         (construct_exit_block): Drop use of SET_BB_END.
10145         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10146         rtx_insn *.
10147         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10148         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10149         SET_BB_HEAD and SET_BB_END.
10150         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10151         SET_BB_END.
10152         (rtl_delete_block): Drop use of SET_BB_HEAD.
10153         (rtl_split_block): Drop use of SET_BB_END.
10154         (emit_nop_for_unique_locus_between): Likewise.
10155         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10156         (block_label): Drop use of SET_BB_HEAD.
10157         (fixup_abnormal_edges): Drop use of SET_BB_END.
10158         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10159         (relink_block_chain): Likewise.
10160         (fixup_reorder_chain): Drop use of SET_BB_END.
10161         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10162         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10163         rtx_insn **.  Drop use of SET_BB_HEADER.
10164         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10165         SET_BB_HEAD.
10166         (BB_HEAD): Delete this function.
10167         (SET_BB_HEAD): Likewise.
10168         (BB_END): Likewise.
10169         (SET_BB_END): Likewise.
10170         (BB_HEADER): Likewise.
10171         (SET_BB_HEADER): Likewise.
10172         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10173         "uncast_insn", adding a new local "insn" and a checked cast to
10174         rtx_insn *.  Drop use of SET_BB_END.
10175         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10176         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10177         (reorder_insns): Drop use of SET_BB_END.
10178         (emit_insn_after_1): Strengthen param "first" and locals "last",
10179         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10180         (emit_pattern_after_noloc): Add checked cast.
10181         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10182         (restore_other_notes): Likewise.
10183         (move_insn): Likewise.
10184         (sched_extend_bb): Likewise.
10185         (fix_jump_move): Likewise.
10186         * ifcvt.c (noce_process_if_block): Likewise.
10187         (dead_or_predicable): Likewise.
10188         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10189         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10190         * sel-sched-ir.c (sel_move_insn): Likewise.
10191         * sel-sched.c (move_nop_to_previous_block): Likewise.
10192
10193         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10194         SET_BB_END.
10195         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10196
10197 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10198
10199         * basic-block.h (create_basic_block_structure): Strengthen params
10200         1 "head" and 2 "end" from rtx to rtx_insn *.
10201         * cfgrtl.c (create_basic_block_structure): Likewise.
10202         (rtl_create_basic_block): Update casts from void * to rtx to
10203         rtx_insn *, so that we can pass them as rtx_insn * to
10204         create_basic_block_structure.
10205         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10206
10207 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10208
10209         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10210         rtx_insn **.
10211         (check_for_inc_dec): Strengthen param "insn" from rtx to
10212         rtx_insn *.
10213
10214         * cselib.h (cselib_process_insn): Likewise.
10215
10216         * cselib.c (cselib_record_sets): Likewise.
10217         (cselib_process_insn): Likewise.
10218
10219         * dse.c (struct insn_info): Likewise for field "insn".
10220         (check_for_inc_dec_1): Likewise for local "insn".
10221         (check_for_inc_dec): Likewise for param "insn".
10222         (scan_insn): Likewise.
10223         (dse_step1): Likewise for local "insn".
10224
10225         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10226         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10227
10228 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10229
10230         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10231         from rtx to rtx_insn *.
10232         (DEP_PRO): Delete this function and...
10233         (SET_DEP_PRO): ...this function in favor of...
10234         (DEP_PRO): ...reinstate this macro.
10235         (DEP_CON): Delete this function and...
10236         (SET_DEP_CON): ...this function in favor of...
10237         (DEP_CON): ...reinstate this old macro.
10238         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10239         (init_dep): Likewise.
10240         (set_priorities): Likewise for both params.
10241         (sd_copy_back_deps): Likewise for params 1 and 2.
10242
10243         * haifa-sched.c (priority): Likewise for param "insn" and local
10244         "next".
10245         (set_priorities): Likewise for params "head" and "tail" and local
10246         "insn".
10247         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10248         local "consumer".
10249         (add_to_speculative_block): Add a checked cast.
10250         (create_check_block_twin): Drop use of SET_DEP_CON.
10251         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10252         rtx to rtx_insn *.
10253
10254         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10255         Drop use of SET_DEP_PRO
10256         (init_dep): Strengthen params "pro" and "con" from rtx to
10257         rtx_insn *.
10258         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10259         use of SET_DEP_CON.
10260         (DEP_PRO): Delete.
10261         (DEP_CON): Delete.
10262         (SET_DEP_PRO): Delete.
10263         (SET_DEP_CON): Delete.
10264
10265 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10266
10267         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10268         from rtx to rtx_insn *.
10269         (VINSN_INSN_RTX): Eliminate rvalue function and...
10270         (SET_VINSN_INSN): ...lvalue function in favor of...
10271         (VINSN_INSN_RTX): reinstate this old macro.
10272
10273         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10274         in favor of VINSN_INSN_RTX.
10275         (VINSN_INSN_RTX): Delete this function.
10276         (SET_VINSN_INSN_RTX): Likewise.
10277
10278 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10279
10280         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10281         (BND_TO): Delete this function and...
10282         (SET_BND_TO): ...this functions in favor of...
10283         (BND_TO): ...reinstating this macro.
10284         (struct _fence): Strengthen field "executing_insns" from
10285         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10286         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10287         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10288         and param "insn" from rtx to insn_t.
10289         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10290         rtx_insn *.
10291
10292         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10293         vec<rtx_insn *> .
10294         (rtx_vec_t): Likewise.
10295         (struct sched_deps_info_def): Strengthen param of "start_insn"
10296         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10297         "note_mem_dep" callback and first param of "note_dep" callback.
10298
10299         * haifa-sched.c (add_to_speculative_block): Strengthen param
10300         "insn" from rtx to rtx_insn *.
10301         (clear_priorities): Likewise.
10302         (calc_priorities): Likewise for local "insn".
10303
10304         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10305         Remove redundant checked cast.
10306         (haifa_note_mem_dep): Likewise for param "pending_insn".
10307         (haifa_note_dep): Likewise for param "elem".
10308         (note_mem_dep): Likewise for param "e".
10309         (sched_analyze_1): Add checked casts.
10310         (sched_analyze_2): Likewise.
10311
10312         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10313         from rtx to rtx_insn *.
10314         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10315         from vec<rtx> * to vec<rtx_insn *> *.
10316
10317         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10318         scaffolding.
10319         (flist_add): Strengthen param "executing_insns" from
10320         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10321         (advance_deps_context): Remove now-redundant checked cast.
10322         (init_fences): Replace uses of NULL_RTX with NULL.
10323         (merge_fences): Strengthen params "last_scheduled_insn" and
10324         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10325         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10326         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10327         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10328         an instruction, rather than doing double-duty as a pattern.
10329         (return_nop_to_pool): Update for change of insn_t.
10330         (deps_init_id): Remove now-redundant checked cast.
10331         (struct sched_scan_info_def): Strengthen param of "init_insn"
10332         callback from rtx to insn_t.
10333         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10334         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10335         NULL.
10336         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10337         "end" from rtx to rtx_insn *.
10338         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10339         (rtx insn_rtx, bool force_unique_p)
10340         (BND_TO): Delete function.
10341         (SET_BND_TO): Delete function.
10342
10343         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10344         rtx to rtx_insn *.
10345         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10346         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10347         rtx to rtx_insn *.
10348         (undo_transformations): Likewise for param "insn".
10349         (update_liveness_on_insn): Likewise.
10350         (compute_live_below_insn): Likewise for param "insn" and local
10351         "succ".
10352         (update_data_sets): Likewise for param "insn".
10353         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10354         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10355         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10356         rtx_insn *.
10357         (move_cond_jump): Likewise for param "insn".
10358         (move_cond_jump): Drop use of SET_BND_TO.
10359         (compute_av_set_on_boundaries): Likewise.
10360         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10361         (update_and_record_unavailable_insns): Strengthen local "bb_end"
10362         from rtx to rtx_insn *.
10363         (maybe_emit_renaming_copy): Likewise for param "insn".
10364         (maybe_emit_speculative_check): Likewise.
10365         (handle_emitting_transformations): Likewise.
10366         (remove_insn_from_stream): Likewise.
10367         (code_motion_process_successors): Strengthen local "succ" from rtx
10368         to insn_t.
10369
10370 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10371
10372         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10373         ilist_t, not _xlist_t;
10374         (ILIST_INSN): Define in terms of new union field "insn".
10375         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10376         _XLIST_NEXT.
10377         (struct _list_node): Add new field "insn" to the union, of type
10378         insn_t.
10379         (ilist_add): Replace macro with an inline function, requiring an
10380         insn_t.
10381         (ilist_remove): Define this macro directly in terms of
10382         _list_remove, rather than indirectly via _xlist_remove.
10383         (ilist_clear): Likewise, in terms of _list_clear rather than
10384         _xlist_clear.
10385         (ilist_is_in_p): Replace macro with an inline function, requiring
10386         an insn_t.
10387         (_list_iter_cond_insn): New function.
10388         (ilist_iter_remove): Define this macro directly in terms of
10389         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10390         (ilist_iterator): Define directly in terms of _list_iterator
10391         rather than indirectly through _xlist_iterator.
10392         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
10393         than in terms of _FOR_EACH_X.
10394         (FOR_EACH_INSN_1): Likewise.
10395
10396 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
10397
10398         PR target/60606
10399         PR target/61330
10400         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
10401         DECL_HARD_REGISTER and return for invalid register specifications.
10402         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
10403         DECL_HARD_REGISTER, call expand_one_error_var.
10404         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
10405         CC_REGNUM with non-MODE_CC modes.
10406         (arm_regno_class): Return NO_REGS for PC_REGNUM.
10407
10408 2014-08-26  Marek Polacek  <polacek@redhat.com>
10409
10410         PR c/61271
10411         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
10412
10413 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
10414
10415         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
10416         qi cost; add di cost.
10417         (cortexa57_addrcost_table): Likewise.
10418
10419 2014-08-26  Marek Polacek  <polacek@redhat.com>
10420
10421         PR c/61271
10422         * expr.c (is_aligning_offset): Remove logical not.
10423
10424 2014-08-26  Marek Polacek  <polacek@redhat.com>
10425
10426         PR c/61271
10427         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
10428         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
10429
10430 2014-08-26  Richard Biener  <rguenther@suse.de>
10431
10432         PR tree-optimization/62175
10433         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10434         expand possibly trapping operations.
10435
10436 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10437
10438         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
10439         "insn" from rtx to rtx_insn *.
10440         (permute_load): Likewise for param "insn".
10441         (permute_store): Likewise.
10442         (handle_special_swappables): Likewise for local "insn".
10443         (replace_swap_with_copy): Likewise for locals "insn" and
10444         "new_insn".
10445         (rs6000_analyze_swaps): Likewise for local "insn".
10446
10447 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10448
10449         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
10450         to rtx_insn *.
10451
10452 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10453
10454         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
10455         "note_list" from rtx to rtx_insn *.
10456         (BB_NOTE_LIST): Replace this function and...
10457         (SET_BB_NOTE_LIST): ...this function with...
10458         (BB_NOTE_LIST): ...the former macro implementation.
10459
10460         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
10461         local "from_start" from rtx to rtx_insn *.  Strengthen param
10462         "to_endp" from rtx * to rtx_insn **.
10463
10464         * haifa-sched.c (concat_note_lists): Likewise.
10465         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
10466         BB_NOTE_LIST.
10467         (sel_restore_notes): Likewise.
10468         (move_bb_info): Likewise.
10469         (BB_NOTE_LIST): Delete this function.
10470         (SET_BB_NOTE_LIST): Delete this function.
10471         * sel-sched.c (create_block_for_bookkeeping): Eliminate
10472         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
10473
10474 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10475
10476         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
10477         from rtx * to rtx_insn **.
10478         (reorder2): Likewise.
10479         (dependencies_evaluation_hook): Strengthen params "head", "tail"
10480         from rtx to rtx_insn *.
10481
10482         * doc/tm.texi: Update mechanically for above change to target.def.
10483
10484         * sched-int.h (note_list): Strengthen this variable from rtx to
10485         rtx_insn *.
10486         (remove_notes): Likewise for both params.
10487         (restore_other_notes): Likewise for return type and first param.
10488         (struct ready_list): Strengthen field "vec" from rtx * to
10489         rtx_insn **.
10490         (struct dep_replacement): Strenghten field "insn" from rtx to
10491         rtx_insn *.
10492         (struct deps_desc): Likewise for fields "last_debug_insn",
10493         "last_args_size".
10494         (struct haifa_sched_info): Likewise for callback field
10495         "can_schedule_ready_p"'s param, for first param of "new_ready"
10496         callback field, for both params of "rank" callback field, for
10497         first field of "print_insn" callback field (with a const), for
10498         both params of "contributes_to_priority" callback, for param
10499         of "insn_finishes_block_p" callback, for fields "prev_head",
10500         "next_tail", "head", "tail", for first param of "add_remove_insn"
10501         callback, for first param of "begin_schedule_ready" callback, for
10502         both params of "begin_move_insn" callback, and for second param
10503         of "advance_target_bb" callback.
10504         (add_dependence): Likewise for params 1 and 2.
10505         (sched_analyze): Likewise for params 2 and 3.
10506         (deps_analyze_insn): Likewise for param 2.
10507         (ready_element): Likewise for return type.
10508         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10509         (try_ready): Strenghten param from rtx to rtx_insn *.
10510         (sched_emit_insn): Likewise for return type.
10511         (record_delay_slot_pair): Likewise for params 1 and 2.
10512         (add_delay_dependencies): Likewise for param.
10513         (contributes_to_priority): Likewise for both params.
10514         (find_modifiable_mems): Likewise.
10515
10516         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
10517         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
10518         "first_older_only_insn" from rtx to rtx_insn *.
10519         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
10520         rtx_insn **.
10521
10522         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
10523         "last_scheduled_iter0" from rtx to rtx_insn *.
10524         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
10525         (c6x_sched_reorder_1): Strengthen param "ready" and locals
10526         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
10527         "insn" from rtx to rtx_insn *.
10528         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
10529         rtx_insn **.
10530         (c6x_sched_reorder2): Strengthen param "ready" and locals
10531         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
10532         "insn" from rtx to rtx_insn *.
10533         (c6x_variable_issue):  Add a checked cast when assigning from insn
10534         to ss.last_scheduled_iter0.
10535         (split_delayed_branch): Strengthen param "insn" and local "i1"
10536         from rtx to rtx_insn *.
10537         (split_delayed_nonbranch): Likewise.
10538         (undo_split_delayed_nonbranch): Likewise for local "insn".
10539         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
10540         "entry_after", "end_packet", "head_insn", "tail_insn",
10541         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
10542         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
10543         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
10544         but add a checked cast on loop->start_label.  Consolidate calls to
10545         avoid assigning result of gen_spkernel to "insn", now an
10546         rtx_insn *.
10547
10548         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
10549         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
10550         rtx to rtx_insn *.
10551         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
10552         rtx_insn **.  Strengthen locals "top", "next" from rtx to
10553         rtx_insn *.
10554         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
10555         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10556         (add_parameter_dependencies): Strengthen params "call", "head" and
10557         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
10558         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
10559         (add_dependee_for_func_arg): Likewise for param "arg" and local
10560         "insn".
10561         (ix86_dependencies_evaluation_hook): Likewise for params "head",
10562         "tail" and locals "insn", "first_arg".
10563
10564         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
10565         for params "head", "tail" and locals "insn", "next", "next_tail".
10566         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
10567         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
10568         "insn", "lowest", "highest" from rtx to rtx_insn *.
10569         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
10570         rtx_insn **.
10571         (ia64_sched_reorder2): Likewise.
10572
10573         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
10574         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
10575         from rtx * to rtx_insn **.
10576         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
10577         rtx_insn **.
10578         (mep_print_sched_insn): Strengthen param "insn" from rtx to
10579         rtx_insn *.
10580         (mep_sched_reorder): Strengthen param "ready" from rtx * to
10581         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
10582         to rtx_insn *.
10583
10584         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
10585         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
10586         to rtx_insn *.
10587         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
10588         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
10589         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
10590         rtx_insn **.
10591         (vr4130_reorder): Likewise.
10592         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
10593         rtx to rtx_insn *.
10594         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
10595         rtx_insn **.
10596         (mips_sched_reorder): Likewise.
10597         (mips_sched_reorder2): Likewise.
10598
10599         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
10600
10601         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
10602         Strengthen local "tmp" from rtx to rtx_insn *.
10603         (rs6000_sched_reorder2): Likewise.
10604
10605         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
10606         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
10607         (s390_sched_reorder): Strengthen param "ready" from rtx * to
10608         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
10609
10610         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
10611         "tmp2" from rtx to rtx_insn *.
10612         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
10613         Strengthen local "insn" from rtx to rtx_insn *.
10614         (ready_reorder): Strengthen param "ready" from rtx * to
10615         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
10616         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
10617         (sh_reorder2): Likewise.
10618
10619         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
10620         local "insn" from rtx to rtx_insn *.
10621
10622         * haifa-sched.c (note_list): Strengthen this variable from rtx to
10623         rtx_insn *.
10624         (scheduled_insns): Strengthen this variable from vec<rtx> to
10625         vec<rtx_insn *>.
10626         (set_modulo_params): Likewise for locals "i1", "i2".
10627         (record_delay_slot_pair): Likewise for params "i1", "i2".
10628         (add_delay_dependencies): Likewise for param "insn".
10629         (cond_clobbered_p): Likewise.
10630         (recompute_todo_spec): Likewise for local "prev".
10631         (last_scheduled_insn): Likewise for this variable.
10632         (nonscheduled_insns_begin): Likewise.
10633         (model_set_excess_costs): Strengthen param "insns" from rtx * to
10634         rtx_insn **.
10635         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
10636         rtx_insn *.
10637         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
10638         Strengthen local "insn" from rtx to rtx_insn *.
10639         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
10640         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
10641         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
10642         (ready_remove_first): Likewise for return type and local "t".
10643         (ready_element): Likewise for return type.
10644         (ready_remove): Likewise for return type and local "t".
10645         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
10646         (check_clobbered_conditions): Strengthen local "x" from rtx to
10647         rtx_insn *, adding a checked cast.
10648         (schedule_insn): Likewise for param "insn".
10649         (remove_notes): Likewise for params "head", "tail" and locals
10650         "next_tail", "insn", "next".
10651         (struct haifa_saved_data): Likewise for fields
10652         "last_scheduled_insn", "nonscheduled_insns_begin".
10653         (save_backtrack_point): Update for change to field "vec" of
10654         struct ready_list.
10655         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
10656         rtx_insn **.
10657         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
10658         from rtx to rtx_insn *
10659         (resolve_dependencies): Strengthen param "insn" from rtx to
10660         rtx_insn *
10661         (restore_other_notes): Likewise for return type, for param "head"
10662         and local "note_head".
10663         (undo_all_replacements): Likewise for local "insn".
10664         (first_nonscheduled_insn): Likewise for return type and local "insn".
10665         (queue_to_ready): Likewise for local "insn", adding checked casts.
10666         (early_queue_to_ready): Likewise for local "insn".
10667         (debug_ready_list_1): Strengthen local "p" from rtx * to
10668         rtx_insn **.
10669         (move_insn): Strengthen param "insn" and local "note" from rtx to
10670         rtx_insn *
10671         (insn_finishes_cycle_p): Likewise for param "insn".
10672         (max_issue): Likewise for local "insn".
10673         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
10674         to rtx_insn **.
10675         (commit_schedule): Strengthen param "prev_head" and local "insn"
10676         from rtx to rtx_insn *
10677         (prune_ready_list): Likewise for local "insn".
10678         (schedule_block): Likewise for locals "prev_head", "head", "tail",
10679         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
10680         (set_priorities): Likewise for local "prev_head".
10681         (try_ready): Likewise for param "next".
10682         (fix_tick_ready): Likewise.
10683         (change_queue_index): Likewise.
10684         (sched_extend_ready_list): Update for change to field "vec" of
10685         struct ready_list.
10686         (generate_recovery_code): Strengthen param "insn" from rtx to
10687         rtx_insn *.
10688         (begin_speculative_block): Likewise.
10689         (create_check_block_twin): Likewise for param "insn" and locals
10690         "label", "check", "twin".  Introduce local "check_pat" to avoid
10691         "check" being used as a plain rtx before being used as an insn.
10692         (fix_recovery_deps): Add a checked cast to rtx_insn * when
10693         extracting elements from ready_list.
10694         (sched_remove_insn): Strengthen param "insn" from rtx to
10695         rtx_insn *.
10696         (sched_emit_insn): Likewise for return type.
10697         (ready_remove_first_dispatch): Likewise for return type and local
10698         "insn".
10699
10700         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
10701
10702         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
10703         const rtx_insn *.
10704
10705         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
10706         from rtx to rtx_insn *.
10707         (add_dependence_list): Likewise for param "insn".  Add a checked
10708         cast.
10709         (add_dependence_list_and_free): Strengthen param "insn" from rtx
10710         to rtx_insn *.  Strengthen param "list_p" from rtx * to
10711         rtx_insn **.
10712         (chain_to_prev_insn): Strengthen param "insn" and locals
10713         "prec_nonnote", "i" from rtx to rtx_insn *.
10714         (flush_pending_lists): Likewise for param "insn".
10715         (cur_insn): Likewise for this variable.
10716         (haifa_start_insn): Add a checked cast.
10717         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
10718         (sched_analyze_reg): Likewise for param "insn".
10719         (sched_analyze_1): Likewise.
10720         (sched_analyze_2): Likewise.  Add checked casts.
10721         (sched_analyze_insn): Likewise.  Also for local "prev".
10722         (deps_analyze_insn): Likewise for param "insn".
10723         (sched_analyze): Likewise for params "head", "tail" and local "insn".
10724         (add_dependence_1): Likewise for params "insn", "elem".
10725         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
10726         (parse_add_or_inc): Likewise for param "insn".
10727         (find_inc): Likewise for local "inc_cand".
10728         (find_modifiable_mems): Likewise for params "head", "tail" and
10729         locals "insn", "next_tail".
10730
10731         * sched-ebb.c (init_ready_list): Likewise for local "insn".
10732         (begin_schedule_ready): Likewise for param "insn".
10733         (begin_move_insn): Likewise for params "insn" and "last".
10734         (ebb_print_insn): Strengthen param "insn" from const_rtx to
10735         const rtx_insn *.
10736         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
10737         (ebb_contributes_to_priority): Likewise for params "next", "insn".
10738         (ebb_add_remove_insn): Likewise for param "insn".
10739         (advance_target_bb): Likewise.
10740
10741         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
10742         "insn".
10743         (check_live): Likewise for param "insn".
10744         (init_ready_list): Likewise for local "insn".
10745         (can_schedule_ready_p): Likewise for param "insn".
10746         (begin_schedule_ready): Likewise.
10747         (new_ready): Likewise for param "next".
10748         (rgn_print_insn): Likewise for param "insn".
10749         (rgn_rank): Likewise for params "insn1", "insn2".
10750         (contributes_to_priority): Likewise for params "next", "insn".
10751         (rgn_insn_finishes_block_p): Likewise for param "insn".
10752         (add_branch_dependences): Likewise for params "head", "tail" and
10753         locals "insn", "last".
10754         (rgn_add_remove_insn): Likewise for param "insn".
10755         (advance_target_bb): Likewise.
10756
10757         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
10758         const_rtx to const rtx_insn *.
10759
10760         * sel-sched-dump.h (sel_print_insn): Likewise.
10761
10762         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
10763         (deps_init_id): Likewise.
10764
10765         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
10766         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
10767         rtx_insn **.
10768
10769 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10770
10771         * output.h (final_start_function): Strengthen param 1 from rtx to
10772         rtx_insn *.
10773
10774         * final.c (final_start_function): Likewise, renaming back from
10775         "uncast_first" to "first", and dropping the checked cast from rtx
10776         to rtx_insn *.
10777
10778 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10779
10780         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
10781         * final.c (final): Likewise.  Rename param back from
10782         "uncast_first" to "first" and eliminate the checked cast from rtx
10783         to rtx_insn *.
10784
10785 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10786
10787         * output.h (shorten_branches): Strengthen param from rtx to
10788         rtx_insn *.
10789
10790         * final.c (shorten_branches): Likewise, renaming param back from
10791         "uncast_first" to "first", and dropping the checked cast from rtx
10792         to rtx_insn *.
10793
10794         * genattr.c (gen_attr): Likewise when writing out the prototype of
10795         shorten_branches.
10796
10797 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10798
10799         * sched-int.h (struct haifa_sched_info): Strengthen fields
10800         "prev_head" and "next_tail" from rtx to rtx_insn *.
10801
10802 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10803
10804         * rtl.h (rtx_jump_table_data::get_labels): New method.
10805         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
10806         with use of the new rtx_jump_table_data::get_labels method.
10807         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
10808         to rtx_jump_table_data *.  Simplify by using get_labels method.
10809         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
10810         a dyn_cast, introducing local "table", using it to replace
10811         label-lookup logic with a get_labels method call.
10812         (patch_jump_insn): Simplify using get_labels method.
10813         * dwarf2cfi.c (create_trace_edges): Likewise.
10814         * rtlanal.c (label_is_jump_target_p): Likewise.
10815
10816 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10817
10818         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
10819         to rtx_insn *.
10820
10821         * emit-rtl.c (unshare_all_rtl_1): Likewise.
10822         (unshare_all_rtl_again): Likewise, also for local "p".
10823
10824 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10825
10826         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
10827         to rtx_insn *.
10828         * cfgrtl.c (delete_insn_and_edges): Likewise.
10829
10830 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10831
10832         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
10833         from rtx to rtx_insn *.
10834
10835         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
10836
10837 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10838
10839         * function.c (thread_prologue_and_epilogue_insns): Likewise for
10840         locals "returnjump", "epilogue_end", "insn", "next".
10841
10842         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
10843         "returnjump" from rtx * to rtx_insn **.
10844         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
10845
10846 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10847
10848         * basic-block.h (struct edge_def). Strengthen "r" within
10849         union edge_def_insns from rtx to rtx_insn *.
10850
10851         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
10852         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
10853         rtx_insn *.
10854         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
10855         from rtx to rtx_insn *.
10856         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
10857         rtx_insn *.
10858         * postreload-gcse.c (reg_killed_on_edge): Likewise.
10859         (reg_used_on_edge): Likewise.
10860         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
10861         (gt_pch_nx): New overload for rtx_insn *&.
10862         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
10863         from rtx to rtx_insn *.
10864
10865 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10866
10867         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
10868         from rtx to rtx_insn *.
10869         (BB_FOOTER): Replace function with access macro.
10870         (SET_BB_FOOTER): Delete.
10871
10872         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
10873         with BB_FOOTER.
10874         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
10875         (emit_barrier_after_bb): Likewise.
10876         (record_effective_endpoints): Likewise.
10877         (relink_block_chain): Likewise.
10878         (fixup_fallthru_exit_predecessor): Likewise.
10879         (cfg_layout_duplicate_bb): Likewise.
10880         (cfg_layout_split_block): Likewise.
10881         (cfg_layout_delete_block): Likewise.
10882         (cfg_layout_merge_blocks): Likewise.
10883         (BB_FOOTER): Delete function.
10884         (SET_BB_FOOTER): Delete function.
10885         * combine.c (update_cfg_for_uncondjump): Replace uses of
10886         SET_BB_FOOTER with BB_FOOTER.
10887
10888 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10889
10890         * except.h (struct eh_landing_pad_d): Strengthen field
10891         "landing_pad" from rtx to rtx_code_label *.
10892
10893         * except.c (sjlj_emit_dispatch_table): Likewise for param
10894         "dispatch_label"
10895         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
10896
10897 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10898
10899         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
10900         first param from rtx to rtx_insn *.
10901         * config/xtensa/xtensa.c (struct machine_function): Likewise for
10902         field "set_frame_ptr_insn".
10903         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
10904         "csend" from rtx to rtx_code_label *.
10905         (xtensa_expand_atomic): Likewise for local "csloop".
10906         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
10907         rtx_insn *.
10908         (xtensa_call_tls_desc): Likewise for return type and locals
10909         "call_insn", "insns".
10910         (xtensa_legitimize_tls_address): Likewise for local "insns".
10911         (xtensa_expand_prologue): Likewise for locals "insn", "first".
10912
10913 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10914
10915         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
10916         first param from rtx to rtx_insn *.
10917         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
10918         "insn".
10919
10920 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10921
10922         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
10923         Strengthen param 1 from rtx to rtx_insn *.
10924         (tilepro_output_cbranch): Likewise.
10925         (tilepro_adjust_insn_length): Likewise.
10926         (tilepro_final_prescan_insn): Likewise for sole param.
10927
10928         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
10929         Likewise for local "last".
10930         (cbranch_predicted_p): Likewise for param "insn".
10931         (tilepro_output_simple_cbranch_with_opcode): Likewise.
10932         (tilepro_output_cbranch_with_opcode): Likewise.
10933         (tilepro_output_cbranch): Likewise.
10934         (frame_emit_load): Likewise for return type and locals "seq",
10935         "insn".
10936         (emit_sp_adjust): Likewise for return type and local "insn".
10937         (tilepro_expand_epilogue): Likewise for locals "last_insn",
10938         "insn".
10939         (tilepro_adjust_insn_length): Likewise for param "insn".
10940         (next_insn_to_bundle): Likewise for return type and params
10941         "r", "end".
10942         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
10943         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
10944         local "new_insns".
10945         (match_addli_pcrel): Likewise for param "insn".
10946         (replace_addli_pcrel): Likewise.
10947         (match_auli_pcrel): Likewise.
10948         (replace_auli_pcrel): Likewise.
10949         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
10950         "next_insn".
10951         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10952         "queue", "next_queue", "prev".
10953         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
10954         (tilepro_final_prescan_insn): Likewise for param "insn".
10955
10956 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10957
10958         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
10959         Strengthen param 1 from rtx to rtx_insn *.
10960         (tilegx_output_cbranch): Likewise.
10961         (tilegx_adjust_insn_length): Likewise.
10962         (tilegx_final_prescan_insn): Likewise for sole param.
10963
10964         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
10965         or local "last".
10966         (cbranch_predicted_p): Likewise for param "insn".
10967         (tilegx_output_simple_cbranch_with_opcode): Likewise.
10968         (tilegx_output_cbranch_with_opcode): Likewise.
10969         (tilegx_output_cbranch): Likewise.
10970         (frame_emit_load): Likewise for return type.
10971         (set_frame_related_p): Likewise for locals "seq", "insn".
10972         (emit_sp_adjust): Likewise for return type, and for local "insn".
10973         Introduce local "pat" for use in place of "insn" where the latter
10974         isn't an instruction.
10975         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
10976         from rtx to rtx_insn *.
10977         (tilegx_adjust_insn_length): Likewise for param "insn".
10978         (next_insn_to_bundle): Likewise for return type and params "r" and
10979         "end".
10980         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
10981         "end".
10982         (replace_insns): Likewise for params "old_insn", "new_insns".
10983         (replace_mov_pcrel_step1): Likewise for param "insn" and local
10984         "new_insns".
10985         (replace_mov_pcrel_step2): Likewise.
10986         (replace_mov_pcrel_step3): Likewise.
10987         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
10988         "next_insn".
10989         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
10990         "queue", "next_queue", "prev".
10991         (tilegx_output_mi_thunk): Likewise for local "insn".
10992         (tilegx_final_prescan_insn): Likewise for param "insn".
10993
10994 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10995
10996         * config/spu/spu.c (frame_emit_store): Strengthen return type from
10997         rtx to rtx_insn *.
10998         (frame_emit_load): Likewise.
10999         (frame_emit_add_imm): Likewise, also for local "insn".
11000         (spu_expand_prologue): Likewise for local "insn".
11001         (struct spu_bb_info): Likewise for field "prop_jump".
11002         (emit_nop_for_insn): Likewise for param "insn" and local
11003         "new_insn".
11004         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11005         "hbr_insn".
11006         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11007         locals "hint", "insn".
11008         (get_branch_target): Likewise for param "branch".
11009         (insn_clobbers_hbr): Likewise for param "insn".
11010         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11011         locals "insn", "before_4", "before_16".
11012         (insert_hbrp): Likewise for local "insn".
11013         (spu_machine_dependent_reorg): Likewise for locals "branch",
11014         "insn", "next", "bbend".
11015         (uses_ls_unit): Likewise for param "insn".
11016         (get_pipe): Likewise.
11017         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11018         introducing a checked cast.
11019         (spu_sched_adjust_cost): Likewise for params "insn" and
11020         "dep_insn".
11021         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11022         (spu_sms_res_mii): Likewise.
11023
11024 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11025
11026         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11027         from rtx to rtx_insn *.
11028         (output_cbranch): Likewise for param 6.
11029         (output_return): Likewise for param 1.
11030         (output_sibcall): Likewise.
11031         (output_v8plus_shift): Likewise.
11032         (output_v8plus_mult): Likewise.
11033         (output_v9branch): Likewise for param 7.
11034         (output_cbcond):  Likewise for param 3.
11035
11036         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11037         for local "insn".
11038         (sparc_legitimize_pic_address): Likewise.
11039         (sparc_emit_call_insn): Likewise.
11040         (emit_save_or_restore_regs): Likewise.
11041         (emit_window_save): Likewise for return type and local "insn".
11042         (sparc_expand_prologue): Likewise for local "insn".
11043         (sparc_flat_expand_prologue): Likewise.
11044         (output_return): Likewise for param "insn".
11045         (output_sibcall): Likewise for param "insn" and local "delay".
11046         (output_ubranch): Likewise for param "insn".
11047         (output_cbranch): Likewise.
11048         (output_cbcond): Likewise.
11049         (output_v9branch): Likewise.
11050         (output_v8plus_shift): Likewise.
11051         (sparc_output_mi_thunk): Likewise for local "insn".
11052         (get_some_local_dynamic_name): Likewise.
11053         (output_v8plus_mult): Likewise for param "insn".
11054
11055 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11056
11057         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11058         from rtx to rtx_insn *.
11059         (output_branchy_insn): Likewise for param 3.
11060         (output_far_jump): Likewise for param 1.
11061         (final_prescan_insn): Likewise.
11062         (sh_insn_length_adjustment): Likewise for sole param.
11063
11064         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11065         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11066         rtx_code_label *.
11067         (sh_emit_compare_and_set): Likewise for local "lab".
11068         (output_far_jump): Strengthen param "insn" and local "prev" from
11069         rtx to rtx_insn *.
11070         (output_branchy_insn): Likewise for param "insn" and local
11071         "next_insn".
11072         (output_ieee_ccmpeq): Likewise for param "insn".
11073         (struct label_ref_list_d): Strengthen field "label" from rtx to
11074         rtx_code_label *.
11075         (pool_node): Likewise.
11076         (pool_window_label): Likewise for this global.
11077         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11078         (dump_table): Strengthen params "start", "barrier" and local
11079         "scan" from rtx to rtx_insn *.
11080         (broken_move): Likewise for param "insn".
11081         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11082         Strengthen param "first_mova" from rtx * to rtx_insn **.
11083         (mova_p): Likewise for param "insn".
11084         (fixup_mova): Likewise for param "mova".
11085         (find_barrier): Likewise for return type, params "mova" and
11086         "from", and locals "barrier_before_mova", "found_barrier",
11087         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11088         "label" from rtx to rtx_code_label *.
11089         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11090         rtx to rtx_insn *.
11091         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11092         (split_branches): Likewise for param "first" and local "insn".
11093         (final_prescan_insn): Likewise for param "insn".
11094         (sequence_insn_p): Likewise for locals "prev", "next".
11095         (sh_insn_length_adjustment): Likewise for param "insn".
11096         (sh_can_redirect_branch): Likewise for local "insn".
11097         (find_r0_life_regions): Likewise for locals "end", "insn".
11098         (sh_output_mi_thunk): Likewise for local "insns".
11099
11100 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11101
11102         * config/score/score.c (score_output_mi_thunk): Strengthen local
11103         "insn" from rtx to rtx_insn *.
11104         (score_prologue): Likewise.
11105
11106 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11107
11108         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11109         1 from rtx to rtx_insn *.
11110         (s390_emit_jump): Likewise for return type.
11111         (s390_emit_call): Likewise.
11112         (s390_load_got): Likewise.
11113
11114         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11115         variable.
11116         (s390_match_ccmode): Likewise for param "insn".
11117         (s390_emit_jump): Likewise for return type.
11118         (s390_split_branches): Likewise for local "label".
11119         (struct constant): Strengthen field "label" from rtx to
11120         rtx_code_label *.
11121         (struct constant_pool): Likewise for field "label".  Strengthen
11122         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11123         rtx_insn *.
11124         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11125         insns.
11126         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11127         (s390_end_pool): Likewise.
11128         (s390_dump_pool): Likewise for local "insn".
11129         (s390_mainpool_start): Likewise.
11130         (s390_chunkify_start): Likewise.
11131         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11132         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11133         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11134         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11135         rtx_insn *.
11136         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11137         "jump", "label", "next_insn".
11138         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11139         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11140         "tbegin_insn".
11141         (s390_load_got): Likewise for return type and local "insns".
11142         (s390_save_gprs_to_fprs): Likewise for local "insn".
11143         (s390_restore_gprs_from_fprs): Likewise.
11144         (pass_s390_early_mach::execute): Likewise.
11145         (s390_emit_prologue): Likewise for local "insns".
11146         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11147         rtx_code_label *.
11148         (s390_emit_call): Strengthen return type and local "insn" from
11149         rtx to rtx_insn *.
11150         (s390_emit_tpf_eh_return): Likewise for local "insn".
11151         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11152         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11153         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11154         local "cur_insn".
11155         (s390_non_addr_reg_read_p): Likewise for param "insn".
11156         (find_cond_jump): Likewise for return type and param "insn".
11157         (s390_swap_cmp): Likewise for param "insn".
11158         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11159         "prev_insn", "next_insn".
11160         (s390_reorg): Likewise for locals "insn", "target".
11161         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11162         (s390_sched_variable_issue): For now, rename param "insn" to
11163         "uncast_insn", introducing a checked cast.
11164         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11165         insn.
11166         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11167         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11168
11169 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11170
11171         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11172         param from rtx to rtx_insn *.
11173         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11174
11175 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11176
11177         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11178         4 from rtx to rtx_insn *.
11179         (rs6000_final_prescan_insn): Likewise for first param.
11180         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11181         local "insn".
11182         (rs6000_get_some_local_dynamic_name): Likewise.
11183         (output_cbranch): Likewise for param "insn".
11184         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11185         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11186         (rs6000_emit_allocate_stack): Likewise for local "insn".
11187         (load_cr_save): Likewise.
11188         (restore_saved_cr): Likewise.
11189         (restore_saved_lr): Likewise.
11190         (emit_cfa_restores): Likewise.
11191         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11192         "deleted_debug_label".
11193         (rs6000_output_mi_thunk): Likewise for local "insn".
11194         (rs6000_final_prescan_insn): Likewise for param "insn".
11195
11196 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11197
11198         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11199         Strengthen param "insn" from rtx to rtx_insn *.
11200         * config/picochip/picochip.c (picochip_current_prescan_insn):
11201         Likewise for this variable.
11202         (picochip_final_prescan_insn): Likewise for param "insn".
11203
11204 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11205
11206         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11207         from rtx to rtx_insn *.
11208         (pa_output_indirect_call): Likewise.
11209         (pa_adjust_insn_length): Likewise.
11210         (pa_attr_length_millicode_call): Likewise.
11211         (pa_attr_length_call): Likewise.
11212         (pa_attr_length_indirect_call): Likewise.
11213
11214         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11215         "insn".
11216         (pa_attr_length_millicode_call): Likewise.
11217         (pa_attr_length_call): Likewise.
11218         (pa_output_call): Likewise.
11219         (pa_attr_length_indirect_call): Likewise.
11220         (pa_output_indirect_call): Likewise.
11221
11222 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11223
11224         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11225         Strengthen first param from rtx to rtx_insn *.
11226         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11227         param "insn".
11228
11229 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11230
11231         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11232         type from rtx to rtx_insn *.
11233         (mips_expand_call): Likewise.
11234         (mips_adjust_insn_length): Likewise for first param.
11235         (mips_output_conditional_branch): Likewise.
11236         (mips_output_order_conditional_branch): Likewise.
11237         (mips_final_prescan_insn): Likewise.
11238
11239         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11240         rtx_insn * for the SEQUENCE case.
11241         (SEQ_END): Likewise.
11242         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11243         (mips_emit_call_insn): Likewise, also for local "insn".
11244         (mips16_gp_pseudo_reg): Likewise for local "scan".
11245         (mips16_build_call_stub): Likewise for return type and for local
11246         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11247         be an insn.
11248         (mips_expand_call): Strengthen return type and local "insn" from
11249         rtx to rtx_insn *.
11250         (mips_block_move_loop): Strengthen local "label" from rtx to
11251         rtx_code_label *.
11252         (mips_expand_synci_loop): Likewise for locals "label",
11253         "end_label".
11254         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11255         rtx_insn *.
11256         (mips16e_collect_argument_saves): Likewise for locals "insn",
11257         "next".
11258         (mips_find_gp_ref): Likewise for param of callback for "pred"
11259         param, and for local "insn".
11260         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11261         (mips_insn_has_flexible_gp_ref_p): Likewise.
11262         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11263         local "insn".
11264         (mips_epilogue_set_cfa): Likewise for local "insn".
11265         (mips_expand_epilogue): Likewise.
11266         (mips_adjust_insn_length): Likewise for param "insn".
11267         (mips_output_conditional_branch): Likewise.
11268         (mips_output_order_conditional_branch): Likewise.
11269         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11270         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11271         "falu2_turn_enabled_insn".
11272         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11273         "done_label" from rtx to rtx_code_label *.
11274         (struct mips16_constant): Likewise for field "label".
11275         (mips16_add_constant): Likewise for return type.
11276         (mips16_emit_constants_1): Strengthen return type and param "insn"
11277         from rtx to rtx_insn *.
11278         (mips16_emit_constants): Likewise for param "insn".
11279         (mips16_insn_length): Likewise.
11280         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11281         to rtx_code_label *.
11282         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11283         from rtx to rtx_insn *.
11284         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11285         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11286         (r10k_simplify_address): Strengthen param "insn" and local
11287         "def_insn" from rtx to rtx_insn *.
11288         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11289         rtx_insn *.
11290         (r10k_needs_protection_p_1): Update target type of cast of data
11291         from to rtx to rtx_insn *.
11292         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11293         rtx * to rtx_insn **.
11294         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11295         rtx_insn *.
11296         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11297         (mips_call_expr_from_insn): Likewise for param "insn".
11298         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11299         (mips_find_pic_call_symbol): Likewise for param "insn".
11300         (mips_annotate_pic_calls): Likewise for local "insn".
11301         (mips_sim_insn): Likewise for this variable.
11302         (struct mips_sim): Likewise for field "insn" within elements of
11303         last_set array.
11304         (mips_sim_wait_reg): Likewise for param "insn".
11305         (mips_sim_wait_regs): Likewise.
11306         (mips_sim_wait_units): Likewise.
11307         (mips_sim_wait_insn): Likewise.
11308         (mips_sim_issue_insn): Likewise.
11309         (mips_sim_finish_insn): Likewise.
11310         (mips_seq_time): Likewise for param "seq" and local "insn".
11311         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11312         locals "first", "second".
11313         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11314         "last", "last2", "next".
11315         (mips_avoid_hazard): Likewise for params "after", "insn".
11316         (mips_reorg_process_insns): Likewise for locals "insn",
11317         "last_insn", "subinsn", "next_insn".
11318         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11319         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11320         "jump_sequence".
11321         (mips_output_mi_thunk): Likewise for local "insn".
11322         (mips_final_prescan_insn): Likewise for param "insn".
11323
11324 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11325
11326         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11327         Strengthen return type and local "insns" from rtx to rtx_insn *.
11328         (microblaze_legitimize_tls_address): Likewise for local "insns".
11329         (microblaze_block_move_loop): Strengthen local "label" from rtx
11330         to rtx_code_label *.
11331         (microblaze_expand_prologue): Strengthen two locals named "insn"
11332         from rtx to rtx_insn *.
11333         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11334         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11335         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11336         to rtx_code_label *.
11337
11338 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11339
11340         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11341         param from rtx to rtx_insn *.
11342         (mep_reuse_lo): Likewise for third param.
11343         (mep_use_post_modify_p): Likewise for first param.
11344         (mep_core_address_length): Likewise.
11345         (mep_cop_address_length): Likewise.
11346         (mep_final_prescan_insn): Likewise.
11347         (mep_store_data_bypass_p): Likewise for both params.
11348         (mep_mul_hilo_bypass_p): Likewise.
11349         (mep_ipipe_ldc_p): Likewise for param.
11350
11351         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11352         (mep_rewrite_mult): Likewise.
11353         (mep_rewrite_mulsi3): Likewise.
11354         (mep_rewrite_maddsi3): Likewise.
11355         (mep_reuse_lo_p_1): Likewise.
11356         (mep_reuse_lo_p): Likewise.
11357         (mep_frame_expr): Likewise.
11358         (mep_make_parallel): Likewise for both params.
11359         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11360         local "insn".
11361         (mep_use_post_modify_p): Likewise for param "insn".
11362         (mep_core_address_length): Likewise.
11363         (mep_cop_address_length): Likewise.
11364         (mep_reg_set_in_function): Likewise for local "insn".
11365         (mep_asm_without_operands_p): Likewise.
11366         (F): Likewise for return type and param "x".
11367         (add_constant): Likewise for local "insn".
11368         (maybe_dead_move): Likewise for return type and local "insn".
11369         (mep_expand_prologue): Likewise for local "insn".
11370         (mep_final_prescan_insn): Likewise for param "insn".
11371         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11372         "next", "follow", "x".
11373         (mep_insert_repeat_label_last): Likewise for return type, param
11374         "last_insn", and locals "next", "prev".  Strengthen param "label"
11375         from rtx to rtx_code_label *.
11376         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11377         rtx_insn *.
11378         (struct mep_doloop_end): Likewise for fields "insn" and
11379         "fallthrough".
11380         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11381         Strengthen local "repeat_label" from rtx to rtx_code_label *.
11382         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11383         rtx_insn *.
11384         (mep_invert_branch): Likewise for params "insn" and "after".
11385         (mep_reorg_erepeat): Likewise for param "insns" and locals
11386         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
11387         "l" from rtx to rtx_code_label *.
11388         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11389         from rtx to rtx_insn *.
11390         (mep_reorg_addcombine): Likewise for param "insns" and locals
11391         "i", "n".
11392         (add_sp_insn_p): Likewise for param "insn".
11393         (mep_reorg_noframe): Likewise for param "insns" and locals
11394         "start_frame_insn", "end_frame_insn", "next".
11395         (mep_reorg): Likewise for local "insns".
11396         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
11397         cast.
11398         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
11399         (mep_mul_hilo_bypass_p): Likewise.
11400         (mep_ipipe_ldc_p): Likewise for param "insn".
11401         (mep_make_bundle): Likewise for return type, param "cop" and local
11402         "insn", splitting out the latter into a new local "seq" for when it
11403         is a SEQUENCE rather than an insn.
11404         (core_insn_p): Likewise for param "insn".
11405         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
11406         "last", "first", "note", "prev", "core_insn".
11407
11408 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11409
11410         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
11411         rtx to rtx_insn *.
11412         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
11413         (m68k_final_prescan_insn): Likewise for first param.
11414
11415         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
11416         (m68k_set_frame_related): Likewise for param "insn".
11417         (output_btst): Likewise for param "insn".
11418         (m68k_final_prescan_insn): Likewise.
11419         (m68k_move_to_reg): Likewise for local "insn".
11420         (m68k_call_tls_get_addr): Likewise for local "insns".
11421         (m68k_call_m68k_read_tp): Likewise.
11422         (strict_low_part_peephole_ok): Likewise for param "first_insn".
11423         (m68k_output_mi_thunk): Likewise for local "insn".
11424
11425 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11426
11427         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
11428         first param from rtx to rtx_insn *.
11429         (iq2000_adjust_insn_length): Likewise.
11430         (iq2000_output_conditional_branch): Likewise.
11431         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
11432         "insn" and local "nop_insn".
11433         (iq2000_annotate_frame_insn): Likewise for param "insn".
11434         (iq2000_expand_prologue): Likewise for both locals "insn".
11435         (iq2000_adjust_insn_length): Likewise for param "insn".
11436         (iq2000_output_conditional_branch): Likewise.
11437
11438 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11439
11440         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
11441         "insns" from rtx to rtx_insn *.
11442         (ia64_emit_cond_move): Likewise for locals "insn", "first".
11443         (struct spill_fill_data): Likewise for field "init_after" and for
11444         elements of array field "prev_insn".
11445         (spill_restore_mem): Likewise for locals "insn", "first".
11446         (do_spill): Likewise for local "insn".
11447         (do_restore): Likewise.
11448         (ia64_expand_prologue): Likewise.
11449         (ia64_expand_epilogue): Likewise.
11450         (emit_insn_group_barriers): Likewise for locals "insn",
11451         "last_label".
11452         (emit_all_insn_group_barriers): Likewise for locals "insn",
11453         "last".
11454         (dfa_stop_insn): Likewise for this global.
11455         (dfa_pre_cycle_insn): Likewise.
11456         (ia64_nop): Likewise.
11457         (final_emit_insn_group_barriers): Likewise for locals "insn",
11458         "last".
11459         (emit_predicate_relation_info): Likewise for locals "head", "n",
11460         "insn", "b", "a".
11461         (ia64_reorg): Likewise for local "insn".
11462         (ia64_output_mi_thunk): Likewise.
11463         (expand_vec_perm_interleave_2): Likewise for local "seq".
11464
11465 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11466
11467         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
11468         param 1 "insn" from rtx to rtx_insn *.
11469         (ix86_use_lea_for_mov): Likewise.
11470         (ix86_avoid_lea_for_addr): Likewise.
11471         (ix86_split_lea_for_addr): Likewise.
11472         (ix86_lea_for_add_ok): Likewise.
11473         (ix86_output_call_insn): Likewise.
11474
11475         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
11476         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
11477         (ix86_output_function_epilogue): Likewise for locals "insn",
11478         "deleted_debug_label".
11479         (legitimize_tls_address): Likewise for local "insn".
11480         (get_some_local_dynamic_name): Likewise.
11481         (increase_distance): Likewise for params "prev", "next".
11482         (distance_non_agu_define_in_bb): Likewise for params "insn",
11483         "start" and locals "prev", "next".
11484         (distance_non_agu_define): Likewise for param "insn".
11485         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
11486         locals "next", "prev".
11487         (distance_agu_use): Likewise for param "insn".
11488         (ix86_lea_outperforms): Likewise.
11489         (ix86_ok_to_clobber_flags): Likewise.
11490         (ix86_avoid_lea_for_add): Likewise.
11491         (ix86_use_lea_for_mov): Likewise.
11492         (ix86_avoid_lea_for_addr): Likewise.
11493         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
11494         (ix86_split_lea_for_addr): Likewise for param "insn".
11495         (ix86_lea_for_add_ok): Likewise for param "insn".
11496         (ix86_expand_carry_flag_compare): Likewise for local
11497         "compare_seq".
11498         (ix86_expand_int_movcc): Likewise.
11499         (ix86_output_call_insn): Likewise for param "insn".
11500         (ix86_output_call_insn): Likewise for local "i".
11501         (x86_output_mi_thunk): Introduce local "insn", using it in place
11502         of "tmp" when dealing with insns.
11503         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
11504         "start".
11505         (ix86_pad_returns): Likewise for locals "ret", "prev".
11506         (ix86_count_insn_bb): Likewise for local "insn".
11507         (ix86_pad_short_function): Likewise for locals "ret", "insn".
11508         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
11509         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
11510         (expand_vec_perm_interleave2): Likewise for local "seq".
11511         (expand_vec_perm_vperm2f128_vblend): Likewise.
11512         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
11513         call to for_each_rtx with for_each_rtx_in_insn.
11514
11515 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11516
11517         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
11518         "label" from rtx to rtx_code_label *.
11519         (ix86_expand_prologue): Likewise.
11520         (ix86_expand_split_stack_prologue): Likewise for locals "label",
11521         "varargs_label".
11522         (ix86_split_idivmod): Likewise for locals "end_label" and
11523         "qimode_label".
11524         (ix86_expand_branch): Likewise for local "label2".
11525         (ix86_expand_aligntest): Likewise for return type and local "label".
11526         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
11527         "top_label".
11528         (expand_movmem_epilogue): Likewise for the various locals named
11529         "label".
11530         (expand_setmem_epilogue): Likewise.
11531         (expand_small_movmem_or_setmem): Likewise for local "label".
11532         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11533         Strengthen param "done_label" from rtx * to rtx_code_label **.
11534         Strengthen locals "loop_label" and "label" from rtx to
11535         rtx_code_label *.
11536         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
11537         Likewise for locals "loop_label", "label".
11538         (ix86_expand_set_or_movmem): Likewise for locals "label",
11539         "jump_around_label", "hot_label".
11540         (ix86_expand_strlensi_unroll_1): Likewise for locals
11541         "align_2_label", align_3_label", "align_4_label", "end_0_label",
11542         "end_2_label".
11543         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
11544         (void ix86_emit_i387_log1p): Likewise for locals "label1",
11545         "label2", "jump_label".
11546         (ix86_expand_sse_compare_and_jump): Likewise for return type and
11547         local "label".
11548         (ix86_expand_lfloorceil): Likewise for local "label".
11549         (ix86_expand_rint): Likewise.
11550         (ix86_expand_floorceildf_32): Likewise.
11551         (ix86_expand_floorceil): Likewise.
11552         (ix86_expand_rounddf_32): Likewise.
11553         (ix86_expand_trunc): Likewise.
11554         (ix86_expand_truncdf_32): Likewise.
11555         (ix86_expand_round): Likewise.
11556
11557 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11558
11559         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
11560         first param from rtx to rtx_insn *.
11561         (h8300_insn_length_from_table): Likewise.
11562         * config/h8300/h8300.c (F): Likewise for return type and param
11563         "x".
11564         (Fpa): Add a checked cast to rtx_insn *.
11565         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
11566         rtx_insn *.
11567         (final_prescan_insn): Likewise for param "insn".
11568         (h8300_binary_length): Likewise.
11569         (h8300_insn_length_from_table): Likewise.
11570
11571 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11572
11573         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
11574         Strengthen first param "insn" from rtx to rtx_insn *.
11575
11576         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
11577         Likewise.
11578         (frame_insn): Likewise for return type.  Introduce local "insn"
11579         for use in place of local "x" for use as an rtx_insn *.
11580         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
11581         (epiphany_expand_prologue): Likewise for local "insn".
11582         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
11583         * config/epiphany/resolve-sw-modes.c
11584         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
11585         "seq".
11586
11587 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11588
11589         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
11590         param from rtx to rtx_insn *.
11591         (c6x_final_prescan_insn): Likewise for first param.
11592
11593         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
11594         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
11595         (c6x_expand_compare): Strengthen local "insns" from rtx to
11596         rtx_insn *.
11597         (c6x_get_unit_specifier): Likewise for param "insn".
11598         (c6x_print_unit_specifier_field): Likewise.
11599         (c6x_final_prescan_insn): Likewise.
11600         (emit_add_sp_const): Likewise for local "insn".
11601         (c6x_expand_prologue): Likewise.
11602
11603 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11604
11605         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
11606         param 1 from rtx to rtx_insn *.
11607         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
11608         the various locals named "insn".
11609         (expand_epilogue_reg_restore): Likewise.
11610         (frame_related_constant_load): Likewise.
11611         (add_to_reg): Likewise.
11612         (emit_link_insn): Likewise.
11613         (do_link): Likewise.
11614         (expand_interrupt_handler_prologue): Likewise.
11615         (branch_dest): Likewise for param "branch".
11616         (asm_conditional_branch): Likewise for param "insn".
11617         (gen_one_bundle): Likewise for elements of param "slot" and local
11618         "t".
11619         (bfin_gen_bundles): Likewise for locals "insn", "next" and
11620         elements of local "slot".
11621         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11622         "queue", "next_queue", "prev".
11623         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
11624         (add_sched_insns_for_speculation): Likewise for local "insn".
11625
11626 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11627
11628         * config/avr/avr-protos.h (output_movqi): Strengthen first param
11629         from rtx to rtx_insn *.
11630         (output_movhi): Likewise.
11631         (output_movsisf): Likewise.
11632         (avr_out_tstsi): Likewise.
11633         (avr_out_tsthi): Likewise.
11634         (avr_out_tstpsi): Likewise.
11635         (avr_out_compare): Likewise.
11636         (avr_out_compare64): Likewise.
11637         (avr_out_movpsi): Likewise.
11638         (ashlqi3_out): Likewise.
11639         (ashlhi3_out): Likewise.
11640         (ashlsi3_out): Likewise.
11641         (ashrqi3_out): Likewise.
11642         (ashrhi3_out): Likewise.
11643         (ashrsi3_out): Likewise.
11644         (lshrqi3_out): Likewise.
11645         (lshrhi3_out): Likewise.
11646         (lshrsi3_out): Likewise.
11647         (avr_out_ashlpsi3): Likewise.
11648         (avr_out_ashrpsi3): Likewise.
11649         (avr_out_lshrpsi3): Likewise.
11650         (avr_out_fract): Likewise.
11651         (avr_out_sbxx_branch): Likewise.
11652         (avr_out_round): Likewise.
11653         (avr_out_xload): Likewise.
11654         (avr_out_movmem): Likewise.
11655         (adjust_insn_length): Likewise.
11656         (avr_out_lpm): Likewise.
11657         (reg_unused_after): Likewise.
11658         (_reg_unused_after): Likewise.
11659         (avr_jump_mode): Likewise for second param.
11660         (jump_over_one_insn): Likewise for first param.
11661         (avr_final_prescan_insn): Likewise.
11662         (out_shift_with_cnt): Likewise for second param.
11663
11664         * config/avr/avr.c (get_sequence_length): Likewise for param
11665         "insns" and local "insn".
11666         (emit_push_byte): Likewise for local "insn".
11667         (emit_push_sfr): Likewise.
11668         (avr_prologue_setup_frame): Likewise for locals "insn",
11669         "fp_plus_insns", "sp_plus_insns".
11670         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
11671         "sp_plus_insns".
11672         (avr_jump_mode): Likewise for param "insn".
11673         (avr_final_prescan_insn): Likewise.
11674         (avr_find_unused_d_reg): Likewise.
11675         (avr_out_lpm_no_lpmx): Likewise.
11676         (avr_out_lpm): Likewise.
11677         (avr_out_xload): Likewise.
11678         (output_movqi): Likewise.
11679         (output_movhi): Likewise.
11680         (out_movqi_r_mr): Likewise.
11681         (out_movhi_r_mr): Likewise.
11682         (out_movsi_r_mr): Likewise.
11683         (out_movsi_mr_r): Likewise.
11684         (output_movsisf): Likewise.
11685         (avr_out_load_psi): Likewise.
11686         (avr_out_store_psi): Likewise.
11687         (avr_out_movpsi): Likewise.
11688         (out_movqi_mr_r): Likewise.
11689         (avr_out_movhi_mr_r_xmega): Likewise.
11690         (out_movhi_mr_r): Likewise.
11691         (compare_condition): Likewise for param "insn" and local "next".
11692         (compare_sign_p): Likewise for param "insn".
11693         (compare_diff_p): Likewise.
11694         (compare_eq_p): Likewise.
11695         (avr_out_compare): Likewise.
11696         (avr_out_compare64): Likewise.
11697         (avr_out_tsthi): Likewise.
11698         (avr_out_tstpsi): Likewise.
11699         (avr_out_tstsi): Likewise.
11700         (out_shift_with_cnt): Likewise.
11701         (ashlqi3_out): Likewise.
11702         (ashlhi3_out): Likewise.
11703         (avr_out_ashlpsi3): Likewise.
11704         (ashlsi3_out): Likewise.
11705         (ashrqi3_out): Likewise.
11706         (ashrhi3_out): Likewise.
11707         (avr_out_ashrpsi3): Likewise.
11708         (ashrsi3_out): Likewise.
11709         (lshrqi3_out): Likewise.
11710         (lshrhi3_out): Likewise.
11711         (avr_out_lshrpsi3): Likewise.
11712         (lshrsi3_out): Likewise.
11713         (avr_out_fract): Likewise.
11714         (avr_out_round): Likewise.
11715         (avr_adjust_insn_length): Likewise.
11716         (reg_unused_after): Likewise.
11717         (_reg_unused_after): Likewise.
11718         (avr_compare_pattern): Likewise.
11719         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
11720         and locals "branch1", "branch2", "insn2", "jump".
11721         (avr_reorg): Likewise for local "insn".
11722         (avr_2word_insn_p): Likewise for param "insn".
11723         (jump_over_one_insn_p): Likewise.
11724         (avr_out_sbxx_branch): Likewise.
11725         (avr_out_movmem): Likewise.
11726
11727 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11728
11729         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
11730         param from rtx to rtx_insn *.
11731         (thumb1_final_prescan_insn): Likewise.
11732         (thumb2_final_prescan_insn): Likewise.
11733
11734         * config/arm/arm.c (emit_set_insn): Strengthen return type from
11735         rtx to rtx_insn *.
11736         (struct minipool_node): Likewise for field "insn".
11737         (dump_minipool): Likewise for param "scan".
11738         (create_fix_barrier): Likewise for local "from".  Strengthen local
11739         "label" from rtx to rtx_code_label *.
11740         (push_minipool_barrier): Strengthen param "insn" from rtx to
11741         rtx_insn *.
11742         (push_minipool_fix): Likewise.
11743         (note_invalid_constants): Likewise.
11744         (thumb2_reorg): Likewise for local "insn".
11745         (arm_reorg): Likewise.
11746         (thumb2_final_prescan_insn): Likewise for param
11747         "insn" and local "first_insn".
11748         (arm_final_prescan_insn): Likewise for param "insn" and locals
11749         "start_insn", "this_insn".
11750         (arm_debugger_arg_offset): Likewise for param "insn".
11751         (thumb1_emit_multi_reg_push): Likewise for return type and local
11752         "insn".
11753         (thumb1_final_prescan_insn): Likewise for param "insn".
11754         (thumb_far_jump_used_p): Likewise for local "insn".
11755         (thumb1_expand_prologue): Likewise.
11756         (arm_expand_epilogue_apcs_frame): Likewise.
11757         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
11758         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
11759         from rtx to rtx_code_label *.
11760         (arm_split_atomic_op): Likewise for local "label".
11761         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
11762
11763 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11764
11765         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
11766         first param from rtx to rtx_insn *.
11767         (arc_verify_short): Likewise.
11768         (arc_short_long): Likewise.
11769         (arc_need_delay): Likewise.
11770
11771         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
11772         "target_insn".
11773         (arc_ccfsm_advance): Likewise for param "insn" and locals
11774         "start_insn", "this_insn".
11775         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
11776         (arc_ccfsm_post_advance): Likewise for param "insn".
11777         (arc_next_active_insn): Likewise for return type and param "insn".
11778         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
11779         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
11780         (output_short_suffix): Likewise for local "insn".
11781         (arc_final_prescan_insn): Likewise for param "insn".  Remove
11782         now-redundant checked cast.
11783         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
11784         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
11785         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
11786         for use where lc_set became an insn.
11787         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
11788         rtx to rtx_insn *.
11789         (arc_get_insn_variants): Likewise for local "prev".
11790         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
11791         "next".
11792         (arc_predicate_delay_insns): Likewise for local "insn".
11793         (arc_pad_return): Likewise for local "prev".  For now, add a
11794         checked cast when extracting the insn from "final_sequence".
11795         (arc_short_long): Likewise for param "insn".
11796         (arc_need_delay): Likewise for param "insn" and local "next".
11797         (arc_label_align): Likewise for locals "prev", "next".
11798
11799 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11800
11801         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
11802         "insn" from rtx to rtx_insn *.
11803         (alpha_gp_save_rtx): Likewise for local "seq".
11804         (alpha_instantiate_decls): Likewise for local "top".
11805         (get_some_local_dynamic_name): Likewise for local "insn".
11806         (alpha_does_function_need_gp): Likewise.
11807         (set_frame_related_p): Likewise for return type and for locals
11808         "seq" and "insn".
11809         (emit_frame_store_1): Likewise for local "insn".
11810         (alpha_expand_prologue): Likewise for locals "insn", "seq".
11811         (alpha_end_function): Likewise for local "insn".
11812         (alpha_output_mi_thunk_osf): Likewise.
11813         (alphaev4_insn_pipe): Likewise for param "insn".
11814         (alphaev5_insn_pipe): Likewise.
11815         (alphaev4_next_group): Likewise for return type and param 1
11816         "insn".
11817         (alphaev5_next_group): Likewise.
11818         (alpha_align_insns_1): Likewise for return type and param 1 of
11819         callback param "next_group", and for locals "i", "next", "prev",
11820         "where", "where2", "insn".
11821
11822 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
11823
11824         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
11825         rather than modifying the stmt.
11826
11827 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11828
11829         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
11830         cgraph_state conversion.
11831
11832 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11833
11834         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11835         Strengthen local "insns" from rtx to rtx_insn *.
11836         (aarch64_set_frame_expr): Likewise for local "insn".
11837         (aarch64_save_or_restore_fprs): Likewise.
11838         (aarch64_save_or_restore_callee_save_registers): Likewise.
11839         (aarch64_expand_prologue): Likewise.
11840         (aarch64_expand_epilogue): Likewise.
11841         (aarch64_output_mi_thunk): Likewise.
11842         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
11843         "label2" from rtx to rtx_code_label *.
11844         (aarch64_split_atomic_op): Likewise for local "label".
11845
11846 2014-08-25  Martin Liska  <mliska@suse.cz>
11847
11848         * cgraph.h (symtab_node):
11849         (bool needed_p (void)): created from decide_is_symbol_needed
11850         (bool referred_to_p (void)): created from referred_to_p
11851         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
11852         * cgraph.h (cgraph_node):
11853         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
11854         (void expand (void)): created from expand_function
11855         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
11856         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
11857         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
11858         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
11859         * cgraph.h (varpool_node):
11860         (static void add (tree decl): created from varpool_add_new_variable
11861         * cgraph.h (cgraph_edge):
11862         void remove (void);
11863         (void remove_caller (void)): created from cgraph_edge_remove_caller
11864         (void remove_callee (void)): created from cgraph_edge_remove_callee
11865         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
11866           created from cgraph_set_call_stmt
11867         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
11868         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
11869         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
11870           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
11871         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
11872           created from cgraph_speculative_call_info
11873         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
11874           int freq_scale, bool update_original)): created from cgraph_clone_edge
11875         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
11876         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
11877         (bool recursive_p (void)): created from cgraph_edge_recursive_p
11878         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
11879         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
11880         (static void rebuild_references (void)): created from cgraph_rebuild_references
11881         * cgraph.h (symbol_table):
11882         (create_reference): renamed from add_reference
11883         (maybe_create_reference): renamed from maybe_add_reference
11884         (void register_symbol (symtab_node *node)): new function
11885         (void clear_asm_symbols (void)): new function
11886         (void unregister (symtab_node *node)): new function
11887         (void release_symbol (cgraph_node *node, int uid)): new function
11888         (cgraph_node * allocate_cgraph_symbol (void)): new function
11889         (void initialize (void)): created from cgraph_init
11890         (symtab_node *first_symbol (void)):new function
11891         (asm_node *first_asm_symbol (void)):new function
11892         (symtab_node *first_defined_symbol (void)):new function
11893         (varpool_node *first_variable (void)):new function
11894         (varpool_node *next_variable (varpool_node *node)):new function
11895         (varpool_node *first_static_initializer (void)):new function
11896         (varpool_node *next_static_initializer (varpool_node *node)):new function
11897         (varpool_node *first_defined_variable (void)):new function
11898         (varpool_node *next_defined_variable (varpool_node *node)):new function
11899         (cgraph_node *first_defined_function (void)):new function
11900         (cgraph_node *next_defined_function (cgraph_node *node)):new function
11901         (cgraph_node *first_function (void)):new function
11902         (cgraph_node *next_function (cgraph_node *node)):new function
11903         (cgraph_node *first_function_with_gimple_body (void)):new function
11904         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
11905         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
11906           created from symtab_remove_unreachable_nodes
11907         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
11908         (void process_new_functions (void)): created from cgraph_process_new_functions
11909         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
11910         (bool output_variables (void)): created from varpool_node::output_variables
11911         (void output_asm_statements (void)): created from output_asm_statements
11912         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
11913         (void compile (void)): created from compile
11914         (void output_weakrefs (void)): created from output_weakrefs
11915         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
11916         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
11917           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
11918         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
11919         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
11920           created from cgraph_next_function_with_gimple_body
11921         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
11922           created from cgraph_remove_edge_removal_hook
11923         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
11924           created from cgraph_add_node_removal_hook
11925         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
11926           created from cgraph_remove_node_removal_hook
11927         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
11928           created from varpool_add_node_removal_hook
11929         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
11930           created from varpool_remove_node_removal_hook
11931         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
11932           created from cgraph_add_function_insertion_hook
11933         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
11934           created from cgraph_remove_function_insertion_hook
11935         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
11936           created from varpool_add_variable_insertion_hook
11937         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
11938           created from varpool_remove_variable_insertion_hook
11939         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
11940           created from cgraph_add_edge_duplication_hook
11941         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
11942           created from cgraph_remove_edge_duplication_hook
11943         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
11944           created from cgraph_add_node_duplication_hook
11945         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
11946           created from cgraph_remove_node_duplication_hook
11947         (void call_edge_removal_hooks (cgraph_edge *e)):
11948           created from cgraph_call_edge_removal_hooks
11949         (void call_cgraph_insertion_hooks (cgraph_node *node)):
11950           created from call_function_insertion_hooks
11951         (void call_cgraph_removal_hooks (cgraph_node *node)):
11952           created from cgraph_call_node_removal_hooks
11953         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
11954           created from cgraph_node::call_duplication_hooks
11955         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
11956           created from cgraph_call_edge_duplication_hooks
11957         (void call_varpool_removal_hooks (varpool_node *node)):
11958           created from varpool_call_node_removal_hooks
11959         (void call_varpool_insertion_hooks (varpool_node *node)):
11960           created from varpool_call_variable_insertion_hooks
11961         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
11962           created from insert_to_assembler_name_hash
11963         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
11964           created from unlink_from_assembler_name_hash
11965         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
11966           created from symtab_prevail_in_asm_name_hash
11967         (void symtab_initialize_asm_name_hash (void)):
11968           created from symtab_initialize_asm_name_hash
11969         (void change_decl_assembler_name (tree decl, tree name)):
11970           created from change_decl_assembler_name
11971         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
11972         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
11973           created from decl_assembler_name_hash
11974         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
11975           created from decl_assembler_name_equal
11976         (static hashval_t hash_node_by_assembler_name (const void *p)):
11977           created from hash_node_by_assembler_name
11978         (static int eq_assembler_name (const void *p1, const void *p2)):
11979           created from eq_assembler_name
11980
11981 2014-08-25  Marek Polacek  <polacek@redhat.com>
11982
11983         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
11984
11985 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
11986
11987         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
11988         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
11989         SWI1248_AVX512BW mode iterator.
11990
11991 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11992
11993         PR target/62111
11994         * config/sh/predicates.md (general_extend_operand): Disable
11995         TRUNCATE before reload completes.
11996
11997 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
11998
11999         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12000
12001 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12002
12003         PR target/61996
12004         * config/sh/sh.opt (musermode): Allow negative form.
12005         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12006         targets that don't support it.
12007         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12008         Document -mno-usermode option.
12009
12010 2014-08-24  Kito Cheng  <kito@0xlab.org>
12011
12012         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12013         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12014         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12015         * doc/tm.texi: Regenerate.
12016
12017 2014-08-24  Kito Cheng  <kito@0xlab.org>
12018
12019         * ira.c: Fix typo in comment.
12020
12021 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12022
12023         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12024         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12025
12026 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12027
12028         PR target/62038
12029         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12030         last_address when the current function is a thunk.
12031         (pa_asm_output_mi_thunk): When we don't have named sections or they
12032         are not being used, check that thunk can reach the stub table with a
12033         short branch.
12034
12035 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12036
12037         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12038         rtx_insn *.
12039         (pass_web::execute): Likewise for local "insn".
12040
12041 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12042
12043         * var-tracking.c (struct micro_operation_def): Strengthen field
12044         "insn" from rtx to rtx_insn *.
12045         (struct emit_note_data_def): Likewise.
12046         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12047         (vt_stack_adjustments): Likewise for local "insn".
12048         (adjust_insn): Likewise for param "insn".
12049         (val_store): Likewise.
12050         (val_resolve): Likewise.
12051         (struct count_use_info): Likewise for field "insn".
12052         (log_op_type): Likewise for param "insn".
12053         (reverse_op): Likewise.
12054         (prepare_call_arguments): Likewise.
12055         (add_with_sets):  The initial param takes an insn, but we can't
12056         yet strengthen it from rtx to rtx_insn * since it's used as a
12057         cselib_record_sets_hook callback.  For now rename initial param
12058         from "insn" to "uncast_insn", and introduce a local "insn" of
12059         the stronger rtx_insn * type, with a checked cast.
12060         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12061         rtx_insn *.
12062         (emit_note_insn_var_location): Likewise.
12063         (emit_notes_for_changes): Likewise.
12064         (emit_notes_for_differences): Likewise.
12065         (next_non_note_insn_var_location): Likewise for return type and
12066         for param "insn".
12067         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12068         (vt_initialize): Likewise for local "insn".
12069         (delete_debug_insns): Likewise for locals "insn" and "next".
12070
12071 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12072
12073         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12074         rtx_insn *.
12075         (mark_constant_pool): Likewise for local "insn".
12076
12077 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12078
12079         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12080         rtx to rtx_insn *.
12081         (dead_debug_promote_uses): Likewise.
12082         (dead_debug_insert_temp): Likewise.
12083
12084 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12085
12086         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12087         from const_rtx to const rtx_insn *.
12088         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12089         from rtx to rtx_insn *.
12090         (store_killed_before): Strengthen param "insn" from const_rtx to
12091         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12092         (find_moveable_store): Strengthen param "insn" from rtx to
12093         rtx_insn *.
12094         (compute_store_table): Likewise for local "insn".
12095         (insert_insn_start_basic_block): Likewise for param "insn" and
12096         locals "prev", "before", "insn".
12097         (insert_store): For now, add a checked cast to rtx_insn * on the
12098         result of gen_move_insn.
12099         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12100         to rtx_insn *.
12101         (replace_store_insn): Likewise.  For now, add a checked cast to
12102         rtx_insn * on the result of gen_move_insn.
12103
12104 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12105
12106         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12107         rtx_insn *.
12108         (expand_sjlj_dispatch_table): Likewise.
12109
12110 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12111
12112         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12113         "insn" from rtx to rtx_insn *.
12114
12115 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12116
12117         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12118         "insn" from rtx to rtx_insn *.
12119         (dup_block_and_redirect): Likewise for param 3 "before".
12120
12121         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12122         from rtx to rtx_insn *.
12123         (move_insn_for_shrink_wrap): Likewise.
12124         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12125         (dup_block_and_redirect): Likewise for param "before" and local
12126         "insn".
12127         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12128         "end".
12129         (convert_to_simple_return): Likewise for local "start".
12130
12131         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12132         Strengthen local "insn" from rtx to rtx_insn *, for use when
12133         invoking requires_stack_frame_p.
12134
12135 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12136
12137         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12138         rtx_insn *.
12139         (speculate_expr): Likewise for locals "orig_insn_rtx",
12140         "spec_insn_rtx".
12141         (eq_transformed_insns): Likewise for locals "i1", "i2".
12142         (check_for_new_jump): Likewise for return type and local "end".
12143         (find_new_jump): Likewise for return type and local "jump".
12144         (sel_split_edge): Likewise for local "jump".
12145         (sel_create_recovery_block): Likewise.
12146         (sel_redirect_edge_and_branch_force): Likewise.
12147         (sel_redirect_edge_and_branch): Likewise.
12148
12149 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12150
12151         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12152         "new_insn" from rtx to rtx_insn *.
12153         (create_insn_rtx_with_rhs): Likewise for return type and for local
12154         "insn_rtx".
12155         (create_insn_rtx_with_lhs): Likewise.
12156         (create_speculation_check): Likewise for local "insn_rtx".
12157         (implicit_clobber_conflict_p): Likewise for local "insn".
12158         (get_expr_cost): Likewise.
12159         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12160         (move_cond_jump): Likewise for locals "next", "prev", "link",
12161         "head", "from", "to".
12162
12163 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12164
12165         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12166         "next" from rtx to rtx_insn *.
12167         (find_conditional_protection): Likewise for local "next".
12168         (is_conditionally_protected): Likewise for local "insn1".
12169         (is_pfree): Likewise for locals "insn1", "insn2".
12170
12171 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12172
12173         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12174         from rtx to rtx_insn *.
12175
12176         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12177         locals "insn1", "insn2" from rtx to rtx_insn *.
12178         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12179         locals "insn", "prev", "last_jump", "next_tail".
12180         (schedule_ebb): Likewise for params "head", "tail".
12181         (schedule_ebbs): Likewise for locals "tail", "head".
12182
12183         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12184         to rtx_insn on "last_insn" in one of the invocations of
12185         schedule_ebb.
12186
12187 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12188
12189         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12190         "elem", "insn" from rtx to rtx_insn *.
12191         (change_spec_dep_to_hard): Likewise.
12192         (get_back_and_forw_lists): Likewise for local "con".
12193         (sd_add_dep): Likewise for locals "elem", "insn".
12194         (sd_resolve_dep): Likewise for locals "pro", "con".
12195         (sd_unresolve_dep): Likewise.
12196         (sd_delete_dep): Likewise.
12197         (chain_to_prev_insn): Likewise for local "pro".
12198         (find_inc): Likewise for locals "pro", "con".
12199
12200 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12201
12202         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12203         to rtx_insn *.
12204         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12205         const rtx_insn *.
12206         (modified_between_p): Strengthen local "insn" from rtx to
12207         rtx_insn *.
12208         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12209         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12210         const rtx_insn *.
12211
12212 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12213
12214         * resource.c (next_insn_no_annul): Strengthen local "next" from
12215         rtx to rtx_insn *.
12216         (mark_referenced_resources): Likewise for local "insn".
12217
12218 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12219
12220         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12221         to rtx_insn *.
12222         (find_reloads): Likewise for param 1.
12223         (subst_reloads): Likewise for sole param.
12224         (find_equiv_reg): Likwise for param 2.
12225         (regno_clobbered_p): Likwise for param 2.
12226         (reload): Likewise for param 1.
12227
12228         * caller-save.c (save_call_clobbered_regs): Strengthen local
12229         "insn" from rtx to rtx_insn *.
12230         (insert_one_insn): Likewise for local "insn".
12231
12232         * reload.c (this_insn): Likewise for this global.
12233         (find_reloads): Likewise for param "insn".
12234         (find_reloads_toplev): Likewise.
12235         (find_reloads_address): Likewise.
12236         (subst_reg_equivs): Likewise.
12237         (update_auto_inc_notes): Likewise.
12238         (find_reloads_address_1): Likewise.
12239         (find_reloads_subreg_address): Likewise.
12240         (subst_reloads): Likewise.
12241         (find_equiv_reg): Likewise, also for local "p".
12242         (regno_clobbered_p): Likewise for param "insn".
12243
12244         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12245         array.
12246         (spill_reg_store): Likewise for the elements of this array.
12247         (remove_init_insns): Likewise for local "equiv_insn".
12248         (will_delete_init_insn_p): Likewise for param "insn".
12249         (reload): Likewise for param ""first" and local "insn".
12250         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12251         rtx_insn *.
12252         (calculate_elim_costs_all_insns): Likewise.
12253         (delete_caller_save_insns): Likewise.
12254         (spill_failure): Likewise for param "insn".
12255         (delete_dead_insn): Likewise.
12256         (set_label_offsets): Likewise.
12257         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12258         "prev_insn".
12259         (elimination_costs_in_insn): Likewise for param "insn".
12260         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12261         when referring to an insn.
12262         (set_initial_label_offsets): Likewise.
12263         (set_offsets_for_label): Strengthen param "insn" from rtx to
12264         rtx_insn *.
12265         (init_eliminable_invariants): Likewise for param "first" and local
12266         "insn".
12267         (fixup_eh_region_note): Likewise for param "insn".
12268         (reload_as_needed): Likewise for locals "prev", "insn",
12269         "old_next", "old_prev", "next".
12270         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12271         "last".
12272         (reload_inheritance_insn): Strengthen elements of this array from
12273         rtx to rtx_insn *.
12274         (failed_reload): Likewise for param "insn".
12275         (choose_reload_regs): Likewise for local "insn".  Replace use of
12276         NULL_RTX with NULL when referring to an insn.
12277         (input_reload_insns): Strengthen elements of this array from rtx
12278         to rtx_insn *.
12279         (other_input_address_reload_insns): Likewise for this global.
12280         (other_input_reload_insns): Likewise for this global.
12281         (input_address_reload_insns): Likwise for the elements of this
12282         array.
12283         (inpaddr_address_reload_insns): Likwise for the elements of this
12284         array.
12285         (output_reload_insns): Likewise for the elements of this array.
12286         (output_address_reload_insns): Likewise for the elements of this
12287         array.
12288         (outaddr_address_reload_insns): Likewise for the elements of this
12289         array.
12290         (operand_reload_insns): Likewise for this global.
12291         (other_operand_reload_insns): Likewise for this global.
12292         (other_output_reload_insns): Likewise for the elements of this
12293         array.
12294         (new_spill_reg_store): Likewise for the elements of this
12295         array.
12296         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12297         Strengthen local "where" from rtx * to rtx_insn **.
12298         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12299         from rtx to rtx_insn *.
12300         (do_input_reload): Likewise for local "insn".
12301         (do_output_reload): Likewise for local "insn".
12302         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12303         (emit_insn_if_valid_for_reload): Likewise for return type and local
12304         "last".  Add checked cast to rtx_insn when returning "insn" since
12305         this has been through emit_insn.
12306         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12307         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12308         returning "insn" since it's been through
12309         emit_insn_if_valid_for_reload at this point.
12310         (delete_output_reload): Strengthen param "insn" and locals
12311         "output_reload_insn", "i2" from rtx to rtx_insn *.
12312         (delete_address_reloads): Likewise for params "dead_insn",
12313         "current_insn" and locals "prev", "next".
12314         (delete_address_reloads_1): Likewise for params "dead_insn",
12315         "current_insn" and locals "prev", "i2".
12316         (inc_for_reload): Likewise for locals "last", "add_insn".
12317         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12318         rtx_insn *.
12319
12320         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12321         param of this duplicate of the prototype from reload.h
12322
12323 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12324
12325         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12326         rtx to rtx_insn *.
12327         (regstat_bb_compute_calls_crossed): Likewise.
12328
12329 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12330
12331         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12332         to rtx_insn *.
12333         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12334         with an insn.
12335         (regrename_analyze): Strengthen local "insn" from rtx to
12336         rtx_insn *.
12337         (scan_rtx_reg): Likewise for param "insn".
12338         (scan_rtx_address): Likewise.
12339         (scan_rtx): Likewise.
12340         (restore_operands): Likewise.
12341         (record_out_operands): Likewise.
12342         (build_def_use): Likewise for local "insn".  Replace use of
12343         NULL_RTX with NULL when dealing with an insn.
12344
12345 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12346
12347         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12348         * reginfo.c (reg_scan): Likewise, also for local "insn".
12349         (reg_scan_mark_refs): Likewise for param "insn".
12350         (init_subregs_of_mode): Likewise for local "insn".
12351
12352 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12353
12354         * regcprop.c (struct queued_debug_insn_change): Strengthen field
12355         "insn" from rtx to rtx_insn *.
12356         (replace_oldest_value_reg): Likewise for param "insn".
12357         (replace_oldest_value_addr): Likewise.
12358         (replace_oldest_value_mem): Likewise.
12359         (apply_debug_insn_changes): Likewise for local "last_insn".
12360         (copyprop_hardreg_forward_1): Likewise for local "insn".
12361
12362 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12363
12364         * reg-stack.c (next_flags_user): Strengthen return type and param
12365         "insn" from rtx to rtx_insn *.
12366         (straighten_stack): Likewise for param "insn".
12367         (check_asm_stack_operands): Likewise.
12368         (remove_regno_note): Likewise.
12369         (emit_pop_insn): Likewise for return type, param "insn", local
12370         "pop_insn".
12371         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
12372         "limit" from rtx to rtx_insn *.
12373         (swap_to_top): Likewise for param "insn".
12374         (move_for_stack_reg): Likewise.
12375         (move_nan_for_stack_reg): Likewise.
12376         (swap_rtx_condition): Likewise.
12377         (compare_for_stack_reg): Likewise.
12378         (subst_all_stack_regs_in_debug_insn): Likewise.
12379         (subst_stack_regs_pat): Likewise, and local "insn2".
12380         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12381         rtx_insn *.
12382         (subst_stack_regs): Likewise.
12383         (change_stack): Likewise.
12384         (convert_regs_1): Likewise for locals "insn", "next".
12385
12386 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12387
12388         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12389         rtx_insn *.
12390         (combine_set_extension): Likewise for param "curr_insn".
12391         (transform_ifelse): Likewise for param "def_insn".
12392         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
12393         from vec<rtx> * to vec<rtx_insn *> *.
12394         (is_cond_copy_insn): Likewise for param "insn".
12395         (struct ext_state): Strengthen the four vec fields from vec<rtx>
12396         to vec<rtx_insn *>.
12397         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
12398         local "def_insn" from rtx to rtx_insn *.
12399         (get_sub_rtx): Likewise for param "def_insn".
12400         (merge_def_and_ext): Likewise.
12401         (combine_reaching_defs): Likewise.
12402         (add_removable_extension): Likewise for param "insn".
12403         (find_removable_extensions): Likewise for local "insn".
12404         (find_and_remove_re): Likewise for locals "curr_insn" and
12405         "def_insn".  Strengthen locals "reinsn_del_list" and
12406         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
12407
12408 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12409
12410         * recog.c (split_insn): Strengthen param "insn" and locals
12411         "first", "last" from rtx to rtx_insn *.
12412         (split_all_insns): Likewise for locals "insn", "next".
12413         (split_all_insns_noflow): Likewise.
12414
12415 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12416
12417         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
12418         const rtx_insn *.
12419         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12420         (debug_rtx_find): Likewise for param 1 "x".
12421
12422         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
12423         const_rtx to const rtx_insn *.  Likewise for local "insn".
12424         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12425         (debug_rtx_find): Likewise for param 1 "x".
12426         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
12427         from const_rtx to const rtx_insn * within the appropriate cases of
12428         the switch statement.
12429
12430         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
12431         Strengthen local "insns" from rtx to rtx_insn * since this is
12432         passed to a call to debug_rtx_list.
12433
12434 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12435
12436         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
12437         to rtx_insn *.
12438
12439         * function.c (stack_protect_epilogue): Add checked cast to
12440         rtx_insn for now when invoking predict_insn_def.
12441
12442         * predict.c (predict_insn): Strengthen param "insn" from rtx to
12443         rtx_insn *.
12444         (predict_insn_def): Likewise.
12445         (rtl_predict_edge): Likewise for local "last_insn".
12446         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
12447         const rtx_insn *.
12448         (combine_predictions_for_insn): Strengthen param "insn" from rtx
12449         to rtx_insn *.
12450         (bb_estimate_probability_locally): Likewise for local "last_insn".
12451         (expensive_function_p): Likewise for local "insn".
12452
12453         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
12454         local "jmp", since this is used when invoking predict_insn_def.
12455
12456 2014-08-22  Marek Polacek  <polacek@redhat.com>
12457
12458         PR c++/62199
12459         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
12460
12461 2014-08-22  Marek Polacek  <polacek@redhat.com>
12462
12463         PR c/61271
12464         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
12465         a comparison in parens.
12466         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
12467         in parens.
12468
12469 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12470
12471         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
12472         rtx_insn *.
12473
12474         * cprop.c (fis_get_condition): Likewise.
12475
12476         * postreload.c (reload_cse_regs): Likewise for param "first".
12477         (reload_cse_simplify): Likewise for param "insn".
12478         (reload_cse_regs_1): Likewise for local "insn".
12479         (reload_cse_simplify_set): Likewise for param "insn".
12480         (reload_cse_simplify_operands): Likewise.
12481         (struct reg_use): Likewise for field "insn".
12482         (reload_combine_purge_insn_uses): Likewise for param "insn".
12483         (fixup_debug_insns): Likewise for params "from", "to" and local
12484         "insn".
12485         (try_replace_in_use): Likewise for local "use_insn".
12486         (reload_combine_recognize_const_pattern): Likewise for param
12487         "insn" and locals "add_moved_after_insn", "use_insn".
12488         (reload_combine_recognize_pattern): Likewise for param "insn" and
12489         local "prev".
12490         (reload_combine): Likewise for locals "insn", "prev".
12491         (reload_combine_note_use): Likewise for param "insn".
12492         (move2add_use_add2_insn): Likewise.
12493         (move2add_use_add3_insn): Likewise.
12494         (reload_cse_move2add): Likewise, also for local "next".
12495         (move2add_note_store): Likewise for local "insn".
12496
12497 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12498
12499         * postreload-gcse.c (struct occr): Strengthen field "insn" from
12500         rtx to rtx_insn *.
12501         (struct unoccr): Likewise.
12502         (struct modifies_mem): Likewise.
12503         (alloc_mem): Likewise for local "insn".
12504         (insert_expr_in_table): Likewise for param "insn".
12505         (dump_expr_hash_table_entry): Likewise for local "insn".
12506         (oprs_unchanged_p): Likewise for param "insn".
12507         (load_killed_in_block_p): Likewise for local "setter".
12508         (record_last_reg_set_info): Likewise for param "insn".
12509         (record_last_reg_set_info_regno): Likewise.
12510         (record_last_mem_set_info): Likewise.
12511         (record_last_set_info): Likewise for local "last_set_insn".
12512         (record_opr_changes): Likewise for param "insn".
12513         (hash_scan_set): Likewise.
12514         (compute_hash_table): Likewise for local "insn".
12515         (get_avail_load_store_reg): Likewise for param "insn".
12516         (eliminate_partially_redundant_load): Likewise, also for locals
12517         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
12518         RTX for insns.
12519         (eliminate_partially_redundant_loads): Likewise for local "insn".
12520
12521 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12522
12523         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
12524         rtx to rtx_insn *.
12525         (expand_binop): Likewise for locals "entry_last", "last", "insns"
12526         (expand_twoval_unop): Likewise for locals entry_last", "last".
12527         (expand_twoval_binop): Likewise.
12528         (expand_twoval_binop_libfunc): Likewise for local "insns".
12529         (widen_leading): Likewise for local "last".
12530         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
12531         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
12532         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
12533         (expand_parity): Likewise for locals "last" and "seq".
12534         (expand_ffs): Likewise for local "seq".  Strengthen local
12535         "nonzero_label" from rtx to rtx_code_label *.
12536         (expand_absneg_bit): Strengthen local "insns" from rtx to
12537         rtx_insn *.
12538         (expand_unop_direct): Likewise for local "last".
12539         (expand_unop): Likewise for locals "last", "insns".
12540         (expand_abs_nojump): Likewise for local "last".
12541         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
12542         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
12543         rtx_insn *.
12544         (expand_copysign_absneg): Strengthen local "label" from rtx to
12545         rtx_code_label *.
12546         (expand_copysign_bit): Strengthen local "insns" from rtx to
12547         rtx_insn *.
12548         (struct no_conflict_data): Likewise for fields "first", "insn".
12549         (emit_libcall_block_1): Likewise for param "insns" and locals
12550         "next", "last", "insn".
12551         (emit_libcall_block): For now, add a checked cast to rtx_insn *
12552         on "insns" when invoking emit_libcall_block_1.  Ultimately we
12553         want to strengthen insns itself.
12554         (prepare_cmp_insn): Strengthen local "last" from rtx to
12555         rtx_insn *.
12556         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
12557         (prepare_float_lib_cmp): Likewise for local "insns".
12558         (emit_conditional_move): Likewise for local "last".
12559         (emit_conditional_add): Likewise.
12560         (have_sub2_insn): Likewise for local "seq".
12561         (expand_float): Likewise for local "insns".  Strengthen locals
12562         "label", "neglabel" from rtx to rtx_code_label *.
12563         (expand_fix): Likewise for locals "last", "insn", "insns" (to
12564         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
12565         (expand_fixed_convert): Likewise for local "insns" (to
12566         rtx_insn *).
12567         (expand_sfix_optab): Likewise for local "last".
12568         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
12569         to rtx_code_label *.
12570         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
12571         from rtx to rtx_insn *.
12572         (expand_atomic_fetch_op): Likewise for local "insn".
12573         (maybe_legitimize_operand_same_code): Likewise for local "last".
12574         (maybe_legitimize_operands): Likewise.
12575
12576 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12577
12578         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
12579         "insn" from rtx to rtx_insn *.
12580         (ps_rtl_insn): Likewise for return type.
12581         (doloop_register_get): Likewise for params "head", "tail" and
12582         locals "insn", "first_insn_not_to_check".
12583         (schedule_reg_move): Likewise for local "this_insn".
12584         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
12585         of gen_move_insn for now.
12586         (reset_sched_times): Strengthen local "insn" from rtx to
12587         rtx_insn *.
12588         (permute_partial_schedule): Likewise.
12589         (duplicate_insns_of_cycles): Likewise for local "u_insn".
12590         (dump_insn_location): Likewise for param "insn".
12591         (loop_canon_p): Likewise for local "insn".
12592         (sms_schedule): Likewise.
12593         (print_partial_schedule): Likewise.
12594         (ps_has_conflicts): Likewise.
12595
12596 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12597
12598         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
12599         "tailp" from rtx * to rtx_insn **.
12600
12601         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
12602         from rtx to rtx_insn *.
12603         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
12604         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
12605         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
12606         rtx to rtx_insn *.
12607         * modulo-sched.c (const_iteration_count): Strengthen return type
12608         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
12609         use of NULL_RTX with NULL when working with insns.
12610         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
12611         to rtx_insn *.
12612         (sms_schedule): Likewise.
12613         * sched-rgn.c (init_ready_list): Likewise, also for locals
12614         "src_head" and "src_next_tail".
12615         (compute_block_dependences): Likewise.
12616         (free_block_dependencies): Likewise.
12617         (debug_rgn_dependencies): Likewise.
12618         (free_rgn_deps): Likewise.
12619         (compute_priorities): Likewise.
12620         (schedule_region): Likewise.
12621         * sel-sched.c (find_ebb_boundaries): Likewise.
12622
12623         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
12624         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
12625
12626 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12627
12628         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
12629         from rtx to rtx_insn *.
12630         (new_seginfo): Likewise for param "insn".
12631         (create_pre_exit): Likewise for locals "last_insn",
12632         "before_return_copy", "return_copy".
12633         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
12634         "mode_set".
12635
12636 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12637
12638         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
12639         from rtx to rtx_insn *.
12640         (lra_push_insn): Likewise for 1st param.
12641         (lra_push_insn_and_update_insn_regno_info): Likewise.
12642         (lra_pop_insn): Likewise for return type.
12643         (lra_invalidate_insn_data): Likewise for 1st param.
12644         (lra_set_insn_deleted): Likewise.
12645         (lra_delete_dead_insn): Likewise.
12646         (lra_process_new_insns): Likewise for first 3 params.
12647         (lra_set_insn_recog_data): Likewise for 1st param.
12648         (lra_update_insn_recog_data): Likewise.
12649         (lra_set_used_insn_alternative): Likewise.
12650         (lra_invalidate_insn_regno_info): Likewise.
12651         (lra_update_insn_regno_info): Likewise.
12652         (lra_former_scratch_operand_p): Likewise.
12653         (lra_eliminate_regs_1): Likewise.
12654         (lra_get_insn_recog_data): Likewise.
12655
12656         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
12657         rtx to rtx_insn *.
12658
12659         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
12660         "mv1" and "mv2".
12661         (substitute_within_insn): New.
12662         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
12663         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
12664         Replace call to "substitute" with call to substitute_within_insn.
12665
12666         * lra-constraints.c (curr_insn): Strengthen from rtx to
12667         rtx_insn *.
12668         (get_equiv_with_elimination): Likewise for param "insn".
12669         (match_reload): Strengthen params "before" and "after" from rtx *
12670         to rtx_insn **.
12671         (emit_spill_move): Likewise for return type.  Add a checked cast
12672         to rtx_insn * on result of gen_move_insn for now.
12673         (check_and_process_move): Likewise for local "before".  Replace
12674         NULL_RTX with NULL when referring to insns.
12675         (process_addr_reg): Strengthen params "before" and "after" from
12676         rtx * to rtx_insn **.
12677         (insert_move_for_subreg): Likewise.
12678         (simplify_operand_subreg): Strengthen locals "before" and "after"
12679         from rtx to rtx_insn *.
12680         (process_address_1): Strengthen params "before" and "after" from
12681         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
12682         rtx to rtx_insn *.
12683         (process_address): Strengthen params "before" and "after" from
12684         rtx * to rtx_insn **.
12685         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
12686         (curr_insn_transform): Strengthen locals "before" and "after"
12687         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
12688         to insns.
12689         (loc_equivalence_callback): Update cast of "data", changing
12690         resulting type from rtx to rtx_insn *.
12691         (substitute_pseudo_within_insn): New.
12692         (inherit_reload_reg): Strengthen param "insn" from rtx to
12693         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
12694         NULL when referring to insns.  Add a checked cast to rtx_insn *
12695         when using usage_insn to invoke lra_update_insn_regno_info.
12696         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
12697         likewise for locals "restore", "save".  Add checked casts to
12698         rtx_insn * when using usage_insn to invoke
12699         lra_update_insn_regno_info and lra_process_new_insns.  Replace
12700         NULL_RTX with NULL when referring to insns.
12701         (split_if_necessary): Strengthen param "insn" from rtx to
12702         rtx_insn *.
12703         (update_ebb_live_info): Likewise for params "head", "tail" and local
12704         "prev_insn".
12705         (get_last_insertion_point): Likewise for return type and local "insn".
12706         (get_live_on_other_edges): Likewise for local "last".
12707         (inherit_in_ebb): Likewise for params "head", "tail" and locals
12708         "prev_insn", "next_insn", "restore".
12709         (remove_inheritance_pseudos): Likewise for local "prev_insn".
12710         (undo_optional_reloads): Likewise for local "insn".
12711
12712         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
12713         "insn".
12714         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
12715         insns.
12716         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
12717         rtx_insn *.
12718         (spill_pseudos): Likewise for local "insn".
12719         (init_elimination): Likewise.
12720         (process_insn_for_elimination): Likewise for param "insn".
12721
12722         * lra-lives.c (curr_insn): Likewise.;
12723
12724         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
12725         (remove_pseudos): Likewise for param "insn".
12726         (spill_pseudos): Likewise for local "insn".
12727         (lra_final_code_change): Likewise for locals "insn", "curr".
12728
12729         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
12730         (lra_set_insn_deleted): Likewise.
12731         (lra_delete_dead_insn): Likewise, and for local "prev".
12732         (new_insn_reg): Likewise for param "insn".
12733         (lra_set_insn_recog_data): Likewise.
12734         (lra_update_insn_recog_data): Likewise.
12735         (lra_set_used_insn_alternative): Likewise.
12736         (get_insn_freq): Likewise.
12737         (invalidate_insn_data_regno_info): Likewise.
12738         (lra_invalidate_insn_regno_info): Likewise.
12739         (lra_update_insn_regno_info): Likewise.
12740         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
12741         vec<rtx_insn *>.
12742         (lra_push_insn_1): Strengthen param "insn" from rtx to
12743         rtx_insn *.
12744         (lra_push_insn): Likewise.
12745         (lra_push_insn_and_update_insn_regno_info): Likewise.
12746         (lra_pop_insn): Likewise for return type and local "insn".
12747         (push_insns): Likewise for params "from", "to", and local "insn".
12748         (setup_sp_offset): Likewise for params "from", "last" and locals
12749         "before", "insn".
12750         (lra_process_new_insns): Likewise for params "insn", "before",
12751         "after" and local "last".
12752         (struct sloc): Likewise for field "insn".
12753         (lra_former_scratch_operand_p): Likewise for param "insn".
12754         (remove_scratches): Likewise for locals "insn", "last".
12755         (check_rtl): Likewise for local "insn".
12756         (add_auto_inc_notes): Likewise for param "insn".
12757         (update_inc_notes): Likewise for local "insn".
12758         (lra): Replace NULL_RTX with NULL when referring to insn.
12759
12760 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12761
12762         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
12763         to rtx_insn *.
12764         (resolve_reg_notes): Likewise.
12765         (resolve_simple_move): Likewise for return type, param "insn", and
12766         locals "insns", "minsn".
12767         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
12768         (resolve_use): Likewise.
12769         (resolve_debug): Likewise.
12770         (find_decomposable_shift_zext): Likewise.
12771         (resolve_shift_zext): Likewise for return type, param "insn", and
12772         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
12773         (decompose_multiword_subregs): Likewise for local "insn",
12774         "orig_insn", "decomposed_shift", "end".
12775
12776 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12777
12778         * basic-block.h (basic_block split_edge_and_insert): Strengthen
12779         param "insns" from rtx to rtx_insn *.
12780
12781         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
12782         rtx to rtx_insn *.
12783         (struct iv_to_split): Likewise.
12784         (loop_exit_at_end_p): Likewise for local "insn".
12785         (split_edge_and_insert): Likewise for param "insns".
12786         (compare_and_jump_seq): Likewise for return type, param "cinsn",
12787         and locals "seq", "jump".
12788         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
12789         "branch_code"; update invocations of compare_and_jump_seq to
12790         eliminate NULL_RTX in favor of NULL.
12791         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
12792         rtx to rtx_insn *.
12793         (reset_debug_uses_in_loop): Likewise.
12794         (analyze_insn_to_expand_var): Likewise for param "insn".
12795         (analyze_iv_to_split_insn): Likewise.
12796         (analyze_insns_in_loop): Likewise for local "insn".
12797         (insert_base_initialization): Likewise for param
12798         "insn" and local "seq".
12799         (split_iv): Likewise for param "insn" and local "seq".
12800         (expand_var_during_unrolling): Likewise for param "insn".
12801         (insert_var_expansion_initialization): Likewise for local "seq".
12802         (combine_var_copies_in_loop_exit): Likewise.
12803         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
12804         "insn".
12805         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
12806         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
12807         "next".
12808
12809 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12810
12811         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
12812         rtx_insn *.
12813         (iv_analyze_result): Likewise.
12814         (iv_analyze_expr): Likewise.
12815         (biv_p): Likewise.
12816
12817         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
12818         local "def_insn" from rtx to rtx_insn *.
12819         (get_biv_step_1): Likewise for local "insn".
12820         (iv_analyze_expr): Likewise for param "insn".
12821         (iv_analyze_def): Likewise for local "insn".
12822         (iv_analyze_op): Likewise for param "insn".
12823         (iv_analyze): Likewise.
12824         (iv_analyze_result): Likewise.
12825         (biv_p): Likewise.
12826         (suitable_set_for_replacement): Likewise.
12827         (simplify_using_initial_values): Likewise for local "insn".
12828         (iv_number_of_iterations): Likewise for param "insn".
12829         (check_simple_exit): Add checked cast to rtx_insn when invoking
12830         iv_number_of_iterations for now (until get_condition is
12831         strengthened).
12832
12833         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
12834         "insn" from rtx to rtx_insn *.
12835         (analyze_insns_in_loop): Likewise for local "insn".
12836
12837 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12838
12839         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
12840         to rtx_insn *.
12841         (struct invariant): Likewise.
12842         (hash_invariant_expr_1): Likewise for param "insn".
12843         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
12844         (find_exits): Likewise for local "insn".
12845         (create_new_invariant): Likewise for param "insn".
12846         (check_dependencies): Likewise.
12847         (find_invariant_insn): Likewise.
12848         (record_uses): Likewise.
12849         (find_invariants_insn): Likewise.
12850         (find_invariants_bb): Likewise for local "insn".
12851         (get_pressure_class_and_nregs): Likewise for param "insn".
12852         (calculate_loop_reg_pressure): Likewise for local "insn".
12853
12854 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12855
12856         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
12857         to rtx_insn *.
12858         (add_test): Likewise for locals "seq", "jump".
12859         (doloop_modify): Likewise for locals "sequence", "jump_insn".
12860
12861 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12862
12863         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
12864         rtx_insn *.
12865         (rebuild_jump_labels_chain): Likewise for param "chain".
12866
12867         * cfgexpand.c (pass_expand::execute): Add checked cast to
12868         rtx_insn * when calling rebuild_jump_labels_chain in region where
12869         we know e->insns.r is non-NULL.
12870
12871         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
12872         rtx_insn *.
12873         (rebuild_jump_labels): Likewise.
12874         (rebuild_jump_labels_chain): Likewise for param "chain".
12875         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
12876         (init_label_info): Likewise for param "f".
12877         (maybe_propagate_label_ref): Likewise for params "jump_insn",
12878         "prev_nonjump_insn".
12879         (mark_all_labels): Likewise for param "f" and locals "insn",
12880         "prev_nonjump_insn".
12881
12882 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12883
12884         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
12885         from rtx to rtx_insn *insn.
12886         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
12887         (ira_add_allocno_copy): Likewise.
12888         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
12889         rtx to rtx_insn *.
12890         (ira_create_copy): Likewise.
12891         (ira_add_allocno_copy): Likewise.
12892         (create_bb_allocnos): Likewise for local "insn".
12893         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
12894         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
12895         process_regs_for_copy for rtx_insn * param.
12896         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
12897         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
12898         process_regs_for_copy for rtx_insn * param.
12899         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
12900         * ira-costs.c (record_reg_classes): Likewise for param "insn".
12901         (record_operand_costs): Likewise.
12902         (scan_one_insn): Likewise for return type, and for param "insn".
12903         (process_bb_for_costs): Likewise for local "insn".
12904         (process_bb_node_for_hard_reg_moves): Likewise.
12905         * ira-emit.c (struct move): Likewise for field "insn".
12906         (create_move): Eliminate use of NULL_RTX when dealing with an
12907         rtx_insn *.
12908         (emit_move_list): Strengthen return type and locals "result",
12909         "insn" from rtx to rtx_insn *insn.
12910         (emit_moves): Likewise for locals "insns", "tmp".
12911         (ira_emit): Likewise for local "insn".
12912         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
12913         "insn".
12914         (find_call_crossed_cheap_reg): Likewise.
12915         (process_bb_node_lives): Likewise for local "insn".
12916         * ira.c (decrease_live_ranges_number): Likewise.
12917         (compute_regs_asm_clobbered): Likewise.
12918         (build_insn_chain): Likewise.
12919         (find_moveable_pseudos): Likewise, also locals "def_insn",
12920         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
12921         to rtx_insn **.  Add a checked cast when assigning from
12922         "closest_use" into closest_uses array in a region where we know
12923         it's a non-NULL insn.
12924         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
12925         to rtx_insn *.
12926         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
12927         "last_interesting_insn", "uin".
12928         (move_unallocated_pseudos): Likewise for locals "def_insn",
12929         "move_insn", "newinsn".
12930
12931 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12932
12933         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
12934         Strengthen locals "done_label", "do_error" from rtx to
12935         rtx_code_label *.
12936         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
12937         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
12938         rtx_code_label *.
12939         (ubsan_expand_si_overflow_neg_check): Likewise for locals
12940         "done_label", "do_error" to rtx_code_label * and local  "last" to
12941         rtx_insn *.
12942         (ubsan_expand_si_overflow_mul_check): Likewise for locals
12943         "done_label", "do_error", "large_op0", "small_op0_large_op1",
12944         "one_small_one_large", "both_ops_large", "after_hipart_neg",
12945         "after_lopart_neg", "do_overflow", "hipart_different"  to
12946         rtx_code_label * and local  "last" to rtx_insn *.
12947
12948 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12949
12950         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
12951         "insn" and "move_insn" from rtx to rtx_insn *.
12952
12953 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12954
12955         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
12956         rtx_insn *.
12957         (cheap_bb_rtx_cost_p): Likewise.
12958         (first_active_insn): Likewise for return type and local "insn".
12959         (last_active_insn):  Likewise for return type and locals "insn",
12960         "head".
12961         (struct noce_if_info): Likewise for fields "jump", "insn_a",
12962         "insn_b".
12963         (end_ifcvt_sequence): Likewise for return type and locals "insn",
12964         "seq".
12965         (noce_try_move): Likewise for local "seq".
12966         (noce_try_store_flag): Likewise.
12967         (noce_try_store_flag_constants): Likewise.
12968         (noce_try_addcc): Likewise.
12969         (noce_try_store_flag_mask): Likewise.
12970         (noce_try_cmove): Likewise.
12971         (noce_try_minmax): Likewise.
12972         (noce_try_abs): Likewise.
12973         (noce_try_sign_mask): Likewise.
12974         (noce_try_bitop): Likewise.
12975         (noce_can_store_speculate_p): Likewise for local "insn".
12976         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
12977         seq".
12978         (check_cond_move_block): Likewise for local "insn".
12979         (cond_move_convert_if_block): Likewise.
12980         (cond_move_process_if_block): Likewise for locals "seq",
12981         "loc_insn".
12982         (noce_find_if_block): Likewise for local "jump".
12983         (merge_if_block): Likewise for local "last".
12984         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
12985         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
12986         (block_has_only_trap): Likewise for return type and local "trap".
12987         (find_if_case_1): Likewise for local "jump".
12988         (dead_or_predicable): Likewise for locals "head", "end", "jump",
12989         "insn".
12990
12991 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12992
12993         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
12994         "last_insn", "loop_end" from rtx to rtx_insn *.
12995
12996         * hw-doloop.c (scan_loop): Likewise for local "insn".
12997         (discover_loop): Likewise for param "tail_insn".
12998         (discover_loops): Likewise for local "tail".
12999
13000         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13001         cast to rtx_insn * when assigning from an rtx local to a
13002         hwloop_info's "last_insn" field.
13003
13004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13005
13006         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13007         (add_delay_dependencies): Strengthen local "pro" from rtx to
13008         rtx_insn *.
13009         (recompute_todo_spec): Likewise.
13010         (dep_cost_1): Likewise for locals "insn", "used".
13011         (schedule_insn): Likewise for local "dbg".
13012         (schedule_insn): Likewise for locals "pro", "next".
13013         (unschedule_insns_until): Likewise for local "con".
13014         (restore_pattern): Likewise for local "next".
13015         (estimate_insn_tick): Likewise for local "pro".
13016         (resolve_dependencies): Likewise for local "next".
13017         (fix_inter_tick): Likewise.
13018         (fix_tick_ready): Likewise for local "pro".
13019         (add_to_speculative_block): Likewise for locals "check", "twin",
13020         "pro".
13021         (sched_extend_bb): Likewise for locals "end", "insn".
13022         (init_before_recovery): Likewise for local "x".
13023         (sched_create_recovery_block): Likewise for local "barrier".
13024         (create_check_block_twin): Likewise for local "pro".
13025         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13026         "consumer".
13027         (unlink_bb_notes): Update for change to type of bb_header.
13028         Strengthen locals "prev", "label", "note", "next" from rtx to
13029         rtx_insn *.
13030         (clear_priorities): Likewise for local "pro".
13031
13032 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13033
13034         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13035         rtx_insn *.
13036         (test_insn): Likewise for this global.
13037         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13038         const rtx_insn *.
13039         (oprs_anticipatable_p): Likewise.
13040         (oprs_available_p): Likewise.
13041         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13042         rtx_insn *.
13043         (hash_scan_set): Likewise.
13044         (hash_scan_clobber): Likewise.
13045         (hash_scan_call): Likewise.
13046         (hash_scan_insn): Likewise.
13047         (compute_hash_table_work): Likewise for local "insn".
13048         (process_insert_insn): Likewise for return type and local "pat".
13049         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13050         "pat", "pat_end", "maybe_cc0_setter".
13051         (pre_edge_insert): Likewise for local "insn".
13052         (pre_insert_copy_insn): Likewise for param "insn".
13053         (pre_insert_copies): Likewise for local "insn".
13054         (struct set_data): Likewise for field "insn".
13055         (single_set_gcse): Likewise for param "insn".
13056         (gcse_emit_move_after): Likewise.
13057         (pre_delete): Likewise for local "insn".
13058         (update_bb_reg_pressure): Likewise for param "from" and local
13059         "insn".
13060         (should_hoist_expr_to_dom): Likewise for param "from".
13061         (hoist_code): Likewise for local "insn".
13062         (get_pressure_class_and_nregs): Likewise for param "insn".
13063         (calculate_bb_reg_pressure): Likewise for local "insn".
13064         (compute_ld_motion_mems): Likewise.
13065
13066 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13067
13068         * genpeep.c (main): Rename param back from "uncast_ins1" to
13069         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13070         checked cast.
13071
13072         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13073
13074 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13075
13076         PR target/62195
13077         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13078         documentation to state it is only for VSX operations.
13079
13080         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13081         constraint only active if VSX.
13082
13083         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13084         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13085         (lfiwzx): Likewise.
13086
13087 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13088
13089         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13090         Strengthen local "insn" from rtx to rtx_insn *.
13091         (use_killed_between): Likewise for param "target_insn".
13092         (all_uses_available_at): Likewise for param "target_insn" and
13093         local "next".
13094         (update_df_init): Likewise for params "def_insn", "insn".
13095         (update_df): Likewise for param "insn".
13096         (try_fwprop_subst): Likewise for param "def_insn" and local
13097         "insn".
13098         (free_load_extend): Likewise for param "insn".
13099         (forward_propagate_subreg): Likewise for param "def_insn" and
13100         local "use_insn".
13101         (forward_propagate_asm): Likewise for param "def_insn" and local
13102         "use_insn".
13103         (forward_propagate_and_simplify): Likewise for param "def_insn"
13104         and local "use_insn".
13105         (forward_propagate_into): Likewise for locals "def_insn" and
13106         "use_insn".
13107
13108 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13109
13110         * function.c (emit_initial_value_sets): Strengthen local "seq"
13111         from rtx to rtx_insn *.
13112         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13113         local "seq".
13114         (instantiate_virtual_regs): Likewise for local "insn".
13115         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13116         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13117         (expand_function_end): Likewise for locals "insn" and "seq".
13118         (epilogue_done): Likewise for local "insn".
13119         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13120         "last", "trial".
13121         (reposition_prologue_and_epilogue_notes): Likewise for locals
13122         "insn", "last", "note", "first".
13123         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13124         (pass_match_asm_constraints::execute): Likewise for local "insn".
13125
13126 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13127
13128         * output.h (final_scan_insn): Strengthen return type from rtx to
13129         rtx_insn *.
13130         (final_forward_branch_p): Likewise for param.
13131         (current_output_insn): Likewise for this global.
13132
13133         * final.c (rtx debug_insn): Likewise for this variable.
13134         (current_output_insn): Likewise.
13135         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13136         adding "insn" back in as an rtx_insn * with a checked cast, so
13137         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13138         first param.
13139         (compute_alignments): Strengthen local "label" from rtx to
13140         rtx_insn *.
13141         (shorten_branches): Rename param from "first" to "uncast_first",
13142         introducing a new local rtx_insn * "first" using a checked cast to
13143         effectively strengthen "first" from rtx to rtx_insn * without
13144         affecting the type signature.  Strengthen locals "insn", "seq",
13145         "next", "label" from rtx to rtx_insn *.
13146         (change_scope): Strengthen param "orig_insn" and local "insn" from
13147         rtx to rtx_insn *.
13148         (final_start_function): Rename param from "first" to "uncast_first",
13149         introducing a new local rtx_insn * "first" using a checked cast to
13150         effectively strengthen "first" from rtx to rtx_insn * without
13151         affecting the type signature.  Strengthen local "insn" from rtx to
13152         rtx_insn *.
13153         (dump_basic_block_info): Strengthen param "insn" from rtx to
13154         rtx_insn *.
13155         (final): Rename param from "first" to "uncast_first",
13156         introducing a new local rtx_insn * "first" using a checked cast to
13157         effectively strengthen "first" from rtx to rtx_insn * without
13158         affecting the type signature.  Strengthen locals "insn", "next"
13159         from rtx to rtx_insn *.
13160         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13161         rtx_insn *.
13162         (call_from_call_insn): Strengthen param "insn" from rtx to
13163         rtx_call_insn *.
13164         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13165         introducing a new local rtx_insn * "insn" using a checked cast to
13166         effectively strengthen "insn" from rtx to rtx_insn * without
13167         affecting the type signature.  Strengthen return type and locals
13168         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13169         now-redundant checked cast to rtx_insn * from both invocations of
13170         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13171         introducing a local "call_insn" for use when invoking
13172         call_from_call_insn.
13173         (notice_source_line): Strengthen param "insn" from rtx to
13174         rtx_insn *.
13175         (leaf_function_p): Likewise for local "insn".
13176         (final_forward_branch_p): Likewise.
13177         (leaf_renumber_regs): Likewise for param "first".
13178         (rest_of_clean_state): Likewise for locals "insn" and "next".
13179         (self_recursive_call_p): Likewise for param "insn".
13180         (collect_fn_hard_reg_usage): Likewise for local "insn".
13181         (get_call_fndecl): Likewise for param "insn".
13182         (get_call_cgraph_rtl_info): Likewise.
13183         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13184         introducing a new local rtx_insn * "insn" using a checked cast to
13185         effectively strengthen "insn" from rtx to rtx_insn * without
13186         affecting the type signature.
13187
13188         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13189         cast when assigning from param "insn" to current_output_insn.
13190         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13191         so that we can assign it back to current_output_insn.
13192
13193 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13194
13195         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13196         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13197         atmxt540s and atmxt540sreva devices.
13198         * config/avr/avr-tables.opt: Regenerate.
13199         * config/avr/t-multilib: Regenerate.
13200         * doc/avr-mmcu.texi: Regenerate.
13201
13202 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13203
13204         * expr.c (convert_move): Strengthen local "insns" from rtx to
13205         rtx_insn *.
13206         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13207         "top_label" from rtx to rtx_code_label *.
13208         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13209         rtx_insn *.
13210         (emit_single_push_insn): Likewise for locals "prev", "last".
13211         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13212         to rtx_code_label *.
13213         (store_constructor): Likewise for locals "loop_start", "loop_end".
13214         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13215         rtx_insn *.
13216         (expand_expr_real_2): Likewise.
13217         (expand_expr_real_1): Strengthen local "label" from rtx to
13218         rtx_code_label *.
13219
13220 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13221
13222         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13223         from rtx to rtx_insn *.
13224         (store_bit_field_1): Likewise.
13225         (extract_bit_field_1): Likewise.
13226         (expand_mult_const): Likewise for local "insns".
13227         (expmed_mult_highpart): Strengthen local "label" from rtx to
13228         rtx_code_label *.
13229         (expand_smod_pow2): Likewise.
13230         (expand_sdiv_pow2): Likewise.
13231         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13232         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13233         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13234         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13235         (emit_store_flag): Likewise.
13236         (emit_store_flag_force): Strengthen local "label" from rtx to
13237         rtx_code_label *.
13238         (do_cmp_and_jump): Likewise for param "label".
13239
13240 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13241
13242         * explow.c (force_reg): Strengthen local "insn" from rtx to
13243         rtx_insn *.
13244         (adjust_stack_1): Likewise.
13245         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13246         "final_label", "available_label", "space_available" from rtx to
13247         rtx_code_label *.
13248         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13249         (anti_adjust_stack_and_probe): Likewise.
13250
13251 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13252
13253         * except.h (sjlj_emit_function_exit_after): Strengthen param
13254         "after" from rtx to rtx_insn *.  This is only called with
13255         result of get_last_insn (in function.c) so type-change should be
13256         self-contained.
13257
13258         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13259         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13260         to rtx_insn *.  These fields are only used from except.c so this
13261         type-change should be self-contained to this patch.
13262
13263         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13264         local "last" from rtx to rtx_insn *.
13265         (dw2_build_landing_pads): Likewise for local "seq".
13266         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13267         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13268         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13269         rtx to rtx_insn *.
13270         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13271         to rtx_insn *.
13272         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13273         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13274         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13275         referring to an insn.  Strengthen local "dispatch_label" from
13276         rtx to rtx_code_label *.
13277         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13278         rtx_insn *.
13279         (expand_eh_return): Strengthen local "around_label" from
13280         rtx to rtx_code_label *.
13281         (convert_to_eh_region_ranges): Strengthen locals "iter",
13282         "last_action_insn", "first_no_action_insn",
13283         "first_no_action_insn_before_switch",
13284         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13285
13286 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13287
13288         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13289         from rtx to rtx_insn *.
13290         (cached_next_real_insn): Likewise.
13291         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13292         working with insns.
13293         (dwarf2out_var_location): Strengthen locals "next_real",
13294         "next_note", "expected_next_loc_note", "last_start", "insn" from
13295         rtx to rtx_insn *.
13296
13297 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13298
13299         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13300         from rtx to rtx_insn *.
13301         (create_pseudo_cfg): Likewise for local "insn".
13302
13303 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13304
13305         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13306         from rtx to rtx_insn *.
13307         (df_bb_regno_last_def_find): Likewise.
13308
13309         * df-problems.c (df_rd_bb_local_compute): Likewise.
13310         (df_lr_bb_local_compute): Likewise.
13311         (df_live_bb_local_compute): Likewise.
13312         (df_chain_remove_problem): Likewise.
13313         (df_chain_create_bb): Likewise.
13314         (df_word_lr_bb_local_compute): Likewise.
13315         (df_remove_dead_eq_notes): Likewise for param "insn".
13316         (df_note_bb_compute): Likewise for local "insn".
13317         (simulate_backwards_to_point): Likewise.
13318         (df_md_bb_local_compute): Likewise.
13319
13320         * df-scan.c (df_scan_free_bb_info): Likewise.
13321         (df_scan_start_dump): Likewise.
13322         (df_scan_start_block): Likewise.
13323         (df_install_ref_incremental): Likewise for local "insn".
13324         (df_insn_rescan_all): Likewise.
13325         (df_reorganize_refs_by_reg_by_insn): Likewise.
13326         (df_reorganize_refs_by_insn_bb): Likewise.
13327         (df_recompute_luids): Likewise.
13328         (df_bb_refs_record): Likewise.
13329         (df_update_entry_exit_and_calls): Likewise.
13330         (df_bb_verify): Likewise.
13331
13332 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13333
13334         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13335         "first_note" from rtx to rtx_insn *.
13336         (get_node_of_insn): Likewise for param 2 "insn".
13337         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13338
13339         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13340         rtx_insn *.
13341         (mem_write_insn_p): Likewise.
13342         (mem_access_insn_p): Likewise.
13343         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13344         (def_has_ccmode_p): Likewise for param "insn".
13345         (add_cross_iteration_register_deps): Likewise for locals
13346         "def_insn" and "use_insn".
13347         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13348         (build_intra_loop_deps): Likewise for local "src_insn".
13349         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13350         to rtx_insn *.
13351         (get_node_of_insn): Likewise for param "insn".
13352
13353 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13354
13355         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13356         (deletable_insn_p): Strengthen param "insn" from rtx to
13357         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
13358         find_call_stack_args, since this is guarded by CALL_P (insn).
13359         (marked_insn_p): Strengthen param "insn" from rtx to
13360         rtx_insn *.
13361         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
13362         invoking find_call_stack_args, since this is guarded by
13363         CALL_P (insn).
13364         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13365         rtx_insn *; we know this is an insn since this was called by
13366         mark_nonreg_stores.
13367         (mark_nonreg_stores_2): Likewise.
13368         (mark_nonreg_stores): Strengthen param "insn" from rtx to
13369         rtx_insn *.
13370         (find_call_stack_args): Strengthen param "call_insn" from rtx to
13371         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13372         to rtx_insn *.
13373         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13374         from rtx to rtx_insn *.
13375         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13376         "next", "ref_insn".
13377         (delete_unmarked_insns): Likewise for locals "insn", "next".
13378         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13379         (mark_reg_dependencies): Likewise for param "insn".
13380         (rest_of_handle_ud_dce): Likewise for local "insn".
13381         (word_dce_process_block): Likewise.
13382         (dce_process_block): Likewise.
13383
13384 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13385
13386         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13387         from rtx to rtx_insn *.
13388         (struct change_cc_mode_args): Likewise for field "insn".
13389         (this_insn): Strengthen from rtx to rtx_insn *.
13390         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13391         with insn.
13392         (validate_canon_reg): Strengthen param "insn" from rtx to
13393         rtx_insn *.
13394         (canon_reg): Likewise.
13395         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
13396         dealing with insn.
13397         (record_jump_equiv): Strengthen param "insn" from rtx to
13398         rtx_insn *.
13399         (try_back_substitute_reg): Likewise, also for locals "prev",
13400         "bb_head".
13401         (find_sets_in_insn): Likewise for param "insn".
13402         (canonicalize_insn): Likewise.
13403         (cse_insn): Likewise.  Add a checked cast.
13404         (invalidate_from_clobbers): Likewise for param "insn".
13405         (invalidate_from_sets_and_clobbers): Likewise.
13406         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
13407         dealing with insn.
13408         (cse_prescan_path): Strengthen local "insn" from rtx to
13409         rtx_insn *.
13410         (cse_extended_basic_block): Likewise for locals "insn" and
13411         "prev_insn".
13412         (cse_main): Likewise for param "f".
13413         (check_for_label_ref): Likewise for local "insn".
13414         (set_live_p): Likewise for second param ("insn").
13415         (insn_live_p): Likewise for first param ("insn") and for local
13416         "next".
13417         (cse_change_cc_mode_insn): Likewise for first param "insn".
13418         (cse_change_cc_mode_insns): Likewise for first and second params
13419         "start" and "end".
13420         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
13421         and "end".
13422         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
13423         "cc_src_insn".
13424
13425 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13426             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13427             Anna Tikhonova  <anna.tikhonova@intel.com>
13428             Ilya Tocar  <ilya.tocar@intel.com>
13429             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13430             Ilya Verbin  <ilya.verbin@intel.com>
13431             Kirill Yukhin  <kirill.yukhin@intel.com>
13432             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13433
13434         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
13435         New.
13436         * config/i386/sse.md
13437         (define_mode_iterator VI248_AVX2): Delete.
13438         (define_mode_iterator VI2_AVX2_AVX512BW): New.
13439         (define_mode_iterator VI48_AVX2): Ditto.
13440         (define_insn <shift_insn><mode>3): Delete.
13441         (define_insn "<shift_insn><mode>3<mask_name>" with
13442         VI2_AVX2_AVX512BW): New.
13443         (define_insn "<shift_insn><mode>3<mask_name>" with
13444         VI48_AVX2): Ditto.
13445
13446 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13447             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13448             Anna Tikhonova  <anna.tikhonova@intel.com>
13449             Ilya Tocar  <ilya.tocar@intel.com>
13450             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13451             Ilya Verbin  <ilya.verbin@intel.com>
13452             Kirill Yukhin  <kirill.yukhin@intel.com>
13453             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13454
13455         * config/i386/sse.md
13456         (define_mode_iterator VI4F_BRCST32x2): New.
13457         (define_mode_attr 64x2_mode): Ditto.
13458         (define_mode_attr 32x2mode): Ditto.
13459         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
13460         with VI4F_BRCST32x2): Ditto.
13461         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
13462         with V16FI mode iterator): Ditto.
13463         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13464         with V16FI): Ditto.
13465         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13466         with VI8F_BRCST64x2): Ditto.
13467
13468 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13469             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13470             Anna Tikhonova  <anna.tikhonova@intel.com>
13471             Ilya Tocar  <ilya.tocar@intel.com>
13472             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13473             Ilya Verbin  <ilya.verbin@intel.com>
13474             Kirill Yukhin  <kirill.yukhin@intel.com>
13475             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13476
13477         * config/i386/sse.md
13478         (define_mode_iterator VI8_AVX512VL): New.
13479         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
13480
13481 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
13482
13483         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
13484         (define_mode_iterator V48_AVX512VL): New.
13485         (define_mode_iterator V12_AVX512VL): Ditto.
13486         (define_insn <avx512>_load<mode>_mask): Split into two similar
13487         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
13488         Refactor output template.
13489         (define_insn "<avx512>_store<mode>_mask"): Ditto.
13490
13491 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13492
13493         * cprop.c (struct occr): Strengthen field "insn" from rtx to
13494         rtx_insn *.
13495         (reg_available_p): Likewise for param "insn".
13496         (insert_set_in_table): Likewise.
13497         (hash_scan_set): Likewise.
13498         (hash_scan_insn): Likewise.
13499         (make_set_regs_unavailable): Likewise.
13500         (compute_hash_table_work): Likewise for local "insn".
13501         (reg_not_set_p): Strengthen param "insn" from const_rtx to
13502         const rtx_insn *.
13503         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
13504         (try_replace_reg): Likewise.
13505         (find_avail_set): Likewise.
13506         (cprop_jump): Likewise for params "setcc", "jump".
13507         (constprop_register): Likewise for param "insn".
13508         (cprop_insn): Likewise.
13509         (do_local_cprop): Likewise.
13510         (local_cprop_pass): Likewise for local "insn".
13511         (bypass_block): Likewise for params "setcc" and "jump".
13512         (bypass_conditional_jumps): Likewise for locals "setcc" and
13513         "insn".
13514         (one_cprop_pass): Likewise for local "insn".
13515
13516 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13517
13518         * compare-elim.c (struct comparison_use): Strengthen field "insn"
13519         from rtx to rtx_insn *.
13520         (struct comparison): Likewise, also for field "prev_clobber".
13521         (conforming_compare): Likewise for param "insn".
13522         (arithmetic_flags_clobber_p): Likewise.
13523         (find_flags_uses_in_insn): Likewise.
13524         (find_comparison_dom_walker::before_dom_children): Likewise for
13525         locals "insn", "next", "last_clobber".
13526         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
13527
13528 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13529
13530         * combine-stack-adj.c (struct csa_reflist): Strengthen field
13531         "insn" from rtx to rtx_insn *.
13532         (single_set_for_csa): Likewise for param "insn".
13533         (record_one_stack_ref): Likewise.
13534         (try_apply_stack_adjustment): Likewise.
13535         (struct record_stack_refs_data): Likewise for field "insn".
13536         (maybe_move_args_size_note): Likewise for params "last" and "insn".
13537         (prev_active_insn_bb): Likewise for return type and param "insn".
13538         (next_active_insn_bb): Likewise.
13539         (force_move_args_size_note): Likewise for params "prev" and "last"
13540         and locals "test", "next_candidate", "prev_candidate".
13541         (combine_stack_adjustments_for_block): Strengthen locals
13542         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
13543         rtx_insn *.
13544
13545 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13546
13547         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
13548         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
13549         (subst_insn): Likewise for this variable.
13550         (added_links_insn): Likewise.
13551         (struct insn_link): Likewise for field "insn".
13552         (alloc_insn_link): Likewise for param "insn".
13553         (struct undobuf): Likewise for field "other_insn".
13554         (find_single_use): Likewise for param "insn" and local "next".
13555         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
13556         (delete_noop_moves): Likewise for locals "insn", "next".
13557         (create_log_links): Likewise for locals "insn", "use_insn".
13558         Strengthen local "next_use" from rtx * to rtx_insn **.
13559         (insn_a_feeds_b): Likewise for params "a", "b".
13560         (combine_instructions): Likewise for param "f" and locals "insn",
13561         "next", "prev", "first", "last_combined_insn", "link", "link1",
13562         "temp".  Replace use of NULL_RTX with NULL when referring to
13563         insns.
13564         (setup_incoming_promotions): Likewise for param "first"
13565         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
13566         (can_combine_p): Likewise for params "insn", "i3", "pred",
13567         "pred2", "succ", "succ2" and for local "p".
13568         (combinable_i3pat): Likewise for param "i3".
13569         (cant_combine_insn_p): Likewise for param "insn".
13570         (likely_spilled_retval_p): Likewise.
13571         (adjust_for_new_dest): Likewise.
13572         (update_cfg_for_uncondjump): Likewise, also for local "insn".
13573         (try_combine): Likewise for return type and for params "i3", "i2",
13574         "i1", "i0", "last_combined_insn", and for locals "insn",
13575         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
13576         "i0_insn".  Eliminate local "tem" in favor of new locals
13577         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
13578         checked cast for now to rtx_insn * on the return type of
13579         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
13580         insns.
13581         (find_split_point): Strengthen param "insn" from rtx to
13582         rtx_insn *.
13583         (simplify_set): Likewise for local "other_insn".
13584         (recog_for_combine): Likewise for param "insn".
13585         (record_value_for_reg): Likewise.
13586         (record_dead_and_set_regs_1): Likewise for local
13587         "record_dead_insn".
13588         (record_dead_and_set_regs): Likewise for param "insn".
13589         (record_promoted_value): Likewise.
13590         (check_promoted_subreg): Likewise.
13591         (get_last_value_validate): Likewise.
13592         (reg_dead_at_p): Likewise.
13593         (move_deaths): Likewise for param "to_insn".
13594         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
13595         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
13596         in favor of new locals "tem_note" and "tem_insn", the latter being
13597         an rtx_insn *.
13598         (distribute_links): Strengthen locals "place", "insn" from rtx to
13599         rtx_insn *.
13600
13601 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13602
13603         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
13604         than a const_rtx.
13605         (can_delete_label_p): Require a const rtx_code_label * rather than
13606         a const_rtx.
13607         (delete_insn): Add checked cast to rtx_code_label * when we know
13608         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
13609         rtx to rtx_insn *.
13610         (delete_insn_chain): Strengthen locals "prev" and "current" from
13611         rtx to rtx_insn *.  Add a checked cast when assigning from
13612         "finish" (strengthening the params will come later).  Add a
13613         checked cast to rtx_note * in region where we know
13614         NOTE_P (current).
13615         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
13616         rtx_insn *.
13617         (compute_bb_for_insn): Likewise.
13618         (free_bb_for_insn): Likewise for local "insn".
13619         (compute_bb_for_insn): Likewise.
13620         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
13621         local "insn" from rtx to rtx_insn *
13622         (flow_active_insn_p): Require a const rtx_insn * rather than a
13623         const_rtx.
13624         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
13625         rtx_insn *.
13626         (can_fallthru): Likewise for locals "insn" and "insn2".
13627         (bb_note): Likewise for local "note".
13628         (first_insn_after_basic_block_note): Likewise for local "note" and
13629         for return type.
13630         (rtl_split_block): Likewise for locals "insn" and "next".
13631         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
13632         "end".
13633         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
13634         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
13635         "prev", "tmp".
13636         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
13637         them), "kill_from", "barrier", "new_insn".
13638         (patch_jump_insn): Likewise for params "insn", "old_label".
13639         (redirect_branch_edge): Likewise for locals "old_label", "insn".
13640         (force_nonfallthru_and_redirect): Likewise for locals "insn",
13641         "old_label", "new_label".
13642         (rtl_tidy_fallthru_edge): Likewise for local "q".
13643         (rtl_split_edge): Likewise for locals "before", "last".
13644         (commit_one_edge_insertion): Likewise for locals "before",
13645         "after", "insns", "tmp", "last", adding a checked cast where
13646         currently necessary.
13647         (commit_edge_insertions): Likewise.
13648         (rtl_dump_bb): Likewise for locals "insn", "last".
13649         (print_rtl_with_bb): Likewise for local "x".
13650         (rtl_verify_bb_insns): Likewise for local "x".
13651         (rtl_verify_bb_pointers): Likewise for local "insn".
13652         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
13653         "head", "end".
13654         (rtl_verify_fallthru): Likewise for local "insn".
13655         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
13656         (purge_dead_edges): Likewise for local "insn".
13657         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
13658         (skip_insns_after_block): Likewise for return type and for locals
13659         "insn", "last_insn", "next_head", "prev".
13660         (record_effective_endpoints): Likewise for locals "next_insn",
13661         "insn", "end".
13662         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
13663         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
13664         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
13665         (duplicate_insn_chain): For now, add checked cast from rtx to
13666         rtx_insn * when returning insn.
13667         (cfg_layout_duplicate_bb): Likewise for local "insn".
13668         (cfg_layout_delete_block): Likewise for locals "insn", "next",
13669         "prev", "remaints".
13670         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
13671         (rtl_block_empty_p): Likewise.
13672         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
13673         "split_point", "last".
13674         (rtl_block_ends_with_call_p): Likewise for local "insn".
13675         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
13676         const rtx_insn *.
13677         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
13678         "split_at_insn" from rtx to rtx_insn *.
13679         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
13680         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
13681         to const rtx_insn *.
13682         (rtl_account_profile_record): Likewise.
13683
13684 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13685
13686         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
13687         rtx to rtx_insn *.
13688         (average_num_loop_insns): Likewise.
13689         (init_set_costs): Likewise for local "seq".
13690         (seq_cost): Likewise for param "seq", from const_rtx to const
13691         rtx_insn *.
13692
13693 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13694
13695         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
13696         rtx to rtx_insn *.
13697
13698 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13699
13700         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
13701         "f1" and "f2" from rtx * to rtx_insn **.
13702         (flow_find_head_matching_sequence): Likewise.
13703
13704         * cfgcleanup.c (try_simplify_condjump): Strengthen local
13705         "cbranch_insn" from rtx to rtx_insn *.
13706         (thread_jump): Likewise for local "insn".
13707         (try_forward_edges): Likewise for local "last".
13708         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
13709         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
13710         "real_b_end".
13711         (can_replace_by): Likewise for params "i1", "i2".
13712         (old_insns_match_p): Likewise.
13713         (merge_notes): Likewise.
13714         (walk_to_nondebug_insn): Likewise for param "i1".
13715         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
13716         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
13717         "afterlast1", "afterlast2" from rtx to rtx_insn *.
13718         (flow_find_head_matching_sequence): Strengthen params "f1" and
13719         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
13720         "last1", "last2", "beforelast1", "beforelast2" from rtx to
13721         rtx_insn *.
13722         (outgoing_edges_match): Likewise for locals "last1", "last2".
13723         (try_crossjump_to_edge): Likewise for local "insn".
13724         Replace call to for_each_rtx with for_each_rtx_in_insn.
13725
13726         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
13727         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
13728         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
13729         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
13730         (try_optimize_cfg): Strengthen local "last" from rtx to
13731         rtx_insn *.
13732         (delete_dead_jumptables): Likewise for locals "insn", "next",
13733         "label".
13734
13735         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
13736         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
13737         "rtx else_first_tail", to reflect the basic-block.h changes above.
13738
13739 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13740
13741         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
13742         rtx_insn *.
13743         (purge_dead_tablejump_edges): Likewise.
13744         (find_bb_boundaries): Likewise for locals "insn", "end",
13745         "flow_transfer_insn".
13746
13747 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13748
13749         * caller-save.c (save_call_clobbered_regs): Strengthen locals
13750         "ins" and "prev" from rtx to rtx_insn *.
13751
13752 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13753
13754         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
13755         rtx_insn *.
13756         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
13757         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
13758         "scan_start".
13759         (load_register_parameters): Likewise for local "before_arg".
13760         (check_sibcall_argument_overlap): Likewise for param "insn".
13761         (expand_call): Likewise for locals "normal_call_insns",
13762         "tail_call_insns", "insns", "before_call", "after_args",
13763         "before_arg", "last", "prev".  Strengthen one of the "last" from
13764         rtx to rtx_call_insn *.
13765         (fixup_tail_calls): Strengthen local "insn" from rtx to
13766         rtx_insn *.
13767         (emit_library_call_value_1): Likewise for locals "before_call" and
13768         "last".
13769
13770 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13771
13772         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
13773         and "last" from rtx to rtx_insn *.
13774         (expand_builtin_nonlocal_goto): Likewise for local "insn".
13775         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
13776         rtx_call_insn *.
13777         (expand_errno_check): Strengthen local "lab" from rtx to
13778         rtx_code_label *.
13779         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
13780         rtx_insn *.
13781         (expand_builtin_mathfn_2): Likewise.
13782         (expand_builtin_mathfn_ternary): Likewise.
13783         (expand_builtin_mathfn_3): Likewise.
13784         (expand_builtin_interclass_mathfn): Likewise for local "last".
13785         (expand_builtin_int_roundingfn): Likewise for local "insns".
13786         (expand_builtin_int_roundingfn_2): Likewise.
13787         (expand_builtin_strlen): Likewise for local "before_strlen".
13788         (expand_builtin_strncmp): Likewise for local "seq".
13789         (expand_builtin_signbit): Likewise for local "last".
13790         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
13791         from rtx to rtx_code_label *.
13792         (expand_stack_restore):  Strengthen local "prev" from rtx to
13793         rtx_insn *.
13794
13795 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13796
13797         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
13798         to rtx_insn *.
13799         (struct btr_def_s): Likewise.
13800         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
13801         const rtx_insn *.
13802         (add_btr_def): Likewise.
13803         (new_btr_user): Likewise.
13804         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
13805         rtx to rtx_insn *.
13806         (link_btr_uses): Likewise.
13807         (move_btr_def): Likewise for locals "insp", "old_insn",
13808         "new_insn".  Add checked cast to rtx_insn * for now on result of
13809         gen_move_insn.
13810         (can_move_up): Strengthen param "insn" from const_rtx to
13811         const rtx_insn *.
13812
13813 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13814
13815         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
13816         rtx_insn *.
13817         (get_uncond_jump_length): Likewise for locals "label", "jump".
13818         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
13819         "jump", "insn".
13820         (add_labels_and_missing_jumps): Likewise for local "new_jump".
13821         (fix_up_fall_thru_edges): Likewise for local "old_jump".
13822         (find_jump_block): Likewise for local "insn".
13823         (fix_crossing_conditional_branches): Likewise for locals
13824         "old_jump", "new_jump".
13825         (fix_crossing_unconditional_branches): Likewise for locals
13826         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
13827         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
13828
13829 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13830
13831         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
13832         rtx to rtx_insn *.
13833         (struct mem_insn): Likewise for field "insn".
13834         (reg_next_use): Strengthen from rtx * to rtx_insn **.
13835         (reg_next_inc_use): Likewise.
13836         (reg_next_def): Likewise.
13837         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
13838         from rtx to rtx_insn *.
13839         (move_insn_before): Likewise for param "next_insn" and local "insns".
13840         (attempt_change): Likewise for local "mov_insn".
13841         (try_merge): Likewise for param "last_insn".
13842         (get_next_ref): Likewise for return type and local "insn".
13843         Strengthen param "next_array" from rtx * to rtx_insn **.
13844         (parse_add_or_inc): Strengthen param "insn" from rtx to
13845         rtx_insn *.
13846         (find_inc): Likewise for locals "insn" and "other_insn" (three of
13847         the latter).
13848         (merge_in_block): Likewise for locals "insn", "curr",
13849         "other_insn".
13850         (pass_inc_dec::execute): Update allocations of the arrays to
13851         reflect the stronger types.
13852
13853 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13854
13855         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
13856         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
13857         from rtx to rtx_code_label *.
13858
13859 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13860
13861         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
13862         to rtx_insn *.
13863
13864 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
13865
13866         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
13867         generated a warning and prevented bootstrapping the compiler.
13868
13869 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13870
13871         * rtl.h (delete_related_insns): Strengthen return type from rtx to
13872         rtx_insn *.
13873
13874         * jump.c (delete_related_insns): Likewise, also for locals "next"
13875         and "prev".
13876
13877 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13878
13879         * genautomata.c (output_internal_insn_latency_func): When writing
13880         the function "internal_insn_latency" to insn-automata.c,
13881         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
13882         allowing the optional guard function of (define_bypass) clauses to
13883         expect a pair of rtx_insn *, rather than a pair of rtx.
13884         (output_insn_latency_func): When writing the function
13885         "insn_latency", add an "uncast_" prefix to params "insn" and
13886         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
13887         using checked casts from the params, thus enabling the above
13888         change to the generated "internal_insn_latency" function.
13889
13890 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
13891
13892         PR tree-optimization/62091
13893         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
13894         handle correctly arrays.
13895         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
13896         inheritance binfos.
13897         (record_known_type): Walk into inner type.
13898         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
13899         condition on no type changes.
13900
13901 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13902
13903         * genattrtab.c (write_attr_get): Within the generated get_attr_
13904         functions, rename param "insn" to "uncast_insn" and reintroduce
13905         "insn" as an local rtx_insn * using a checked cast, so that "insn"
13906         is an rtx_insn * within insn-attrtab.c
13907
13908 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13909
13910         * output.h (peephole): Strengthen return type from rtx to
13911         rtx_insn *.
13912         * rtl.h (delete_for_peephole): Likewise for both params.
13913         * genpeep.c (main): In generated "peephole" function, strengthen
13914         return type and local "insn" from rtx to rtx_insn *.  For now,
13915         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
13916         rtx_insn *, with a checked cast.
13917         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
13918         locals "insn", "next", "prev" from rtx to rtx_insn *.
13919
13920 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
13921
13922         PR tree-optimization/62112
13923         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
13924         * gimple-iterator.h (gsi_replace): Return bool.
13925         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
13926         moved from ref_may_alias_global_p.
13927         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
13928         New overloads.
13929         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
13930         (stmt_kills_ref_p_1): Rename...
13931         (stmt_kills_ref_p): ... to this.
13932         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
13933         stmt_kills_ref_p): Declare.
13934         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
13935         Move the self-assignment case...
13936         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
13937
13938 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13939
13940         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
13941
13942         * emit-rtl.c (try_split): Likewise, also for locals "before" and
13943         "after".  For now, don't strengthen param "trial", which requires
13944         adding checked casts when returning it.
13945
13946 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13947
13948         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
13949         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
13950         "var_location" hook from rtx to rtx_insn *.
13951         (debug_nothing_rtx): Delete in favor of...
13952         (debug_nothing_rtx_code_label): New prototype.
13953         (debug_nothing_rtx_rtx): Delete unused prototype.
13954         (debug_nothing_rtx_insn): New prototype.
13955
13956         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
13957         invoking debug_hooks->var_location (in two places, one in a NOTE
13958         case of a switch statement, the other guarded by a CALL_P
13959         conditional.  Add checked cast to rtx_code_label * when invoking
13960         debug_hooks->label (within CODE_LABEL case of switch statement).
13961
13962         * dbxout.c (dbx_debug_hooks): Update "label" hook from
13963         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
13964         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
13965         (xcoff_debug_hooks): Likewise.
13966         * debug.c (do_nothing_debug_hooks): Likewise.
13967         (debug_nothing_rtx): Delete in favor of...
13968         (debug_nothing_rtx_insn): New function.
13969         (debug_nothing_rtx_rtx): Delete unused function.
13970         (debug_nothing_rtx_code_label): New function.
13971         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
13972         debug_nothing_rtx to debug_nothing_rtx_code_label.
13973         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
13974         to rtx_insn *.
13975         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
13976         debug_nothing_rtx to debug_nothing_rtx_insn.
13977         (sdbout_label): Strengthen param "insn" from rtx to
13978         rtx_code_label *.
13979         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
13980         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
13981         "var_location" hook from debug_nothing_rtx to
13982         debug_nothing_rtx_insn.
13983
13984 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
13985
13986         * recog.h (insn_output_fn): Update this function typedef to match
13987         the changes below to the generated output functions, strengthening
13988         the 2nd param from rtx to rtx_insn *.
13989
13990         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
13991         insn when invoking an output function, to match the new signature
13992         of insn_output_fn with a stronger second param.
13993
13994         * genconditions.c (write_header): In the generated code for
13995         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
13996         to match the other changes in this patch.
13997
13998         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
13999         the generated "gen_" functions from rtx to rtx_insn * within their
14000         implementations.
14001
14002         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14003         the subfunctions within the generated "recog_", "split", "peephole2"
14004         function trees from rtx to rtx_insn *.  For now, the top-level
14005         generated functions ("recog", "split", "peephole2") continue to
14006         take a plain rtx for "insn", to avoid introducing dependencies on
14007         other patches.  Rename this 2nd param from "insn" to
14008         "uncast_insn", and reintroduce "insn" as a local variable of type
14009         rtx_insn *, initialized at the top of the generated function with
14010         a checked cast on "uncast_insn".
14011         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14012         the generated "gen_" functions from rtx to rtx_insn * within their
14013         prototypes.
14014
14015         * genoutput.c (process_template): Strengthen the 2nd param within
14016         the generated "output_" functions "insn" from rtx to rtx_insn *.
14017
14018 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14019
14020         * tree-profile.c (tree_profiling): Skip external functions
14021         when doing coverage instrumentation.
14022         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14023
14024 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14025
14026         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14027         (vec_mergee): Likewise.
14028         (vec_mergeo): Likewise.
14029         (vec_cntlz): Likewise.
14030         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14031         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14032         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14033         VMRGEW, and VMRGOW.
14034         * doc/extend.texi: Document various forms of vec_cpsgn,
14035         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14036         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14037         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14038         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14039         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14040
14041 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14042
14043         * config/rs6000/rs6000.c (context.h): New include.
14044         (tree-pass.h): Likewise.
14045         (make_pass_analyze_swaps): New decl.
14046         (rs6000_option_override): Register pass_analyze_swaps.
14047         (swap_web_entry): New subsclass of web_entry_base (df.h).
14048         (special_handling_values): New enum.
14049         (union_defs): New function.
14050         (union_uses): Likewise.
14051         (insn_is_load_p): Likewise.
14052         (insn_is_store_p): Likewise.
14053         (insn_is_swap_p): Likewise.
14054         (rtx_is_swappable_p): Likewise.
14055         (insn_is_swappable_p): Likewise.
14056         (chain_purpose): New enum.
14057         (chain_contains_only_swaps): New function.
14058         (mark_swaps_for_removal): Likewise.
14059         (swap_const_vector_halves): Likewise.
14060         (adjust_subreg_index): Likewise.
14061         (permute_load): Likewise.
14062         (permute_store): Likewise.
14063         (handle_special_swappables): Likewise.
14064         (replace_swap_with_copy): Likewise.
14065         (dump_swap_insn_table): Likewise.
14066         (rs6000_analyze_swaps): Likewise.
14067         (pass_data_analyze_swaps): New pass_data.
14068         (pass_analyze_swaps): New rtl_opt_pass.
14069         (make_pass_analyze_swaps): New function.
14070         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14071
14072 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14073
14074         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14075         type from rtx to rtx_insn *.
14076         (create_copy_of_insn_rtx): Likewise.
14077         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14078         (create_copy_of_insn_rtx): Likewise, also for local "res".
14079
14080 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14081
14082         * rtl.h (find_first_parameter_load): Strengthen return type from
14083         rtx to rtx_insn *.
14084         * rtlanal.c (find_first_parameter_load): Strengthen return type
14085         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14086         strengthening the params.
14087
14088 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14089
14090         PR fortran/44054
14091         * diagnostic.c: Set default caret.
14092         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14093         line is needed.
14094         * diagnostic.h (struct diagnostic_context):
14095
14096 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14097
14098         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14099         (sel_bb_head): Strengthen return type insn_t (currently just an
14100         rtx) to rtx_insn *.
14101         (sel_bb_end): Likewise.
14102
14103         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14104         (sel_bb_head): Strengthen return type and local "head" from
14105         insn_t (currently just an rtx) to rtx_insn *.
14106         (sel_bb_end): Likewise for return type.
14107         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14108         working with insn.
14109
14110 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14111
14112         * basic-block.h (get_last_bb_insn): Strengthen return type from
14113         rtx to rtx_insn *.
14114         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14115         end".
14116
14117 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14118
14119         PR fortran/44054
14120         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14121         to here ...
14122         (diagnostic_report_diagnostic): ... from here.
14123         * toplev.c (general_init): Move code to c-family.
14124
14125 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14126
14127         * df.h (web_entry_base): Replace existing struct web_entry with a
14128         new class web_entry_base with only the predecessor member.
14129         (unionfind_root): Remove declaration and move to class member.
14130         (unionfind_union): Remove declaration and move to friend
14131         function.
14132         (union_defs): Remove declaration.
14133         * web.c (web_entry_base::unionfind_root): Modify to be member
14134         function and adjust accessors.
14135         (unionfind_union): Modify to be friend function and adjust
14136         accessors.
14137         (web_entry): New subclass of web_entry_base containing the reg
14138         member.
14139         (union_match_dups): Modify for struct -> class changes.
14140         (union_defs): Likewise.
14141         (entry_register): Likewise.
14142         (pass_web::execute): Likewise.
14143
14144 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14145
14146         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14147         builtin define __VEC_ELEMENT_REG_ORDER__.
14148
14149 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14150             Wei Mi  <wmi@google.com>
14151
14152         PR ipa/60449
14153         PR middle-end/61776
14154         * tree-ssa-operands.c (update_stmt_operands): Remove
14155         MODIFIED_NORETURN_CALLS.
14156         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14157         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14158         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14159         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14160         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14161         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14162         (gimple_call_set_ctrl_altering): New func.
14163         (gimple_call_ctrl_altering_p): Ditto.
14164         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14165         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14166         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14167         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14168         remove MODIFIED_NORETURN_CALLS.
14169
14170 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14171
14172         * coverage.c (coverage_compute_profile_id): Return non-0;
14173         also handle symbols with unique name.
14174         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14175
14176 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14177
14178         PR middle-end/49191
14179         * doc/sourcebuild.texi (non_strict_align): New.
14180
14181 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14182
14183         * cgraphunit.c (ipa_passes, compile): Reshedule
14184         symtab_remove_unreachable_nodes passes; update comments.
14185         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14186         TODO_remove_functions before the pass; the functions ought to be
14187         already removed.
14188         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14189         TODO_remove_functions.
14190         * passes.c (pass_data_early_local_passes): Do not schedule function
14191         removal.
14192         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14193
14194 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14195
14196         PR c/59304
14197         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14198         before setting the option.
14199         * diagnostic.c (diagnostic_classify_diagnostic): Record
14200         command-line status.
14201
14202 2014-08-20  Richard Biener  <rguenther@suse.de>
14203
14204         PR lto/62190
14205         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14206         to build uint{16,32,64}_type_node.
14207
14208 2014-08-20  Terry Guo  <terry.guo@arm.com>
14209
14210         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14211         with immediate_operand.
14212
14213 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14214
14215         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14216         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14217         NULL.
14218
14219 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14220
14221         PR preprocessor/51303
14222         * incpath.c (remove_duplicates): Use cpp_warning.
14223
14224 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14225
14226         PR c/60975
14227         PR c/53063
14228         * doc/options.texi (CPP): Document it.
14229         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14230         * optc-gen.awk: Handle CPP.
14231         * opth-gen.awk: Likewise.
14232
14233 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14234
14235         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14236         rtx_insn *.
14237         (duplicate_insn_chain): Likewise.
14238         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14239         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14240         checked cast for now (until we can strengthen the params in the
14241         same way).
14242         (duplicate_insn_chain): Likewise.
14243
14244 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14245
14246         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14247         rtx_insn *.
14248         (prev_cc0_setter): Likewise.
14249
14250         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14251         rtx_insn *, adding checked casts for now as necessary.
14252         (prev_cc0_setter): Likewise.
14253
14254 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14255
14256         * expr.h (emit_move_insn): Strengthen return type from rtx to
14257         rtx_insn *.
14258         (emit_move_insn_1): Likewise.
14259         (emit_move_complex_push): Likewise.
14260         (emit_move_complex_parts): Likewise.
14261
14262         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14263         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14264         with insns.
14265         (emit_move_complex_push): Strengthen return type from rtx to
14266         rtx_insn *.
14267         (emit_move_complex): Likewise, also for local "ret".
14268         (emit_move_ccmode): Likewise.
14269         (emit_move_multi_word): Likewise for return type and locals
14270         "last_insn", "seq".
14271         (emit_move_insn_1): Likewise for return type and locals "result",
14272         "ret".
14273         (emit_move_insn): Likewise for return type and local "last_insn".
14274         (compress_float_constant): Likewise.
14275
14276 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14277
14278         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14279         from rtx to rtx_insn *.
14280
14281         * rtl.h (emit_insn_before): Likewise.
14282         (emit_insn_before_noloc): Likewise.
14283         (emit_insn_before_setloc): Likewise.
14284         (emit_jump_insn_before): Likewise.
14285         (emit_jump_insn_before_noloc): Likewise.
14286         (emit_jump_insn_before_setloc): Likewise.
14287         (emit_call_insn_before): Likewise.
14288         (emit_call_insn_before_noloc): Likewise.
14289         (emit_call_insn_before_setloc): Likewise.
14290         (emit_debug_insn_before): Likewise.
14291         (emit_debug_insn_before_noloc): Likewise.
14292         (emit_debug_insn_before_setloc): Likewise.
14293         (emit_label_before): Likewise.
14294         (emit_insn_after): Likewise.
14295         (emit_insn_after_noloc): Likewise.
14296         (emit_insn_after_setloc): Likewise.
14297         (emit_jump_insn_after): Likewise.
14298         (emit_jump_insn_after_noloc): Likewise.
14299         (emit_jump_insn_after_setloc): Likewise.
14300         (emit_call_insn_after): Likewise.
14301         (emit_call_insn_after_noloc): Likewise.
14302         (emit_call_insn_after_setloc): Likewise.
14303         (emit_debug_insn_after): Likewise.
14304         (emit_debug_insn_after_noloc): Likewise.
14305         (emit_debug_insn_after_setloc): Likewise.
14306         (emit_label_after): Likewise.
14307         (emit_insn): Likewise.
14308         (emit_debug_insn): Likewise.
14309         (emit_jump_insn): Likewise.
14310         (emit_call_insn): Likewise.
14311         (emit_label): Likewise.
14312         (gen_clobber): Likewise.
14313         (emit_clobber): Likewise.
14314         (gen_use): Likewise.
14315         (emit_use): Likewise.
14316         (emit): Likewise.
14317
14318         (emit_barrier_before): Strengthen return type from rtx to
14319         rtx_barrier *.
14320         (emit_barrier_after): Likewise.
14321         (emit_barrier): Likewise.
14322
14323         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14324         from rtx to rtx_insn *.  Add checked casts for now when converting
14325         "last" from rtx to rtx_insn *.
14326         (emit_insn_before_noloc): Likewise for return type.
14327         (emit_jump_insn_before_noloc): Likewise.
14328         (emit_call_insn_before_noloc): Likewise.
14329         (emit_debug_insn_before_noloc): Likewise.
14330         (emit_barrier_before): Strengthen return type and local "insn"
14331         from rtx to rtx_barrier *.
14332         (emit_label_before): Strengthen return type from rtx to
14333         rtx_insn *.  Add checked cast for now when returning param
14334         (emit_pattern_after_noloc): Strengthen return type from rtx to
14335         rtx_insn *.  Add checked casts for now when converting "last" from
14336         rtx to rtx_insn *.
14337         (emit_insn_after_noloc): Strengthen return type from rtx to
14338         rtx_insn *.
14339         (emit_jump_insn_after_noloc): Likewise.
14340         (emit_call_insn_after_noloc): Likewise.
14341         (emit_debug_insn_after_noloc): Likewise.
14342         (emit_barrier_after): Strengthen return type from rtx to
14343         rtx_barrier *.
14344         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14345         Add checked cast for now when converting "label" from rtx to
14346         rtx_insn *.
14347         (emit_pattern_after_setloc): Strengthen return type from rtx to
14348         rtx_insn *.  Add checked casts for now when converting "last" from
14349         rtx to rtx_insn *.
14350         (emit_pattern_after): Strengthen return type from rtx to
14351         rtx_insn *.
14352         (emit_insn_after_setloc): Likewise.
14353         (emit_insn_after): Likewise.
14354         (emit_jump_insn_after_setloc): Likewise.
14355         (emit_jump_insn_after): Likewise.
14356         (emit_call_insn_after_setloc): Likewise.
14357         (emit_call_insn_after): Likewise.
14358         (emit_debug_insn_after_setloc): Likewise.
14359         (emit_debug_insn_after): Likewise.
14360         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
14361         when converting "last" from rtx to rtx_insn *.
14362         (emit_pattern_before): Strengthen return type from rtx to
14363         rtx_insn *.
14364         (emit_insn_before_setloc): Likewise.
14365         (emit_insn_before): Likewise.
14366         (emit_jump_insn_before_setloc): Likewise.
14367         (emit_jump_insn_before): Likewise.
14368         (emit_call_insn_before_setloc): Likewise.
14369         (emit_call_insn_before): Likewise.
14370         (emit_debug_insn_before_setloc): Likewise.
14371         (emit_debug_insn_before): Likewise.
14372         (emit_insn): Strengthen return type and locals "last", "insn",
14373         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
14374         within cases where we know we have an insn.
14375         (emit_debug_insn): Likewise.
14376         (emit_jump_insn): Likewise.
14377         (emit_call_insn): Strengthen return type and local "insn" from rtx
14378         to rtx_insn *.
14379         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
14380         a checked cast to rtx_insn * for now on "label".
14381         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14382         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14383         (emit_use): Likewise.
14384         (gen_use): Likewise, also for local "seq".
14385         (emit): Likewise for return type and local "insn".
14386         (rtx_insn): Likewise for return type and local "new_rtx".
14387
14388         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14389         from rtx to rtx_barrier *.
14390
14391         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14392         changed return type from rtx to rtx_insn *, we must update
14393         "emit_fn" type, and this in turn means updating...
14394         (frame_insn): ...this.  Strengthen return type from rtx to
14395         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
14396
14397 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14398
14399         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
14400         rtx to rtx_jump_table_data *.  Also for local.
14401         * rtl.h (emit_jump_table_data): Likewise.
14402
14403 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14404
14405         * basic-block.h (create_basic_block_structure): Strengthen third
14406         param "bb_note" from rtx to rtx_note *.
14407         * rtl.h (emit_note_before): Strengthen return type from rtx to
14408         rtx_note *.
14409         (emit_note_after): Likewise.
14410         (emit_note): Likewise.
14411         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14412         * function.h (struct rtl_data): Strengthen field
14413         "x_stack_check_probe_note" from rtx to rtx_note *.
14414
14415         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
14416         from rtx to rtx_note *.
14417         * cfgrtl.c (create_basic_block_structure): Strengthen third param
14418         "bb_note" from rtx to rtx_note *.
14419         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
14420         when calling emit_note_copy.
14421         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
14422         rtx_note *.
14423         (emit_note_after): Likewise.
14424         (emit_note_before): Likewise.
14425         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14426         (emit_note): Likewise.
14427         * except.c (emit_note_eh_region_end): Likewise for return type.
14428         Strengthen local "next" from rtx to rtx_insn *.
14429         (convert_to_eh_region_ranges): Strengthen local "note"
14430         from rtx to rtx_note *.
14431         * final.c (change_scope): Likewise.
14432         (reemit_insn_block_notes): Likewise, for both locals named "note".
14433         Also, strengthen local "insn" from rtx to rtx_insn *.
14434         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
14435         rtx to rtx_note *.
14436         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
14437         strengthen local "seq" from rtx to rtx_insn *.
14438         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
14439         to rtx_note *.
14440         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
14441         vec<rtx_note *>.
14442         (get_bb_note_from_pool): Strengthen return type from rtx to
14443         rtx_note *.
14444         (sel_create_basic_block): Strengthen local "new_bb_note" from
14445         insn_t to rtx_note *.
14446         * var-tracking.c (emit_note_insn_var_location): Strengthen local
14447         "note" from rtx to rtx_note *.
14448         (emit_notes_in_bb): Likewise.
14449
14450 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14451
14452         * function.h (struct rtl_data): Strengthen field
14453         "x_parm_birth_insn" from rtx to rtx_insn *.
14454         * function.c (struct assign_parm_data_all): Strengthen fields
14455         "first_conversion_insn" and "last_conversion_insn" from rtx to
14456         rtx_insn *.
14457
14458 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14459
14460         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
14461         to rtx_insn *; also for local "var_end_seq".
14462         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
14463         (maybe_cleanup_end_of_block): Likewise for param "last" and local
14464         "insn".
14465         (expand_gimple_cond): Likewise for locals "last2" and "last".
14466         (mark_transaction_restart_calls): Likewise for local "insn".
14467         (expand_gimple_stmt): Likewise for return type and locals "last"
14468         and "insn".
14469         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
14470         (avoid_complex_debug_insns): Likewise for param "insn".
14471         (expand_debug_locations): Likewise for locals "insn", "last",
14472         "prev_insn" and "insn2".
14473         (expand_gimple_basic_block): Likewise for local "last".
14474         (construct_exit_block): Likewise for locals "head", "end",
14475         "orig_end".
14476         (pass_expand::execute): Likewise for locals "var_seq",
14477         "var_ret_seq", "next".
14478
14479 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14480
14481         * asan.h (asan_emit_stack_protection): Strengthen return type from
14482         rtx to rtx_insn *.
14483         * asan.c (asan_emit_stack_protection): Likewise.  Add local
14484         "insns" to hold the return value.
14485
14486 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14487
14488         * basic-block.h (bb_note): Strengthen return type from rtx to
14489         rtx_note *.
14490         * sched-int.h (bb_note): Likewise.
14491         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
14492
14493 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14494
14495         * rtl.h (make_insn_raw): Strengthen return type from rtx to
14496         rtx_insn *.
14497
14498         * emit-rtl.c (make_insn_raw): Strengthen return type and local
14499         "insn" from rtx to rtx_insn *.
14500         (make_debug_insn_raw): Strengthen return type from rtx to
14501         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
14502         (make_jump_insn_raw):  Strengthen return type from rtx to
14503         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
14504         (make_call_insn_raw):  Strengthen return type from rtx to
14505         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
14506         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
14507         callback from rtx to rtx_insn *; likewise for local "insn" and
14508         "next", adding a checked cast to rtx_insn in the relevant cases of
14509         the switch statement.
14510         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
14511         callback from rtx to rtx_insn *.
14512         (emit_pattern_after_setloc): Likewise.
14513         (emit_pattern_after): Likewise.
14514         (emit_pattern_before_setloc): Likewise.
14515         (emit_pattern_before): Likewise.
14516
14517 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14518
14519         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
14520         rtx_call_insn *.
14521         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
14522         accepting an rtx_insn *.
14523         (last_call_insn): Strengthen return type from rtx to
14524         rtx_call_insn *.
14525
14526 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14527
14528         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
14529         "insns" from rtx to rtx_insn *.
14530         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
14531         locals "insn" and "prev".
14532
14533 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14534
14535         * rtl.h (tablejump_p): Strengthen third param from rtx * to
14536         rtx_jump_table_data **.
14537
14538         * cfgbuild.c (make_edges): Introduce local "table", using it in
14539         place of "tmp" for jump table data.
14540         (find_bb_boundaries): Strengthen local "table" from rtx to
14541         rtx_jump_table_data *.
14542         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14543         (outgoing_edges_match): Likewise for locals "table1" and "table2".
14544         (try_crossjump_to_edge): Likewise.
14545         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
14546         "table".
14547         (patch_jump_insn): Introduce local "table", using it in place of
14548         "tmp" for jump table data.
14549         (force_nonfallthru_and_redirect): Introduce local "table", so that
14550         call to tablejump_p can receive an rtx_jump_table_data **.  Update
14551         logic around the call to overwrite "note" appropriately if
14552         tablejump_p returns non-zero.
14553         (get_last_bb_insn): Introduce local "table", using it in place of
14554         "tmp" for jump table data.
14555         * dwarf2cfi.c (create_trace_edges): Likewise.
14556
14557         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
14558         from rtx to rtx_jump_table_data *.
14559         (create_fix_barrier): Strengthen local "tmp" from rtx to
14560         rtx_jump_table_data *.
14561         (arm_reorg): Likewise for local "table".
14562
14563         * config/s390/s390.c (s390_chunkify_start): Likewise.
14564
14565         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
14566
14567         * jump.c (delete_related_insns): Strengthen local "lab_next" from
14568         rtx to rtx_jump_table_data *.
14569
14570         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
14571         rtx_jump_table_data **.  Add a checked cast when writing through
14572         the pointer: we know there that local "table" is non-NULL and that
14573         JUMP_TABLE_DATA_P (table) holds.
14574         (label_is_jump_target_p): Introduce local "table", using it in
14575         place of "tmp" for jump table data.
14576
14577 2014-08-19  Marek Polacek  <polacek@redhat.com>
14578
14579         PR c++/62153
14580         * doc/invoke.texi: Document -Wbool-compare.
14581
14582 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14583
14584         * rtl.h (entry_of_function): Strengthen return type from rtx to
14585         rtx_insn *.
14586         * cfgrtl.c (entry_of_function): Likewise.
14587
14588 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14589
14590         * emit-rtl.h (get_insns): Strengthen return type from rtx to
14591         rtx_insn *, adding a checked cast for now.
14592         (get_last_insn): Likewise.
14593
14594 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14595
14596         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
14597         rtx_code_label *.
14598
14599         * emit-rtl.c (gen_label_rtx): Likewise.
14600
14601 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14602
14603         * rtl.h (previous_insn): Strengthen return type from rtx to
14604         rtx_insn *.
14605         (next_insn): Likewise.
14606         (prev_nonnote_insn): Likewise.
14607         (prev_nonnote_insn_bb): Likewise.
14608         (next_nonnote_insn): Likewise.
14609         (next_nonnote_insn_bb): Likewise.
14610         (prev_nondebug_insn): Likewise.
14611         (next_nondebug_insn): Likewise.
14612         (prev_nonnote_nondebug_insn): Likewise.
14613         (next_nonnote_nondebug_insn): Likewise.
14614         (prev_real_insn): Likewise.
14615         (next_real_insn): Likewise.
14616         (prev_active_insn): Likewise.
14617         (next_active_insn): Likewise.
14618
14619         * emit-rtl.c (next_insn): Strengthen return type from rtx to
14620         rtx_insn *, adding a checked cast.
14621         (previous_insn): Likewise.
14622         (next_nonnote_insn): Likewise.
14623         (next_nonnote_insn_bb): Likewise.
14624         (prev_nonnote_insn): Likewise.
14625         (prev_nonnote_insn_bb): Likewise.
14626         (next_nondebug_insn): Likewise.
14627         (prev_nondebug_insn): Likewise.
14628         (next_nonnote_nondebug_insn): Likewise.
14629         (prev_nonnote_nondebug_insn): Likewise.
14630         (next_real_insn): Likewise.
14631         (prev_real_insn): Likewise.
14632         (next_active_insn): Likewise.
14633         (prev_active_insn): Likewise.
14634
14635         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
14636         param "stepfunc" so that it returns an rtx_insn * rather than an
14637         rtx, to track the change to prev_nonnote_insn_bb, which is the
14638         only function this is called with.
14639         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
14640
14641 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
14642
14643         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
14644         assert.
14645
14646 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14647
14648         * coretypes.h (class rtx_debug_insn): Add forward declaration.
14649         (class rtx_nonjump_insn): Likewise.
14650         (class rtx_jump_insn): Likewise.
14651         (class rtx_call_insn): Likewise.
14652         (class rtx_jump_table_data): Likewise.
14653         (class rtx_barrier): Likewise.
14654         (class rtx_code_label): Likewise.
14655         (class rtx_note): Likewise.
14656
14657         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
14658         adding the invariant DEBUG_INSN_P (X).
14659         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
14660         the invariant NONJUMP_INSN_P (X).
14661         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
14662         the invariant JUMP_P (X).
14663         (class rtx_call_insn): New, a subclass of rtx_insn, adding
14664         the invariant CALL_P (X).
14665         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
14666         invariant JUMP_TABLE_DATA_P (X).
14667         (class rtx_barrier): New, a subclass of rtx_insn, adding the
14668         invariant BARRIER_P (X).
14669         (class rtx_code_label): New, a subclass of rtx_insn, adding
14670         the invariant LABEL_P (X).
14671         (class rtx_note): New, a subclass of rtx_insn, adding
14672         the invariant NOTE_P(X).
14673         (is_a_helper <rtx_debug_insn *>::test): New.
14674         (is_a_helper <rtx_nonjump_insn *>::test): New.
14675         (is_a_helper <rtx_jump_insn *>::test): New.
14676         (is_a_helper <rtx_call_insn *>::test): New.
14677         (is_a_helper <rtx_jump_table_data *>::test): New functions,
14678         overloaded for both rtx and rtx_insn *.
14679         (is_a_helper <rtx_barrier *>::test): New.
14680         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
14681         for both rtx and rtx_insn *.
14682         (is_a_helper <rtx_note *>::test): New.
14683
14684 2014-08-19  Marek Polacek  <polacek@redhat.com>
14685
14686         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
14687         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14688         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
14689         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
14690
14691 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14692
14693         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
14694         rtx_insn *.  To help with transition, for now, convert from an
14695         access macro into a pair of functions: BND_TO, returning an
14696         rtx_insn *, and...
14697         (SET_BND_TO): New function, for use where BND_TO is used as an
14698         lvalue.
14699
14700         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
14701         SET_BND_TO.
14702         (BND_TO): New function, adding a checked cast.
14703         (SET_BND_TO): New function.
14704
14705         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
14706         SET_BND_TO.
14707         (compute_av_set_on_boundaries): Likewise.
14708
14709 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14710
14711         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
14712         destination if it is used in source.
14713         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
14714         (*popcount<mode>2_falsedep_1): Likewise.
14715
14716 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14717
14718         PR other/62168
14719         * configure.ac: Set install_gold_as_default to no first.
14720         * configure: Regenerated.
14721
14722 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14723
14724         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
14725         "note_list" field will eventually be an rtx_insn *.  To help with
14726         transition, for now, convert from an access macro into a pair of
14727         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
14728         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
14729         used as an lvalue.
14730
14731         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
14732         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
14733
14734         * sel-sched-ir.c (init_bb): Likewise.
14735         (sel_restore_notes): Likewise.
14736         (move_bb_info): Likewise.
14737         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
14738         (SET_BB_NOTE_LIST): New function.
14739
14740 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14741
14742         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
14743         field will eventually be an rtx_insn *.  To help with transition,
14744         for now, convert from an access macro into a pair of functions:
14745         VINSN_INSN_RTX, returning an rtx_insn *, and...
14746         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
14747         is used as an lvalue.
14748
14749         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
14750         SET_VINSN_INSN_RTX where it's used as an lvalue.
14751         (VINSN_INSN_RTX): New function.
14752         (SET_VINSN_INSN_RTX): New function.
14753
14754 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14755
14756         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
14757         eventually be rtx_insn *, but to help with transition, for now,
14758         convert from an access macro into a pair of functions: DEP_PRO
14759         returning an rtx_insn * and...
14760         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
14761         lvalue, returning an rtx&.
14762         (DEP_CON): Analogous changes to DEP_PRO above.
14763         (SET_DEP_CON): Likewise.
14764
14765         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
14766         an lvalue to SET_DEP_CON.
14767         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
14768         (sd_copy_back_deps): Likewise for DEP_CON.
14769         (DEP_PRO): New function, adding a checked cast for now.
14770         (DEP_CON): Likewise.
14771         (SET_DEP_PRO): New function.
14772         (SET_DEP_CON): Likewise.
14773
14774 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14775
14776         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
14777         (extra_options): Add i386/cygwin.opt.
14778         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
14779         (CPP_SPEC): Accept -pthread.
14780         (LINK_SPEC): Ditto.
14781         (GOMP_SELF_SPECS): Update comment.
14782         * config/i386/cygwin.opt: New file for -pthread flag.
14783
14784 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14785
14786         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
14787         * df.h (DF_REF_INSN): Convert from a macro to a function, so
14788         that we can return an rtx_insn *.
14789
14790 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
14791
14792         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
14793         when building executables, not DLLs.  Add --large-address-aware
14794         under the same conditions.
14795         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
14796         when building executables, not DLLs.  Add --large-address-aware
14797         under the same conditions when using -m32.
14798
14799         * config/i386/cygwin-stdint.h: Throughout, make type
14800         definitions dependent on target architecture, not host.
14801
14802 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14803
14804         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
14805         the return type from rtx to rtx_insn *,  which will enable various
14806         conversions in followup patches.  For now this is is done by a
14807         checked cast.
14808         (NEXT_INSN): Likewise.
14809         (SET_PREV_INSN): Convert to an inline function.  This is intended
14810         for use as an lvalue, and so returns an rtx& to allow in-place
14811         modification.
14812         (SET_NEXT_INSN): Likewise.
14813
14814 2014-07-08  Mark Wielaard  <mjw@redhat.com>
14815
14816         PR debug/59051
14817         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
14818
14819 2014-08-19  Marek Polacek  <polacek@redhat.com>
14820
14821         PR c/61271
14822         * cgraphunit.c (handle_alias_pairs): Fix condition.
14823
14824 2014-08-19  Richard Biener  <rguenther@suse.de>
14825
14826         * gimple-fold.c (fold_gimple_assign): Properly build a
14827         null-pointer constant when devirtualizing addresses.
14828
14829 2014-07-07  Mark Wielaard  <mjw@redhat.com>
14830
14831         * dwarf2out.c (decl_quals): New function.
14832         (modified_type_die): Take one cv_quals argument instead of two,
14833         one for const and one for volatile.
14834         (add_type_attribute): Likewise.
14835         (generic_parameter_die): Call add_type_attribute with one modifier
14836         argument.
14837         (base_type_for_mode): Likewise.
14838         (add_bounds_info): Likewise.
14839         (add_subscript_info): Likewise.
14840         (gen_array_type_die): Likewise.
14841         (gen_descr_array_type_die): Likewise.
14842         (gen_entry_point_die): Likewise.
14843         (gen_enumeration_type_die): Likewise.
14844         (gen_formal_parameter_die): Likewise.
14845         (gen_subprogram_die): Likewise.
14846         (gen_variable_die): Likewise.
14847         (gen_const_die): Likewise.
14848         (gen_field_die): Likewise.
14849         (gen_pointer_type_die): Likewise.
14850         (gen_reference_type_die): Likewise.
14851         (gen_ptr_to_mbr_type_die): Likewise.
14852         (gen_inheritance_die): Likewise.
14853         (gen_subroutine_type_die): Likewise.
14854         (gen_typedef_die): Likewise.
14855         (force_type_die): Likewise.
14856
14857 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14858
14859         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
14860         if unset.
14861         * configure: Regenerate.
14862
14863 2014-08-19  Richard Biener  <rguenther@suse.de>
14864
14865         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
14866         DECL_EXTERNALs in BLOCKs as non-references.
14867         * tree-streamer-out.c (streamer_write_chain): Likewise.
14868
14869 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14870             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14871             Anna Tikhonova  <anna.tikhonova@intel.com>
14872             Ilya Tocar  <ilya.tocar@intel.com>
14873             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14874             Ilya Verbin  <ilya.verbin@intel.com>
14875             Kirill Yukhin  <kirill.yukhin@intel.com>
14876             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14877
14878         * config/i386/sse.md
14879         (define_mode_iterator VI48_AVX512F): Delete.
14880         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
14881         (define_mode_iterator VI2_AVX512VL): Ditto.
14882         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
14883         Delete.
14884         (define_insn
14885         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
14886         New.
14887         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
14888         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
14889         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14890         with VI48_AVX512F_AVX512VL): New.
14891         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
14892         with VI2_AVX512VL): Ditto.
14893
14894 2014-08-19  Marek Polacek  <polacek@redhat.com>
14895
14896         * doc/invoke.texi: Document -Wc99-c11-compat.
14897
14898 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14899
14900         * rtl.h (PREV_INSN): Split macro in two: the existing one,
14901         for rvalues, and...
14902         (SET_PREV_INSN): New macro, for use as an lvalue.
14903         (NEXT_INSN, SET_NEXT_INSN): Likewise.
14904
14905         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
14906         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
14907         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14908         (fixup_abnormal_edges): Likewise.
14909         (unlink_insn_chain): Likewise.
14910         (fixup_reorder_chain): Likewise.
14911         (cfg_layout_delete_block): Likewise.
14912         (cfg_layout_merge_blocks): Likewise.
14913         * combine.c (update_cfg_for_uncondjump): Likewise.
14914         * emit-rtl.c (link_insn_into_chain): Likewise.
14915         (remove_insn): Likewise.
14916         (delete_insns_since): Likewise.
14917         (reorder_insns_nobb): Likewise.
14918         (emit_insn_after_1): Likewise.
14919         * final.c (rest_of_clean_state): Likewise.
14920         (final_scan_insn): Likewise.
14921         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
14922         * haifa-sched.c (concat_note_lists): Likewise.
14923         (remove_notes): Likewise.
14924         (restore_other_notes): Likewise.
14925         (move_insn): Likewise.
14926         (unlink_bb_notes): Likewise.
14927         (restore_bb_notes): Likewise.
14928         * jump.c (delete_for_peephole): Likewise.
14929         * optabs.c (emit_libcall_block_1): Likewise.
14930         * reorg.c (emit_delay_sequence): Likewise.
14931         (fill_simple_delay_slots): Likewise.
14932         * sel-sched-ir.c (sel_move_insn): Likewise.
14933         (sel_remove_insn): Likewise.
14934         (get_bb_note_from_pool): Likewise.
14935         * sel-sched.c (move_nop_to_previous_block): Likewise.
14936
14937         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
14938         * config/c6x/c6x.c (gen_one_bundle): Likewise.
14939         (c6x_gen_bundles): Likewise.
14940         (hwloop_optimize): Likewise.
14941         * config/frv/frv.c (frv_function_prologue): Likewise.
14942         (frv_register_nop): Likewise.
14943         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
14944         (ia64_reorg): Likewise.
14945         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
14946         (mep_make_bundle): Likewise.
14947         (mep_bundle_insns): Likewise.
14948         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
14949         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
14950         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
14951
14952 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14953
14954         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
14955         return type from rtx to rtx_insn *.
14956         (BB_END): Likewise.
14957         (BB_HEADER): Likewise.
14958         (BB_FOOTER): Likewise.
14959         (SET_BB_HEAD): Convert to a function.
14960         (SET_BB_END): Likewise.
14961         (SET_BB_HEADER): Likewise.
14962         (SET_BB_FOOTER): Likewise.
14963
14964         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
14965         Strengthen the return type from rtx to rtx_insn *.  For now, this
14966         is done by adding a checked cast, but this will eventually
14967         become a field lookup.
14968         (BB_END): Likewise.
14969         (BB_HEADER): Likewise.
14970         (BB_FOOTER): Likewise.
14971         (SET_BB_HEAD): New function, from macro of same name.  This is
14972         intended for use as an lvalue, and so returns an rtx& to allow
14973         in-place modification.
14974         (SET_BB_END): Likewise.
14975         (SET_BB_HEADER): Likewise.
14976         (SET_BB_FOOTER): Likewise.
14977
14978 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
14979
14980         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
14981         for rvalues, and...
14982         (SET_BB_HEAD): New macro, for use as a lvalue.
14983         (BB_END, SET_BB_END): Likewise.
14984         (BB_HEADER, SET_BB_HEADER): Likewise.
14985         (BB_FOOTER, SET_BB_FOOTER): Likewise.
14986
14987         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
14988         of BB_* macros into SET_BB_* macros.
14989         (fix_crossing_unconditional_branches): Likewise.
14990         * caller-save.c (save_call_clobbered_regs): Likewise.
14991         (insert_one_insn): Likewise.
14992         * cfgbuild.c (find_bb_boundaries): Likewise.
14993         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
14994         (outgoing_edges_match): Likewise.
14995         (try_optimize_cfg): Likewise.
14996         * cfgexpand.c (expand_gimple_cond): Likewise.
14997         (expand_gimple_tailcall): Likewise.
14998         (expand_gimple_basic_block): Likewise.
14999         (construct_exit_block): Likewise.
15000         * cfgrtl.c (delete_insn): Likewise.
15001         (create_basic_block_structure): Likewise.
15002         (rtl_delete_block): Likewise.
15003         (rtl_split_block): Likewise.
15004         (emit_nop_for_unique_locus_between): Likewise.
15005         (rtl_merge_blocks): Likewise.
15006         (block_label): Likewise.
15007         (try_redirect_by_replacing_jump): Likewise.
15008         (emit_barrier_after_bb): Likewise.
15009         (fixup_abnormal_edges): Likewise.
15010         (record_effective_endpoints): Likewise.
15011         (relink_block_chain): Likewise.
15012         (fixup_reorder_chain): Likewise.
15013         (fixup_fallthru_exit_predecessor): Likewise.
15014         (cfg_layout_duplicate_bb): Likewise.
15015         (cfg_layout_split_block): Likewise.
15016         (cfg_layout_delete_block): Likewise.
15017         (cfg_layout_merge_blocks): Likewise.
15018         * combine.c (update_cfg_for_uncondjump): Likewise.
15019         * emit-rtl.c (add_insn_after): Likewise.
15020         (remove_insn): Likewise.
15021         (reorder_insns): Likewise.
15022         (emit_insn_after_1): Likewise.
15023         * haifa-sched.c (get_ebb_head_tail): Likewise.
15024         (restore_other_notes): Likewise.
15025         (move_insn): Likewise.
15026         (sched_extend_bb): Likewise.
15027         (fix_jump_move): Likewise.
15028         * ifcvt.c (noce_process_if_block): Likewise.
15029         (dead_or_predicable): Likewise.
15030         * ira.c (update_equiv_regs): Likewise.
15031         * reg-stack.c (change_stack): Likewise.
15032         * sel-sched-ir.c (sel_move_insn): Likewise.
15033         * sel-sched.c (move_nop_to_previous_block): Likewise.
15034
15035         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15036         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15037
15038 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15039
15040         * rtl.h (for_each_rtx_in_insn): New function.
15041         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15042
15043 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15044
15045         * coretypes.h (class rtx_insn): Add forward declaration.
15046
15047         * rtl.h: Include is-a.h.
15048         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15049         workaround to ensure gengtype knows inheritance is occurring,
15050         whilst continuing to use the pre-existing special-casing for
15051         rtx_def.
15052         (class rtx_insn): New subclass of rtx_def, adding the
15053         invariant that we're dealing with something we can sanely use
15054         INSN_UID, NEXT_INSN, PREV_INSN on.
15055         (is_a_helper <rtx_insn *>::test): New.
15056         (is_a_helper <const rtx_insn *>::test): New.
15057
15058 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15059
15060         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15061
15062 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15063
15064         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15065         comdats as extern.
15066
15067 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15068
15069         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15070         to BUILT_IN_UNREACHABLE.
15071
15072 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15073
15074         PR target/62011
15075         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15076         New tune flag.
15077         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15078         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15079         (ffs<mode>2): Do not expand with tzcnt for
15080         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15081         (ffssi2_no_cmove): Ditto.
15082         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15083         (ctz<mode>2): New expander.
15084         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15085         (*ctz<mode>2_falsedep): New insn.
15086         (*ctz<mode>2): Rename from ctz<mode>2.
15087         (clz<mode>2_lzcnt): New expander.
15088         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15089         (*clz<mode>2_lzcnt_falsedep): New insn.
15090         (*clz<mode>2): Rename from ctz<mode>2.
15091         (popcount<mode>2): New expander.
15092         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15093         (*popcount<mode>2_falsedep): New insn.
15094         (*popcount<mode>2): Rename from ctz<mode>2.
15095         (*popcount<mode>2_cmp): Remove.
15096         (*popcountsi2_cmp_zext): Ditto.
15097
15098 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15099
15100         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15101         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15102         * config/microblaze/microblaze.h
15103         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15104
15105 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15106
15107         PR other/62168
15108         * configure.ac: Set install_gold_as_default to no for
15109         --enable-gold=no.
15110         * configure: Regenerated.
15111
15112 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15113
15114         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15115         * config.in: Add undef of HAVE_isl.
15116         * configure: Regenerate.
15117         * configure.ac: Add definition of HAVE_isl.
15118         * graphite-blocking.c: Add checking of HAVE_isl.
15119         * graphite-dependences.c: Likewise.
15120         * graphite-interchange.c: Likewise.
15121         * graphite-isl-ast-to-gimple.c: Likewise.
15122         * graphite-optimize-isl.c: Likewise.
15123         * graphite-poly.c: Likewise.
15124         * graphite-scop-detection.c: Likewise.
15125         * graphite-sese-to-poly.c: Likewise.
15126         * graphite.c: Likewise.
15127         * toplev.c: Replace the checking of HAVE_cloog with the checking
15128         of HAVE_isl.
15129
15130 2014-08-18  Richard Biener  <rguenther@suse.de>
15131
15132         PR tree-optimization/62090
15133         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15134         (fold_builtin_3): Do not fold snprintf.
15135         (fold_builtin_4): Likewise.
15136         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15137         moved from builtins.c.
15138         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15139         (gimple_fold_builtin): Do not fold sprintf here.
15140
15141 2014-08-18  Richard Biener  <rguenther@suse.de>
15142
15143         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15144         code to ...
15145         (maybe_canonicalize_mem_ref_addr): ... this function.
15146         (fold_stmt_1): Apply it here before all simplification.
15147
15148 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15149
15150         PR ipa/61800
15151         * cgraph.h (cgraph_node::create_indirect_edge): Add
15152         compute_indirect_info param.
15153         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15154         indirect_info only when it is required.
15155         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15156         indirect_info fore cloned indirect edge.
15157
15158 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15159             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15160             Anna Tikhonova  <anna.tikhonova@intel.com>
15161             Ilya Tocar  <ilya.tocar@intel.com>
15162             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15163             Ilya Verbin  <ilya.verbin@intel.com>
15164             Kirill Yukhin  <kirill.yukhin@intel.com>
15165             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15166
15167         * config/i386/sse.md
15168         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15169         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15170
15171 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15172             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15173             Anna Tikhonova  <anna.tikhonova@intel.com>
15174             Ilya Tocar  <ilya.tocar@intel.com>
15175             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15176             Ilya Verbin  <ilya.verbin@intel.com>
15177             Kirill Yukhin  <kirill.yukhin@intel.com>
15178             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15179
15180         * config/i386/sse.md
15181         (define_mode_iterator VF1_AVX512VL): New.
15182         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15183         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15184         New.
15185
15186 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15187             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15188             Anna Tikhonova  <anna.tikhonova@intel.com>
15189             Ilya Tocar  <ilya.tocar@intel.com>
15190             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15191             Ilya Verbin  <ilya.verbin@intel.com>
15192             Kirill Yukhin  <kirill.yukhin@intel.com>
15193             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15194
15195         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15196         * config/i386/i386.md
15197         (define_code_iterator any_float): New.
15198         (define_code_attr floatsuffix): New.
15199         * config/i386/sse.md
15200         (define_mode_iterator VF1_128_256VL): New.
15201         (define_mode_iterator VF2_512_256VL): New.
15202         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15203         TARGET check.
15204         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15205         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15206         New.
15207         (define_mode_attr qq2pssuff): New.
15208         (define_mode_attr sselongvecmode): New.
15209         (define_mode_attr sselongvecmodelower): New.
15210         (define_mode_attr sseintvecmode3): New.
15211         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15212         New.
15213         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15214         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15215         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15216         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15217
15218 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15219             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15220             Anna Tikhonova  <anna.tikhonova@intel.com>
15221             Ilya Tocar  <ilya.tocar@intel.com>
15222             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15223             Ilya Verbin  <ilya.verbin@intel.com>
15224             Kirill Yukhin  <kirill.yukhin@intel.com>
15225             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15226
15227         * config/i386/sse.md
15228         (define_mode_iterator VF2_AVX512VL): New.
15229         (define_mode_attr sseintvecmode2): New.
15230         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15231         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15232         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15233         (define_insn
15234         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15235         Ditto.
15236         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15237         Ditto.
15238         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15239         Ditto.
15240
15241 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15242             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15243             Anna Tikhonova  <anna.tikhonova@intel.com>
15244             Ilya Tocar  <ilya.tocar@intel.com>
15245             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15246             Ilya Verbin  <ilya.verbin@intel.com>
15247             Kirill Yukhin  <kirill.yukhin@intel.com>
15248             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15249
15250         * config/i386/i386.md
15251         (define_insn "*movoi_internal_avx"): Add evex version.
15252         (define_insn "*movti_internal"): Ditto.
15253
15254 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15255             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15256             Anna Tikhonova  <anna.tikhonova@intel.com>
15257             Ilya Tocar  <ilya.tocar@intel.com>
15258             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15259             Ilya Verbin  <ilya.verbin@intel.com>
15260             Kirill Yukhin  <kirill.yukhin@intel.com>
15261             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15262
15263         * config/i386/i386.md
15264         (define_attr "isa"): Add avx512dq, noavx512dq.
15265         (define_attr "enabled"): Ditto.
15266         * config/i386/sse.md
15267         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15268
15269 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15271             Anna Tikhonova  <anna.tikhonova@intel.com>
15272             Ilya Tocar  <ilya.tocar@intel.com>
15273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15274             Ilya Verbin  <ilya.verbin@intel.com>
15275             Kirill Yukhin  <kirill.yukhin@intel.com>
15276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15277
15278         * config/i386/i386.c
15279         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15280         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15281         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15282         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15283         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15284         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15285         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15286         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15287         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15288         * config/i386/sse.md
15289         (define_mode_iterator VMOVE): Allow V4TI mode.
15290         (define_mode_iterator V_AVX512VL): New.
15291         (define_mode_iterator V): New handling for AVX512VL.
15292         (define_insn "avx512f_load<mode>_mask"): Delete.
15293         (define_insn "<avx512>_load<mode>_mask"): New.
15294         (define_insn "avx512f_store<mode>_mask"): Delete.
15295         (define_insn "<avx512>_store<mode>_mask"): New.
15296
15297
15298 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15299
15300         PR sanitizer/62089
15301         * asan.c (instrument_derefs): Fix bitfield check.
15302
15303 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15304
15305         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15306         * config/rs6000/htm.md (ttest): Remove clobber.
15307         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15308         (and_operand): Reformat.
15309         (and_2rld_operand): New predicate.
15310         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15311         parameter.
15312         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15313         parameter.  Handle AND directly.
15314         (rs6000_split_logical_di): Remove last parameter.
15315         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15316         comment.
15317         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15318         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15319         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15320         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15321         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15322         and 5 anonymous splitters):  Delete.
15323         (and<mode>3): New expander.
15324         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15325         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15326         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15327         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15328         (floatdisf2_internal1): Remove clobbers.
15329         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15330         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15331         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15332         (and<mode>3 for BOOL_128): Remove clobber.
15333         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15334         rs6000_split_logical.
15335         (*bool<mode>3_internal for BOOL_128): Adjust call of
15336         rs6000_split_logical.
15337         (*boolc<mode>3_internal1 for BOOL_128,
15338         *boolc<mode>3_internal2 for BOOL_128,
15339         *boolcc<mode>3_internal1 for BOOL_128,
15340         *boolcc<mode>3_internal2 for BOOL_128,
15341         *eqv<mode>3_internal1 for BOOL_128,
15342         *eqv<mode>3_internal2 for BOOL_128,
15343         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15344         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15345         clobber.
15346         (*vec_reload_and_reg_<mptrsize>): Delete.
15347
15348 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15349
15350         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15351         and split, *boolccsi3_internal3 and split): Delete.
15352         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15353         *boolccdi3_internal3 and split): Delete.
15354         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15355         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
15356
15357 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15358
15359         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15360         and split, *boolcsi3_internal3 and split): Delete.
15361         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15362         *boolcdi3_internal3 and split): Delete.
15363         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15364
15365 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15366
15367         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15368         <'u'>: Also support printing the low-order 16 bits.
15369         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15370         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15371         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15372         *booldi3_internal3 and split): Delete.
15373         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15374         *bool<mode>3_dot2): New.
15375         (two anonymous define_splits for non_logical_cint_operand): Merge.
15376
15377 2014-08-17  Marek Polacek  <polacek@redhat.com>
15378             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15379
15380         PR c/62059
15381         * diagnostic.c (adjust_line): Add gcc_checking_assert.
15382         (diagnostic_show_locus): Don't print caret diagnostic
15383         if a column is larger than the line_width.
15384
15385 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
15386
15387         * common.opt: Make the ISL AST generator to be the main code generator
15388         of Graphite.
15389
15390 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
15391
15392         * wide-int.h (generic_wide_int): Declare as class instead of struct.
15393
15394 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
15395
15396         PR target/61641
15397         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
15398         Declare.
15399         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
15400         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
15401         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
15402         Define.
15403         * config/pa/pa.md (begin_brtab): Delete insn.
15404         (end_brtab): Likewise.
15405
15406 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15407
15408         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
15409
15410 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
15411
15412         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15413         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15414         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15415         (get_dynamic_type): Remove.
15416         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15417         (clear_speculation): Bring to ipa-deivrt.h
15418         (get_class_context): Rename to ...
15419         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15420         (contains_type_p): Update.
15421         (get_dynamic_type): Rename to ...
15422         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15423         (possible_polymorphic_call_targets): UPdate.
15424         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15425         * ipa-prop.c (ipa_analyze_call_uses): Update.
15426
15427 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
15428
15429         * doc/invoke.texi (SH options): Document missing processor variant
15430         options.  Remove references to Hitachi.  Undocument deprecated mspace
15431         option.
15432
15433 2014-08-15  Jason Merrill  <jason@redhat.com>
15434
15435         * tree.c (type_hash_canon): Uncomment assert.
15436
15437 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15438
15439         * input.h (in_system_header_at): Add comment.
15440
15441 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15442
15443         PR fortran/44054
15444         * diagnostic.c (build_message_string): Make it extern.
15445         * diagnostic.h (build_message_string): Make it extern.
15446
15447 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
15448
15449         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
15450         load/store from/to non-floating class pseudo.
15451
15452 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15453
15454         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
15455
15456 2014-08-15  Richard Biener  <rguenther@suse.de>
15457
15458         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
15459         (get_constraint_for_ssa_var): Remove dead code.
15460         (get_constraint_for_1): Adjust.
15461         (find_what_var_points_to): Likewise.
15462         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
15463
15464 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
15465
15466         PR target/61878
15467         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
15468         (_mm512_mask_cmpge_epu32_mask): Ditto.
15469         (_mm512_cmpge_epu32_mask): Ditto.
15470         (_mm512_mask_cmpge_epi64_mask): Ditto.
15471         (_mm512_cmpge_epi64_mask): Ditto.
15472         (_mm512_mask_cmpge_epu64_mask): Ditto.
15473         (_mm512_cmpge_epu64_mask): Ditto.
15474         (_mm512_mask_cmple_epi32_mask): Ditto.
15475         (_mm512_cmple_epi32_mask): Ditto.
15476         (_mm512_mask_cmple_epu32_mask): Ditto.
15477         (_mm512_cmple_epu32_mask): Ditto.
15478         (_mm512_mask_cmple_epi64_mask): Ditto.
15479         (_mm512_cmple_epi64_mask): Ditto.
15480         (_mm512_mask_cmple_epu64_mask): Ditto.
15481         (_mm512_cmple_epu64_mask): Ditto.
15482         (_mm512_mask_cmplt_epi32_mask): Ditto.
15483         (_mm512_cmplt_epi32_mask): Ditto.
15484         (_mm512_mask_cmplt_epu32_mask): Ditto.
15485         (_mm512_cmplt_epu32_mask): Ditto.
15486         (_mm512_mask_cmplt_epi64_mask): Ditto.
15487         (_mm512_cmplt_epi64_mask): Ditto.
15488         (_mm512_mask_cmplt_epu64_mask): Ditto.
15489         (_mm512_cmplt_epu64_mask): Ditto.
15490         (_mm512_mask_cmpneq_epi32_mask): Ditto.
15491         (_mm512_mask_cmpneq_epu32_mask): Ditto.
15492         (_mm512_cmpneq_epu32_mask): Ditto.
15493         (_mm512_mask_cmpneq_epi64_mask): Ditto.
15494         (_mm512_cmpneq_epi64_mask): Ditto.
15495         (_mm512_mask_cmpneq_epu64_mask): Ditto.
15496         (_mm512_cmpneq_epu64_mask): Ditto.
15497         (_mm512_castpd_ps): Ditto.
15498         (_mm512_castpd_si512): Ditto.
15499         (_mm512_castps_pd): Ditto.
15500         (_mm512_castps_si512): Ditto.
15501         (_mm512_castsi512_ps): Ditto.
15502         (_mm512_castsi512_pd): Ditto.
15503         (_mm512_castpd512_pd128): Ditto.
15504         (_mm512_castps512_ps128): Ditto.
15505         (_mm512_castsi512_si128): Ditto.
15506         (_mm512_castpd512_pd256): Ditto.
15507         (_mm512_castps512_ps256): Ditto.
15508         (_mm512_castsi512_si256): Ditto.
15509         (_mm512_castpd128_pd512): Ditto.
15510         (_mm512_castps128_ps512): Ditto.
15511         (_mm512_castsi128_si512): Ditto.
15512         (_mm512_castpd256_pd512): Ditto.
15513         (_mm512_castps256_ps512): Ditto.
15514         (_mm512_castsi256_si512): Ditto.
15515         (_mm512_cmpeq_epu32_mask): Ditto.
15516         (_mm512_mask_cmpeq_epu32_mask): Ditto.
15517         (_mm512_mask_cmpeq_epu64_mask): Ditto.
15518         (_mm512_cmpeq_epu64_mask): Ditto.
15519         (_mm512_cmpgt_epu32_mask): Ditto.
15520         (_mm512_mask_cmpgt_epu32_mask): Ditto.
15521         (_mm512_mask_cmpgt_epu64_mask): Ditto.
15522         (_mm512_cmpgt_epu64_mask): Ditto.
15523         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
15524         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
15525         * config/i386/i386.c (enum ix86_builtins): Add
15526         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
15527         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
15528         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
15529         (bdesc_args): Add __builtin_ia32_si512_256si,
15530         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
15531         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
15532         __builtin_ia32_pd512_pd.
15533         (ix86_expand_args_builtin): Handle new FTYPEs.
15534         * config/i386/sse.md (castmode): Add 512-bit modes.
15535         (AVX512MODE2P): New.
15536         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
15537         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
15538
15539 2014-08-15  Richard Biener  <rguenther@suse.de>
15540
15541         * fold-const.c (tree_swap_operands_p): Put all constants
15542         last, also strip sign-changing NOPs when considering further
15543         canonicalization.  Canonicalize also when optimizing for size.
15544
15545 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15546
15547         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
15548         one_match > zero_match case to just before simple_sequence.
15549
15550 2014-08-15  Richard Biener  <rguenther@suse.de>
15551
15552         * data-streamer.h (streamer_string_index, string_for_index):
15553         Remove.
15554         * data-streamer-out.c (streamer_string_index): Make static.
15555         * data-streamer-in.c (string_for_index): Likewise.
15556         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
15557         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
15558
15559 2014-08-15  Richard Biener  <rguenther@suse.de>
15560
15561         PR tree-optimization/62031
15562         * tree-data-ref.c (dr_analyze_indices): Do not set
15563         DR_UNCONSTRAINED_BASE.
15564         (dr_may_alias_p): All indirect accesses have to go the
15565         formerly DR_UNCONSTRAINED_BASE path.
15566         * tree-data-ref.h (struct indices): Remove
15567         unconstrained_base member.
15568         (DR_UNCONSTRAINED_BASE): Remove.
15569
15570 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
15571
15572         PR middle-end/62092
15573         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
15574         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
15575         in OMP_CLAUSE_MAP in some outer target region.
15576
15577 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
15578
15579         * tree-ssa-loop-ivopts.c (ivopts_data): New field
15580         name_expansion_cache.
15581         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
15582         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
15583         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
15584         (difference_cannot_overflow_p): New parameter.  Use affine
15585         expansion for equality check.
15586         (iv_elimination_compare_lt): Pass new argument.
15587
15588 2014-08-14  DJ Delorie  <dj@redhat.com>
15589
15590         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
15591         variables to the accumulator.
15592
15593         * config/rl78/predicates.md (rl78_near_mem_operand): New.
15594         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
15595         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
15596         with far-far moves.
15597
15598         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
15599         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
15600         (umulqihi3_virt): Likewise.
15601         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
15602         (umulqihi3_real): Likewise.
15603
15604         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
15605
15606 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15607
15608         PR tree-optimization/62091
15609         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
15610         function_entry_reached.
15611         (walk_aliased_vdefs): Clear it here.
15612         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
15613
15614 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
15615
15616         * ipa-utils.h (compare_virtual_tables): Declare.
15617         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
15618
15619 2014-08-14  Marek Polacek  <polacek@redhat.com>
15620
15621         DR 458
15622         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
15623         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
15624
15625 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15626
15627         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
15628
15629 2014-08-14  Tom de Vries  <tom@codesourcery.com>
15630
15631         PR rtl-optimization/62004
15632         PR rtl-optimization/62030
15633         * ifcvt.c (rtx_interchangeable_p): New function.
15634         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
15635         * emit-rtl.h (mem_attrs_eq_p): Declare.
15636
15637 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
15638
15639         * graphite-scop-detection.c:
15640         Add inclusion of cp-tree.h.
15641         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
15642         in case they are pointers to object types
15643
15644 2014-08-14  Richard Biener  <rguenther@suse.de>
15645
15646         * BASE-VER: Change to 5.0.0
15647
15648 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15649             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15650             Anna Tikhonova  <anna.tikhonova@intel.com>
15651             Ilya Tocar  <ilya.tocar@intel.com>
15652             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15653             Ilya Verbin  <ilya.verbin@intel.com>
15654             Kirill Yukhin  <kirill.yukhin@intel.com>
15655             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15656
15657         * config/i386/sse.md (define_mode_attr avx512): New.
15658         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
15659         V4DI modes.
15660         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
15661         (define_mode_attr ssse3_avx2): Ditto.
15662         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
15663         (define_mode_attr avx2_avx512bw): New.
15664         (define_mode_attr ssedoublemodelower): New.
15665         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
15666         V32HI, V64QI modes.
15667         (define_mode_attr ssebytemode): Allow V8DI modes.
15668         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
15669         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
15670         (define_mode_attr ssePSmode2): New.
15671         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
15672         V16HI, V32HI modes.
15673         (define_mode_attr dbpsadbwmode): New.
15674         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
15675         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
15676         (vi8_sse4_1_avx2_avx512): New.
15677         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
15678         mode attribute.
15679         (define_mode_attr blendbits): Move before its immediate use.
15680
15681 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15682             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15683             Anna Tikhonova  <anna.tikhonova@intel.com>
15684             Ilya Tocar  <ilya.tocar@intel.com>
15685             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15686             Ilya Verbin  <ilya.verbin@intel.com>
15687             Kirill Yukhin  <kirill.yukhin@intel.com>
15688             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15689
15690         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
15691         * config/i386/subst.md
15692         (define_mode_iterator SUBST_V): Update.
15693         (define_mode_iterator SUBST_A): Ditto.
15694         (define_subst_attr "mask_operand7"): New.
15695         (define_subst_attr "mask_operand10"): New.
15696         (define_subst_attr "mask_operand_arg34") : New.
15697         (define_subst_attr "mask_expand_op3"): New.
15698         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
15699         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
15700         (define_subst_attr "mask_avx512vl_condition"): New.
15701         (define_subst_attr "round_mask_operand4"): Ditto.
15702         (define_subst_attr "round_mask_scalar_op3"): Delete.
15703         (define_subst_attr "round_mask_op4"): New.
15704         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
15705         V16SImode.
15706         (define_subst_attr "round_modev8sf_condition"): New.
15707         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
15708         <MODE>mode.
15709         (define_subst_attr "round_saeonly_mask_operand4"): New.
15710         (define_subst_attr "round_saeonly_mask_op4"): New.
15711         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
15712         V8DImode, V16SImode.
15713         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
15714         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
15715         (define_subst_attr "mask_expand4_args"): New.
15716         (define_subst "mask_expand4"): New.
15717
15718 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15719             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15720             Anna Tikhonova  <anna.tikhonova@intel.com>
15721             Ilya Tocar  <ilya.tocar@intel.com>
15722             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15723             Ilya Verbin  <ilya.verbin@intel.com>
15724             Kirill Yukhin  <kirill.yukhin@intel.com>
15725             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15726
15727         * config/i386/i386.md
15728         (define_attr "isa"): Add avx512bw,noavx512bw.
15729         (define_attr "enabled"): Ditto.
15730         (define_split): Add 32/64-bit mask logic.
15731         (define_insn "*k<logic>qi"): New.
15732         (define_insn "*k<logic>hi"): New.
15733         (define_insn "*anddi_1"): Add mask version.
15734         (define_insn "*andsi_1"): Ditto.
15735         (define_insn "*<code><mode>_1"): Ditto.
15736         (define_insn "*<code>hi_1"): Ditto.
15737         (define_insn "kxnor<mode>"): New.
15738         (define_insn "kunpcksi"): New.
15739         (define_insn "kunpckdi"): New.
15740         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
15741         (define_insn "*one_cmplhi2_1"): Ditto.
15742
15743 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15744             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15745             Anna Tikhonova  <anna.tikhonova@intel.com>
15746             Ilya Tocar  <ilya.tocar@intel.com>
15747             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15748             Ilya Verbin  <ilya.verbin@intel.com>
15749             Kirill Yukhin  <kirill.yukhin@intel.com>
15750             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15751
15752         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
15753         V32HImode.
15754
15755 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15756             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15757             Anna Tikhonova  <anna.tikhonova@intel.com>
15758             Ilya Tocar  <ilya.tocar@intel.com>
15759             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15760             Ilya Verbin  <ilya.verbin@intel.com>
15761             Kirill Yukhin  <kirill.yukhin@intel.com>
15762             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15763
15764         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
15765         registers.
15766         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
15767         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
15768         xmm/ymm16+ when availble.
15769         * config/i386/i386.h
15770         (HARD_REGNO_NREGS): Add mask regs.
15771         (VALID_AVX512F_REG_MODE): Ditto.
15772         (VALID_AVX512F_REG_MODE) : Define.
15773         (VALID_MASK_AVX512BW_MODE): Ditto.
15774         (reg_class) (MASK_REG_P(X)): Define.
15775         * config/i386/i386.md: Do not split long moves with mask register,
15776         use kmovb if avx512bw is availible.
15777         (movdi_internal): Handle mask registers.
15778
15779 2014-08-14  Richard Biener  <rguenther@suse.de>
15780
15781         PR tree-optimization/62081
15782         * tree-ssa-loop.c (pass_fix_loops): New pass.
15783         (pass_tree_loop::gate):  Do not fixup loops here.
15784         * tree-pass.h (make_pass_fix_loops): Declare.
15785         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
15786
15787 2014-08-14  Richard Biener  <rguenther@suse.de>
15788
15789         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
15790         (type_hash_canon): ... this and avoid 2nd lookup for the add.
15791
15792 2014-08-14  Richard Biener  <rguenther@suse.de>
15793
15794         PR tree-optimization/62090
15795         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
15796         (fold_builtin_2): Do not fold sprintf.
15797         (fold_builtin_3): Likewise.
15798         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
15799         moved from builtins.c.
15800         (gimple_fold_builtin): Fold sprintf.
15801
15802 2014-08-14  Richard Biener  <rguenther@suse.de>
15803
15804         PR rtl-optimization/62079
15805         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
15806         run cleanup_cfg.
15807
15808 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15809
15810         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
15811         current_function_decl.
15812
15813 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
15814
15815         * cgraph.c (cgraph_node::function_symbol): Fix wrong
15816         cgraph_function_node to cgraph_node::function_symbol
15817         refactoring.
15818
15819 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
15820
15821         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
15822         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
15823
15824 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
15825
15826         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
15827         warning.
15828
15829 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
15830
15831         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
15832         generator.
15833
15834 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
15835
15836         PR target/62025
15837         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
15838         any registers that are used in mem_insn.
15839
15840 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15841
15842         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
15843
15844 2014-08-12  Steve Ellcey  <sellcey@mips.com>
15845
15846         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
15847         (MULTILIB_DIRNAMES): Ditto.
15848         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
15849         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
15850         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
15851         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
15852         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
15853         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
15854
15855 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15856
15857         PR target/61413
15858         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
15859         of __ARM_SIZEOF_WCHAR_T.
15860
15861 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15862
15863         PR target/62098
15864         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
15865         Remove unnecessary attributes.
15866
15867 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
15868
15869         * internal-fn.c (init_internal_fns): Fix off-by-one.
15870
15871 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15872             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15873             Anna Tikhonova  <anna.tikhonova@intel.com>
15874             Ilya Tocar  <ilya.tocar@intel.com>
15875             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15876             Ilya Verbin  <ilya.verbin@intel.com>
15877             Kirill Yukhin  <kirill.yukhin@intel.com>
15878             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15879
15880         * config/i386/i386.c (standard_sse_constant_opcode): Use
15881         vpxord/vpternlog if avx512 is availible.
15882
15883 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15884
15885         PR middle-end/62103
15886         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
15887         bitfields, that is when size doesn't match the size of type or the
15888         size of the constructor.
15889
15890 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15891
15892         * config/rs6000/constraints.md (wh constraint): New constraint,
15893         for FP registers if direct move is available.
15894         (wi constraint): New constraint, for VSX/FP registers that can
15895         handle 64-bit integers.
15896         (wj constraint): New constraint for VSX/FP registers that can
15897         handle 64-bit integers for direct moves.
15898         (wk constraint): New constraint for VSX/FP registers that can
15899         handle 64-bit doubles for direct moves.
15900         (wy constraint): Make documentation match implementation.
15901
15902         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
15903         scalar_in_vmx_p field to simplify tests of whether SFmode or
15904         DFmode can go in the Altivec registers.
15905         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
15906         (rs6000_setup_reg_addr_masks): Likewise.
15907         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
15908         field, and wh/wi/wj/wk constraints.
15909         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
15910         the wh/wi/wj/wk constraints.
15911         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
15912         upper registers, prefer VSX registers unless the operation is a
15913         memory operation with REG+OFFSET addressing.
15914
15915         * config/rs6000/vsx.md (VSr mode attribute): Add support for
15916         DImode.  Change SFmode to use ww constraint instead of d to allow
15917         SF registers in the upper registers.
15918         (VSr2): Likewise.
15919         (VSr3): Likewise.
15920         (VSr5): Fix thinko in comment.
15921         (VSa): New mode attribute that is an alternative to wa, that
15922         returns the VSX register class that a mode can go in, but may not
15923         be the preferred register class.
15924         (VS_64dm): New mode attribute for appropriate register classes for
15925         referencing 64-bit elements of vectors for direct moves and normal
15926         moves.
15927         (VS_64reg): Likewise.
15928         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
15929         register allocator to only registers the data type can handle.
15930         (vsx_le_perm_load_<mode>): Likewise.
15931         (vsx_le_perm_store_<mode>): Likewise.
15932         (vsx_xxpermdi2_le_<mode>): Likewise.
15933         (vsx_xxpermdi4_le_<mode>): Likewise.
15934         (vsx_lxvd2x2_le_<mode>): Likewise.
15935         (vsx_lxvd2x4_le_<mode>): Likewise.
15936         (vsx_stxvd2x2_le_<mode>): Likewise.
15937         (vsx_add<mode>3): Likewise.
15938         (vsx_sub<mode>3): Likewise.
15939         (vsx_mul<mode>3): Likewise.
15940         (vsx_div<mode>3): Likewise.
15941         (vsx_tdiv<mode>3_internal): Likewise.
15942         (vsx_fre<mode>2): Likewise.
15943         (vsx_neg<mode>2): Likewise.
15944         (vsx_abs<mode>2): Likewise.
15945         (vsx_nabs<mode>2): Likewise.
15946         (vsx_smax<mode>3): Likewise.
15947         (vsx_smin<mode>3): Likewise.
15948         (vsx_sqrt<mode>2): Likewise.
15949         (vsx_rsqrte<mode>2): Likewise.
15950         (vsx_tsqrt<mode>2_internal): Likewise.
15951         (vsx_fms<mode>4): Likewise.
15952         (vsx_nfma<mode>4): Likewise.
15953         (vsx_eq<mode>): Likewise.
15954         (vsx_gt<mode>): Likewise.
15955         (vsx_ge<mode>): Likewise.
15956         (vsx_eq<mode>_p): Likewise.
15957         (vsx_gt<mode>_p): Likewise.
15958         (vsx_ge<mode>_p): Likewise.
15959         (vsx_xxsel<mode>): Likewise.
15960         (vsx_xxsel<mode>_uns): Likewise.
15961         (vsx_copysign<mode>3): Likewise.
15962         (vsx_float<VSi><mode>2): Likewise.
15963         (vsx_floatuns<VSi><mode>2): Likewise.
15964         (vsx_fix_trunc<mode><VSi>2): Likewise.
15965         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
15966         (vsx_x<VSv>r<VSs>i): Likewise.
15967         (vsx_x<VSv>r<VSs>ic): Likewise.
15968         (vsx_btrunc<mode>2): Likewise.
15969         (vsx_b2trunc<mode>2): Likewise.
15970         (vsx_floor<mode>2): Likewise.
15971         (vsx_ceil<mode>2): Likewise.
15972         (vsx_<VS_spdp_insn>): Likewise.
15973         (vsx_xscvspdp): Likewise.
15974         (vsx_xvcvspuxds): Likewise.
15975         (vsx_float_fix_<mode>2): Likewise.
15976         (vsx_set_<mode>): Likewise.
15977         (vsx_extract_<mode>_internal1): Likewise.
15978         (vsx_extract_<mode>_internal2): Likewise.
15979         (vsx_extract_<mode>_load): Likewise.
15980         (vsx_extract_<mode>_store): Likewise.
15981         (vsx_splat_<mode>): Likewise.
15982         (vsx_xxspltw_<mode>): Likewise.
15983         (vsx_xxspltw_<mode>_direct): Likewise.
15984         (vsx_xxmrghw_<mode>): Likewise.
15985         (vsx_xxmrglw_<mode>): Likewise.
15986         (vsx_xxsldwi_<mode>): Likewise.
15987         (vsx_xscvdpspn): Tighten constraints to only use register classes
15988         the types use.
15989         (vsx_xscvspdpn): Likewise.
15990         (vsx_xscvdpspn_scalar): Likewise.
15991
15992         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
15993         wj, and wk constraints.
15994         (GPR_REG_CLASS_P): New helper macro for register classes targeting
15995         general purpose registers.
15996
15997         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
15998         direct moves.
15999         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16000         DImode instead of wm.  Use wk constraint for direct move of DFmode
16001         instead of wm.
16002         (extendsidi2_lfiwax): Likewise.
16003         (lfiwax): Likewise.
16004         (lfiwzx): Likewise.
16005         (movdi_internal64): Likewise.
16006
16007         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16008         wk constraints. Make the wy constraint documentation match them
16009         implementation.
16010
16011 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16012
16013         Replacement of isl_int by isl_val
16014         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16015         (compute_bounds_for_param): use isl_val instead of isl_int
16016         (compute_bounds_for_loop): likewise
16017         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16018         (build_linearized_memory_access): use isl_val instead of isl_int
16019         (pdr_stride_in_loop): likewise
16020         * graphite-optimize-isl.c:
16021         (getPrevectorMap): use isl_val instead of isl_int
16022         * graphite-poly.c:
16023         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16024         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16025         (extern the_isl_ctx): declare
16026         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16027         (extract_affine_gmp): likewise
16028         (wrap): likewise
16029         (build_loop_iteration_domains): likewise
16030         (add_param_constraints): likewise
16031
16032 2014-08-11  Richard Biener  <rguenther@suse.de>
16033
16034         PR tree-optimization/62075
16035         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16036         handle uses in patterns.
16037
16038 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16039             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16040             Anna Tikhonova  <anna.tikhonova@intel.com>
16041             Ilya Tocar  <ilya.tocar@intel.com>
16042             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16043             Ilya Verbin  <ilya.verbin@intel.com>
16044             Kirill Yukhin  <kirill.yukhin@intel.com>
16045             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16046
16047         * common/config/i386/i386-common.c
16048         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16049         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16050         (ix86_handle_option): Handle OPT_mavx512vl.
16051         * config/i386/cpuid.h (bit_AVX512VL): Define.
16052         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16053         set -mavx512vl accordingly.
16054         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16055         OPTION_MASK_ISA_AVX512VL.
16056         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16057         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16058         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16059         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16060         * config/i386/i386.h (TARGET_AVX512VL): Define.
16061         (TARGET_AVX512VL_P(x)): Ditto.
16062         * config/i386/i386.opt: Add mavx512vl.
16063
16064 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16065
16066         PR tree-optimization/62073
16067         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16068         a basic block.
16069
16070 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16071             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16072             Anna Tikhonova  <anna.tikhonova@intel.com>
16073             Ilya Tocar  <ilya.tocar@intel.com>
16074             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16075             Ilya Verbin  <ilya.verbin@intel.com>
16076             Kirill Yukhin  <kirill.yukhin@intel.com>
16077             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16078
16079         * common/config/i386/i386-common.c
16080         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16081         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16082         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16083         (ix86_handle_option): Handle OPT_mavx512bw.
16084         * config/i386/cpuid.h (bit_AVX512BW): Define.
16085         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16086         set -mavx512bw accordingly.
16087         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16088         OPTION_MASK_ISA_AVX512BW.
16089         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16090         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16091         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16092         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16093         * config/i386/i386.h (TARGET_AVX512BW): Define.
16094         (TARGET_AVX512BW_P(x)): Ditto.
16095         * config/i386/i386.opt: Add mavx512bw.
16096
16097 2014-08-11  Richard Biener  <rguenther@suse.de>
16098
16099         PR tree-optimization/62070
16100         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16101         Remove SSA checking.
16102
16103 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16104
16105         * asan.c (asan_check_flags): New enum.
16106         (build_check_stmt_with_calls): Removed function.
16107         (build_check_stmt): Split inlining logic to
16108         asan_expand_check_ifn.
16109         (instrument_derefs): Rename parameter.
16110         (instrument_mem_region_access): Rename parameter.
16111         (instrument_strlen_call): Likewise.
16112         (asan_expand_check_ifn): New function.
16113         (asan_instrument): Remove old code.
16114         (pass_sanopt::execute): Change handling of
16115         asan-instrumentation-with-call-threshold.
16116         (asan_clear_shadow): Fix formatting.
16117         (asan_function_start): Likewise.
16118         (asan_emit_stack_protection): Likewise.
16119         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16120         Update description.
16121         * internal-fn.c (expand_ASAN_CHECK): New function.
16122         * internal-fn.def (ASAN_CHECK): New internal function.
16123         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16124         Update description.
16125         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16126         * tree.c: Small comment fix.
16127
16128 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16129
16130         * gimple.c (gimple_call_fnspec): Support internal functions.
16131         (gimple_call_return_flags): Use const.
16132         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16133         * internal-fn.def: Add fnspec information.
16134         * internal-fn.h (internal_fn_fnspec): New function.
16135         (init_internal_fns): Declare new function.
16136         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16137         (init_internal_fns): New function.
16138         * tree-core.h: Update macro call.
16139         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16140
16141 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16142
16143         * lto-streamer.h (struct output_block::symbol): Change from
16144         struct symtab_node to plain symtab_node.
16145         (referenced_from_this_partition_p): Change first parameter
16146         from struct symtab_node to plain symtab_node.
16147
16148 2014-08-10  Marek Polacek  <polacek@redhat.com>
16149
16150         PR c/51849
16151         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16152
16153 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16154
16155         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16156         DECL correctly; do not give up on types in static storage.
16157
16158 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16159
16160         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16161
16162 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16163
16164         * graphite-isl-ast-to-gimple.c:
16165         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16166
16167         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16168
16169 2014-08-08  Guozhi Wei  <carrot@google.com>
16170
16171         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16172
16173 2014-08-08  Cary Coutant  <ccoutant@google.com>
16174
16175         * dwarf2out.c (get_skeleton_type_unit): Remove.
16176         (output_skeleton_debug_sections): Remove skeleton type units.
16177         (output_comdat_type_unit): Likewise.
16178         (dwarf2out_finish): Likewise.
16179
16180 2014-08-07  Yi Yang  <ahyangyi@google.com>
16181
16182         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16183
16184 2014-08-08  Richard Biener  <rguenther@suse.de>
16185
16186         * lto-streamer.h (struct lto_input_block): Make it a class
16187         with a constructor.
16188         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16189         (struct lto_function_header, struct lto_simple_header,
16190         struct lto_simple_header_with_strings,
16191         struct lto_decl_header, struct lto_function_header): Make
16192         a simple inheritance hieararchy.  Remove unused fields.
16193         (struct lto_asm_header): Remove.
16194         * lto-streamer-out.c (produce_asm): Adjust.
16195         (lto_output_toplevel_asms): Likewise.
16196         (produce_asm_for_decls): Likewise.
16197         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16198         * data-streamer-in.c (string_for_index): Likewise.
16199         * ipa-inline-analysis.c (inline_read_section): Likewise.
16200         * ipa-prop.c (ipa_prop_read_section): Likewise.
16201         (read_replacements_section): Likewise.
16202         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16203         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16204         (lto_destroy_simple_input_block): Likewise.
16205         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16206         (lto_input_toplevel_asms): Likewise.
16207
16208 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16209             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16210             Anna Tikhonova  <anna.tikhonova@intel.com>
16211             Ilya Tocar  <ilya.tocar@intel.com>
16212             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16213             Ilya Verbin  <ilya.verbin@intel.com>
16214             Kirill Yukhin  <kirill.yukhin@intel.com>
16215             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16216
16217         * common/config/i386/i386-common.c
16218         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16219         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16220         (ix86_handle_option): Handle OPT_mavx512dq.
16221         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16222         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16223         set -mavx512dq accordingly.
16224         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16225         OPTION_MASK_ISA_AVX512DQ.
16226         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16227         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16228         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16229         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16230         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16231         (TARGET_AVX512DQ_P(x)): Ditto.
16232         * config/i386/i386.opt: Add mavx512dq.
16233
16234 2014-08-08  Richard Biener  <rguenther@suse.de>
16235
16236         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16237         target_percent, target_percent_s): Export.
16238         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16239         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16240         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16241         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16242         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16243         Move to gimple-fold.c.
16244         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16245         strcat and strcpy.
16246         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16247         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16248         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16249         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16250         (rewrite_call_expr_array): Remove.
16251         (fold_builtin_sprintf_chk): Likewise.
16252         (fold_builtin_snprintf_chk): Likewise.
16253         (fold_builtin_varargs): Remove handling of sprintf_chk,
16254         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16255         (gimple_fold_builtin_sprintf_chk): Remove.
16256         (gimple_fold_builtin_snprintf_chk): Likewise.
16257         (gimple_fold_builtin_varargs): Likewise.
16258         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16259         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16260         * gimple.c (gimple_seq_add_seq_without_update): New function.
16261         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16262         * gimple-fold.c: Include output.h.
16263         (gsi_replace_with_seq_vops): New function, split out from ...
16264         (gimplify_and_update_call_from_tree): ... here.
16265         (replace_call_with_value): New function.
16266         (replace_call_with_call_and_fold): Likewise.
16267         (var_decl_component_p): Moved from builtins.c.
16268         (gimple_fold_builtin_memory_op): Moved from builtins.c
16269         fold_builtin_memory_op and rewritten to GIMPLE.
16270         (gimple_fold_builtin_memset): Likewise.
16271         (gimple_fold_builtin_strcpy): Likewise.
16272         (gimple_fold_builtin_strncpy): Likewise.
16273         (gimple_fold_builtin_strcat): Likewise.
16274         (gimple_fold_builtin_fputs): Likewise.
16275         (gimple_fold_builtin_memory_chk): Likewise.
16276         (gimple_fold_builtin_stxcpy_chk): Likewise.
16277         (gimple_fold_builtin_stxncpy_chk): Likewise.
16278         (gimple_fold_builtin_snprintf_chk): Likewise.
16279         (gimple_fold_builtin_sprintf_chk): Likewise.
16280         (gimple_fold_builtin_strlen): New function.
16281         (gimple_fold_builtin_with_strlen): New function split out from
16282         gimple_fold_builtin.
16283         (gimple_fold_builtin): Change signature and handle
16284         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16285         here.  Call gimple_fold_builtin_with_strlen.
16286         (gimple_fold_call): Adjust.
16287
16288 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16289
16290         * calls.c (precompute_arguments): Check
16291         promoted_for_signed_and_unsigned_p and set the promoted mode.
16292         (promoted_for_signed_and_unsigned_p): New function.
16293         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16294         and set the promoted mode.
16295         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16296         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16297         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16298
16299
16300 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16301
16302         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16303         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16304         (expand_call): Likewise.
16305         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16306         to get promoted mode.
16307         * combine.c (record_promoted_value): Skip > 0 comparison with
16308         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16309         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16310         of SUBREG_PROMOTED_UNSIGNED_P.
16311         (convert_modes): Likewise.
16312         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16313         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16314         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16315         SUBREG_PROMOTED_UNSIGNED_SET.
16316         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16317         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16318         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16319         SUBREG_PROMOTED_SET.
16320         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16321         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16322         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16323         of SUBREG_PROMOTED_UNSIGNED_P.
16324         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16325         (SUBREG_PROMOTED_SET): New define.
16326         (SUBREG_PROMOTED_GET): Likewise.
16327         (SUBREG_PROMOTED_SIGN): Likewise.
16328         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16329         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16330         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16331         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16332         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16333         (nonzero_bits1): Skip > 0 comparison with the results as
16334         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16335         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16336         of !SUBREG_PROMOTED_UNSIGNED_P.
16337         * simplify-rtx.c (simplify_unary_operation_1): Use new
16338         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16339         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16340         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16341         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16342
16343 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
16344
16345         * ipa-devirt.c: Include gimple-pretty-print.h
16346         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16347         further tests.
16348         (decl_maybe_in_construction_p): Fix conditional on cdtor check
16349         (get_polymorphic_call_info): Fix return value
16350         (type_change_info): New sturcture based on ipa-prop
16351         variant.
16352         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16353         based on ipa-prop variant.
16354         (extr_type_from_vtbl_ptr_store): New function
16355         based on ipa-prop variant.
16356         (record_known_type): New function.
16357         (check_stmt_for_type_change): New function.
16358         (get_dynamic_type): New function.
16359         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16360         * tree-ssa-pre.c: ipa-utils.h
16361         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16362         machinery; sanity check with ipa-prop devirtualization.
16363         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16364         polymorphic flag.
16365
16366 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16367
16368         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16369         * alias.c, cfgexpand.c, cgraphbuild.c,
16370         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16371         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16372         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16373         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16374         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16375         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16376         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16377         dse.c, except.c, gengtype.c, gimple-expr.c,
16378         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16379         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16380         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16381         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16382         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16383         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16384         pointer-set.h.
16385         * pointer-set.c: Remove file.
16386         * pointer-set.h: Remove file.
16387
16388 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16389
16390         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16391         * config/arm/types.md (f_sels, f_seld): Delete.
16392
16393 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16394
16395         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
16396         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
16397         (aarch64_movdi_<mode>high): Likewise.
16398         (aarch64_mov<mode>high_di): Likewise.
16399         (aarch64_movdi_<mode>low): Likewise.
16400         (aarch64_mov<mode>low_di): Likewise.
16401         (aarch64_movtilow_tilow): Likewise.
16402         Add comment explaining usage of fp,simd attributes and of
16403         TARGET_FLOAT and TARGET_SIMD.
16404
16405 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
16406             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16407
16408         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
16409         Use MOVN when one of the half-words is 0xffff.
16410
16411 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16412
16413         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
16414
16415 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16416
16417         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
16418         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
16419         (rfs_str): String corresponding to RFS_* constants.
16420         (rank_for_schedule_stats_t): New typedef.
16421         (rank_for_schedule_stats): New static variable.
16422         (rfs_result): New static function.
16423         (rank_for_schedule): Track statistics for deciding heuristics.
16424         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
16425         static functions.
16426         (ready_sort): Use them for debug printouts.
16427         (schedule_block): Init statistics state.  Print statistics on
16428         rank_for_schedule decisions.
16429
16430 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16431
16432         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
16433
16434 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
16435
16436         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
16437         constraint.
16438
16439 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16440
16441         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
16442         function to not conflict.
16443         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
16444         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
16445         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
16446         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
16447         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
16448         of pointer_map.
16449
16450 2014-08-07  Marek Polacek  <polacek@redhat.com>
16451
16452         * fold-const.c (fold_binary_loc): Add folding of
16453         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
16454
16455 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
16456
16457         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
16458         instead of type size.
16459         (ASM_FINISH_DECLARE_OBJECT): Likewise.
16460
16461 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16462
16463         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
16464         (*thumb1_movqi_insn): Likewise.
16465         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
16466
16467 2014-08-07  Tom de Vries  <tom@codesourcery.com>
16468
16469         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16470         (glibc_2_11_or_earlier): Remove effective-target keywords.
16471
16472 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
16473
16474         * config/arm/arm.c (bdesc_2arg): Fix typo.
16475         (arm_atomic_assign_expand_fenv): Remove The default implementation.
16476
16477 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16478
16479         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
16480
16481 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
16482
16483         PR debug/61923
16484         * haifa-sched.c (advance_one_cycle): Fix dump.
16485         (schedule_block): Don't advance cycle if we are already at the
16486         beginning of the cycle.
16487
16488 2014-08-06  Martin Jambor  <mjambor@suse.cz>
16489
16490         PR ipa/61393
16491         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
16492
16493 2014-08-06  Richard Biener  <rguenther@suse.de>
16494
16495         PR lto/62034
16496         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
16497         SCCs here.
16498         (lto_input_tree): Pop SCCs here.
16499
16500 2014-08-06  Richard Biener  <rguenther@suse.de>
16501
16502         PR tree-optimization/61320
16503         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
16504         handle misaligned loads.
16505
16506 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
16507
16508         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
16509         (aarch64_expand_vec_perm_const): Check for dup before zip.
16510
16511 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16512
16513         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
16514         CONST_INT_P instead of GET_CODE and compare.
16515         (aarch64_select_cc_mode): Likewise.
16516         (aarch64_print_operand): Likewise.
16517         (aarch64_rtx_costs): Likewise.
16518         (aarch64_simd_valid_immediate): Likewise.
16519         (aarch64_simd_check_vect_par_cnst_half): Likewise.
16520         (aarch64_simd_emit_pair_result_insn): Likewise.
16521
16522 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
16523
16524         * gdbhooks.py (find_gcc_source_dir): New helper function.
16525         (class PassNames): New class, locating and parsing passes.def.
16526         (class BreakOnPass): New command "break-on-pass".
16527
16528 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
16529
16530         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
16531         getting olde.
16532
16533 2014-08-05  Richard Biener  <rguenther@suse.de>
16534
16535         PR rtl-optimization/61672
16536         * emit-rtl.h (mem_attrs_eq_p): Declare.
16537         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
16538         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
16539         * cfgcleanup.c (merge_memattrs): Likewise.
16540         Include emit-rtl.h.
16541
16542 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16543
16544         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
16545         rather than singleton vectors.
16546         (vqdmlsls_lane_s32): Likewise.
16547
16548 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16549
16550         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
16551         Use VSDQ_HSI mode iterator.
16552         (aarch64_sqrdmulh_laneq<mode>): Likewise.
16553         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
16554         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
16555         Use BUILTIN_VDQHS macro.
16556         (sqrdmulh_laneq): Likewise.
16557         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
16558         (vqdmlals_laneq_s32): Likewise.
16559         (vqdmlslh_laneq_s16): Likewise.
16560         (vqdmlsls_laneq_s32): Likewise.
16561         (vqdmulhh_laneq_s16): Likewise.
16562         (vqdmulhs_laneq_s32): Likewise.
16563         (vqrdmulhh_laneq_s16): Likewise.
16564         (vqrdmulhs_laneq_s32): Likewise.
16565
16566 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16567
16568         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
16569         (vmuld_laneq_f64): Likewise.
16570         (vmuls_laneq_f32): Likewise.
16571         (vmul_n_f64): Likewise.
16572         (vmuld_lane_f64): Reimplement in C.
16573         (vmuls_lane_f32): Likewise.
16574
16575 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16576
16577         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
16578         to reservation.
16579         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
16580
16581 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16582
16583         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
16584         (rbitsi2): Likewise.
16585         (*arm_rev): Set predicable and predicable_short_it attributes.
16586
16587 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16588
16589         * convert.c (convert_to_integer): Guard transformation to lrint by
16590         -fno-math-errno.
16591
16592 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
16593
16594         * config/aarch64/aarch64-builtins.c
16595         (aarch64_simd_builtin_type_mode): Delete.
16596         (v8qi_UP): Remap to V8QImode.
16597         (v4hi_UP): Remap to V4HImode.
16598         (v2si_UP): Remap to V2SImode.
16599         (v2sf_UP): Remap to V2SFmode.
16600         (v1df_UP): Remap to V1DFmode.
16601         (di_UP): Remap to DImode.
16602         (df_UP): Remap to DFmode.
16603         (v16qi_UP):V16QImode.
16604         (v8hi_UP): Remap to V8HImode.
16605         (v4si_UP): Remap to V4SImode.
16606         (v4sf_UP): Remap to V4SFmode.
16607         (v2di_UP): Remap to V2DImode.
16608         (v2df_UP): Remap to V2DFmode.
16609         (ti_UP): Remap to TImode.
16610         (ei_UP): Remap to EImode.
16611         (oi_UP): Remap to OImode.
16612         (ci_UP): Map to CImode.
16613         (xi_UP): Remap to XImode.
16614         (si_UP): Remap to SImode.
16615         (sf_UP): Remap to SFmode.
16616         (hi_UP): Remap to HImode.
16617         (qi_UP): Remap to QImode.
16618         (aarch64_simd_builtin_datum): Make mode a machine_mode.
16619         (VAR1): Build builtin name.
16620         (aarch64_init_simd_builtins): Remove dead code.
16621
16622 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16623
16624         * graphite-isl-ast-to-gimple.c:
16625         (set_options): New function.
16626         (scop_to_isl_ast): Add calling of set_options.
16627
16628 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
16629
16630         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
16631         (analyze_iv_to_split_insn): Don't initialize them.
16632         (get_ivts_expr): Removed.
16633         (allocate_basic_variable, insert_base_initialization): Use
16634         SET_SRC instead of *get_ivts_expr.
16635         (split_iv): Use &SET_SRC instead of get_ivts_expr.
16636
16637 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
16638
16639         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
16640         (translate_isl_ast_for_loop): Add checking of the
16641         flag_loop_parallelize_all.
16642         (ast_build_before_for): New function.
16643         (scop_to_isl_ast): Add checking of the
16644         flag_loop_parallelize_all.
16645         * graphite-dependences.c: Move the defenition of the
16646         scop_get_dependences from graphite-optimize-isl.c to this file.
16647         (apply_schedule_on_deps): Add checking of the ux's emptiness.
16648         (carries_deps): Add checking of the x's value.
16649         * graphite-optimize-isl.c: Move the defenition of the
16650         scop_get_dependences to graphite-dependences.c.
16651         * graphite-poly.h: Add declarations of scop_get_dependences
16652         and carries_deps.
16653
16654 2014-08-04  Rohit  <rohitarulraj@freescale.com>
16655
16656         PR target/60102
16657         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
16658         names.
16659         (alt_reg_names): Likewise.
16660         (rs6000_dwarf_register_span): For SPE high registers, replace
16661         dwarf register numbers with GCC hard register numbers.
16662         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
16663         (rs6000_dbx_register_number): For SPE high registers, return dwarf
16664         register number for the corresponding GCC hard register number.
16665         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
16666         newly added GCC hard register numbers for SPE high registers.
16667         (DWARF_FRAME_REGISTERS):  Likewise.
16668         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
16669         (DWARF_FRAME_REGNUM): Likewise.
16670         (FIXED_REGISTERS): Likewise.
16671         (CALL_USED_REGISTERS): Likewise.
16672         (CALL_REALLY_USED_REGISTERS): Likewise.
16673         (REG_ALLOC_ORDER): Likewise.
16674         (enum reg_class): Likewise.
16675         (REG_CLASS_NAMES): Likewise.
16676         (REG_CLASS_CONTENTS): Likewise.
16677         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
16678
16679 2014-08-04  Richard Biener  <rguenther@suse.de>
16680
16681         * gimple-fold.h (gimple_fold_builtin): Remove.
16682         * gimple-fold.c (gimple_fold_builtin): Make static.
16683         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
16684         fold_stmt, not gimple_fold_builtin.
16685
16686 2014-08-04  Martin Liska <mliska@suse.cz>
16687
16688         * cgraph.h (csi_end_p): Removed.
16689         (csi_next): Likewise.
16690         (csi_node): Likewise.
16691         (csi_start): Likewise.
16692         (cgraph_node_in_set_p): Likewise.
16693         (cgraph_node_set_size): Likewise.
16694         (vsi_end_p): Likewise.
16695         (vsi_next): Likewise.
16696         (vsi_node): Likewise.
16697         (vsi_start): Likewise.
16698         (varpool_node_set_size): Likewise.
16699         (cgraph_node_set_nonempty_p): Likewise.
16700         (varpool_node_set_nonempty_p): Likewise.
16701         * cgraphunit.c (cgraph_process_new_functions): vec replaces
16702         cgraph_node_set.
16703         * ipa-inline-transform.c: Likewise.
16704         * ipa-utils.c (cgraph_node_set_new): Removed.
16705         (cgraph_node_set_add): Likewise.
16706         (cgraph_node_set_remove): Likewise.
16707         (cgraph_node_set_find): Likewise.
16708         (dump_cgraph_node_set): Likewise.
16709         (debug_cgraph_node_set): Likewise.
16710         (free_cgraph_node_set): Likewise.
16711         (varpool_node_set_new): Likewise.
16712         (varpool_node_set_add): Likewise.
16713         (varpool_node_set_remove): Likewise.
16714         (varpool_node_set_find): Likewise.
16715         (dump_varpool_node_set): Likewise.
16716         (free_varpool_node_set): Likewise.
16717         (debug_varpool_node_set): Likewise.
16718         * tree-emutls.c (struct tls_var_data):
16719         (emutls_index): Removed.
16720         (emutls_decl): Likewise.
16721         (gen_emutls_addr): Function implementation uses newly added
16722         hash_map<varpool_node *, tls_var_data>.
16723         (clear_access_vars): Likewise.
16724         (create_emultls_var): Likewise.
16725         (ipa_lower_emutls): Likewise.
16726         (reset_access): New function.
16727
16728 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16729
16730         * config/i386/i386.c (ix86_option_override_internal): Add
16731         PTA_RDRND and PTA_MOVBE for bdver4.
16732
16733 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16734             James Greenhalgh  <james.greenhalgh@arm.com>
16735
16736         * doc/md.texi (clrsb): Document.
16737         (clz): Change reference to x into operand 1.
16738         (ctz): Likewise.
16739         (popcount): Likewise.
16740
16741 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16742
16743         PR target/61713
16744         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
16745         move to subtarget in serial version if result is ignored.
16746
16747 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16748             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16749
16750         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
16751         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
16752         (sched_analyze_insn): Update use of try_group_insn to
16753         sched_macro_fuse_insns.
16754         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
16755         arguments that are not conditional jumps.
16756
16757 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
16758
16759         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
16760         family information. Handle BTVER2 cpu with cpuid family value.
16761
16762 2014-08-04  Tom de Vries  <tom@codesourcery.com>
16763
16764         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16765         (glibc_2_11_or_earlier): Document effective-target keywords.
16766
16767 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16768
16769         * ipa-devirt.c (odr_type_warn_count): Add type.
16770         (possible_polymorphic_call_targets): Set it.
16771         (ipa_devirt): Use it.
16772
16773 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
16774
16775         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
16776         Document.
16777         * ipa-devirt.c: Include hash-map.h
16778         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
16779         (clear_speculation): Break out of ...
16780         (get_class_context): ... here; speed up handling obviously useless
16781         speculations.
16782         (odr_type_warn_count, decl_warn_count): New structures.
16783         (final_warning_record): New structure.
16784         (final_warning_records): New static variable.
16785         (possible_polymorphic_call_targets): Cleanup handling of
16786         speculative info; do not build speculation when user do not care;
16787         record info about warnings when asked for.
16788         (add_decl_warning): New function.
16789         (type_warning_cmp): New function.
16790         (decl_warning_cmp): New function.
16791         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
16792         (gate): Enable pass when warnings are requested.
16793         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
16794         options.
16795
16796 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16797
16798         * hash-map.h (default_hashmap_traits::mark_key_deleted):
16799         Fix cast.
16800         (hash_map::remove): New method.
16801         (hash_map::traverse): New method.
16802         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
16803         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
16804         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
16805         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
16806         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
16807         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
16808         pointer_map.
16809
16810 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
16811
16812         * hash-set.h: new File.
16813         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
16814         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
16815         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
16816         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
16817         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
16818         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
16819         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
16820         varpool.c: Use hash_set instead of pointer_set.
16821
16822 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
16823
16824         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
16825
16826 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16827
16828         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
16829         for frame access when strict_p is false.
16830
16831 2014-08-01  Renlin Li <renlin.li@arm.com>
16832 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16833
16834         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
16835         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
16836         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
16837         Declaration.
16838         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
16839         predicate.
16840         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
16841         aarch64_mem_pair_offset.
16842
16843 2014-08-01  Jiong Wang <jiong.wang@arm.com>
16844
16845         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
16846         offset.
16847         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
16848         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
16849
16850 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
16851
16852         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
16853
16854 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
16855
16856         PR regression/61510
16857         * cgraphunit.c (analyze_functions): Use get_create rather than get
16858         for decls which are clones of abstract functions.
16859
16860 2014-08-01  Martin Liska  <mliska@suse.cz>
16861
16862         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
16863         * ipa-prop.h (count_formal_params): Global function created from static.
16864         * ipa-prop.c (count_formal_params): Likewise.
16865         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
16866         profiles for semantically equivalent functions.
16867         * passes.c (do_per_function): If we load body of a function
16868         during WPA, this condition should behave same.
16869         * varpool.c (ctor_for_folding): More tolerant assert for variable
16870         aliases created during WPA.
16871
16872 2014-08-01  Martin Liska  <mliska@suse.cz>
16873
16874         * doc/invoke.texi (Options That Control Optimization): Documentation
16875         for -foptimize-strlen introduced. Optimization levels default options
16876         fixed.
16877
16878 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
16879
16880         * opts.c (common_handle_option): Handle -fsanitize=alignment.
16881         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
16882         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
16883         type to bool.
16884         * stor-layout.h (min_align_of_type): New prototype.
16885         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
16886         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
16887         check.
16888         * ubsan.c: Include builtins.h.
16889         (ubsan_expand_bounds_ifn): Change return type to bool,
16890         always return true.
16891         (ubsan_expand_null_ifn): Change return type to bool, change
16892         argument to gimple_stmt_iterator *.  Handle both null and alignment
16893         sanitization, take type from ckind argument's type rather than
16894         first argument.
16895         (instrument_member_call): Removed.
16896         (instrument_mem_ref): Remove t argument, add mem and base arguments.
16897         Handle both null and alignment sanitization, don't say whole
16898         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
16899         call instead of 2 argument.
16900         (instrument_null): Adjust instrument_mem_ref caller.  Don't
16901         instrument calls here.
16902         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
16903         like SANITIZE_NULL.
16904         * stor-layout.c (min_align_of_type): New function.
16905         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
16906         Or it into SANITIZE_UNDEFINED.
16907         * doc/invoke.texi (-fsanitize=alignment): Document.
16908
16909 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16910
16911         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
16912
16913 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16914
16915         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
16916         inchash.
16917         (vn_reference_compute_hash): Dito.
16918         (vn_nary_op_compute_hash): Dito.
16919         (vn_phi_compute_hash): Dito.
16920         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
16921
16922 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16923
16924         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
16925         Rename to inchash:add_expr_commutative. Convert to inchash.
16926         (iterative_hash_hashable_expr): Rename to
16927         inchash:add_hashable_expr. Convert to inchash.
16928         (avail_expr_hash): Dito.
16929
16930 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16931
16932         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
16933         Convert to inchash.
16934
16935 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16936
16937         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
16938
16939 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16940
16941         * Makefile.in (OBJS): Add rtlhash.o
16942         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
16943         (loc_checksum): Dito.
16944         (loc_checksum_ordered): Dito.
16945         (hash_loc_operands): Dito.
16946         (hash_locs): Dito.
16947         (hash_loc_list): Dito.
16948         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
16949         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
16950         * rtlhash.c: New file.
16951         * rtlhash.h: New file.
16952
16953 2014-07-31  Andi Kleen  <ak@linux.intel.com>
16954
16955         * inchash.h (inchash): Change inchash class to namespace.
16956         (class hash): ... Rename from inchash.
16957         (add_object): Move from macro to class template.
16958         * lto-streamer-out.c (hash_tree): Change inchash
16959         to inchash::hash.
16960         * tree.c (build_type_attribute_qual_variant): Dito.
16961         (type_hash_list): Dito.
16962         (attribute_hash_list): Dito.
16963         (iterative_hstate_expr): Rename to inchash::add_expr
16964         (build_range_type_1): Change inchash to inchash::hash
16965         and use hash::add_expr.
16966         (build_array_type_1): Dito.
16967         (build_function_type): Dito
16968         (build_method_type_directly): Dito.
16969         (build_offset_type): Dito.
16970         (build_complex_type): Dito.
16971         (make_vector_type): Dito.
16972         * tree.h (iterative_hash_expr): Dito.
16973
16974 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
16975
16976         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
16977
16978 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
16979
16980         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
16981         correct alphabetical position.
16982         (vpaddd_f64): Rewrite using builtins.
16983         (vpaddd_s64): Move to correct alphabetical position.
16984         (vpaddd_u64): New.
16985
16986 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
16987
16988         PR target/61844
16989         * config/sh/sh.c (sh_legitimate_address_p,
16990         sh_legitimize_reload_address): Handle reg+reg address modes when
16991         ALLOW_INDEXED_ADDRESS is false.
16992         * config/sh/predicates.md (general_movsrc_operand,
16993         general_movdst_operand): Likewise.
16994
16995 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
16996
16997         * config/aarch64/aarch64-builtins.c
16998         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
16999         BYTES_BIG_ENDIAN.
17000
17001 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17002
17003         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17004         the generated mask based on BYTES_BIG_ENDIAN.
17005         (aarch64_simd_check_vect_par_cnst_half): New.
17006         * config/aarch64/aarch64-protos.h
17007         (aarch64_simd_check_vect_par_cnst_half): New.
17008         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17009         the check out to aarch64_simd_check_vect_par_cnst_half.
17010         (vect_par_cnst_lo_half): Likewise.
17011         * config/aarch64/aarch64-simd.md
17012         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17013         (move_hi_quad_<mode>): Always generate a low mask.
17014
17015 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17016
17017         * doc/invoke.texi (AVR Options): Add documentation about
17018         __AVR_DEVICE_NAME__ built-in macro.
17019
17020 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17021
17022         PR target/61948
17023         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17024         constraints are satisfied.
17025         (<shift>di3_neon): Likewise.
17026
17027 2014-07-31  Richard Biener  <rguenther@suse.de>
17028
17029         PR tree-optimization/61964
17030         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17031         by structural equality.
17032
17033 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17034
17035         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17036         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17037         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17038         New enums.
17039         * gcc.c (sanitize_spec_function): Support new option.
17040         (SANITIZER_SPEC): Remove now redundant check.
17041         * opts.c (common_handle_option): Support new option.
17042         (finish_options): Check for incompatibilities.
17043         * toplev.c (process_options): Split userspace-specific checks.
17044
17045 2014-07-31  Richard Biener  <rguenther@suse.de>
17046
17047         * lto-streamer.h (struct output_block): Remove global.
17048         (struct data_in): Remove labels, num_named_labels and
17049         num_unnamed_labels.
17050         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17051         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17052
17053 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17054
17055         PR c++/60517
17056         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17057         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17058         (isolate_path): New argument to avoid inserting a trap.
17059         (find_implicit_erroneous_behaviour): Handle returning the address
17060         of a local variable.
17061         (find_explicit_erroneous_behaviour): Likewise.
17062
17063 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17064
17065         PR lto/61868
17066         * toplev.c (init_random_seed): Move piece of code never called to
17067         set_random_seed.
17068         (set_random_seed): see above.
17069
17070 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17071
17072         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17073
17074 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17075
17076         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17077         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17078
17079 2014-07-31  Richard Biener  <rguenther@suse.de>
17080
17081         * data-streamer.h (streamer_write_data_stream): Declare here,
17082         renamed from ...
17083         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17084         * lto-cgraph.c (lto_output_node): Adjust.
17085         (lto_output_varpool_node): Likewise.
17086         * data-streamer-out.c (streamer_string_index): Likewise.
17087         (streamer_write_data_stream, lto_append_block): Move from ...
17088         * lto-section-out.c (lto_output_data_stream,
17089         lto_append_block): ... here.
17090
17091 2014-07-30  Mike Stump  <mikestump@comcast.net>
17092
17093         * configure.ac: Also check for popen.
17094         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17095         * configure: Regenerate.
17096         * config.in:  Regenerate.
17097
17098 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17099
17100         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17101         parameter to gimple.
17102
17103 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17104
17105         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17106         address as second parameter to __tpf_eh_return routine.
17107
17108 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17109
17110         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17111         Thumb2.
17112
17113 2014-07-30  Tom Tromey  <tromey@redhat.com>
17114
17115         PR c/59855
17116         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17117         * doc/extend.texi (Type Attributes): Document designated_init
17118         attribute.
17119
17120 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17121
17122         * graphite-isl-ast-to-gimple.c:
17123         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17124         (gcc_expression_from_isl_expression): Pass type to
17125         gcc_expression_from_isl_ast_expr_id.
17126
17127 2014-07-30  Richard Biener  <rguenther@suse.de>
17128
17129         * lto-streamer.h (lto_write_data): New function.
17130         * langhooks.c (lhd_append_data): Do not free block.
17131         * lto-section-out.c (lto_write_data): New function writing
17132         raw data to the current section.
17133         (lto_write_stream): Adjust for langhook semantic change.
17134         (lto_destroy_simple_output_block): Write header directly.
17135         * lto-opts.c (lto_write_options): Write options directly.
17136         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17137         (lto_output_toplevel_asms): Likewise.
17138         (copy_function_or_variable): Copy data directly.
17139         (write_global_references): Output index table directly.
17140         (lto_output_decl_state_refs): Likewise.
17141         (write_symbol): Write data directly.
17142         (produce_symtab): Adjust.
17143         (produce_asm_for_decls): Output header and refs directly.
17144
17145 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17146
17147         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17148         to speculative_targets
17149         (get_class_context): Fix handling of contextes without outer type;
17150         avoid matching non-polymorphic types in LTO.
17151         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17152         parameter to speculative_targetsp; handle speculation.
17153         (dump_possible_polymorphic_call_targets): Update dumping.
17154
17155 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17156
17157         * common.opt (Wodr): Enable by default.
17158
17159 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17160
17161         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17162
17163 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17164
17165         PR bootstrap/61914
17166         * gengtype.c (strtoken): New function.
17167         (create_user_defined_type): Replace strtok with strtoken.
17168
17169 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17170
17171         * gcov-io.c (gcov_var): Make hidden.
17172         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17173         (gcov_do_dump): Declare.
17174         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17175
17176 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17177
17178         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17179         parameter to gimple.
17180         (sra_modify_assign): Likewise.
17181
17182 2014-07-29  Richard Biener  <rguenther@suse.de>
17183
17184         PR middle-end/52478
17185         * expr.c (expand_expr_real_2): Revert last change.
17186
17187 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17188
17189         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17190         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17191         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17192         call.
17193         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17194         (contains_type_p): Forward declare.
17195         (polymorphic_call_target_hasher::hash): Hash speculative info.
17196         (polymorphic_call_target_hasher::equal): Compare speculative info.
17197         (get_class_context): Handle speuclation.
17198         (contains_type_p): Update.
17199         (get_polymorphic_call_info_for_decl): Update.
17200         (walk_ssa_copies): Break out from ...
17201         (get_polymorphic_call_info): ... here; set speculative context
17202         before giving up.
17203         * ipa-prop.c (ipa_write_indirect_edge_info,
17204         ipa_read_indirect_edge_info): Stream speculative context.
17205         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17206         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17207         SPECULATIVE_MAYBE_DERIVED_TYPE).
17208         (possible_polymorphic_call_targets overriders): Update.
17209         (dump_possible_polymorphic_call_targets overriders): Update.
17210         (dump_possible_polymorphic_call_target_p overriders): Update.
17211
17212 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17213
17214         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17215         ipa-devirt path; fix thinko there.
17216
17217 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17218
17219         * config/i386/i386.c (ix86_return_in_memory): Replace one
17220         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17221
17222 2014-07-28  Marek Polacek  <polacek@redhat.com>
17223
17224         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17225
17226 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17227
17228         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17229         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17230         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17231         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17232         (USE_LD_AS_NEEDED): Likewise.
17233         (ASM_APP_ON): Likewise.
17234         (ASM_APP_OFF): Likewise.
17235         (TARGET_POSIX_IO): Likewise.
17236         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
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
17243 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17244
17245         PR middle-end/61734
17246         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17247         operators other than the equality operators.
17248
17249 2014-07-28  Richard Biener  <rguenther@suse.de>
17250
17251         PR middle-end/52478
17252         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17253         sure to register SImode ones, not only >= word_mode ones.
17254         * expr.c (expand_expr_real_2): When expanding -ftrapv
17255         binops do not use OPTAB_LIB_WIDEN.
17256
17257 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17258
17259         PR middle-end/61919
17260         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17261         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17262         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17263         inserting them in the insn stream.
17264
17265 2014-07-28  Marek Polacek  <polacek@redhat.com>
17266
17267         PR middle-end/61913
17268         * common.opt (Wodr): Add Var.
17269
17270 2014-07-28  Richard Biener  <rguenther@suse.de>
17271
17272         PR tree-optimization/61921
17273         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17274         if there is a varpool node before dereferencing it.
17275
17276 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17277
17278         * graphite-sese-to-poly.c:
17279         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17280         id of the pbb), which contains pointer to the pbb1.
17281
17282         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17283
17284 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17285
17286         * graphite-isl-ast-to-gimple.c:
17287         (graphite_create_new_guard): New function.
17288         (translate_isl_ast_node_if): New function.
17289         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17290
17291         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17292
17293 2014-07-27  Anthony Green  <green@moxielogic.com>
17294
17295         * config.gcc: Add moxie-*-moxiebox* configuration.
17296         * config/moxie/moxiebox.h: New file.
17297
17298 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17299
17300         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17301         from the read only register.
17302
17303 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17304
17305         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17306         as the allocation class if it isn't likely to be spilled.
17307
17308 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17309
17310         * rtl.h (tls_referenced_p): Declare.
17311         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17312         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17313         (mips_cannot_force_const_mem): Use tls_referenced_p.
17314         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17315         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17316         instead of pa_tls_referenced_p.
17317         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17318         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17319         (pa_legitimate_constant_p): Likewise.
17320         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17321         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17322         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17323         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17324         rs6000_tls_referenced_p.
17325         (rs6000_tls_symbol_ref_1): Delete.
17326
17327 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17328
17329         PR target/44551
17330         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17331         Optimize inverse of a VEC_CONCAT.
17332
17333 2014-07-25  Xinliang David Li  <davidxl@google.com>
17334
17335         * params.def: New parameter.
17336         * coverage.c (get_coverage_counts): Check new flag.
17337         (coverage_compute_profile_id): Check new flag.
17338         (coverage_begin_function): Check new flag.
17339         (coverage_end_function): Check new flag.
17340         * value-prof.c (coverage_node_map_initialized_p): New function.
17341         (init_node_map): Populate map with all functions.
17342         * doc/invoke.texi: Document new parameter.
17343
17344 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
17345             Richard Biener <rguenther@suse.de>
17346
17347         * lto-streamer-out.c (struct sccs): Turn to ...
17348         (class DFS): ... this one; refactor the DFS walk so it can
17349         be re-done on per-SCC basis.
17350         (DFS::DFS): New constructor.
17351         (DFS::~DFS): New destructor.
17352         (hash_tree): Add new MAP argument holding in-SCC hash values;
17353         remove POINTER_TYPE hashing hack.
17354         (scc_entry_compare): Rename to ...
17355         (DFS::scc_entry_compare): ... this one.
17356         (hash_scc): Rename to ...
17357         (DFS::hash_scc): ... this one; pass output_block instead
17358         of streamer_cache; work harder to get unique and stable SCC
17359         hashes.
17360         (DFS_write_tree): Rename to ...
17361         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17362         (lto_output_tree): Update.
17363
17364 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17365
17366         * lto-streamer-out.c (hash_tree): Convert to inchash.
17367
17368 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17369
17370         * tree.c (build_type_attribute_qual_variant): Use inchash.
17371         (type_hash_list): Dito.
17372         (attribute_hash_list): Dito
17373         (iterative_hstate_expr): Dito.
17374         (iterative_hash_expr): Dito.
17375         (build_range_type_1): Dito.
17376         (build_array_type_1): Dito.
17377         (build_function_type): Dito.
17378         (build_method_type_directly): Dito.
17379         (build_offset_type): Dito.
17380         (build_complex_type): Dito.
17381         (make_vector_type): Dito.
17382         * tree.h (iterative_hash_expr): Add compat wrapper.
17383         (iterative_hstate_expr): Add.
17384
17385 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17386
17387         * Makefile.in (OBJS): Add inchash.o.
17388         (PLUGIN_HEADERS): Add inchash.h.
17389         * ipa-devirt.c: Include inchash.h.
17390         * lto-streamer-out.c: Dito.
17391         * tree-ssa-dom.c: Dito.
17392         * tree-ssa-pre.c: Dito.
17393         * tree-ssa-sccvn.c: Dito.
17394         * tree-ssa-tail-merge.c: Dito.
17395         * asan.c: Dito.
17396         * tree.c (iterative_hash_hashval_t): Move to ...
17397         (iterative_hash_host_wide_int): Move to ...
17398         * inchash.c: Here. New file.
17399         * tree.h (iterative_hash_hashval_t): Move to ...
17400         (iterative_hash_host_wide_int): Move to ...
17401         * inchash.h: Here. New file.
17402
17403 2014-07-25  Richard Biener  <rguenther@suse.de>
17404
17405         PR middle-end/61762
17406         PR middle-end/61894
17407         * fold-const.c (native_encode_int): Add and handle offset
17408         parameter to do partial encodings of expr.
17409         (native_encode_fixed): Likewise.
17410         (native_encode_real): Likewise.
17411         (native_encode_complex): Likewise.
17412         (native_encode_vector): Likewise.
17413         (native_encode_string): Likewise.
17414         (native_encode_expr): Likewise.
17415         * fold-const.c (native_encode_expr): Add offset parameter
17416         defaulting to -1.
17417         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
17418         (fold_ctor_reference): Handle all reads from tcc_constant
17419         ctors.
17420
17421 2014-07-25  Richard Biener  <rguenther@suse.de>
17422
17423         * tree-inline.c (estimate_move_cost): Mark speed_p argument
17424         as possibly unused.
17425
17426 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17427
17428         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
17429
17430 2014-07-24  Kyle McMartin  <kyle@redhat.com>
17431
17432         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
17433
17434 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17435
17436         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
17437         Add prototype.
17438         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
17439         function.
17440         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
17441         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17442         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
17443
17444 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17445
17446         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
17447         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
17448         aggregate types.  Instead, *all* aggregate types, except for single-
17449         element or homogeneous float/vector aggregates, are quadword-aligned
17450         if required by their type alignment.  Issue -Wpsabi note when a type
17451         is now treated differently than before.
17452
17453 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17454
17455         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
17456         does not fit fully into floating-point registers, and there is still
17457         space in the register parameter area, use GPRs to pass those parts
17458         of the argument.  Issue -Wpsabi note if any parameter is now treated
17459         differently than before.
17460         (rs6000_arg_partial_bytes): Update.
17461
17462 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
17463
17464         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
17465
17466 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17467
17468         * rtl.h (target_rtl): Remove lang_dependent_initialized.
17469         * toplev.c (initialize_rtl): Don't use it.  Move previously
17470         "language-dependent" calls to...
17471         (backend_init): ...here.
17472         (lang_dependent_init_target): Don't set lang_dependent_initialized.
17473         Assert that RTL initialization hasn't happend yet.
17474
17475 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17476
17477         PR rtl-optimization/61629
17478         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
17479         they have already been initialized.
17480
17481 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17482
17483         PR middle-end/61268
17484         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
17485         DECL_INCOMING_RTL and entry_parm.
17486         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
17487         * calls.c (load_register_parameters): Likewise argument values.
17488         (emit_library_call_value_1, store_one_arg): Likewise argument
17489         save areas.
17490         * config/i386/i386.c (assign_386_stack_local): Likewise the local
17491         stack slot.
17492         * explow.c (validize_mem): Modify the argument in-place.
17493
17494 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17495
17496         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
17497         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
17498
17499 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17500
17501         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
17502         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
17503
17504 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17505
17506         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
17507         (aarch64_save_callee_saves): New parameter "skip_wb".
17508         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
17509
17510 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17511
17512         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
17513         "wb_candidate2".
17514         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
17515
17516 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17517
17518         * graphite-isl-ast-to-gimple.c:
17519         (graphite_create_new_loop): Add calling of isl_id_free to properly
17520         decrement reference counts.
17521
17522         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
17523
17524 2014-07-24  Martin Liska  <mliska@suse.cz>
17525         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
17526         function used.
17527         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
17528         (rs6000_code_end): Likewise.
17529
17530 2014-07-24  Martin Liska  <mliska@suse.cz>
17531
17532         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
17533         symtab_node funtion used.
17534         (rs6000_xcoff_declare_object_name): Likewise.
17535
17536 2014-07-24  Martin Liska  <mliska@suse.cz>
17537
17538         * cgraphunit.c (compile): Correct function used.
17539
17540 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17541
17542         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
17543         as non-indexable.
17544
17545 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
17546
17547         PR lto/61802
17548         * varasm.c (bss_initializer_p): Handle offlined ctors.
17549         (align_variable, get_variable_align): Likewise.
17550         (make_decl_one_only): Likewise.
17551         (default_binds_local_p_1): Likewise.
17552         (decl_binds_to_current_def_p): Likewise.
17553         (get_variable_section): Get constructor if it is offlined.
17554         (assemble_variable_contents): Sanity check that the caller
17555         streamed in the ctor in LTO.
17556
17557 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
17558
17559         * graphite-isl-ast-to-gimple.c:
17560         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
17561         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
17562         isl_ast_op_pdiv_r to the different case.
17563
17564         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
17565
17566 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17567
17568         PR middle-end/61876
17569         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
17570         when flag_errno_math is on.
17571
17572 2014-07-24  Martin Liska  <mliska@suse.cz>
17573
17574         * cgraph.h (varpool_node):
17575         (availability get_availability (void)):
17576         created from cgraph_variable_initializer_availability
17577         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
17578         created from: cgraph_variable_initializer_availability
17579         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
17580         (void finalize_named_section_flags (void)):
17581         created from varpool_finalize_named_section_flags
17582         (bool assemble_decl (void)): created from varpool_assemble_decl
17583         (void analyze (void)): created from varpool_analyze_node
17584         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
17585         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
17586         (void remove_initializer (void)): created from varpool_remove_initializer
17587         (tree get_constructor (void)): created from varpool_get_constructor
17588         (bool externally_visible_p (void)): created from varpool_externally_visible_p
17589         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
17590         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
17591         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
17592         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
17593         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
17594         (static bool output_variables (void)): created from varpool_output_variables
17595         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
17596         created from varpool_extra_name_alias
17597         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
17598         (static void dump_varpool (FILE *f)): created from dump_varpool
17599         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
17600         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
17601         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
17602         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
17603         (void assemble_aliases (void)): created from assemble_aliases
17604
17605 2014-07-24  Martin Liska  <mliska@suse.cz>
17606
17607         * cgraph.h (symtab_node):
17608         (void register_symbol (void)): created from symtab_register_node
17609         (void remove (void)): created from symtab_remove_node
17610         (void dump (FILE *f)): created from dump_symtab_node
17611         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
17612         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
17613         (struct ipa_ref *add_reference (symtab_node *referred_node,
17614         enum ipa_ref_use use_type)): created from add_reference
17615         (struct ipa_ref *add_reference (symtab_node *referred_node,
17616         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
17617         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
17618         gimple stmt)): created from maybe_add_reference
17619         (bool semantically_equivalent_p (symtab_node *target)): created from
17620         symtab_semantically_equivalent_p
17621         (void remove_from_same_comdat_group (void)): created from
17622         remove_from_same_comdat_group
17623         (void add_to_same_comdat_group (symtab_node *old_node)): created from
17624         symtab_add_to_same_comdat_group
17625         (void dissolve_same_comdat_group_list (void)): created from
17626         symtab_dissolve_same_comdat_group_list
17627         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
17628         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
17629         created from symtab_alias_ultimate_target
17630         (inline symtab_node *next_defined_symbol (void)): created from
17631         symtab_next_defined_symbol
17632         (bool resolve_alias (symtab_node *target)): created from
17633         symtab_resolve_alias
17634         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
17635         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
17636         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
17637         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
17638         (void set_section (const char *section)): created from set_section_1
17639         (enum availability get_availability (void)): created from symtab_node_availability
17640         (void make_decl_local (void)): created from symtab_make_decl_local
17641         (bool real_symbol_p (void)): created from symtab_read_node
17642         (can_be_discarded_p (void)): created from symtab_can_be_discarded
17643         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
17644         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
17645         symtab_in_same_comdat_p;
17646         (bool address_taken_from_non_vtable_p (void)): created from
17647         address_taken_from_non_vtable_p
17648         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
17649         (static void dump_table (FILE *)): created from dump_symtab
17650         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
17651         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
17652         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
17653         symtab_used_from_object_file_p
17654         (void dump_base (FILE *)): created from dump_symtab_base
17655         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
17656         (void unregister (void)): created from symtab_unregister_node
17657         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
17658         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
17659         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
17660         symtab_nonoverwritable_alias_1
17661         * cgraph.h (cgraph_node):
17662         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
17663         created from cgraph_remove_node_and_inline_clones
17664         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
17665         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
17666         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
17667         (cgraph_node *function_symbol (enum availability *avail = NULL)):
17668         created from cgraph_function_node
17669         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
17670         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
17671         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
17672         created from cgraph_create_clone
17673         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
17674         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
17675         created from cgraph_create_virtual_clone
17676         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
17677         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
17678         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
17679         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
17680         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
17681         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
17682         created from cgraph_function_version_info
17683         (struct cgraph_function_version_info *insert_new_function_version (void)):
17684         created from insert_new_cgraph_node_version
17685         (struct cgraph_function_version_info *function_version (void)): created from
17686         get_cgraph_node_version
17687         (void analyze (void)): created from analyze_function
17688         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
17689         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
17690         tree real_alias) cgraph_add_thunk
17691         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
17692         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
17693         created from cgraph_function_or_thunk_node
17694         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
17695         created from expand_thunk
17696         (void reset (void)): created from cgraph_reset_node
17697         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
17698         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
17699         (void remove (void)): created from cgraph_remove_node
17700         (void dump (FILE *f)): created from dump_cgraph_node
17701         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
17702         (bool get_body (void)): created from cgraph_get_body
17703         (void release_body (void)): created from cgraph_release_function_body
17704         (void unnest (void)): created from cgraph_unnest_node
17705         (void make_local (void)): created from cgraph_make_node_local
17706         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
17707         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
17708         gcov_type count, int freq)): created from cgraph_create_edge
17709         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
17710         gcov_type count, int freq)): created from cgraph_create_indirect_edge
17711         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
17712         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
17713         created from cgraph_create_edge_including_clones
17714         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
17715         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
17716         (void remove_callers (void)): created from cgraph_node_remove_callers
17717         (void remove_callees (void)): created from cgraph_node_remove_callees
17718         (enum availability get_availability (void)): created from cgraph_function_body_availability
17719         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
17720         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
17721         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
17722         (void call_duplication_hooks (cgraph_node *node2)): created from
17723         cgraph_call_node_duplication_hooks
17724         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
17725         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
17726         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
17727         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
17728         (void call_function_insertion_hooks (void)):
17729         created from cgraph_call_function_insertion_hooks
17730         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
17731         (bool local_p (void)): created from cgraph_local_node
17732         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
17733         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
17734         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
17735         (inline bool only_called_directly_or_aliased_p (void)):
17736         created from cgraph_only_called_directly_or_aliased_p
17737         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
17738         created from cgraph_will_be_removed_from_program_if_no_direct_calls
17739         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
17740         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
17741         (bool can_remove_if_no_direct_calls_p (void)):
17742         created from cgraph_can_remove_if_no_direct_calls_p
17743         (inline bool has_gimple_body_p (void)):
17744         created from cgraph_function_with_gimple_body_p
17745         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
17746         (static void dump_cgraph (FILE *f)): created from dump_cgraph
17747         (static inline void debug_cgraph (void)): created from debug_cgraph
17748         (static void record_function_versions (tree decl1, tree decl2)):
17749         created from record_function_versions
17750         (static void delete_function_version (tree decl)):
17751         created from delete_function_version
17752         (static void add_new_function (tree fndecl, bool lowered)):
17753         created from cgraph_add_new_function
17754         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
17755         (static cgraph_node * create (tree decl)): created from cgraph_create_node
17756         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
17757         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
17758         (static cgraph_node *get_for_asmname (tree asmname)):
17759         created from cgraph_node_for_asm
17760         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
17761         created from cgraph_same_body_alias
17762         (static bool used_from_object_file_p_worker (cgraph_node *node,
17763         void *): new function
17764         (static bool non_local_p (cgraph_node *node, void *)):
17765         created from cgraph_non_local_node_p_1
17766         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
17767         created from verify_cgraph
17768         (static bool make_local (cgraph_node *node, void *)):
17769         created from cgraph_make_node_local
17770         (static cgraph_node *create_alias (tree alias, tree target)):
17771         created from cgraph_create_function_alias
17772         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
17773         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
17774         created from cgraph_create_edge_1
17775         * cgraph.h (varpool_node):
17776         (void remove (void)): created from varpool_remove_node
17777         (void dump (FILE *f)): created from dump_varpool_node
17778
17779 2014-07-24  Richard Biener  <rguenther@suse.de>
17780
17781         PR ipa/61823
17782         * tree-ssa-structalias.c (create_variable_info_for_1):
17783         Use varpool_get_constructor.
17784         (create_variable_info_for): Likewise.
17785
17786 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
17787
17788         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
17789         subtract outgoing area size when restoring stack_pointer_rtx.
17790
17791 2014-07-24  Nick Clifton  <nickc@redhat.com>
17792
17793         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
17794         that operations are taking place in parallel.
17795         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
17796
17797 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
17798
17799         * omp-low.c (extract_omp_for_data): Add missing break statement.
17800
17801 2014-07-24  Richard Biener  <rguenther@suse.de>
17802
17803         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
17804         * tree-inline.c (estimate_move_cost): Add speed_p parameter
17805         and adjust MOVE_RATIO query accordingly.
17806         (estimate_num_insns): Adjust callers.
17807         * ipa-prop.c (ipa_populate_param_decls): Likewise.
17808         * ipa-cp.c (gather_context_independent_values,
17809         estimate_local_effects): Likewise.
17810         * ipa-split.c (consider_split): Likewise.
17811
17812 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
17813
17814         * config/i386/driver-i386.c: Remove names of unused arguments and
17815         unnecessary unused attributes.
17816         * config/i386/host-mingw32.c: Likewise.
17817         * config/i386/i386.c: Likewise.
17818         * config/i386/winnt-stubs.c: Likewise.
17819         * config/i386/winnt.c: Likewise.
17820
17821 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17822
17823         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
17824         (aarch64_gen_loadwb_pair): New helper function.
17825         (aarch64_expand_epilogue): Simplify code using new helper functions.
17826         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
17827
17828 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17829
17830         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
17831         (aarch64_gen_storewb_pair): New helper function.
17832         (aarch64_expand_prologue): Simplify code using new helper functions.
17833         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
17834
17835 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17836
17837         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
17838         Rename to aarch64_save_callee_saves, remove restore code.
17839         (aarch64_restore_callee_saves): New function.
17840
17841 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17842
17843         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
17844         (aarch64_save_callee_saves): New function to handle reg save
17845         for both core and vectore regs.
17846
17847 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17848
17849         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
17850         (aarch64_gen_store_pair): New helper function.
17851         (aarch64_save_or_restore_callee_save_registers)
17852         (aarch64_save_or_restore_fprs): Use new helper functions.
17853
17854 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17855
17856         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
17857         (aarch64_save_or_restore_callee_save_registers)
17858         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
17859
17860 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17861
17862         * config/aarch64/aarch64.c
17863         (aarch64_save_or_restore_callee_save_registers)
17864         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
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): Remove 'increment'.
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): Use register offset in
17877         cfun->machine->frame.reg_offset.
17878
17879 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17880
17881         * config/aarch64/aarch64.c
17882         (aarch64_save_or_restore_callee_save_registers)
17883         (aarch64_save_or_restore_fprs): Remove base_rtx.
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): Rename 'offset'
17889         to 'start_offset'.  Remove local variable 'start_offset'.
17890
17891 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17892
17893         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
17894         type to HOST_WIDE_INT.
17895
17896 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17897
17898         * config/aarch64/aarch64.c (aarch64_expand_prologue)
17899         (aarch64_save_or_restore_fprs)
17900         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
17901
17902 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17903
17904         * config/arm/t-rtems-eabi: Add
17905         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
17906         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
17907         mbig-endian/mthumb/march=armv7-r, and
17908         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
17909         multilibs.
17910
17911 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17912             Chris Johns <chrisj@rtems.org>
17913             Joel Sherrill <joel.sherrill@oarcorp.com>
17914
17915         * config.gcc: Add nios2-*-rtems*.
17916         * config/nios2/rtems.h: New file.
17917         * gcc/config/nios2/t-rtems: New file.
17918
17919 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
17920
17921         PR target/61396
17922         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
17923         constant numbers, not general constants.
17924         (rs6000_expand_vector_init): Ditto.
17925
17926 2014-07-23  Nathan Sidwell  <nathan@acm.org>
17927
17928         * gcov-tool.c (gcov_list): Declare here.
17929         (set_gcov_list): Remove.
17930         (gcov_output_files): Set gcov_list directly.
17931
17932 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
17933
17934         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
17935
17936 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
17937
17938         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
17939         callee-saved registers are available for padding purpose
17940         and r3 is not mandatory, then prefer use those callee-saved
17941         instead of r3.
17942
17943 2014-07-23  Richard Biener  <rguenther@suse.de>
17944
17945         * params.def (PARAM_MAX_COMBINE_INSNS): New.
17946         * combine.c: Include statistics.h and params.h.
17947         (combine_instructions): Guard three and four insn combines
17948         with max-combine-insns value.  Record statistics for combines
17949         performed.
17950         * doc/invoke.texi (max-combine-insns): Document new param.
17951
17952 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
17953
17954         * graphite-isl-ast-to-gimple.c:
17955         (translate_isl_ast_node_block): New function.
17956         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
17957
17958         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
17959         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
17960
17961 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
17962
17963         * graphite-isl-ast-to-gimple.c:
17964         (get_max_schedule_dimensions): New function.
17965         (extend_schedule): Likewise.
17966         (generate_isl_schedule): Add calling of extend_schedule and
17967         get_max_schedule_dimensions.
17968
17969 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17970
17971         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
17972         (case UNSPEC): Handle UNSPEC_RBIT.
17973
17974 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17975
17976         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
17977         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
17978
17979 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17980
17981         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
17982
17983 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
17984
17985         * graphite-isl-ast-to-gimple.c:
17986         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
17987         (ivs_params_clear):
17988         (build_iv_mapping): New function.
17989         (translate_isl_ast_node_user): Likewise.
17990         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
17991
17992         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
17993         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
17994         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
17995
17996 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
17997
17998         PR target/55701
17999         * config/arm/arm.md (setmem): New pattern.
18000         * config/arm/arm-protos.h (struct tune_params): New fields.
18001         (arm_gen_setmem): New prototype.
18002         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18003         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18004         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18005         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18006         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18007         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18008         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18009         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18010         (arm_const_inline_cost): New function.
18011         (arm_block_set_max_insns): New function.
18012         (arm_block_set_non_vect_profit_p): New function.
18013         (arm_block_set_vect_profit_p): New function.
18014         (arm_block_set_unaligned_vect): New function.
18015         (arm_block_set_aligned_vect): New function.
18016         (arm_block_set_unaligned_non_vect): New function.
18017         (arm_block_set_aligned_non_vect): New function.
18018         (arm_block_set_vect, arm_gen_setmem): New functions.
18019
18020 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18021
18022         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18023
18024 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18025
18026         PR target/61855
18027         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18028         out of #ifdef __OPTIMIZE__.
18029
18030 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18031
18032         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18033         different trapping status if -fnon-call-exceptions is enabled.
18034
18035 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18036
18037         * expr.c (store_field): Handle VOIDmode for calls that return values
18038         in multiple locations.
18039
18040 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18041
18042         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18043         (altivec_vsldoi_<mode>): Likewise.
18044
18045 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18046
18047         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18048         to the number of characters in the line.
18049
18050 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18051
18052         * graphite-isl-ast-to-gimple.c: Add using of
18053         build_nonstandard_integer_type instead of int128_integer_type_node.
18054
18055 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18056
18057         * toplev.c (output_stack_usage): Adjust the location of the warning.
18058
18059 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18060
18061         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18062         (*membar_storeload): Disable for LEON3.
18063
18064 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18065
18066         PR rtl-optimization/61461
18067         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18068
18069 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18070
18071         PR target/61794
18072         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18073         Fix instruction constraint.
18074         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18075
18076 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18077
18078         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18079
18080 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18081
18082         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18083         GNU coding standards.
18084         (nds32_register_move_cost): Likewise.
18085         (nds32_memory_move_cost): Likewise.
18086         (nds32_address_cost): Likewise.
18087
18088 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18089
18090         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18091
18092 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18093
18094         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18095         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18096         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18097         (HAVE_sync_compare_and_swapqi): Define.
18098         (HAVE_sync_compare_and_swaphi): Likewise.
18099         (HAVE_sync_compare_and_swapsi): Likewise.
18100
18101 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18102
18103         * config/mips/p5600.md: Add missing cpu tests.
18104
18105 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18106
18107         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18108         (vmla_f64): Likewise.
18109         (vfms_f64): Likewise.
18110         (vmls_f64): Likewise.
18111
18112 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18113
18114         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18115         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18116
18117 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18118
18119         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18120         (vmlal_high_lane_s32): Likewise.
18121         (vmlal_high_lane_u16): Likewise.
18122         (vmlal_high_lane_u32): Likewise.
18123         (vmlsl_high_lane_s16): Likewise.
18124         (vmlsl_high_lane_s32): Likewise.
18125         (vmlsl_high_lane_u16): Likewise.
18126         (vmlsl_high_lane_u32): Likewise.
18127
18128 2014-07-17  Terry Guo  <terry.guo@arm.com>
18129
18130         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18131         (alus_reg): Renamed to alus_sreg.
18132         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18133         from alu_reg to alu_sreg.  Change type of dsp instructions from
18134         alu_reg to alu_dsp_reg.
18135         * config/arm/thumb1.md: Likewise.
18136         * config/arm/thumb2.md: Likewise.
18137         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18138         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18139         with alu_sreg and alus_sreg.
18140         * config/arm/arm1026ejs.md (alu_op): Likewise.
18141         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18142         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18143         * config/arm/fa526.md (526_alu_op): Likewise.
18144         * config/arm/fa606te.md (606te_alu_op): Likewise.
18145         * config/arm/fa626te.md (626te_alu_op): Likewise.
18146         * config/arm/fa726te.md (726te_alu_op): Likewise.
18147         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18148         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18149         alu_sreg, alu_dsp_reg and alus_sreg.
18150         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18151         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18152         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18153         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18154         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18155         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18156         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18157         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18158         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18159         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18160         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18161         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18162         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18163         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18164         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18165         alus_reg to alus_sreg.
18166
18167 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18168
18169         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18170         infinity format.
18171
18172 2014-07-17  Richard Biener  <rguenther@suse.de>
18173
18174         PR rtl-optimization/61801
18175         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18176         don't set reg_pending_barrier if it appears in a debug-insn.
18177
18178 2014-07-16  DJ Delorie  <dj@redhat.com>
18179
18180         * config/rx/rx.c (rx_option_override): Fix alignment values.
18181         (rx_align_for_label): Likewise.
18182
18183 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18184
18185         PR target/61737.
18186         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18187         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18188         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18189         functions.
18190         (cris_print_index, cris_print_operand, cris_constant_index_p)
18191         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18192         (cris_address_cost): Ditto last CONSTANT_P.
18193         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18194         callers changed.  Yield cris_offsettable_symbol for non-PIC
18195         constant symbolic expressions including labels.  Yield cris_unspec
18196         for all unspecs.
18197         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18198         target to pic_offset_table_rtx for calls that will likely go
18199         through PLT, const0_rtx when they can't.  All callers changed.
18200         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18201         symbolic expressions to be PICified.  Remove second, redundant,
18202         assert on can_create_pseudo_p returning non-zero.  Use
18203         replace_equiv_address_nv, not replace_equiv_address, for final
18204         operand update.
18205         * config/cris/cris.md ("movsi"): Move variable t to pattern
18206         toplevel. Adjust assert for new cris_symbol_type member.  Use
18207         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18208         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18209         for lapc stricter.
18210         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18211         ("call", "call_value"): Use second incoming operand as a marker
18212         for pic-offset-table-register being used.
18213         ("*expanded_call_non_v32", "*expanded_call_v32")
18214         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18215         second incoming operand to CALL, match cris_call_type_marker.
18216         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18217         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18218         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18219         CONSTANT_P.
18220         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18221         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18222         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18223         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18224         (cris_symbol_type): Rename from cris_pic_symbol_type.
18225         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18226         just CONSTANT_P.
18227         * config/cris/cris-protos.h (cris_symbol_type_of,
18228         cris_expand_pic_call_address): Adjust prototypes.
18229         (cris_legitimate_constant_p): New prototype.
18230
18231         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18232         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18233
18234 2014-07-17  Jason Merrill  <jason@redhat.com>
18235
18236         PR c++/61623
18237         * symtab.c (symtab_remove_from_same_comdat_group): Also
18238         set_comdat_group to NULL_TREE.
18239         (verify_symtab): Fix diagnostic.
18240
18241 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18242
18243         PR target/61662
18244         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18245
18246 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18247
18248         Support location tracking for built-in macro tokens
18249         * input.h (is_location_from_builtin_token): New function declaration.
18250         * input.c (is_location_from_builtin_token): New function definition.
18251         * toplev.c (general_init): Tell libcpp what the pre-defined
18252         spelling location for built-in tokens is.
18253
18254 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18255
18256         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18257         on the FUNCTION_DECL.
18258
18259 2014-07-16  Richard Biener  <rguenther@suse.de>
18260
18261         PR other/61782
18262         * doc/extend.texi (always_inline): Clarify.
18263
18264 2014-07-15  Eric Christopher  <echristo@gmail.com>
18265
18266         * doc/invoke.texi (Link Options): Document -z option.
18267
18268 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18269
18270         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18271         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18272
18273 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18274
18275         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18276
18277 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18278
18279         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18280         varpool_assemble_decl.
18281         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18282         true.
18283
18284 2014-07-15  Michael Matz  <matz@suse.de>
18285
18286         PR rtl-optimization/61772
18287         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18288
18289 2014-07-15  Richard Biener  <rguenther@suse.de>
18290
18291         * opts.c (default_options_table): Disable bit-ccp at -Og.
18292
18293 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18294
18295         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18296
18297 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18298
18299         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18300         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18301         call langhook for unknown declaration.
18302         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18303         * tree.h (DECL_ARGUMENTS): Update.
18304         * print-tree.c (print_node): Update.
18305         * tree-core.h (tree_decl_non_common): Remove arguments.
18306         (tree_function_decl): Add arguments.
18307
18308 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18309
18310         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18311
18312 2014-07-14  Richard Biener  <rguenther@suse.de>
18313
18314         PR tree-optimization/61779
18315         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18316         simplifying a condition.
18317
18318 2014-07-14  Richard Biener  <rguenther@suse.de>
18319
18320         * builtins.c (c_strlen): Make only_value == 2 really only
18321         affect warning generation.
18322
18323 2014-07-14  Richard Biener  <rguenther@suse.de>
18324
18325         PR tree-optimization/61757
18326         PR tree-optimization/61783
18327         PR tree-optimization/61787
18328         * tree-ssa-dom.c (record_equality): Revert canonicalization
18329         change and add comment.
18330         (propagate_rhs_into_lhs): Revert previous fix, removing
18331         loop depth restriction again.
18332
18333 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18334
18335         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18336         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18337         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18338         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18339         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18340         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18341         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18342
18343 2014-07-14  Richard Biener  <rguenther@suse.de>
18344
18345         * cgraph.h (decl_in_symtab_p): Make inline.
18346
18347 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
18348
18349         PR middle-end/61294
18350         * doc/invoke.texi (-Wmemset-transposed-args): Document.
18351
18352         PR target/61656
18353         * config/i386/i386.c (classify_argument): Don't merge classes above
18354         number of words.
18355
18356 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
18357
18358         * cgraph.h (symtab_node): Add nonzero_address.
18359         (decl_in_symtab_p): Break out from ...
18360         (symtab_get_node): ... here.
18361         * fold-const.c: Include cgraph.h
18362         (tree_single_nonzero_warnv_p): Use symtab to determine
18363         if symbol is non-zero.
18364         * symtab.c (symtab_node::nonzero_address): New method.
18365
18366 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18367
18368         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18369         forgotten in previous commit.
18370
18371 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18372
18373         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18374         on builtin types.
18375         * ipa-devirt.c: Include stor-layout.h and intl.h
18376         (odr_subtypes_equivalent_p): New function.
18377         (warn_odr): New function.
18378         (warn_type_mismatch): New function.
18379         (odr_types_equivalent_p): New function.
18380         (add_type_duplicate): Use it.
18381         * common.opt (Wodr): New flag.
18382         * doc/invoke.texi (Wodr): Document new warning.
18383
18384 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18385
18386         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18387         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18388         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18389         (varpool_get_constructor): Push CTORS_IN timevar.
18390         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18391
18392 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
18393
18394         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
18395         Remove VOID_FTYPE_PUSHORT.
18396         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
18397         Change code to USHORT_FTYPE_VOID.
18398         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
18399         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
18400         (ix86_atomic_assign_expand_fenv): Update for
18401         __builtin_ia32_fnstsw changes.
18402         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
18403         (fnstsw): Change operand 0 to nonimmediate operand.
18404
18405 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18406
18407         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
18408         (varpool_get_constructor): New function.
18409         (varpool_ctor_useable_for_folding_p): Break out from ...
18410         (ctor_for_folding): ... here; use varpool_get_constructor.
18411         (varpool_assemble_decl): Likewise.
18412         * lto-streamer.h (struct output_block): Turn cgraph_node
18413         to symbol filed.
18414         (lto_input_variable_constructor): Declare.
18415         * ipa-visibility.c (function_and_variable_visibility): Use
18416         varpool_get_constructor.
18417         * cgraph.h (varpool_get_constructor): Declare.
18418         (varpool_ctor_useable_for_folding_p): New function.
18419         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
18420         parameter; return error_mark_node for non-trivial constructors.
18421         (lto_write_tree_1, DFS_write_tree): Update use of
18422         get_symbol_initial_value.
18423         (output_function): Update initialization of symbol.
18424         (output_constructor): New function.
18425         (copy_function): Rename to ..
18426         (copy_function_or_variable): ... this one; handle vars too.
18427         (lto_output): Output variable sections.
18428         * lto-streamer-in.c (input_constructor): New function.
18429         (lto_read_body): Rename from ...
18430         (lto_read_body_or_constructor): ... this one; handle vars too.
18431         (lto_input_variable_constructor): New function.
18432         * ipa-prop.c (ipa_prop_write_jump_functions,
18433         ipa_prop_write_all_agg_replacement): Update.
18434         * lto-cgraph.c (compute_ltrans_boundary): Use it.
18435         (output_cgraph_opt_summary): Set symbol to NULL.
18436
18437 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18438
18439         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
18440         non-polymorphic types.
18441         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
18442         * ipa-devirt.c (types_same_for_odr): Do not explode when one
18443         of types is not polymorphic.
18444
18445 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
18446
18447         * lra-constraints.c (remove_inheritance_pseudos): Process
18448         destination pseudo too.
18449
18450 2014-07-11  Rong Xu  <xur@google.com>
18451
18452         * gcov-tool.c (gcov_output_files): Fix build error introduced in
18453         commit r212448.
18454
18455 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18456
18457         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
18458         * config/avr/avr-devices.c (AVR_MCU): Same.
18459         (avr_mcu_types): add text start value to end of device list.
18460         * config/avr/avr-mcus.def: Add text section start for all devices.
18461         (ata5782): Add new avr5 device.
18462         (ata5831): Same.
18463         * config/avr/avr-tables.opt: Regenerate.
18464         * config/avr/avr.h: Add declaration for text section start handler.
18465         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
18466         SPEC functions.
18467         (LINK_SPEC): Include text section start handler to linker spec.
18468         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
18469         pass -Ttext option to linker if the text section start for the device
18470         is not zero.
18471         * config/avr/t-multilib: Regenerate.
18472         * doc/avr-mmcu.texi: Regenerate.
18473
18474 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
18475
18476         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
18477         * config/rs6000/aix52.h (LINK_SPEC): Same.
18478         * config/rs6000/aix53.h (LINK_SPEC): Same.
18479         * config/rs6000/aix61.h (LINK_SPEC): Same.
18480         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
18481
18482 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
18483
18484         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
18485         (graphite_verify): New function.
18486         (ivs_params_clear): New function.
18487         (gcc_expression_from_isl_ast_expr_id): New function.
18488         (gcc_expression_from_isl_expr_int): New function.
18489         (binary_op_to_tree): New function.
18490         (ternary_op_to_tree): New function.
18491         (unary_op_to_tree): New function.
18492         (nary_op_to_tree): New function.
18493         (gcc_expression_from_isl_expr_op): New function.
18494         (gcc_expression_from_isl_expression): New function.
18495         (graphite_create_new_loop): New function.
18496         (translate_isl_ast_for_loop): New function.
18497         (get_upper_bound): New function.
18498         (graphite_create_new_loop_guard): New function.
18499         (translate_isl_ast_node_for): New function.
18500         (translate_isl_ast): New function.
18501         (add_parameters_to_ivs_params): New function.
18502         (scop_to_isl_ast): New parameter ip.
18503         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
18504
18505 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18506
18507         * config/xtensa/predicates.md (call expander): Update for
18508         DECL_SECTION_NAME being string.
18509
18510 2014-07-11  Richard Biener  <rguenther@suse.de>
18511
18512         PR middle-end/61473
18513         * builtins.c (fold_builtin_memory_op): Inline memory moves that
18514         can be implemented with a single load followed by a single store.
18515         (c_strlen): Only warn when only_value is not 2.
18516
18517 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
18518
18519         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
18520
18521 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
18522
18523         PR target/61561
18524         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
18525         (*movhi_bytes): Likewise.
18526         (*arm_movqi_insn): Likewise.
18527
18528 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
18529
18530         PR target/56858
18531         * config/alpha/alpha.c: Include tree-pass.h, context.h
18532         and pass_manager.h.
18533         (pass_data_handle_trap_shadows): New pass.
18534         (pass_handle_trap_shadows::gate): New pass gate function.
18535         (make_pass_handle_trap_shadows): New function.
18536         (rest_of_handle_trap_shadows): Ditto.
18537
18538         (alpha_align_insns_1): Rename from alpha_align_insns.
18539         (pass_data_align_insns): New pass.
18540         (pass_align_insns::gate): New pass gate function.
18541         (make_pass_aling_insns): New function.
18542         (rest_of_align_insns): Ditto.
18543         (alpha_align_insns): Ditto.
18544
18545         (alpha_option_override): Declare handle_trap_shadows info
18546         and align_insns_info.  Register handle_trap_shadows and align_insns
18547         passes here.
18548         (alpha_reorg): Do not call alpha_trap_shadows and
18549         alpha_align_insn from here.
18550
18551         (alpha_pad_function_end): Do not skip BARRIERs.
18552
18553 2014-07-10  Rong Xu  <xur@google.com>
18554
18555         Add gcov-tool: an offline gcda profile processing tool support.
18556         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
18557         (gcov_is_error): Ditto.
18558         (gcov_read_string): Ditto.
18559         (gcov_read_sync): Ditto.
18560         * gcov-io.h: Move counter defines to gcov-counter.def.
18561         * gcov-dump.c (tag_counters): Use gcov-counter.def.
18562         * coverage.c: Ditto.
18563         * gcov-tool.c: Offline gcda profile processing tool.
18564         (unlink_gcda_file): Remove one gcda file.
18565         (unlink_profile_dir): Remove gcda files from the profile path.
18566         (gcov_output_files): Output gcda files to an output dir.
18567         (profile_merge): Merge two profiles in directory.
18568         (print_merge_usage_message): Print merge usage.
18569         (merge_usage): Print merge usage and exit.
18570         (do_merge): Driver for profile merge sub-command.
18571         (profile_rewrite): Rewrite profile.
18572         (print_rewrite_usage_message): Print rewrite usage.
18573         (rewrite_usage): Print rewrite usage and exit.
18574         (do_rewrite): Driver for profile rewrite sub-command.
18575         (print_usage): Print gcov-info usage and exit.
18576         (print_version): Print gcov-info version.
18577         (process_args): Process arguments.
18578         (main): Main routine for gcov-tool.
18579         * Makefile.in: Build and install gcov-tool.
18580         * gcov-counter.def: New file split from gcov-io.h.
18581         * doc/gcc.texi: Include gcov-tool.texi.
18582         * doc/gcov-tool.texi: Document for gcov-tool.
18583
18584 2014-07-10  Richard Biener  <rguenther@suse.de>
18585
18586         PR tree-optimization/61757
18587         * tree-ssa-dom.c (loop_depth_of_name): Restore.
18588         (propagate_rhs_into_lhs): Revert part of last change.
18589
18590 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
18591
18592         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
18593         FUNCTION_DECLs.
18594
18595 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
18596
18597         PR middle-end/53590
18598         * function.c (allocate_struct_function): Revert r188667 change.
18599
18600         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
18601
18602 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
18603
18604         * doc/install.texi: Remove links to defunct package providers for
18605         Solaris.
18606
18607 2014-07-09  Tom de Vries  <tom@codesourcery.com>
18608
18609         * final.c (get_call_fndecl): Declare.
18610         (self_recursive_call_p): New function.
18611         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
18612
18613 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18614
18615         * ipa-devirt.c (record_node): Walk through aliases.
18616
18617 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18618
18619         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
18620
18621 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18622
18623         Revert:
18624         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
18625
18626 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18627
18628         * ipa-visibility.c (function_and_variable_visibility): Remove
18629         temporary hack disabling local aliases on AIX.
18630
18631 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18632
18633         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
18634         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
18635
18636 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18637
18638         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
18639         * rs6000/rs6000.c: Inline output of .set instruction.
18640         (declare_alias_data): New struct.
18641         (rs6000_declare_alias): New function.
18642         (rs6000_xcoff_declare_function_name): Use it.
18643         (rs6000_xcoff_declare_object_name): New function.
18644         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
18645         (ASM_OUTPUT_DEF): Turn to empty definition.
18646
18647 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18648
18649         PR bootstrap/61679
18650         * hash-table.h: use hash_table::value_type instead of
18651         Descriptor::value_type in the return types of several methods.
18652
18653 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18654
18655         * tree-pass.h (pass_data): Remove has_execute member.
18656         * passes.c (execute_one_pass): Don't check pass->has_execute.
18657         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
18658         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
18659         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
18660         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
18661         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
18662         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
18663         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
18664         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
18665         gimple-low.c, gimple-ssa-isolate-paths.c,
18666         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
18667         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
18668         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
18669         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
18670         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
18671         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
18672         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
18673         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
18674         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
18675         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
18676         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
18677         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18678         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
18679         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
18680         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
18681         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
18682         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
18683         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
18684         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
18685         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
18686         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
18687         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
18688         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
18689         web.c: Remove initializer for pass_data::has_execute.
18690
18691 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
18692
18693         * graphite-htab.h: Use hash_map instead of hash_table.
18694         * graphite-clast-to-gimple.c: Adjust.
18695         * passes.c: Use hash_map instead of hash_table.
18696         * sese.c: Likewise.
18697         * sese.h: Remove now unused code.
18698
18699 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
18700
18701         PR target/61599
18702         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
18703         than zero.
18704
18705 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18706
18707         PR rtl-optimization/61673
18708         * combine.c (simplify_comparison): Test just mode's sign bit
18709         in tmode rather than the sign bit and any bits above it.
18710
18711 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
18712
18713         * graphite-isl-ast-to-gimple.c (generate_isl_context):
18714         Add __isl_give to the declaration.
18715         (generate_isl_schedule): Likewise.
18716         (scop_to_isl_ast): Likewise.
18717
18718 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18719
18720         * config/arm/arm.c (cortexa5_extra_costs): New table.
18721         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
18722
18723 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
18724
18725         PR tree-optimization/61725
18726         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
18727         range, use range_includes_zerop_p instead of integer_zerop on
18728         vr0->min, only use log2 of max if min is not negative.
18729
18730 2014-07-08  Richard Biener  <rguenther@suse.de>
18731
18732         * tree-ssa-dom.h (loop_depth_of_name): Remove.
18733         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
18734         restriction on loop depth difference.
18735         (record_equality): Likewise.
18736         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
18737         (loop_depth_of_name): Remove.
18738         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
18739         restriction on loop depth difference.
18740         (init_copy_prop): Likewise.
18741
18742 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
18743
18744         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
18745         parameter.
18746         (walk_aliased_vdefs): Likewise.
18747         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
18748         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
18749         (detect_type_change_from_memory_writes): Check if entry was reached.
18750
18751 2014-07-08  Richard Biener  <rguenther@suse.de>
18752
18753         PR tree-optimization/61681
18754         * tree-ssa-structalias.c (find_what_var_points_to): Expand
18755         NONLOCAL inside ESCAPED.
18756
18757 2014-07-08  Richard Biener  <rguenther@suse.de>
18758
18759         PR tree-optimization/61680
18760         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
18761         Handle properly all read-write dependences with group accesses.
18762
18763 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
18764
18765         PR tree-optimization/61576
18766         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
18767         block containing reduction statement is predecessor of phi basi block.
18768
18769 2014-07-08  Marek Polacek  <polacek@redhat.com>
18770
18771         PR c/60226
18772         * fold-const.c (round_up_loc): Change the parameter type.
18773         Remove assert.
18774         * fold-const.h (round_up_loc): Adjust declaration.
18775         * stor-layout.c (finalize_record_size): Check for too large types.
18776
18777 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
18778
18779         * symtab.c: Include calls.h.
18780         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
18781
18782 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
18783
18784         * config/rs6000/rs6000.c (output_vec_const_move): Handle
18785         little-endian code generation.
18786         * config/rs6000/spe.md (spe_evmergehi): Rename to...
18787         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
18788         (spe_evmergehilo): Rename to...
18789         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
18790         (spe_evmergelo): Rename to...
18791         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
18792         (spe_evmergelohi): Rename to...
18793         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
18794         (spe_evmergehi, spe_evmergehilo): New expanders.
18795         (spe_evmergelo, spe_evmergelohi): Likewise.
18796         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
18797         (*frob_tf_ti): Likewise.
18798         (*frob_<mode>_di_2): Likewise.
18799         (*frob_tf_di_8_2): Likewise.
18800         (*frob_di_<mode>): Likewise.
18801         (*frob_ti_tf): Likewise.
18802         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
18803         (*frob_ti_<mode>_8_2): Likewise.
18804         (*frob_ti_tf_2): Likewise.
18805         (mov_si<mode>_e500_subreg0): Rename to...
18806         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
18807         endianness only.
18808         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
18809         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
18810         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
18811         the big endianness only.
18812         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
18813         (*mov_si<mode>_e500_subreg0_2): Rename to...
18814         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
18815         big big endianness only.
18816         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
18817         (*mov_si<mode>_e500_subreg4): Rename to...
18818         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
18819         endianness only.
18820         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
18821         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
18822         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
18823         the big endianness only.
18824         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
18825         pattern.
18826         (*mov_si<mode>_e500_subreg4_2): Rename to...
18827         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
18828         endianness only.
18829         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
18830         (*mov_sitf_e500_subreg8): Rename to...
18831         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
18832         endianness only.
18833         (*mov_sitf_e500_subreg8_le): New instruction pattern.
18834         (*mov_sitf_e500_subreg8_2): Rename to...
18835         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
18836         endianness only.
18837         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
18838         (*mov_sitf_e500_subreg12): Rename to...
18839         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
18840         endianness only.
18841         (*mov_sitf_e500_subreg12_le): New instruction pattern.
18842         (*mov_sitf_e500_subreg12_2): Rename to...
18843         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
18844         endianness only.
18845         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
18846
18847 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18848
18849         * asan.c (instrument_strlen_call): Do not instrument first byte
18850         in strlen if already instrumented.
18851
18852 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18853
18854         * config/arm/arm.opt (mwords-little-endian): Delete.
18855         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
18856         of TARGET_LITTLE_WORDS.
18857         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
18858         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
18859         warning.
18860         * doc/invoke.texi: Remove references to -mwords-little-endian.
18861
18862 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
18863
18864         * expmed.c (struct init_expmed_rtl): Change all fields but
18865         pow2 and cint from struct rtx_def to rtx.
18866         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
18867         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
18868         at the end again.
18869
18870 2014-07-06  Marek Polacek  <polacek@redhat.com>
18871
18872         PR c/6940
18873         * doc/invoke.texi: Document -Wsizeof-array-argument.
18874
18875 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
18876
18877         * wide-int.h (wide_int_storage): Change declaration from struct
18878         to class.
18879
18880 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
18881
18882         * cgraph.c (cgraph_create_indirect_edge): Update call of
18883         get_polymorphic_call_info.
18884         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
18885         (possible_polymorphic_call_targets): Add parameter call.
18886         (decl_maybe_in_construction_p): New predicate.
18887         (get_polymorphic_call_info): Add parameter call;
18888         use decl_maybe_in_construction_p.
18889         * gimple-fold.c (fold_gimple_assign): Update use of
18890         possible_polymorphic_call_targets.
18891         (gimple_fold_call): Likewise.
18892         * ipa-prop.c: Inlcude calls.h
18893         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
18894         (param_type_may_change_p): New predicate.
18895         (detect_type_change_from_memory_writes): Break out from ...
18896         (detect_type_change): ... this one; use param_type_may_change_p.
18897         (detect_type_change_ssa): Use param_type_may_change_p.
18898         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
18899
18900 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
18901
18902         PR target/49423
18903         * config/arm/arm-protos.h (arm_legitimate_address_p,
18904         arm_is_constant_pool_ref): Add prototypes.
18905         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
18906         (arm_is_constant_pool_ref) New function.
18907         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
18908         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
18909         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
18910         operand. Remove pool_range and neg_pool_range attributes.
18911         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
18912         pool_range and neg_pool_range attributes.
18913         * config/arm/constraints.md (Uh): New constraint.
18914         (Uq): Don't allow constant pool references.
18915
18916 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
18917
18918         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
18919         (move_lo_quad_internal_be_<mode>): Likewise.
18920         (move_lo_quad_<mode>): Convert to define_expand.
18921         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
18922         (aarch64_simd_move_hi_quad_be_<mode>): New.
18923         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
18924         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
18925         (aarch64_combinez_be<mode>): New.
18926         (aarch64_combine<mode>): Convert to define_expand.
18927         (aarch64_combine_internal<mode>): New.
18928         (aarch64_simd_combine<mode>): Remove bogus RTL description.
18929
18930 2014-07-04  Tom de Vries  <tom@codesourcery.com>
18931
18932         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
18933         combination of earlyclobber and read/write modifiers.
18934
18935 2014-07-04  Tom de Vries  <tom@codesourcery.com>
18936
18937         * config/aarch64/aarch64-simd.md
18938         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
18939
18940 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
18941
18942         PR target/61714
18943         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
18944
18945 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
18946
18947         PR middle-end/61654
18948         * cgraphunit.c (expand_thunk): Call free_dominance_info.
18949
18950         PR tree-optimization/61684
18951         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
18952         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
18953
18954 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18955             Kito Cheng  <kito@0xlab.org>
18956             Monk Chiang  <sh.chiang04@gmail.com>
18957
18958         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
18959         (nds32_symbol_load_store_p): Move to ...
18960         (nds32_fp_as_gp_check_available): Move to ...
18961         * config/nds32/nds32-fp-as-gp.c: ... here.
18962         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
18963         extern declaration.
18964
18965 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18966             Kito Cheng  <kito@0xlab.org>
18967             Monk Chiang  <sh.chiang04@gmail.com>
18968
18969         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
18970         (nds32_expand_store_multiple): Move to ...
18971         (nds32_expand_movmemqi): Move to ...
18972         * config/nds32/nds32-memory-manipulation.c: ... here.
18973
18974 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18975             Kito Cheng  <kito@0xlab.org>
18976             Monk Chiang  <sh.chiang04@gmail.com>
18977
18978         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
18979         (nds32_output_casesi_pc_relative): Move to ...
18980         (nds32_output_casesi): Move to ...
18981         (nds32_mem_format): Move to ...
18982         (nds32_output_16bit_store): Move to ...
18983         (nds32_output_16bit_load): Move to ...
18984         (nds32_output_32bit_store): Move to ...
18985         (nds32_output_32bit_load): Move to ...
18986         (nds32_output_32bit_load_s): Move to ...
18987         (nds32_output_stack_push): Move to ...
18988         (nds32_output_stack_pop): Move to ...
18989         * config/nds32/nds32-md-auxiliary.c: ... here.
18990
18991 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18992             Ling-Hua Tseng  <uranus@tinlans.org>
18993
18994         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
18995         the purpose of this file.
18996
18997 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
18998             Kito Cheng  <kito@0xlab.org>
18999             Monk Chiang  <sh.chiang04@gmail.com>
19000
19001         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19002         (nds32_address_cost): Move implementation to ...
19003         * config/nds32/nds32-cost.c: ... here.
19004         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19005         (nds32_address_cost_impl): Declare.
19006
19007 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19008             Kito Cheng  <kito@0xlab.org>
19009             Monk Chiang  <sh.chiang04@gmail.com>
19010
19011         * config/nds32/nds32.c
19012         (nds32_consecutive_registers_load_store_p): Move to ...
19013         (nds32_valid_multiple_load_store): Move to ...
19014         (nds32_valid_stack_push_pop): Move to ...
19015         (nds32_can_use_bclr_p): Move to ...
19016         (nds32_can_use_bset_p): Move to ...
19017         (nds32_can_use_btgl_p): Move to ...
19018         (nds32_can_use_bitci_p): Move to ...
19019         * config/nds32/nds32-predicates.c: ... here.
19020
19021 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19022             Kito Cheng  <kito@0xlab.org>
19023             Monk Chiang  <sh.chiang04@gmail.com>
19024
19025         * config/nds32/nds32.c
19026         (nds32_expand_builtin_null_ftype_reg): Move to ...
19027         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19028         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19029         (nds32_init_builtins): Move implementation to ...
19030         (nds32_expand_builtin): Move implementation to ...
19031         * config/nds32/nds32-intrinsic.c: ... here.
19032         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19033         (nds32_expand_builtin_impl): Declare.
19034
19035 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19036             Kito Cheng  <kito@0xlab.org>
19037             Monk Chiang  <sh.chiang04@gmail.com>
19038
19039         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19040         (nds32_emit_section_tail_template): Move to ...
19041         (nds32_emit_isr_jmptbl_section): Move to ...
19042         (nds32_emit_isr_vector_section): Move to ...
19043         (nds32_emit_isr_reset_conten): Move to ...
19044         (nds32_check_isr_attrs_conflict): Move to ...
19045         (nds32_construct_isr_vectors_information): Move to ...
19046         (nds32_asm_file_start): Move implementation to ...
19047         (nds32_asm_file_end): Move implementation to ...
19048         * config/nds32/nds32-isr.c: ... here.
19049         * config/nds32/nds32-protos.h
19050         (nds32_check_isr_attrs_conflict): Declare.
19051         (nds32_construct_isr_vectors_information): Declare.
19052         (nds32_asm_file_start_for_isr): Declare.
19053         (nds32_asm_file_end_for_isr): Declare.
19054
19055 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19056             Kito Cheng  <kito@0xlab.org>
19057             Monk Chiang  <sh.chiang04@gmail.com>
19058
19059         * config.gcc (nds32*): Add new modules to extra_objs.
19060         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19061         (nds32be-*-*): Likewise.
19062         * config/nds32/nds32-cost.c: New file.
19063         * config/nds32/nds32-fp-as-gp.c: New file.
19064         * config/nds32/nds32-intrinsic.c: New file.
19065         * config/nds32/nds32-isr.c: New file.
19066         * config/nds32/nds32-md-auxiliary.c: New file.
19067         * config/nds32/nds32-memory-manipulation.c: New file.
19068         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19069         * config/nds32/nds32-predicates.c: New file.
19070         * config/nds32/t-nds32: New file.
19071
19072 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19073
19074         PR tree-optimization/61682
19075         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19076         using cases and when one of the operands is equal to 1.
19077
19078 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19079
19080         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19081         ashr<mode>3): Correct mode of operands[2].
19082         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19083         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19084         Correct mode of operands[2].  Fix split condition.
19085
19086 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19087
19088         * arm.md (arch): Add armv6_or_vfpv3.
19089         (arch_enabled): Add test for the above.
19090         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19091         on VFP9.
19092         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19093
19094 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19095
19096         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19097         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19098         HWI 1 and negate the unsigned value.
19099         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19100         use AND instead of shift.
19101         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19102
19103 2014-07-03  Marek Polacek  <polacek@redhat.com>
19104
19105         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19106         (-fsanitize=float-divide-by-zero): Move to the table with
19107         -fsanitize=undefined suboptions.
19108         (-fsanitize=float-cast-overflow): Likewise.
19109
19110 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19111
19112         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19113         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19114         endianness.
19115
19116 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19117
19118         * loop-invariant.c (struct invariant): Add a new member: eqno;
19119         (find_identical_invariants): Update eqno;
19120         (create_new_invariant): Init eqno;
19121         (get_inv_cost): Compute comp_cost with eqno;
19122
19123 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19124
19125         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19126         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19127         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19128         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19129         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19130
19131 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19132
19133         PR target/29349
19134         PR target/53513
19135         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19136         (make_preds_opaque): Delete.
19137         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19138         (commit_mode_sets): New function.
19139         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19140         Process all modes at once.
19141         * basic-block.h (pre_edge_lcm_avs): Declare.
19142         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19143         Call clear_aux_for_edges. Fix comments.
19144         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19145         (pre_edge_rev_lcm): Idem.
19146         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19147         parameter.
19148         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19149         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19150         Idem.
19151         * config/i386/i386.c (x96_emit_mode_set): Idem.
19152         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19153         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19154         (fpscr_toggle) Disallow from delay slot.
19155         * target.def (emit_mode_set): Add prev_mode parameter.
19156         * doc/tm.texi: Regenerate.
19157
19158 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19159
19160         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19161         variable i.
19162
19163 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19164
19165         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19166         vtable_pointer_value_to_vtable): Constify.
19167         (contains_polymorphic_type_p): Declare.
19168         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19169         vtable_pointer_value_to_vtable): Constify.
19170         (contains_polymorphic_type_p): New predicate.
19171         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19172         polymorphic types.
19173         (ipa_set_ancestor_jf): Likewise.
19174         (detect_type_change): Return false in easy cases.
19175         (compute_complex_assign_jump_func): Require type to contain
19176         polymorphic type.
19177         (compute_known_type_jump_func): Likewise.
19178
19179 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19180
19181         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19182         Remove.
19183         (type_in_anonymous_namespace_p): Constify argument.
19184         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19185         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19186         (main_odr_variant): New function.
19187         (hash_type_name): Make static; update assert; do not ICE on
19188         non-records.
19189         (types_same_for_odr): Bring here from tree.c; simplify and remove
19190         old structural comparing code that doesn't work for templates.
19191         (odr_hasher::equal): Update assert.
19192         (add_type_duplicate): Return true when bases should be computed;
19193         replace incomplete loader by complete; do not output duplicated
19194         warnings; do not ICE on non-records; set odr_violated flag.
19195         (get_odr_type): Be ready to replace incomplete type by complete
19196         one; work on ODR variants instead of main variants; reorder item
19197         in array so bases have still smaller indexes.
19198         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19199         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19200
19201 2014-07-01  Cary Coutant  <ccoutant@google.com>
19202
19203         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19204         lookup.
19205         (resolve_addr_in_expr): When replacing the rtx in a location list
19206         entry, get a new address table entry.
19207         (dwarf2out_finish): Call index_location_lists even if there are no
19208         addr_index_table entries yet.
19209
19210 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19211
19212         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19213         change for not being obvious.
19214
19215 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19216
19217         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19218         unused argument.
19219
19220 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19221
19222         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19223         (vcagt_f64): Likewise.
19224         (vcale_f64): Likewise.
19225         (vcaled_f64): Likewise.
19226         (vcales_f32): Likewise.
19227         (vcalt_f64): Likewise.
19228         (vcaltd_f64): Likewise.
19229         (vcalts_f32): Likewise.
19230
19231 2014-07-01  Marek Polacek  <polacek@redhat.com>
19232
19233         * doc/invoke.texi: Document -Wint-conversion.
19234
19235 2014-07-01  Marek Polacek  <polacek@redhat.com>
19236
19237         PR c/58286
19238         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19239
19240 2014-07-01  Martin Liska  <mliska@suse.cz>
19241
19242         IPA REF alias refactoring
19243         * cgraph.h (iterate_direct_aliases): New function.
19244         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19245         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19246         FOR_EACH_ALIAS added.
19247         (cgraph_for_node_and_aliases): Likewise.
19248         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19249         * ipa-inline.c (reset_edge_caches): Likewise.
19250         (update_caller_keys): Likewise.
19251         * trans-mem.c (ipa_tm_execute): Likewise.
19252         *varpool.c (varpool_analyze_node): Likewise.
19253         (varpool_for_node_and_aliases): Likewise.
19254         * ipa-ref.h (first_alias): New function.
19255         (last_alias): Likewise.
19256         (has_aliases_p): Likewise.
19257         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19258         is sensitive to IPA_REF_ALIASes.
19259         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19260         are put at the beginning of the list.
19261         (symtab_node::iterate_direct_aliases): New function.
19262
19263 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19264
19265         Revert:
19266         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19267         type is complete.
19268         (write_ts_type_common_tree_pointers): Do not stream fields not set
19269         for incomplete types; do not stream duplicated fields for variants;
19270         sanity check that variant and type match.
19271         (write_ts_type_non_common_tree_pointers): Likewise.
19272         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19273         TYPE_SIZE whether type is complete.
19274         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19275         write_ts_type_common_tree_pointers
19276         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19277
19278 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19279
19280         * var-tracking.c (add_stores): Return instead of asserting if old
19281         and new values for conditional store are the same.
19282
19283 2014-06-30  Richard Henderson  <rth@redhat.com>
19284
19285         PR rtl-opt/61608
19286         PR target/39284
19287         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19288         the cfg if there were any changes.
19289         * passes.def: Revert move of peephole2 after reorder_blocks;
19290         move duplicate_computed_gotos before peephole2.
19291
19292 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19293
19294         * except.c (emit_note_eh_region_end): New helper function.
19295         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19296         emit EH_REGION_END note.
19297         * jump.c (cleanup_barriers): Do not split a call and its
19298         corresponding CALL_ARG_LOCATION note.
19299
19300 2014-06-30  Jeff Law  <law@redhat.com>
19301
19302         PR tree-optimization/61607
19303         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19304         deeper into the SSA_NAME_VALUE chain.
19305
19306 2014-06-30  Marek Polacek  <polacek@redhat.com>
19307
19308         * convert.c (convert_to_integer): Don't instrument conversions if the
19309         function has no_sanitize_undefined attribute.
19310         * ubsan.c: Don't run the ubsan pass if the function has
19311         no_sanitize_undefined attribute.
19312
19313 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19314
19315         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19316         -fsanitize=undefined suboptions.
19317
19318 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19319
19320         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19321         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19322         against bigendian and adjust indices.
19323
19324 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19325
19326         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19327
19328 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19329
19330         PR target/61633
19331         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19332         Add alternative; make early clobber.  Adjust both split patterns
19333         to use operand 0 as the working register.
19334
19335 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19336
19337         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19338         as ira_object_id_map might be NULL, or 1.
19339
19340 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19341
19342         * loop-invariant.c (get_inv_cost): Handle register class.
19343         (gain_for_invariant): Check the register pressure of the inv
19344         and its overlapped register class, other than all.
19345
19346 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19347
19348         * doc/invoke.texi (Optimize Options): Fix descriptions of
19349         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19350
19351 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
19352
19353         * doc/extend.texi (Function Attributes): Update 'naked' attribute
19354         documentation.
19355
19356 2014-06-29  Tobias Grosser <tobias@grosser.es>
19357
19358         PR bootstrap/61650
19359         * graphite-isl-ast-to-gimple.c: Add missing guards.
19360
19361 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19362
19363         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19364         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19365         * flag-types.h: Add new enum fgraphite_generator.
19366         * graphite-isl-ast-to-gimple.c: New.
19367         * graphite-isl-ast-to-gimple.h: New.
19368         * graphite.c (graphite_transform_loops): Add choice of Graphite
19369         code generator, which depends on flag_graphite_code_gen.
19370
19371 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19372
19373         * graphite-dependences.c (subtract_commutative_associative_deps):
19374         Add NULL checking of the following variables: must_raw_no_source,
19375         may_raw_no_source, must_war_no_source, may_war_no_source,
19376         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19377         must_war, may_war, must_waw, may_waw.
19378
19379 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19380
19381         * graphite-clast-to-gimple.c: gloog is renamed to
19382         graphite_regenerate_ast_cloog.  gloog_error is renamed to
19383         graphite_regenerate_error.
19384         * graphite-clast-to-gimple.h: The definition of the struct
19385         bb_pbb_def is moved to graphite-htab.h.
19386         Add inclusion of the hash-table.h.
19387         * graphite-htab.h: The declaration of the function gloog is moved
19388         to graphite-clast-to-gimple.h and renamed to
19389         graphite_regenerate_ast_cloog.
19390         * graphite.c (graphite_transform_loops): gloog is renamed
19391         to graphite_regenerate_ast_cloog.
19392
19393 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19394
19395         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19396         type is complete.
19397         (write_ts_type_common_tree_pointers): Do not stream fields not set
19398         for incomplete types; do not stream duplicated fields for variants;
19399         sanity check that variant and type match.
19400         (write_ts_type_non_common_tree_pointers): Likewise.
19401         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19402         TYPE_SIZE whether type is complete.
19403         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19404         write_ts_type_common_tree_pointers
19405         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19406
19407 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19408
19409         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
19410
19411 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19412
19413         * tree-inline.c (remap_type_1): Do not duplicate fields
19414         that are shared in between type and its main variant.
19415
19416 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19417
19418         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
19419         of the type.
19420         (ipa_set_ancestor_jf) Likewise.
19421         (check_stmt_for_type_change): Check that we work on main variant.
19422         (detect_type_change): Look into main variant.
19423         (compute_known_type_jump_func): Check that main variant has BINFO.
19424
19425 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19426
19427         * ipa-devirt.c (set_type_binfo): New function.
19428         (add_type_duplicate): Use it.
19429         (get_odr_type): Sanity check that binfos points to main variants.
19430         (get_class_context): Be sure the context's outer_type is main variant.
19431         (contains_type_p): Walk main variant.
19432         (get_polymorphic_call_info_for_decl): Set outer_type to be
19433         main variant.
19434         (get_polymorphic_call_info): Likewise.
19435         (possible_polymorphic_call_targets): Sanity check that we operate
19436         on main variant.
19437
19438 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19439
19440         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19441
19442 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19443
19444         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
19445         accidental change due to wide-int branch merge.
19446
19447 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19448
19449         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
19450         compressed debug support.
19451         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
19452         * configure: Regenerate.
19453         * config.in: Regenerate.
19454         * common.opt (compressed_debug_sections): New enum.
19455         (gz, gz=): New options.
19456         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
19457         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
19458         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
19459         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
19460         LINK_COMPRESS_DEBUG_SPEC.
19461         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
19462         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
19463         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
19464         (Debugging Options): Document -gz[=type].
19465
19466 2014-06-27  Martin Jambor  <mjambor@suse.cz>
19467
19468         PR ipa/61160
19469         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
19470         args_to_skip, use those from node instead.  Copy args_to_skip and
19471         combined_args_to_skip from node to the new thunk.
19472         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
19473         (cgraph_create_virtual_clone): Moved computation of
19474         combined_args_to_skip...
19475         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
19476
19477 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
19478
19479         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
19480         redundant diagnostic machinary.
19481
19482 2014-06-27  Richard Biener  <rguenther@suse.de>
19483
19484         * tree-ssa-math-opts.c (bswap_replace): Fix
19485         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
19486
19487 2014-06-27  Martin Liska  <mliska@suse.cz>
19488
19489         * gimple.h (gimple_location_safe): New function introduced.
19490         * cgraphunit.c (walk_polymorphic_call_targets): Usage
19491         of gimple_location_safe replaces gimple_location.
19492         (gimple_fold_call): Likewise.
19493         * ipa-devirt.c (ipa_devirt): Likewise.
19494         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
19495         * ipa.c (walk_polymorphic_call_targets): Likewise.
19496         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
19497
19498 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
19499
19500         PR tree-optimization/57233
19501         PR tree-optimization/61299
19502         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
19503         functions.
19504         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
19505         would be lowered to scalar shifts, check if corresponding
19506         shifts and vector BIT_IOR_EXPR are supported and don't lower
19507         or lower just to narrower vector type in that case.
19508         * expmed.c (expand_shift_1): Fix up handling of vector
19509         shifts and rotates.
19510
19511 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
19512
19513         PR target/61586
19514         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
19515
19516 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
19517
19518         * doc/invoke.texi (-fsemantic-interposition): Document.
19519         * common.opt (fsemantic-interposition): New flag.
19520         * varasm.c (decl_replaceable_p): Use it.
19521
19522 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19523
19524         PR target/61542
19525         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
19526         extraction other than index 3.
19527
19528 2014-06-26  Teresa Johnson  <tejohnson@google.com>
19529
19530         * doc/invoke.texi: Fix typo.
19531         * dumpfile.c: Add support for documented -fdump-* options
19532         optimized/missed/note/optall.
19533
19534 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19535
19536         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
19537         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
19538         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
19539         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
19540         * opts.c (default_options_optimization): Set
19541         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
19542         * doc/invoke.texi (allow-load-data-races)
19543         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
19544         (allow-store-data-races): Document the new default.
19545
19546 2014-06-26  Martin Jambor  <mjambor@suse.cz>
19547
19548         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
19549         renamed to ipa_impossible_devirt_target.  Fix typo.
19550         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
19551         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
19552         ipa_impossible_devirt_target.
19553
19554 2014-06-26  Richard Biener  <rguenther@suse.de>
19555
19556         PR tree-optimization/61607
19557         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
19558         explaining why we restrict copies on loop depth.
19559         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19560         on loop depth.
19561         (record_equivalences_from_phis): Instead add it here.
19562
19563 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
19564
19565         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
19566         (LTO_WRAPPER_OBJS): New variable.
19567         (lto-wrapper$(exeext)): Use it.
19568         * collect2.c: Include "collect-utils.h".
19569         (verbose, debug): Remove variables.
19570         (at_file_supplied): No longer static.
19571         (tool_name): New variable.
19572         (do_wait, fork_execute, maybe_unlink): Don't declare.
19573         (tool_cleanup): No longer static.
19574         (notice): Remove function.
19575         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
19576         fork_execute calls.
19577         (collect_wait, do_wait, collect_execute): Remove functions.
19578         (maybe_unlink): No longer static.
19579         * collect2.h (verbose, debug): Don't declare.
19580         (at_file_supplied): Declare.
19581         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
19582         changed.
19583         (collect_execute): Replace with implementation from collect2, plus a
19584         new arg use_atfile.  All callers changed.
19585         (collect_wait): Replace with implementation from collect2.
19586         (maybe_unlink_file): Remove function.
19587         (fork_execute): Replace with implementation from collect2, plus a
19588         new arg use_atfile.  All callers changed.
19589         (do_wait): Add call to utils_cleanup to the error path.
19590         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
19591         (tool_cleanup): Adjust declarations.
19592         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
19593         * tlink.c: Include "collect-utils.h".
19594         (tlink_execute): New arg use_atfile.  All callers changed.
19595         (tlink_init, tlink_execute): Remove declarations.
19596
19597         * collect-utils.c (save_temps): New variable.
19598         (do_wait): Use it instead of debug.  Use fatal_error.
19599         * collect-utils.h (save_temps): Declare.
19600         * collect2.c (verbose): Rename from vflag.  All uses changed.
19601         (tool_cleanup): New function, copied from collect_atexit.
19602         (collect_atexit, handler): Just call it.
19603         * collect2.h (verbose): Declaration renamed from vflag.
19604         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
19605         debug.
19606
19607         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
19608         (lto-wrapper$(exeext)): Link with collect-utils.o.
19609         * collect-utils.c: New file.
19610         * collect-utils.h: New file.
19611         * lto-wrapper.c: Include "collect-utils.h".
19612         (args_name): Delete variable.
19613         (tool_name): New variable.
19614         (tool_cleanup): New function.
19615         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
19616         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
19617         (fork_execute): Remove functions.
19618
19619 2014-06-26  Nick Clifton  <nickc@redhat.com>
19620
19621         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
19622
19623         * doc/extend.texi (Function Attributes): Fix typo in description
19624         of RX vector attribute.
19625
19626 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
19627
19628         * config.gcc (supported_defaults): Error when passing either
19629         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
19630
19631 2014-06-26  Richard Biener  <rguenther@suse.de>
19632
19633         * tree-ssa-dom.c (cprop_operand): Remove restriction on
19634         propagating volatile pointers.
19635
19636 2014-06-26  Richard Biener  <rguenther@suse.de>
19637
19638         PR tree-optimization/61607
19639         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
19640         loop if we redirected its latch edge.
19641         (thread_block_1): Do not cancel loops prematurely.
19642
19643 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
19644
19645         * toplev.c (backend_init_target): Move init_emit_regs and
19646         init_regs to...
19647         (backend_init) ... here; skip ira_init_once and backend_init_target.
19648         (target_reinit) ... and here; clear
19649         this_target_rtl->lang_dependent_initialized.
19650         (lang_dependent_init_target): Clear
19651         this_target_rtl->lang_dependent_initialized;
19652         break out rtl initialization to ...
19653         (initialize_rtl): ... here; call also backend_init_target
19654         and ira_init_once.
19655         * toplev.h (initialize_rtl): New function.
19656         * function.c: Include toplev.h
19657         (init_function_start): Call initialize_rtl.
19658         * rtl.h (target_rtl): Add target_specific_initialized,
19659         lang_dependent_initialized.
19660
19661 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
19662             Jakub Jelinek  <jakub@redhat.com>
19663
19664         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
19665
19666 2014-06-25  Tom de Vries  <tom@codesourcery.com>
19667
19668         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
19669
19670 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19671
19672         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
19673         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
19674         Issue a strict overflow warning if appropriate.
19675
19676 2014-06-25  Martin Liska  <mliska@suse.cz>
19677
19678         IPA REF refactoring
19679         * Makefile.in: Removed header file (ipa-ref-inline.h).
19680         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
19681         called.
19682         (cgraph_speculative_call_info): Likewise.
19683         (cgraph_for_node_thunks_and_aliases): Likewise.
19684         (cgraph_for_node_and_aliases): Likewise.
19685         (verify_cgraph_node): Likewise.
19686         * cgraph.h: Batch of IPA REF functions become member functions of
19687         symtab_node: add_reference, maybe_add_reference, clone_references,
19688         clone_referring, clone_reference, find_reference,
19689         remove_stmt_references, remove_all_references,
19690         remove_all_referring, dump_references, dump_referring,
19691         has_alias_p, iterate_reference, iterate_referring.
19692         * cgraphbuild.c (record_reference): New IPA REF function used.
19693         (record_type_list): Likewise.
19694         (record_eh_tables): Likewise.
19695         (mark_address): Likewise.
19696         (mark_load): Likewise.
19697         (mark_store): Likewise.
19698         (pass_build_cgraph_edges): Likewise.
19699         (rebuild_cgraph_edge): Likewise.
19700         (cgraph_rebuild_references): Likewise.
19701         (pass_remove_cgraph_callee_edges): Likewise.
19702         * cgraphclones.c (cgraph_clone_node): Likewise.
19703         (cgraph_create_virtual_clone): Likewise.
19704         (cgraph_materialize_clone): Likewise.
19705         (cgraph_materialize_all_clones): Likewise.
19706         * cgraphunit.c (cgraph_reset_node): Likewise.
19707         (cgraph_reset_node): Likewise.
19708         (analyze_function): Likewise.
19709         (assemble_thunks_and_aliases): Likewise.
19710         (expand_function): Likewise.
19711         * ipa-comdats.c (propagate_comdat_group): Likewise.
19712         (enqueue_references): Likewise.
19713         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
19714         (create_specialized_node): Likewise.
19715         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
19716         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
19717         * ipa-inline.c (reset_edge_caches): Likewise.
19718         (update_caller_keys): Likewise.
19719         (execute): Likewise.
19720         * ipa-prop.c (remove_described_reference): Likewise.
19721         (propagate_controlled_uses): Likewise.
19722         (ipa_edge_duplication_hook): Likewise.
19723         (ipa_modify_call_arguments): Likewise.
19724         * ipa-pure-const.c (propagate_pure_const): Likewise.
19725         * ipa-ref-inline.h: Header file removed, functions moved
19726         to symtab_node class.
19727         * ipa-ref.c (remove_reference): New class member function.
19728         (cannot_lead_to_return): New class member function.
19729         (referring_ref_list): Likewise.
19730         (referred_ref_list): Likewise.
19731         Rest of functions moved to symtab_node class.
19732         * ipa-ref.h: New member functions remove_reference,
19733         cannot_lead_to_return, referring_ref_list, referred_ref_list added
19734         to ipa_ref class.
19735         ipa_ref_list class has new member functions: first_reference,
19736         first_referring, clear, nreferences.
19737         * ipa-reference.c (analyze_function): New IPA REF function used.
19738         (write_node_summary_p): Likewise.
19739         (ipa_reference_write_optimization_summary): Likewise.
19740         * ipa-split.c (split_function): Likewise.
19741         * ipa-utils.c (ipa_reverse_postorder): Likewise.
19742         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
19743         (function_and_variable_visibility): Likewise.
19744         * ipa.c (has_addr_references_p): Likewise.
19745         (process_references): Argument type changed.
19746         (symtab_remove_unreachable_nodes): New IPA REF function used.
19747         (process_references): Likewise.
19748         (set_writeonly_bit): Likewise.
19749         * lto-cgraph.c: Implementation of new symtab_node member functions
19750         that uses new IPA REF functions.
19751         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
19752         function used.
19753         * lto-streamer-out.c (output_symbol_p): Likewise.
19754         * lto-streamer.h (referenced_from_this_partition_p): Argument type
19755         changed.
19756         * symtab.c: Implementation of new IPA REF API.
19757         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
19758         (ipa_tm_create_version): Likewise.
19759         (ipa_tm_execute): Likewise.
19760         * tree-emutls.c (gen_emutls_addr): Likewise.
19761         * tree-inline.c (copy_bb): Likewise.
19762         (delete_unreachable_blocks_update_callgraph): Likewise.
19763         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
19764         (varpool_for_node_and_aliases): Likewise.
19765
19766 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19767
19768         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
19769
19770 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
19771
19772         PR bootstrap/61598
19773         * fold-const.c (fold_checksum_tree): Use a hash_table of const
19774         tree_node * instead of tree_node *.
19775         (fold): Adjust.
19776         (print_fold_checksum): Likewise.
19777         (fold_check_failed): Likewise.
19778         (debug_fold_checksum): Likewise.
19779         (fold_build1_stat_loc): Likewise.
19780         (fold_build2_stat_loc): Likewise.
19781         (fold_build3_stat_loc): Likewise.
19782         (fold_build_call_array_loc): Likewise.
19783
19784 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
19785
19786         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
19787         implementation with call to...
19788         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
19789         function.
19790         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
19791         Declare.
19792
19793 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
19794
19795         PR tree-optimization/57742
19796         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
19797         after replacing the statement.
19798
19799 2014-06-25  Nick Clifton  <nickc@redhat.com>
19800
19801         * config/v850/v850.c (GHS_default_section_names): Change to const
19802         char * type.
19803         (GHS_current_section_names): Likewise.
19804         (v850_insert_attributes): Do not build strings, just assign the
19805         names directly.  Change the type of 'chosen_section' to const
19806         char*.
19807         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
19808         directly to the array entry.
19809         * config/v850/v850.h (GHS_default_section_names): Change to const
19810         char * type.
19811         (GHS_current_section_names): Likewise.
19812
19813 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
19814
19815         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
19816         (LANG_HOOKS_DECLS): Add it.
19817         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
19818         has correct type.
19819         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
19820         * langhooks.h (struct lang_hooks_for_decls): Add
19821         omp_clause_linear_ctor hook.
19822         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
19823         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
19824         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
19825         combined simd loop use omp_clause_linear_ctor hook.
19826
19827 2014-06-24  Cong Hou  <congh@google.com>
19828
19829         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
19830         pattern recognition.
19831         (type_conversion_p): PROMOTION is true if it's a type promotion
19832         conversion, and false otherwise.  Return true if the given expression
19833         is a type conversion one.
19834         * tree-vectorizer.h: Adjust the number of patterns.
19835         * tree.def: Add SAD_EXPR.
19836         * optabs.def: Add sad_optab.
19837         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
19838         * expr.c (expand_expr_real_2): Likewise.
19839         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
19840         * gimple.c (get_gimple_rhs_num_ops): Likewise.
19841         * optabs.c (optab_for_tree_code): Likewise.
19842         * tree-cfg.c (estimate_operator_cost): Likewise.
19843         * tree-ssa-operands.c (get_expr_operands): Likewise.
19844         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
19845         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
19846         * doc/generic.texi: Add document for SAD_EXPR.
19847         * doc/md.texi: Add document for ssad and usad.
19848
19849 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19850
19851         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
19852         qualification in cast.
19853
19854 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
19855
19856         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
19857         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
19858         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
19859         (tree_function_decl): ... here.
19860         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
19861         streaming of vindex to ...
19862         (write_ts_function_decl_tree_pointers): ... here.
19863         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
19864         Do not stream DECL_VINDEX.
19865         (lto_input_ts_function_decl_tree_pointers): Stream it here.
19866
19867 2014-06-24  Catherine Moore  <clm@codesourcery.com>
19868             Sandra Loosemore  <sandra@codesourcery.com>
19869
19870         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
19871         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
19872         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
19873
19874 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19875
19876         * doc/invoke.texi (Warning Options): Remove duplicated
19877         -Wmaybe-uninitialized.
19878
19879 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
19880
19881         PR tree-optimization/57742
19882         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
19883         (handle_builtin_malloc, handle_builtin_memset): New functions.
19884         (strlen_optimize_stmt): Call them.
19885         * passes.def: Move strlen after loop+dom but before vrp.
19886
19887 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
19888
19889         PR target/61570
19890         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
19891         model family 6 CPU with has_longmode never use a CPU without
19892         64-bit support.
19893
19894 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
19895
19896         PR target/61570
19897         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
19898         the last change.
19899
19900 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19901
19902         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
19903         * dominance.c (iterate_fix_dominators): Use hash_map instead of
19904         pointer_map.
19905         * hash-map.h: New file.
19906         * ipa-comdats.c: Use hash_map instead of pointer_map.
19907         * ipa.c: Likewise.
19908         * lto-section-out.c: Adjust.
19909         * lto-streamer.h: Replace pointer_map with hash_map.
19910         * symtab.c (verify_symtab): Likewise.
19911         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
19912         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
19913         * tree-streamer.h: Likewise.
19914         * tree-streamer.c: Adjust.
19915         * pointer-set.h: Remove pointer_map.
19916
19917 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19918
19919         * hash-table.h: Add a template arg to choose between storing values
19920         and storing pointers to values, and then provide partial
19921         specializations for both.
19922         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
19923         should store, not the type values should point to.
19924         * tree-into-ssa.c (var_info_hasher): Likewise.
19925         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
19926         * tree-complex.c: Adjust.
19927         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
19928         table instead of int_tree_map *.
19929         * tree-parloops.c: Adjust.
19930         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
19931         type is being stored.
19932         * tree-vectorizer.c: Adjust.
19933
19934 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
19935
19936         * hash-table.h: Remove a layer of indirection from hash_table so that
19937         it contains the hash table's data instead of a pointer to the data.
19938         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
19939         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
19940         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
19941         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
19942         fold-const.c, gcse.c, ggc-common.c,
19943         gimple-ssa-strength-reduction.c, gimplify.c,
19944         graphite-clast-to-gimple.c, graphite-dependences.c,
19945         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
19946         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
19947         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
19948         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
19949         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
19950         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
19951         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
19952         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
19953         tree-ssa-live.c, tree-ssa-loop-im.c,
19954         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
19955         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
19956         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
19957         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
19958         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
19959         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
19960         vtable-verify.c, vtable-verify.h: Adjust.
19961
19962 2014-06-24  Richard Biener  <rguenther@suse.de>
19963
19964         PR tree-optimization/61572
19965         * tree-ssa-sink.c (statement_sink_location): Do not sink
19966         loads from hard registers.
19967
19968 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
19969
19970         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
19971         not mentioned in clauses use private clause if the iterator is
19972         declared in #pragma omp for simd, and when adding lastprivate
19973         instead, add it to the outer #pragma omp for too.  Diagnose
19974         if the variable is private in outer context.  For simd collapse > 1
19975         loops, replace all iterators with temporaries.
19976         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
19977         same even in collapse > 1 loops.
19978
19979         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
19980         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
19981         non-NULL.
19982         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
19983         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
19984         non-NULL.
19985         (gimplify_adjust_omp_clauses): Likewise.
19986         * omp-low.c (lower_rec_simd_input_clauses,
19987         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
19988         safelen the same as safelen(1).
19989         * tree-nested.c (convert_nonlocal_omp_clauses,
19990         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
19991         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
19992         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
19993         Fixup handling of GIMPLE_OMP_TARGET.
19994         (convert_tramp_reference_stmt, convert_gimple_call): Handle
19995         GIMPLE_OMP_TARGET.
19996
19997 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
19998
19999         PR tree-optimization/61554
20000         * tree-ssa-propagate.c: Include "bitmap.h".
20001         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20002         properly update constructor/destructor.
20003         (substitute_and_fold_dom_walker::before_dom_children):
20004         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20005         need_eh_cleaup instead.
20006         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20007         need_eh_cleanup.
20008
20009 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20010
20011         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20012         * tree-pass.h (make_pass_ipa_single_use): New pass.
20013         * cgraph.h (used_by_single_function): New flag.
20014         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20015         Stream it.
20016         * passes.def (pass_ipa_single_use): Scedule.
20017         * ipa.c (BOTTOM): New macro.
20018         (meet): New function
20019         (propagate_single_user): New function.
20020         (ipa_single_use): New function.
20021         (pass_data_ipa_single_use): New pass.
20022         (pass_ipa_single_use): New pass.
20023         (pass_ipa_single_use::gate): New gate.
20024         (make_pass_ipa_single_use): New function.
20025
20026 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20027
20028         PR target/39284
20029         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20030         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20031
20032 2014-06-23  Richard Biener  <rguenther@suse.de>
20033
20034         * tree-ssa-loop.c (gate_loop): New function.
20035         (pass_tree_loop::gate): Call it.
20036         (pass_data_tree_no_loop, pass_tree_no_loop,
20037         make_pass_tree_no_loop): New.
20038         * tree-vectorizer.c: Include tree-scalar-evolution.c
20039         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20040         required.
20041         (pass_slp_vectorize::clone): New method.
20042         * timevar.def (TV_TREE_NOLOOP): New.
20043         * tree-pass.h (make_pass_tree_no_loop): Declare.
20044         * passes.def (pass_tree_no_loop): New pass group with
20045         SLP vectorizer.
20046
20047 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20048
20049         PR target/61570
20050         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20051         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20052
20053 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20054
20055         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20056         "yes" where needed.
20057
20058 2014-06-23  Alan Modra  <amodra@gmail.com>
20059
20060         PR bootstrap/61583
20061         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20062         to zero on debug statements.
20063
20064 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20065
20066         PR target/60825
20067         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20068         Ignore third operand if present by marking qualifier_internal.
20069
20070         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20071
20072         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20073         vector extension.
20074         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20075         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20076         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20077         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20078         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20079         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20080         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20081         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20082         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20083         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20084         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20085         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20086         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20087         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20088         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20089         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20090         logic in GCC vector extensions
20091
20092         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20093         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20094         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20095         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20096         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20097         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20098         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20099         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20100         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20101         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20102
20103         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20104
20105         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20106         extensions.
20107
20108         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20109         (vget_low_s64): Use __GET_LOW macro.
20110         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20111         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20112         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20113         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20114         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20115
20116         (vcombine_s64): Use GCC vector extensions; remove cast.
20117         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20118         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20119         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20120         Fix type signature; remove cast.
20121
20122 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20123
20124         PR target/60825
20125         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20126         V1DFmode.
20127         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20128         add V1DFmode
20129         (BUILTIN_VD1): New.
20130         (BUILTIN_VD_RE): Remove.
20131         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20132         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20133         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20134         variant but not df.
20135         (vreinterpretv1df*, vreinterpret*v1df): New.
20136         (vreinterpretdf*, vreinterpret*df): Remove.
20137         * config/aarch64/aarch64-simd.md (aarch64_create,
20138         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20139         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20140         (VD1): New.
20141         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20142         (vcreate_f64): Remove cast, use v1df builtin.
20143         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20144         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20145         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20146         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20147         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20148         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20149         add range check using __builtin_aarch64_im_lane_boundsi.
20150         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20151         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20152         type signature, use gcc vector extensions.
20153         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20154         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20155         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20156         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20157         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20158         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20159         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20160         vreinterpret_u64_f64): Use v1df builtin not df.
20161
20162 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20163
20164         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20165         vector registers.
20166
20167 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20168
20169         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20170         priority directly.
20171
20172 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20173
20174         * loop-invariant.c (pre_check_invariant_p): New function.
20175         (find_invariant_insn): Call pre_check_invariant_p.
20176
20177 2014-06-22  Richard Henderson  <rth@redhat.com>
20178
20179         PR target/61565
20180         * compare-elim.c (struct comparison): Add eh_note.
20181         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20182         a redundant comparison in a different EH region.  Purge EH edges if
20183         necessary.
20184
20185 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20186
20187         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20188         (var_shift): Use it.
20189         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20190         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20191         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20192         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20193         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20194         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20195         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20196         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20197         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20198         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20199         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20200         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20201         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20202         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20203         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20204         *rotldi3_internal15be): Use the new attribute.  Merge register and
20205         integer alternatives.
20206
20207 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20208
20209         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20210         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20211         split, *ashrdi3_internal3 and split): Delete, merge into...
20212         (ashr<mode>3): New expander.
20213         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20214         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20215
20216 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20217
20218         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20219         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20220         *rotldi3_internal3 and split): Delete, merge into...
20221         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20222         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20223         Use "rotlw" extended mnemonic.
20224
20225 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20226
20227         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20228         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20229         and split, *ashldi3_internal3 and split): Delete, merge into...
20230         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20231         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20232
20233 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20234
20235         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20236         (lshrsi3, two anonymous define_insns and define_splits,
20237         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20238         *lshrdi3_internal3 and split): Delete, merge into...
20239         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20240         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20241
20242 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20243
20244         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20245         Remove "O" alternative.
20246
20247 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20248
20249         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20250         (mips_move_from_gpr_cost): Likewise.
20251         (mips_register_move_cost): Update accordingly.
20252         (mips_secondary_reload_class): Remove name of in_p.
20253
20254 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20255
20256         PR target/61503
20257         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20258         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20259
20260 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20261
20262         * config/nios2/nios2.c: Include "builtins.h".
20263
20264 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20265
20266         * cgraph.h (tls_model_names): New variable.
20267         * print-tree.c (print_node): Simplify.
20268         * varpool.c (tls_model_names): New variable.
20269         (dump_varpool_node): Output tls model.
20270
20271 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20272
20273         * ipa-visibility.c (function_and_variable_visibility): Disable
20274         temporarily local aliases for some targets.
20275
20276 2014-06-20  Marek Polacek  <polacek@redhat.com>
20277
20278         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20279         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20280         into SANITIZE_UNDEFINED.
20281         * doc/invoke.texi: Describe -fsanitize=bounds.
20282         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20283         functions created in the FEs.
20284         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20285         (expand_UBSAN_BOUNDS): New function.
20286         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20287         * internal-fn.h: Don't define internal functions here.
20288         * opts.c (common_handle_option): Add -fsanitize=bounds.
20289         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20290         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20291         * tree-core.h: Define internal functions here.
20292         (struct tree_base): Add ifn field.
20293         * tree-pretty-print.c: Include "internal-fn.h".
20294         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20295         * tree.c (get_callee_fndecl): Likewise.
20296         (build_call_expr_internal_loc): New function.
20297         * tree.def (CALL_EXPR): Update description.
20298         * tree.h (CALL_EXPR_IFN): Define.
20299         (build_call_expr_internal_loc): Declare.
20300         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20301         types.
20302         (ubsan_type_descriptor): Change bool parameter to enum
20303         ubsan_print_style.  Adjust the code.  Add handling of
20304         UBSAN_PRINT_ARRAY.
20305         (ubsan_expand_bounds_ifn): New function.
20306         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20307         (ubsan_build_overflow_builtin): Likewise.
20308         (instrument_bool_enum_load): Likewise.
20309         (ubsan_instrument_float_cast): Likewise.
20310         * ubsan.h (enum ubsan_print_style): New enum.
20311         (ubsan_expand_bounds_ifn): Declare.
20312         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20313
20314 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20315
20316         * config/rs6000/rs6000.md: Append `DONE' to preparation
20317         statements of `bswap' pattern splitters.
20318
20319 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20320
20321         * target.def (call_fusage_contains_non_callee_clobbers): Update
20322         definition.
20323         * doc/tm.texi: Regenerate.
20324
20325 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20326             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20327
20328         PR sanitizer/61547
20329         * asan.c (instrument_strlen_call): Fixed instrumentation of
20330         trailing byte.
20331
20332 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20333
20334         PR ipa/61540
20335         * ipa-prop.c (impossible_devirt_target): New function.
20336         (try_make_edge_direct_virtual_call): Use it, also instead of
20337         asserting.
20338
20339 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20340             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20341
20342         PR sanitizer/61530
20343         * asan.c (build_check_stmt): Add condition.
20344
20345 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20346
20347         PR ipa/61211
20348         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20349         expanded clones.
20350
20351 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20352
20353         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20354         Update comments.
20355         (VCONQ): Make comment more helpful.
20356         (VCON): Delete.
20357         * config/aarch64/aarch64-simd.md
20358         (aarch64_sqdmulh_lane<mode>):
20359         Use VCOND for operands 2.  Update lane checking and flipping logic.
20360         (aarch64_sqrdmulh_lane<mode>): Likewise.
20361         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20362         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20363         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20364         attribute of operand 3 to VCOND.
20365         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20366         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20367         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20368         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20369         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20370         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20371         define_insn.
20372         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20373         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20374         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20375         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20376         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20377         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20378         operand to VCOND.  Update lane flipping and bounds checking logic.
20379         (aarch64_sqdmlal2_lane<mode>): Likewise.
20380         (aarch64_sqdmlsl_lane<mode>): Likewise.
20381         (aarch64_sqdmull_lane<mode>): Likewise.
20382         (aarch64_sqdmull2_lane<mode>): Likewise.
20383         (aarch64_sqdmlal_laneq<mode>):
20384         Replace VCON usage with VCONQ.
20385         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20386         (aarch64_sqdmlal2_laneq<mode>): Emit
20387         aarch64_sqdmlal2_laneq<mode>_internal insn.
20388         Replace VCON with VCONQ.
20389         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20390         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20391         (aarch64_sqdmull_laneq<mode>): Emit
20392         aarch64_sqdmull_laneq<mode>_internal insn.
20393         Replace VCON with VCONQ.
20394         (aarch64_sqdmull2_laneq<mode>): Emit
20395         aarch64_sqdmull2_laneq<mode>_internal insn.
20396         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
20397         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
20398         of 3rd argument to int16x4_t.
20399         (vqdmlalh_lane_s16): Likewise.
20400         (vqdmlslh_lane_s16): Likewise.
20401         (vqdmull_high_lane_s16): Likewise.
20402         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
20403         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
20404         (vqdmlsl_lane_s16): Likewise.
20405         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
20406         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
20407         (vqdmlals_lane_s32): Likewise.
20408         (vqdmlsls_lane_s32): Likewise.
20409         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
20410         (vqdmulls_lane_s32): Likewise.
20411         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
20412         (vqdmlsl_lane_s32): Likewise.
20413         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
20414         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
20415         (vqrdmulhh_lane_s16): Likewise.
20416         (vqdmlsl_high_lane_s16): Likewise.
20417         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
20418         (vqdmlsl_high_lane_s32): Likewise.
20419         (vqrdmulhs_lane_s32): Likewise.
20420
20421 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20422
20423         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
20424         get_call_reg_set_usage.
20425
20426 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20427
20428         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
20429         it contains all call_used_regs.
20430
20431 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20432
20433         * final.c (collect_fn_hard_reg_usage): Add and use variable
20434         function_used_regs.
20435
20436 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20437
20438         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
20439         (set_init_priority, get_init_priority, set_fini_priority,
20440         get_fini_priority): New methods.
20441         * tree.c (init_priority_for_decl): Remove.
20442         (init_ttree): Do not initialize init priority.
20443         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
20444         (decl_priority_info): Remove.
20445         (decl_init_priority_insert): Rewrite.
20446         (decl_fini_priority_insert): Rewrite.
20447         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
20448         tree_priority_map_marked_p): Remove.
20449         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
20450         * lto-streamer-out.c (hash_tree): Do not hash priorities.
20451         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
20452         not output priorities.
20453         (pack_ts_function_decl_value_fields): Likewise.
20454         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20455         not input priorities.
20456         (unpack_ts_function_decl_value_fields): Likewise.
20457         * symtab.c (symbol_priority_map): Declare.
20458         (init_priority_hash): Declare.
20459         (symtab_unregister_node): Unregister from priority hash, too.
20460         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
20461         New methods.
20462         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
20463         (symbol_priority_info): New function.
20464         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
20465         New methods.
20466         * tree-core.h (tree_priority_map): Remove.
20467
20468 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
20469
20470         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
20471         0xff to uint64_t before shifting it up.
20472
20473 2014-06-20  Julian Brown  <julian@codesourcery.com>
20474             Chung-Lin Tang  <cltang@codesourcery.com>
20475
20476         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
20477         TARGET_THUMB1_ONLY. Add comments.
20478
20479 2014-06-19  Tom de Vries  <tom@codesourcery.com>
20480
20481         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
20482         return type to void.
20483         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
20484
20485 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20486
20487         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
20488         as "move", from depends_on.
20489
20490 2014-06-19  Terry Guo  <terry.guo@arm.com>
20491
20492         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
20493         stage.
20494
20495 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
20496
20497         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
20498         Remove cr5.
20499         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
20500
20501 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20502
20503         PR target/61550
20504         * config/sh/sh.c (prepare_move_operands): Don't process TLS
20505         addresses here if reload in progress or completed.
20506
20507 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20508
20509         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
20510         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
20511         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
20512         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
20513         (mips_register_priority): New function that implements the target
20514         hook TARGET_REGISTER_PRIORITY.
20515         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
20516         (mips_lra_p): Likewise for TARGET_LRA_P.
20517         (TARGET_REGISTER_PRIORITY): Define macro.
20518         (TARGET_SPILL_CLASS): Likewise.
20519         (TARGET_LRA_P): Likewise.
20520         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
20521         classes.
20522         (REG_CLASS_NAMES): Likewise.
20523         (REG_CLASS_CONTENTS): Likewise.
20524         (BASE_REG_CLASS): Use M16_SP_REGS.
20525         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
20526         New set attribute to enable alternatives depending on the register
20527         allocator used.
20528         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
20529         (*lea64): Disable pattern for MIPS16.
20530         * config/mips/mips.opt (mlra): New option.
20531
20532 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
20533
20534         * lra-constraints.c (base_to_reg): New function.
20535         (process_address): Use new function.
20536
20537 2014-06-18  Tom de Vries  <tom@codesourcery.com>
20538
20539         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
20540         * config/aarch64/aarch64.c
20541         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
20542         (aarch64_emit_call_insn): New function.
20543         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
20544         of emit_call_insn.
20545         * config/aarch64/aarch64.md (define_expand "call_internal")
20546         (define_expand "call_value_internal", define_expand "sibcall_internal")
20547         (define_expand "sibcall_value_internal"): New.
20548         (define_expand "call", define_expand "call_value")
20549         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
20550         expand variant and aarch64_emit_call_insn.
20551
20552 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
20553             Tom de Vries  <tom@codesourcery.com>
20554
20555         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
20556         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
20557         Redefine to true.
20558         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
20559         clobbers to CALL_INSN_FUNCTION_USAGE.
20560         (define_expand "sibcall_internal")
20561         (define_expand "sibcall_value_internal"): New.
20562         (define_expand "call", define_expand "call_value"): Add argument to
20563         arm_emit_call_insn.
20564         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
20565         (define_expand "sibcall_value"): Use sibcall_value_internal and
20566         arm_emit_call_insn.
20567
20568 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20569
20570         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
20571
20572 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20573
20574         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
20575         __udivmoddi4.
20576
20577 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20578
20579         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
20580         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
20581         annotations. Fix DWARF information.
20582
20583 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20584
20585         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
20586         __udivmoddi4, and fixups for negative operands.
20587
20588 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20589
20590         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
20591
20592 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20593
20594         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
20595         to __udivmoddi4.
20596
20597 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20598
20599         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
20600         manipulation.
20601
20602 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20603
20604         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
20605         describing register usage on function entry and exit.
20606
20607 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20608
20609         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
20610         (__aeabi_ldivmod): Fix whitespace.
20611
20612 2014-06-18  Andreas Schwab  <schwab@suse.de>
20613
20614         * doc/md.texi (Standard Names): Use @itemx for grouped items.
20615         Remove blank line after @item.
20616
20617 2014-06-18  Richard Henderson  <rth@redhat.com>
20618
20619         PR target/61545
20620         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
20621
20622 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
20623
20624         * config/arm/arm.c (neon_vector_mem_operand): Allow register
20625         POST_MODIFY for neon loads and stores.
20626         (arm_print_operand): Output post-index register for neon loads and
20627         stores.
20628
20629 2014-06-18  Richard Biener  <rguenther@suse.de>
20630
20631         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
20632
20633 2014-06-18  Richard Biener  <rguenther@suse.de>
20634
20635         * tree-pass.h (make_pass_dce_loop): Remove.
20636         * passes.def: Replace pass_dce_loop with pass_dce.
20637         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
20638         changed free niter estimates and reset the scev cache.
20639         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
20640         make_pass_dce_loop): Remove.
20641         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
20642         (fini_copy_prop): Return whether something changed.  Always
20643         let substitute_and_fold perform DCE and free niter estimates
20644         and reset the scev cache if so.
20645         (execute_copy_prop): If sth changed schedule cleanup-cfg.
20646         (pass_data_copy_prop): Do not unconditionally schedule
20647         cleanup-cfg or update-ssa.
20648
20649 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
20650
20651         PR tree-optimization/61518
20652         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
20653         reduction var is used in reduction stmt or phi-function only.
20654
20655 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20656
20657         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
20658
20659 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20660
20661         PR tree-optimization/61517
20662         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
20663         whose rhs's first tree is the source expression instead of the
20664         expression itself.
20665         (find_bswap_or_nop): Likewise.
20666         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
20667         gimple stmt whose rhs's first tree is the source. In the memory source
20668         case, move the stmt to be replaced close to one of the original load to
20669         avoid the problem of a store between the load and the stmt's original
20670         location.
20671         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
20672         signature.
20673
20674 2014-06-18  Andreas Schwab  <schwab@suse.de>
20675
20676         PR rtl-optimization/54555
20677         * postreload.c (move2add_use_add2_insn): Substitute
20678         STRICT_LOW_PART only if it is cheaper.
20679
20680 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
20681
20682         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
20683         Do not use unspec as call operand.  Use memory_operand instead of
20684         memory_nox32_operand and add "m" operand constraint.  Disable
20685         pattern for TARGET_X32.
20686         (*sibcall_pop_memory): Ditto.
20687         (*sibcall_value_memory): Ditto.
20688         (*sibcall_value_pop_memory): Ditto.
20689         (sibcall peepholes): Merge SImode and DImode patterns using
20690         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
20691         Disable pattern for TARGET_X32.  Check if eliminated register is
20692         really dead after call insn.  Generate call RTX without unspec operand.
20693         (sibcall_value peepholes): Ditto.
20694         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
20695         instead of memory_nox32_operand.  Check if eliminated register is
20696         really dead after call insn. Generate call RTX without unspec operand.
20697         (sibcall_value_pop peepholes): Ditto.
20698         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
20699
20700 2014-06-18  Terry Guo  <terry.guo@arm.com>
20701
20702         PR target/61544
20703         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
20704         reach the head.
20705
20706 2014-06-18  Olivier Hainque  <hainque@adacore.com>
20707
20708         * tree-core.h (tree_block): Add an "end_locus" field, allowing
20709         memorization of the end of block source location.
20710         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
20711         * gimplify.c (gimplify_bind_expr): Propagate the block start and
20712         end source location info we have on the block entry/exit code we
20713         generate.
20714
20715 2014-06-18  Richard Biener  <rguenther@suse.de>
20716
20717         * common.opt (fssa-phiopt): New option.
20718         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
20719         but not with -Og.
20720         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
20721         * doc/invoke.texi (-fssa-phiopt): Document.
20722
20723 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20724
20725         * genattrtab.c (n_bypassed): New variable.
20726         (process_bypasses): Initialise n_bypassed.
20727         Count number of bypassed reservations.
20728         (make_automaton_attrs): Allocate space for bypassed reservations
20729         rather than number of bypasses.
20730
20731 2014-06-18  Richard Biener  <rguenther@suse.de>
20732
20733         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
20734         we propagated anything.
20735         (substitute_and_fold_dom_walker::before_dom_children): Something
20736         changed if we propagated into PHI arguments.
20737         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
20738         we removed a stmt.
20739
20740 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
20741
20742         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
20743         vector case.
20744         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
20745         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
20746         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
20747         Introduces alternative way of loads group permutaions.
20748         (vect_transform_grouped_load): Try alternative way of permutations.
20749
20750 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
20751
20752         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
20753         changed in ORT_TARGET region, don't jump to do_outer.
20754         (struct gimplify_adjust_omp_clauses_data): New type.
20755         (gimplify_adjust_omp_clauses_1): Adjust for data being
20756         a struct gimplify_adjust_omp_clauses_data pointer instead
20757         of tree *.  Pass pre_p as a new argument to
20758         lang_hooks.decls.omp_finish_clause hook.
20759         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
20760         splay_tree_foreach to pass both list_p and pre_p.
20761         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
20762         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
20763         gimplify_adjust_omp_clauses callers.
20764         * langhooks.c (lhd_omp_finish_clause): New function.
20765         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
20766         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
20767         * langhooks.h (struct lang_hooks_for_decls): Add a new
20768         gimple_seq * argument to omp_finish_clause hook.
20769         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
20770         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
20771         (scan_omp_parallel, lower_omp_for): When adding
20772         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
20773         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
20774         * tree-nested.c (convert_nonlocal_omp_clauses,
20775         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
20776         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
20777
20778 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
20779
20780         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
20781         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
20782
20783 2014-06-17  Xinliang David Li  <davidxl@google.com>
20784
20785         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
20786         * passes.c (pass_init_dump_file): Do not set initialize
20787         flag to false unconditionally.
20788
20789 2014-06-17  Richard Biener  <rguenther@suse.de>
20790
20791         * genopinit.c (main): Use vec<>::qsort method.
20792         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
20793         Likewise.
20794         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
20795
20796 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
20797
20798         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
20799         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
20800         (mips_move_to_gpr_cost): Remove ST_REGS case.
20801         (mips_move_from_gpr_cost): Likewise.
20802         (mips_register_move_cost): Likewise.
20803         (mips_secondary_reload_class): Likewise.
20804
20805 2014-06-17  Richard Biener  <rguenther@suse.de>
20806
20807         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
20808         (pass_all_optimizations): Move 3rd copy-prop pass from after
20809         fre to before ifcombine/phiopt.
20810
20811 2014-06-17  Richard Biener  <rguenther@suse.de>
20812
20813         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
20814         and allow all blocks to be forwarders.
20815
20816 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
20817
20818         PR target/61483
20819         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
20820         variable 'size'; calculate 'size' right in the front; use
20821         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
20822         pcum->aapcs_stack_words.
20823
20824 2014-06-17  Nick Clifton  <nickc@redhat.com>
20825
20826         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
20827         (umulhi3, mulsidi3, umulsidi3): Likewise.
20828
20829 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
20830
20831         PR middle-end/61508
20832         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
20833         check for section name.
20834
20835 2014-06-17  Richard Biener  <rguenther@suse.de>
20836
20837         * tree-ssa-propagate.c: Include domwalk.h.
20838         (substitute_and_fold): Outline main worker into a domwalker ...
20839         (substitute_and_fold_dom_walker::before_dom_children): ... here.
20840         Schedule stmts we can fully propagate for removal.  Remove
20841         poor-mans DCE.
20842         (substitute_and_fold): Apply a dominator walk to perform
20843         substitution.  Process stmts scheduled for removal here.
20844
20845 2014-06-17  Richard Biener  <rguenther@suse.de>
20846
20847         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
20848         of PHI node moving.
20849
20850 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
20851
20852         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
20853         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
20854         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
20855         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
20856         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
20857         TARGET_HARD_FLOAT.
20858         (get_fpscr) : Likewise.
20859
20860 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20861
20862         PR rtl-optimization/61325
20863         * lra-constraints.c (valid_address_p): Add forward declaration.
20864         (simplify_operand_subreg): Check address validity before and after
20865         alter_reg of memory subreg.
20866
20867 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
20868
20869         * config/i386/i386.c (decide_alg): Correctly handle
20870         maximum size of stringop algorithm.
20871
20872 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
20873
20874         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
20875
20876 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
20877
20878         PR rtl-optimization/61522
20879         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
20880
20881 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
20882
20883         Revert:
20884         * symtab.c (symtab_node::reset_section): New method.
20885         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
20886         for localization.
20887         * cgraph.h (reset_section): Declare.
20888         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
20889         do not consider comdat locals.
20890         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
20891         for new symbol.
20892         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
20893         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
20894         reset sections of symbols dragged out of the comdats.
20895         (function_and_variable_visibility): Reset sections of
20896         localized symbols.
20897
20898 2014-06-16  Richard Biener  <rguenther@suse.de>
20899
20900         PR tree-optimization/61482
20901         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
20902         [-INF(OVF), +INF(OVF)] range.
20903
20904 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
20905
20906         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
20907         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
20908         handling 32-bit multiplication.
20909
20910 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
20911
20912         PR middle-end/61430
20913         * lra-lives.c (process_bb_lives): Skip creating copy during
20914         insn scan when src/dest has constrained to same regno.
20915
20916 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
20917
20918         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
20919         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
20920
20921 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
20922
20923         * asan.c (check_func): New function.
20924         (maybe_create_ssa_name): Likewise.
20925         (build_check_stmt_with_calls): Likewise.
20926         (use_calls_p): Likewise.
20927         (report_error_func): Change interface.
20928         (build_check_stmt): Allow non-integer lengths; add support
20929         for new parameter.
20930         (asan_instrument): Likewise.
20931         (instrument_mem_region_access): Moved code to build_check_stmt.
20932         (instrument_derefs): Likewise.
20933         (instrument_strlen_call): Likewise.
20934         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
20935         * doc/invoke.texi: Describe new parameter.
20936         * params.def: Define new parameter.
20937         * params.h: Likewise.
20938         * sanitizer.def: Describe new builtins.
20939
20940 2014-06-16  Richard Biener  <rguenther@suse.de>
20941
20942         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20943         Make all defs available at the end.
20944         (eliminate): If we remove a PHI node schedule cfg-cleanup.
20945
20946 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
20947
20948         PR plugins/45078
20949         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
20950
20951 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
20952
20953         PR bootstrap/61516
20954         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
20955         initialization.  Replace remaining use of uid.
20956
20957 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
20958
20959         * c-family/c-common.c (handle_tls_model_attribute): Use
20960         set_decl_tls_model.
20961         * c-family/c-common.c (handle_tls_model_attribute): Use
20962         set_decl_tls_model.
20963         * cgraph.h (struct varpool_node): Add tls_model.
20964         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
20965         * tree.h (DECL_TLS_MODEL): Update.
20966         (DECL_THREAD_LOCAL_P): Check that variable is static.
20967         (decl_tls_model): Declare.
20968         (set_decl_tls_model): Declare.
20969         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
20970         set symbol prorperties.
20971         (get_emutls_init_templ_addr): Cleanup.
20972         (new_emutls_decl): Update.
20973         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
20974         (lto_input_varpool_node): Likewise.
20975         * lto-streamer-out.c (hash_tree): Likewise.
20976         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20977         not stream DECL_TLS_MODEL.
20978         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
20979         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
20980
20981 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
20982
20983         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
20984
20985 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
20986
20987         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
20988         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
20989         lists.
20990         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
20991         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
20992         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
20993         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
20994         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
20995         (df_get_artificial_defs, df_get_artificial_uses)
20996         (df_single_def, df_single_use): Update accordingly.
20997         (df_refs_chain_dump): Take the first element in a linked list as
20998         parameter, rather than a pointer to an array of pointers.
20999         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21000         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21001         (df_chain_create_bb_process_use): Likewise.
21002         (df_md_bb_local_compute_process_def): Likewise.
21003         * fwprop.c (process_defs, process_uses): Likewise.
21004         (register_active_defs, update_uses): Likewise.
21005         (forward_propagate_asm): Update for new df_ref linking.
21006         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21007         (df_null_ref_rec, df_null_mw_rec): Likewise.
21008         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21009         explicitly.
21010         (df_scan_free_bb_info): Remove check for null artificial_defs.
21011         (df_install_ref_incremental): Adjust for new df_ref linking.
21012         Use a single-element insertion rather than a full sort.
21013         (df_ref_chain_delete_du_chain): Take the first element
21014         in a linked list as parameter, rather than a pointer to an array of
21015         pointers.
21016         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21017         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21018         (df_insn_info_delete): Remove check for null defs and call to
21019         df_scan_free_mws_vec.
21020         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21021         null rather than df_null_*_rec.
21022         (df_insn_rescan_debug_internal): Likewise, and update null
21023         checks in the same way.  Remove check for null defs.
21024         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21025         Move a single element rather doing a full sort.
21026         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21027         linking.
21028         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21029         Initialize df_ref and df_mw_hardreg lists to null rather than
21030         df_null_*_rec.
21031         (df_ref_compare): Take df_refs as parameter, transferring the
21032         old interface to...
21033         (df_ref_ptr_compare): ...this new function.
21034         (df_sort_and_compress_refs): Update accordingly.
21035         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21036         old interface to...
21037         (df_mw_ptr_compare): ...this new function.
21038         (df_sort_and_compress_mws): Update accordingly.
21039         (df_install_refs, df_install_mws): Return a linked list rather than
21040         an array of pointers.
21041         (df_refs_add_to_chains): Assert that old lists are empty rather
21042         than freeing them.
21043         (df_insn_refs_verify): Don't handle null defs speciailly.
21044         * web.c (union_match_dups): Update for new df_ref linking.
21045
21046 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21047
21048         * df.h (df_ref_create, df_ref_remove): Delete.
21049         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21050         (df_ref_remove): Likewise.
21051
21052 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21053
21054         * df.h (df_single_def, df_single_use): New functions.
21055         * ira.c (find_moveable_pseudos): Use them.
21056
21057 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21058
21059         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21060         * df-problems.c (df_note_bb_compute): Use it.
21061         * regstat.c (regstat_bb_compute_ri): Likewise.
21062
21063 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21064
21065         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21066         * cse.c (cse_extended_basic_block): Use them.
21067         * dce.c (mark_artificial_use): Likewise.
21068         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21069         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21070         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21071         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21072         (df_simulate_initialize_backwards): Likewise.
21073         (df_simulate_finalize_backwards): Likewise.
21074         (df_simulate_initialize_forwards): Likewise.
21075         (df_md_simulate_artificial_defs_at_top): Likewise.
21076         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21077         * regrename.c (init_rename_info): Likewise.
21078         * regstat.c (regstat_bb_compute_ri): Likewise.
21079         (regstat_bb_compute_calls_crossed): Likewise.
21080
21081 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21082
21083         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21084         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21085         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21086         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21087         * combine.c (create_log_links): Likewise.
21088         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21089         (try_eliminate_compare): Likewise.
21090         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21091         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21092         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21093         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21094         (word_dce_process_block, dce_process_block): Likewise.
21095         * ddg.c (def_has_ccmode_p): Likewise.
21096         * df-core.c (df_bb_regno_first_def_find): Likewise.
21097         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21098         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21099         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21100         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21101         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21102         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21103         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21104         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21105         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21106         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21107         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21108         * fwprop.c (local_ref_killed_between_p): Likewise.
21109         (all_uses_available_at, free_load_extend): Likewise.
21110         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21111         * hw-doloop.c (scan_loop): Likewise.
21112         * ifcvt.c (dead_or_predicable): Likewise.
21113         * init-regs.c (initialize_uninitialized_regs): Likewise.
21114         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21115         (process_bb_node_lives): Likewise.
21116         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21117         (find_moveable_pseudos): Likewise.
21118         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21119         * recog.c (peep2_find_free_register): Likewise.
21120         * ree.c (get_defs): Likewise.
21121         * regstat.c (regstat_bb_compute_ri): Likewise.
21122         (regstat_bb_compute_calls_crossed): Likewise.
21123         * sched-deps.c (find_inc, find_mem): Likewise.
21124         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21125         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21126         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21127         (prepare_shrink_wrap): Likewise.
21128         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21129         * web.c (union_defs, pass_web::execute): Likewise.
21130         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21131         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21132
21133 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21134
21135         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21136         to inheritance pseudos.
21137         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21138
21139 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21140
21141         PR target/61415
21142         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21143         (BU_MISC_2): Rename to ...
21144         (BU_LDBL128_2): ... this.
21145         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21146         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21147         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21148         RS6000_BTM_LDBL128.
21149         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21150         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21151         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21152         (unpacktf_1): Likewise.
21153         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21154         (__builtin_longdouble_dw1): Likewise.
21155         * doc/sourcebuild.texi (longdouble128): Document.
21156
21157 2014-06-13  Jeff Law  <law@redhat.com>
21158
21159         PR rtl-optimization/61094
21160         PR rtl-optimization/61446
21161         * ree.c (combine_reaching_defs): Get the mode for the copy from
21162         the extension insn rather than the defining insn.
21163
21164 2014-06-13  Dehao Chen  <dehao@google.com>
21165
21166         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21167
21168 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21169
21170         * doc/install.texi (--enable-linker-plugin-configure-flags)
21171         (--enable-linker-plugin-flags): Document new flags.
21172
21173 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21174
21175         PR ipa/61186
21176         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21177         cache_token if returning early.
21178
21179 2014-06-13  Nick Clifton  <nickc@redhat.com>
21180
21181         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21182         requested alignment is active.
21183         (LABEL_ALIGN): Likewise.
21184         (LOOP_ALIGN): Likewise.
21185
21186 2014-06-13  Richard Biener  <rguenther@suse.de>
21187
21188         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21189         Rewrite to propagate the VN result into all uses where
21190         possible and to remove stmts becoming dead because of that.
21191         (eliminate): Generalize stmt removal handling, remove in
21192         reverse dominator order to support proper debug stmt
21193         generation.  Update stmts before removing stmts.
21194         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21195
21196 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21197
21198         PR tree-optimization/61375
21199         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21200         symbolic number cannot be represented in an uint64_t.
21201         (find_bswap_or_nop_1): Likewise.
21202
21203 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21204
21205         * symtab.c (symtab_node::reset_section): New method.
21206         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21207         for localization.
21208         * cgraph.h (reset_section): Declare.
21209         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21210         do not consider comdat locals.
21211         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21212         for new symbol.
21213         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21214         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21215         reset sections of symbols dragged out of the comdats.
21216         (function_and_variable_visibility): Reset sections of
21217         localized symbols.
21218
21219 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21220
21221         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21222         to use symtab and decl_binds_to_current_def_p
21223         * tree-vectorizer.c (increase_alignment): Increase alignment
21224         of alias target, too.
21225
21226 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21227
21228         PR middle-end/61486
21229         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21230         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21231         if outer combined construct is distribute.
21232         (gimplify_omp_for): For OMP_DISTRIBUTE set
21233         gimplify_omp_ctxp->distribute.
21234         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21235         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21236         mapping into decl map.
21237
21238 2014-06-12  Jason Merrill  <jason@redhat.com>
21239
21240         * common.opt (fabi-version): Change default to 0.
21241
21242 2014-06-12  Jason Merrill  <jason@redhat.com>
21243
21244         * toplev.c (process_options): Reject -fabi-version=1.
21245
21246 2014-06-12  Jeff Law  <law@redhat.com>
21247
21248         PR tree-optimization/61009
21249         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21250         value when we stop processing a block due to problematic PHIs.
21251
21252 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21253
21254         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21255         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21256         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21257         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21258         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21259         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21260         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21261         are not in the spec.
21262
21263 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21264
21265         PR target/59843
21266         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21267         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21268         Support V1DFmode.
21269
21270 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21271
21272         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21273
21274 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21275
21276         PR target/61443
21277         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21278         loading from address spaces.
21279
21280 2014-06-12  Martin Liska  <mliska@suse.cz>
21281
21282         PR ipa/61462
21283         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21284         statement is reachable.
21285
21286 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21287
21288         * symtab.c (section_hash): New hash.
21289         (symtab_unregister_node): Clear section before freeing.
21290         (hash_section_hash_entry): New haser.
21291         (eq_sections): New function.
21292         (symtab_node::set_section_for_node): New method.
21293         (set_section_1): Update.
21294         (symtab_node::set_section): Take string instead of tree as parameter.
21295         (symtab_resolve_alias): Update.
21296         * cgraph.h (section_hash_entry_d): New structure.
21297         (section_hash_entry): New typedef.
21298         (cgraph_node): Change comdat_group_ to x_comdat_group,
21299         change section_ to x_section and turn into section_hash_entry;
21300         update accestors; put set_section_for_node offline.
21301         * tree.c (decl_section_name): Turn into string.
21302         (set_decl_section_name): Change parameter to be string.
21303         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21304         * sdbout.c (sdbout_one_type): Update.
21305         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21306         * varasm.c (IN_NAMED_SECTION, get_named_section,
21307         resolve_unique_section, hot_function_section, get_named_text_section,
21308         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21309         make_decl_rtl, default_unique_section): Update.
21310         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21311         (c6x_elf_unique_section): Update.
21312         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21313         * config/pa/pa.c (pa_function_section): Update.
21314         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21315         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21316         * config/arc/arc.c (arc_in_small_data_p): Update.
21317         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21318         * config/mcore/mcore.c (mcore_unique_section): Update.
21319         * config/mips/mips.c (mips16_build_function_stub): Update.
21320         (mips16_build_call_stub): Update.
21321         (mips_function_rodata_section): Update.
21322         (mips_in_small_data_p): Update.
21323         * config/score/score.c (score_in_small_data_p): Update.
21324         * config/rx/rx.c (rx_in_small_data): Update.
21325         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21326         (rs6000_xcoff_asm_named_section): Update.
21327         (rs6000_xcoff_unique_section): Update.
21328         * config/frv/frv.c (frv_string_begins_with): Update.
21329         (frv_in_small_data_p): Update.
21330         * config/v850/v850.c (v850_encode_data_area): Update.
21331         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21332         (bfin_handle_l1_data_attribute): Update.
21333         (bfin_handle_l2_attribute): Update.
21334         * config/mep/mep.c (mep_unique_section): Update.
21335         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21336         Update.
21337         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21338         (h8300_handle_tiny_data_attribute): Update.
21339         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21340         (m32r_in_small_data_p): Update.
21341         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21342         * config/i386/i386.c (ix86_in_large_data_p): Update.
21343         * config/i386/winnt.c (i386_pe_unique_section): Update.
21344         * config/darwin.c (darwin_function_section): Update.
21345         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21346         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21347         (new_emutls_decl): Update.
21348         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21349         input_varpool_node): Update.
21350         (ead_string_cst): Turn to ...
21351         (read_string): ... this one.
21352         * dwarf2out.c (secname_for_decl): Update.
21353         * asan.c (asan_protect_global): Update.
21354
21355 2014-06-11  DJ Delorie  <dj@redhat.com>
21356
21357         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21358         cache lines.
21359         * config/rx/rx.c (rx_option_override): Likewise.
21360         (rx_align_for_label): Likewise.
21361
21362         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21363
21364 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
21365
21366         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21367         prototype.
21368
21369 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21370
21371         * common.md: New file.
21372         * doc/md.texi: Update description of generic, machine-independent
21373         constraints.
21374         * config/s390/constraints.md (e): Delete.
21375         * Makefile.in (md_file): Include common.md.
21376         * config/m32c/t-m32c (md_file): Likewise.
21377         * genpreds.c (general_mem): New array.
21378         (generic_constraint_letters): Remove constraints now defined by
21379         common.md.
21380         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21381         Allow the first character to be '<' or '>' as well.
21382         * genoutput.c (general_mem): New array.
21383         (indep_constraints): Remove constraints now defined by common.md.
21384         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21385         Remove special handling of 'm'.
21386         * ira-costs.c (record_reg_classes): Remove special handling of
21387         constraints now defined by common.md.
21388         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21389         * ira-lives.c (single_reg_class): Likewise.
21390         (ira_implicitly_set_insn_hard_regs): Likewise.
21391         * lra-constraints.c (reg_class_from_constraints): Likewise.
21392         (process_alt_operands, process_address, curr_insn_transform): Likewise.
21393         * postreload.c (reload_cse_simplify_operands): Likewise.
21394         * reload.c (push_secondary_reload, scratch_reload_class)
21395         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21396         * reload1.c (maybe_fix_stack_asms): Likewise.
21397         * targhooks.c (default_secondary_reload): Likewise.
21398         * stmt.c (parse_output_constraint): Likewise.
21399         * recog.c (preprocess_constraints): Likewise.
21400         (constrain_operands, peep2_find_free_register): Likewise.
21401         (asm_operand_ok): Likewise, but add a comment saying why 'o'
21402         must be handled specially.
21403
21404 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21405
21406         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
21407         * genpreds.c (have_const_dbl_constraints): Delete.
21408         (add_constraint): Don't set it.
21409         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
21410         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
21411         constraints using the lookup_constraint logic.
21412         * ira-lives.c (single_reg_class): Likewise.
21413         * ira.c (ira_setup_alts): Likewise.
21414         * lra-constraints.c (process_alt_operands): Likewise.
21415         * recog.c (asm_operand_ok, constrain_operands): Likewise.
21416         * reload.c (find_reloads): Likewise.
21417
21418 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21419
21420         * genpreds.c (const_int_start, const_int_end): New variables.
21421         (choose_enum_order): Output CONST_INT constraints before memory
21422         constraints.
21423         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
21424         Add CT_CONST_INT.
21425         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
21426         * ira.c (ira_setup_alts): Likewise.
21427         * lra-constraints.c (process_alt_operands): Likewise.
21428         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21429         * reload.c (find_reloads): Likewise.
21430
21431 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21432
21433         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
21434         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
21435         * recog.c (preprocess_constraints): Update accordingly.
21436
21437 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21438
21439         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
21440         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
21441         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
21442         * genpreds.c (print_type_tree): New function.
21443         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
21444         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
21445         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
21446         Write out enum constraint_type and get_constraint_type.
21447         * lra-constraints.c (satisfies_memory_constraint_p): Take a
21448         constraint_num rather than a constraint string.
21449         (satisfies_address_constraint_p): Likewise.
21450         (reg_class_from_constraints): Avoid old constraint macros.
21451         (process_alt_operands, process_address_1): Likewise.
21452         (curr_insn_transform): Likewise.
21453         * ira-costs.c (record_reg_classes): Likewise.
21454         (record_operand_costs): Likewise.
21455         * ira-lives.c (single_reg_class): Likewise.
21456         (ira_implicitly_set_insn_hard_regs): Likewise.
21457         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21458         * postreload.c (reload_cse_simplify_operands): Likewise.
21459         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21460         (constrain_operands, peep2_find_free_register): Likewise.
21461         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
21462         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21463         * reload1.c (maybe_fix_stack_asms): Likewise.
21464         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
21465         * targhooks.c (default_secondary_reload): Likewise.
21466         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
21467         to EXTRA_CONSTRAINT_STR.
21468         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
21469
21470 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21471
21472         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
21473         (write_constraint_satisfied_p_array): ...this new function.
21474         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
21475         an array.
21476         (write_insn_preds_c): Update accordingly.
21477
21478 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21479
21480         * genpreds.c (write_lookup_constraint): Rename to...
21481         (write_lookup_constraint_1): ...this.
21482         (write_lookup_constraint_array): New function.
21483         (write_tm_preds_h): Define lookup_constraint as an inline function
21484         that uses write_lookup_constraint_array where possible.
21485         (write_insn_preds_c): Update for the changes above.
21486
21487 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21488
21489         * doc/md.texi (regclass_for_constraint): Rename to...
21490         (reg_class_for_constraint): ...this.
21491         * genpreds.c (num_constraints, enum_order, register_start)
21492         (register_end, satisfied_start, memory_start, memory_end)
21493         (address_start, address_end): New variables.
21494         (add_constraint): Count the number of constraints.
21495         (choose_enum_order): New function.
21496         (write_enum_constraint_num): Iterate over enum_order.
21497         (write_regclass_for_constraint): Rename to...
21498         (write_reg_class_for_constraint_1): ...this and update output
21499         accordingly.
21500         (write_constraint_satisfied_p): Rename to...
21501         (write_constraint_satisfied_p_1): ...this and update output
21502         accordingly.  Do nothing if all extra constraints are register
21503         constraints.
21504         (write_insn_extra_memory_constraint): Delete.
21505         (write_insn_extra_address_constraint): Delete.
21506         (write_range_function): New function.
21507         (write_tm_preds_h): Define constraint_satisfied_p and
21508         reg_class_for_constraint as inline functions that do a range check
21509         before calling the out-of-line function.  Use write_range_function
21510         to implement insn_extra_{register,memory,address}_constraint,
21511         the first of which is new.
21512         (write_insn_preds_c): Update after above changes to write_* functions.
21513         (main): Call choose_enum_order.
21514
21515 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21516
21517         PR tree-optimization/61306
21518         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
21519         expression instead of its size.
21520         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
21521         false to prevent optimization when the result is unpredictable due to
21522         arithmetic right shift of signed type with highest byte is set.
21523         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
21524         (init_symbolic_number): Likewise.
21525         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
21526         when the result is unpredictable due to sign extension.
21527
21528 2014-06-11  Terry Guo  <terry.guo@arm.com>
21529
21530         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
21531         (*thumb1_addsi3): Ditto.
21532         (*thumb_subdi3): Ditto.
21533         (thumb1_subsi3_insn): Ditto.
21534         (*thumb_mulsi3): Ditto.
21535         (*thumb_mulsi3_v6): Ditto.
21536         (*thumb1_andsi3_insn): Ditto.
21537         (thumb1_bicsi3): Ditto.
21538         (*thumb1_iorsi3_insn): Ditto.
21539         (*thumb1_xorsi3_insn): Ditto.
21540         (*thumb1_ashlsi3): Ditto.
21541         (*thumb1_ashrsi3): Ditto.
21542         (*thumb1_lshrsi3): Ditto.
21543         (*thumb1_rotrsi3): Ditto.
21544         (*thumb1_negdi2): Ditto.
21545         (*thumb1_negsi2): Ditto.
21546         (*thumb1_abssi2): Ditto.
21547         (*thumb1_neg_abssi2): Ditto.
21548         (*thumb1_one_cmplsi2): Ditto.
21549         (*thumb1_zero_extendhisi2): Ditto.
21550         (*thumb1_zero_extendqisi2): Ditto.
21551         (*thumb1_zero_extendqisi2_v6): Ditto.
21552         (thumb1_extendhisi2): Ditto.
21553         (thumb1_extendqisi2): Ditto.
21554         (*thumb1_movdi_insn): Ditto.
21555         (*thumb1_movsi_insn): Ditto.
21556         (*thumb1_movhi_insn): Ditto.
21557         (thumb_movhi_clobber): Ditto.
21558         (*thumb1_movqi_insn): Ditto.
21559         (*thumb1_movhf): Ditto.
21560         (*thumb1_movsf_insn): Ditto.
21561         (*thumb_movdf_insn): Ditto.
21562         (movmem12b): Ditto.
21563         (movmem8b): Ditto.
21564         (cbranchqi4): Ditto.
21565         (cbranchsi4_insn): Ditto.
21566         (cbranchsi4_scratch): Ditto.
21567         (*negated_cbranchsi4): Ditto.
21568         (*tbit_cbranch): Ditto.
21569         (*tlobits_cbranch): Ditto.
21570         (*tstsi3_cbranch): Ditto.
21571         (*cbranchne_decr1): Ditto.
21572         (*addsi3_cbranch): Ditto.
21573         (*addsi3_cbranch_scratch): Ditto.
21574         (*thumb_cmpdi_zero): Ditto.
21575         (cstoresi_eq0_thumb1): Ditto.
21576         (cstoresi_ne0_thumb1): Ditto.
21577         (*cstoresi_eq0_thumb1_insn): Ditto.
21578         (*cstoresi_ne0_thumb1_insn): Ditto.
21579         (cstoresi_nltu_thumb1): Ditto.
21580         (cstoresi_ltu_thumb1): Ditto.
21581         (thumb1_addsi3_addgeu): Ditto.
21582         (*thumb_jump): Ditto.
21583         (*call_reg_thumb1_v5): Ditto.
21584         (*call_reg_thumb1): Ditto.
21585         (*call_value_reg_thumb1_v5): Ditto.
21586         (*call_value_reg_thumb1): Ditto.
21587         (*call_insn): Ditto.
21588         (*call_value_insn): Ditto.
21589         (thumb1_casesi_internal_pic): Ditto.
21590         (thumb1_casesi_dispatch): Ditto.
21591         (*thumb1_indirect_jump): Ditto.
21592         (prologue_thumb1_interwork): Ditto.
21593         (*epilogue_insns): Ditto.
21594         (consttable_1): Ditto.
21595         (consttable_2): Ditto.
21596         (tablejump): Ditto.
21597         (*thumb1_tablejump): Ditto.
21598         (thumb_eh_return): Ditto.
21599         (define_peephole2): Two of them are thumb1 only and got moved into
21600         new file thumb1.md.
21601         (define_split): Six of them are thumb1 only and got moved into new
21602         file thumb1.md.
21603         * config/arm/thumb1.md: New file comprised of above thumb1 only
21604         patterns.
21605
21606 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21607
21608         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
21609         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
21610         dependencies.
21611         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
21612         (aarch64_crc_builtin_datum): New struct.
21613         (aarch64_crc_builtin_data): New.
21614         (aarch64_init_crc32_builtins): New function.
21615         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
21616         (aarch64_crc32_expand_builtin): New.
21617         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
21618         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
21619         __ARM_FEATURE_CRC32 when appropriate.
21620         (TARGET_CRC32): Define.
21621         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
21622         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
21623         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
21624         (aarch64_<crc_variant>): New pattern.
21625         * config/aarch64/arm_acle.h: New file.
21626         * config/aarch64/iterators.md (CRC): New int iterator.
21627         (crc_variant, crc_mode): New int attributes.
21628         * doc/aarch64-acle-intrinsics.texi: New file.
21629         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
21630         Include aarch64-acle-intrinsics.texi.
21631
21632 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
21633
21634         * tree-vect-data-refs.c (vect_grouped_store_supported): New
21635         check for stores group of length 3.
21636         (vect_permute_store_chain): New permutations for stores group of
21637         length 3.
21638         * tree-vect-stmts.c (vect_model_store_cost): Change cost
21639         of vec_perm_shuffle for the new permutations.
21640
21641 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21642
21643         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
21644         table rewriting temporarily on targets not supporting ONE_ONLY.
21645
21646 2014-06-11  Richard Biener  <rguenther@suse.de>
21647
21648         PR middle-end/61437
21649         Revert
21650         2014-06-04  Richard Biener  <rguenther@suse.de>
21651
21652         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
21653         TREE_PUBLIC and DECL_EXTERNAL decls.
21654
21655 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21656
21657         * varasm.c (set_implicit_section): New function.
21658         (resolve_unique_section): Use it to set implicit section
21659         for aliases, too.
21660         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
21661         (default_function_section): Likewise.
21662         (decl_binds_to_current_def_p): Constify argument.
21663         * varasm.h (decl_binds_to_current_def_p): Update prototype.
21664         * asan.c (asan_protect_global): Use
21665         symtab_get_node (decl)->implicit_section.
21666         * symtab.c (dump_symtab_base): Dump implicit sections.
21667         (verify_symtab_base): Verify sanity of sectoins and comdats.
21668         (symtab_resolve_alias): Alias share the section of its target.
21669         (set_section_1): New function.
21670         (symtab_node::set_section): Move here, recurse to aliases.
21671         (verify_symtab): Check for duplicated symtab lists.
21672         * tree-core.h (implicit_section_name_p): Remove.
21673         * tree-vect-data-refs.c: Include varasm.h.
21674         (vect_can_force_dr_alignment_p): Fix conditional on when
21675         decl bints to current definition; use
21676         symtab_get_node (decl)->implicit_section.
21677         * cgraph.c (cgraph_make_node_local_1): Fix section set.
21678         * cgraph.h (struct symtab_node): Add implicit_section.
21679         (set_section): Rename to ...
21680         (set_section_for_node): ... this one.
21681         (set_section): Declare.
21682         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
21683         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
21684         input_overwrite_node, input_varpool_node): Stream implicit_section.
21685         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
21686         removal; it will fail in LTO.
21687
21688 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21689
21690         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
21691         Change second alternative type to f_mcr.
21692         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
21693         and 12th alternatives' types to f_mcr and f_mrc.
21694         (*movdi_aarch64): Same for 12th and 13th alternatives.
21695         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
21696         (aarch64_movtilow_tilow): Change type to fmov.
21697
21698 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
21699
21700         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
21701         (aarch64_save_or_restore_callee_save_registers): Fix layout.
21702
21703 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21704
21705         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
21706         New expander.
21707         (aarch64_sqrdmulh_lane<mode>): Likewise.
21708         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21709         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21710         (aarch64_sqdmulh_laneq<mode>): New expander.
21711         (aarch64_sqrdmulh_laneq<mode>): Likewise.
21712         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
21713         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
21714         (aarch64_sqdmulh_lane<mode>): New expander.
21715         (aarch64_sqrdmulh_lane<mode>): Likewise.
21716         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
21717         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
21718         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
21719         (aarch64_sqdmlal_laneq<mode>): Likewise.
21720         (aarch64_sqdmlsl_lane<mode>): Likewise.
21721         (aarch64_sqdmlsl_laneq<mode>): Likewise.
21722         (aarch64_sqdmlal2_lane<mode>): Likewise.
21723         (aarch64_sqdmlal2_laneq<mode>): Likewise.
21724         (aarch64_sqdmlsl2_lane<mode>): Likewise.
21725         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21726         (aarch64_sqdmull_lane<mode>): Likewise.
21727         (aarch64_sqdmull_laneq<mode>): Likewise.
21728         (aarch64_sqdmull2_lane<mode>): Likewise.
21729         (aarch64_sqdmull2_laneq<mode>): Likewise.
21730
21731 2014-06-10  Richard Biener  <rguenther@suse.de>
21732
21733         PR tree-optimization/61438
21734         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
21735         (eliminate_dom_walker::before_dom_children): Only try to inhibit
21736         insertion of IVs if running PRE.
21737         (eliminate): Adjust.
21738         (pass_pre::execute): Likewise.
21739         (pass_fre::execute): Likewise.
21740
21741 2014-06-10  Richard Biener  <rguenther@suse.de>
21742
21743         PR middle-end/61456
21744         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
21745         Do not use the main variant for the type comparison.
21746         (ncr_compar): Likewise.
21747         (nonoverlapping_component_refs_p): Likewise.
21748
21749 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21750
21751         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
21752         REG_CFA_RESTORE mode.
21753
21754 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
21755
21756         * config/i386/i386.c (expand_vec_perm_pblendv): New.
21757         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
21758         expand_vec_perm_pblendv.
21759
21760 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21761
21762         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
21763         available.
21764         Simplify description of __crc32d and __crc32cd intrinsics.
21765         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
21766         availability.
21767
21768 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
21769
21770         PR lto/61334
21771         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
21772         * config.in: Regenerate.
21773         * configure: Likewise.
21774
21775 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
21776
21777         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
21778         and public vars.
21779         (intersect_static_var_sets): Remove.
21780         (propagate): Do not prune local statics.
21781
21782 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
21783
21784         PR fortran/60928
21785         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
21786         Set lastprivate_firstprivate even if omp_private_outer_ref
21787         langhook returns true.
21788         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
21789         langhook, call unshare_expr on new_var and call
21790         build_outer_var_ref to get the last argument.
21791
21792 2014-06-10  Marek Polacek  <polacek@redhat.com>
21793
21794         PR c/60988
21795         * doc/extend.texi: Add cindex for transparent_union.
21796
21797 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21798
21799         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
21800         init_symbolic_number ().
21801
21802 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
21803
21804         PR middle-end/61141
21805         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
21806         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
21807         (verify_rtl_sharing): Likewise.
21808
21809 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
21810
21811         PR c++/54442
21812         * tree.c (build_qualified_type): Use a canonical type for
21813         TYPE_CANONICAL.
21814
21815 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21816
21817         * config/arm/arm-modes.def: Remove XFmode.
21818
21819 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
21820
21821         PR target/61062
21822         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
21823         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
21824         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
21825         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
21826         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
21827         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
21828         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
21829         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
21830         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
21831
21832 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
21833
21834         * tree-core.h (tree_decl_with_vis): Remove section_name.
21835
21836 2014-06-09  Kito Cheng  <kito@0xlab.org>
21837
21838         * ira.c (ira): Don't call init_caller_save if LRA enabled
21839         since LRA use its own infrastructure to handle that.
21840
21841 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21842
21843         * symtab.c (dump_symtab_base): Update dumping.
21844         (symtab_make_decl_local): Clear only DECL_COMDAT.
21845         * tree-vect-data-refs.c (Check that variable is static before
21846         tampering with sections.
21847         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
21848         (cgraph_create_virtual_clone): Likewise.
21849         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
21850         (decl_section_name, set_decl_section_name): New accessors.
21851         (find_decls_types_r): Do not walk section name
21852         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
21853         (decl_comdat_group, decl_comdat_group_id): Constify.
21854         (decl_section_name, set_decl_section_name): Update.
21855         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
21856         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
21857         (cgraph_make_node_local_1): Clear section and comdat group.
21858         * cgraph.h (set_comdat_group): Sanity check.
21859         (get_section, set_section): New.
21860         * ipa-comdats.c (ipa_comdats): Use get_section.
21861         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
21862         * lto-streamer-out.c: Do not follow section names.
21863         * c-family/c-common.c (handle_section_attribute): Update.
21864         * lto-cgraph.c (lto_output_node): Output section.
21865         (lto_output_varpool_node): Likewise.
21866         (read_comdat_group): Rename to ...
21867         (read_identifier): ... this one.
21868         (read_string_cst): New function.
21869         (input_node, input_varpool_node): Input section names.
21870         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21871         (new_emutls_decl): Update.
21872         (secname_for_decl): Check section names only of static vars.
21873         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
21874         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
21875         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
21876         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
21877         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
21878         * config/mcore/mcore.c (mcore_unique_section): Likewise.
21879         * config/mips/mips.c (mips16_build_function_stub): Likewise.
21880         * config/v850/v850.c (v850_insert_attributes): Likewise.
21881         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
21882         Likewise.
21883         (h8300_handle_tiny_data_attribute): Likewise.
21884         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
21885         (bfin_handle_l2_attribute): Likewise.
21886
21887 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21888
21889         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
21890         remove static initializer.
21891
21892 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21893
21894         * varasm.c (use_blocks_for_decl_p): Check symbol table
21895         instead of alias attribute.
21896         (place_block_symbol): Recurse on aliases.
21897
21898 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21899
21900         * ipa-visibility.c: Include varasm.h
21901         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
21902
21903 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
21904
21905         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
21906         outputting aliases.
21907
21908 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
21909
21910         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
21911         from test_insn into GGC space escape via SET_SRC.
21912
21913 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
21914
21915         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
21916         call statement, if any.
21917         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
21918         statements, if any.  Tidy up.
21919
21920 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
21921
21922         PR target/61431
21923         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
21924         iterators, VSX_D that handles 64-bit types, and VSX_LE that
21925         handles swapping the two 64-bit double words on little endian
21926         systems.  Include V1TImode and optionally TImode in VSX_LE so that
21927         these types are properly swapped.  Change all of the insns and
21928         splits that do the 64-bit swaps to use VSX_LE.
21929         (vsx_le_perm_load_<mode>): Likewise.
21930         (vsx_le_perm_store_<mode>): Likewise.
21931         (splitters for little endian memory operations): Likewise.
21932         (vsx_xxpermdi2_le_<mode>): Likewise.
21933         (vsx_lxvd2x2_le_<mode>): Likewise.
21934         (vsx_stxvd2x2_le_<mode>): Likewise.
21935
21936 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
21937
21938         PR target/61423
21939         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
21940         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
21941         and corresponding splitters.  Zero extend general register
21942         or memory input operand to XMM temporary.  Enable for
21943         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
21944         (floatunssi<mode>2): Update expander predicate.
21945
21946 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
21947
21948         PR rtl-optimization/61325
21949         * lra-constraints.c (process_address_1): Check scale equal to one
21950         to prevent transformation: base + scale * index => base + new_reg.
21951
21952 2014-06-06  Richard Biener  <rguenther@suse.de>
21953
21954         PR tree-optimization/59299
21955         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
21956         a def operand.
21957         (nearest_common_dominator_of_uses): Likewise.
21958         (statement_sink_location): Adjust.  Support sinking loads.
21959
21960 2014-06-06  Martin Jambor  <mjambor@suse.cz>
21961
21962         * ipa-prop.c (get_place_in_agg_contents_list): New function.
21963         (build_agg_jump_func_from_list): Likewise.
21964         (determine_known_aggregate_parts): Renamed to
21965         determine_locally_known_aggregate_parts.  Moved some functionality
21966         to the two functions above, removed bound checks.
21967
21968 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
21969
21970         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
21971         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
21972         (aarch64_progress_pointer): Likewise.
21973         (aarch64_copy_one_part_and_move_pointers): Likewise.
21974         (aarch64_expand_movmen): Likewise.
21975         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
21976         * config/aarch64/aarch64.md (movmem<mode>): New.
21977
21978 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
21979
21980         * targhooks.c (default_add_stmt_cost): Call target specific
21981         hook instead of default one.
21982
21983 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21984
21985         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
21986         endianness instead of host endianness.
21987         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
21988         comments.
21989
21990 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
21991
21992         PR debug/53927
21993         * function.c (instantiate_decls): Process the saved static chain.
21994         (expand_function_start): If not optimizing, save the static chain
21995         onto the stack.
21996         * tree-nested.c (convert_all_function_calls): Always create the static
21997         chain for nested functions if not optimizing.
21998
21999 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22000
22001         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22002
22003 2014-06-06  Richard Biener  <rguenther@suse.de>
22004
22005         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22006         (construct_init_block): Likewise.
22007         (construct_exit_block): Likewise.
22008         (pass_expand::execute): Likewise.
22009         * graphite.c (graphite_transforms): Replace check for current_loops
22010         with a check for > 1 loops.
22011         (pass_graphite_transforms::execute): Adjust.
22012         * ipa-split.c (split_function): Remove check for current_loops.
22013         * omp-low.c (expand_parallel_call): Likewise.
22014         (expand_omp_for_init_counts): Likewise.
22015         (extract_omp_for_update_vars): Likewise.
22016         (expand_omp_for_generic): Likewise.
22017         (expand_omp_sections): Likewise.
22018         (expand_omp_target): Likewise.
22019         * tracer.c (tail_duplicate): Likewise.
22020         (pass_tracer::execute): Likewise.
22021         * trans-mem.c (expand_transaction): Likewise.
22022         * tree-complex.c (expand_complex_div_wide): Likewise.
22023         * tree-eh.c (lower_resx): Likewise.
22024         (cleanup_empty_eh_merge_phis): Likewise.
22025         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22026         current_loops with a check for > 1 loops.
22027         (pass_predcom::execute): Adjust.
22028         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22029         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22030         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22031         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22032         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22033         * tree-switch-conversion.c (process_switch): Likewise.
22034         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22035         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22036         (execute_vrp): Likewise.
22037         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22038
22039 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22040
22041         * rtl.h (insn_location): Declare.
22042         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22043         with UNKNOWN_LOCATION.
22044         * emit-rtl.c (insn_location): New function.
22045         * final.c (notice_source_line): Check that the instruction has a
22046         location before retrieving it and use insn_location.
22047         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22048         * print-rtl.c (print_rtx): Likewise.
22049
22050 2014-06-06  Richard Biener  <rguenther@suse.de>
22051
22052         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22053
22054 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22055
22056         PR tree-optimization/43934
22057         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22058         cost.
22059
22060 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22061
22062         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22063         return NO_REGS for extra address and memory constraints.  Handle
22064         operands that match (or are equivalent to something that matches)
22065         extra constant constraints.  Ignore other non-register operands.
22066
22067 2014-06-06  Alan Modra  <amodra@gmail.com>
22068
22069         PR target/61300
22070         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22071         * doc/tm.texi: Regenerate.
22072         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22073         Use throughout in place of REG_PARM_STACK_SPACE.
22074         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22075         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22076         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22077         prototype_p when incoming.  Use function decl when incoming
22078         to handle K&R style functions.
22079         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22080         (INCOMING_REG_PARM_STACK_SPACE): Define.
22081
22082 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22083
22084         PR target/52472
22085         * cfgexpand.c (expand_debug_expr): Use address space of nested
22086         TREE_TYPE for ADDR_EXPR and MEM_REF.
22087
22088 2014-06-05  Jeff Law  <law@redhat.com>
22089
22090         PR tree-optimization/61289
22091         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22092         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22093         looking for those which match LHS.  All callers changed.
22094         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22095         parameters and code which manipulated them.  All callers changed.
22096         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22097         and DST_MAP parameters.  Simplify invalidation code by just calling
22098         invalidate_equivalences.  All callers changed.
22099         (thread_across_edge): Simplify now that we don't need to maintain
22100         the map of equivalences to invalidate.
22101
22102 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22103             Richard Henderson  <rth@redhat.com>
22104
22105         PR target/46219
22106         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22107         checking for !TARGET_X32.
22108         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22109         (sibcall_intern): New define_insn, plus required peepholes.
22110         (sibcall_pop_intern): Likewise.
22111         (sibcall_value_intern): Likewise.
22112         (sibcall_value_pop_intern): Likewise.
22113
22114 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22115
22116         * tree-inline.c (tree_function_versioning): Check DF info existence
22117         before accessing it.
22118
22119 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22120
22121         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22122         frame_size.
22123         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22124         aarch64_frame hard_fp_offset and frame_size.
22125         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22126         frame_size; remove original_frame_size.
22127         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22128         (aarch64_initial_elimination_offset): Remove frame_size and
22129         offset.  Use aarch64_frame frame_size.
22130
22131 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22132             Jiong Wang  <jiong.wang@arm.com>
22133             Renlin  <renlin.li@arm.com>
22134
22135         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22136         initialization of R30 offset.  Update offset.  Iterate core
22137         regisers upto X30.  Remove X29, X30 specific code.
22138
22139 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22140             Jiong Wang  <jiong.wang@arm.com>
22141
22142         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22143         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22144         (aarch64_register_saved_on_entry): Adjust test.
22145
22146 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22147
22148         * config/aarch64/aarch64.h (machine_function): Move
22149         saved_varargs_size from here...
22150         (aarch64_frame): ... to here.
22151
22152         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22153         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22154         (aarch64_initial_elimination_offset)
22155         (aarch64_setup_incoming_varargs): Adjust location of
22156         saved_varargs_size.
22157
22158 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22159
22160         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22161         layout comment.
22162
22163 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22164             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22165
22166         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22167         mips32r5 entry to use PROCESSOR_P5600.
22168         * config/mips/mips-tables.opt: Regenerate.
22169         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22170         * config/mips/mips.c (mips_fmadd_bypass): New function.
22171         (mips_rtx_cost_data): Add costs for p5600.
22172         (mips_issue_rate): Add support for p5600.
22173         (mips_multipass_dfa_lookahead): Likewise.
22174         * config/mips/mips.h (TUNE_P5600): New define.
22175         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22176         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22177         * config/mips/mips.md: Include p5600.md.
22178         (processor): Add p5600.
22179         * config/mips/p5600.md: New file.
22180
22181 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22182
22183         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22184         * config/i386/predicates.md (palignr_operand): New.
22185         Indicates if permutation is suitable for palignr instruction.
22186
22187 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22188
22189         PR tree-optimization/61319
22190         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22191         stmt belongs to loop.
22192
22193 2014-06-05  Richard Biener  <rguenther@suse.de>
22194
22195         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22196         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22197         (lookup_tmp_var): Adjust.
22198         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22199
22200 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22201
22202         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22203
22204 2014-06-05  Marek Polacek  <polacek@redhat.com>
22205
22206         PR c/49706
22207         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22208
22209 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22210
22211         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22212         CONST_INT.
22213
22214 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22215
22216         PR tree-optimization/61385
22217         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22218
22219 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22220
22221         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22222         changed to use fatal_error.
22223         (main): Ensure lto_wrapper_cleanup is run atexit.
22224
22225 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22226
22227         * lra-constraints.c (valid_address_p): Move earlier in file.
22228         (address_eliminator): New structure.
22229         (satisfies_memory_constraint_p): New function.
22230         (satisfies_address_constraint_p): Likewise.
22231         (process_alt_operands, process_address, curr_insn_transform): Use them.
22232
22233 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22234
22235         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22236         const pointer.
22237         (target_lra_int, default_target_lra_int, this_target_lra_int)
22238         (op_alt_data): Delete.
22239         * lra.h (lra_init): Delete.
22240         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22241         (init_insn_code_data_once): Remove op_alt_data handling.
22242         (finish_insn_code_data_once): Likewise.
22243         (init_op_alt_data): Delete.
22244         (get_static_insn_data): Initialize operand_alternative to null.
22245         (free_insn_recog_data): Cast operand_alternative before freeing it.
22246         (setup_operand_alternative): Take the operand_alternative as
22247         parameter and assume it isn't already cached in the static
22248         insn data.
22249         (lra_set_insn_recog_data): Update accordingly.
22250         (lra_init): Delete.
22251         * ira.c (ira_init): Don't call lra_init.
22252         * target-globals.h (this_target_lra_int): Declare.
22253         (target_globals): Remove lra_int.
22254         (restore_target_globals): Update accordingly.
22255         * target-globals.c: Don't include lra-int.h.
22256         (default_target_globals, save_target_globals): Remove lra_int.
22257
22258 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22259
22260         * recog.h (operand_alternative): Convert reg_class, reject,
22261         matched and matches into bitfields.
22262         (preprocess_constraints): New overload.
22263         (preprocess_insn_constraints): New function.
22264         (preprocess_constraints): Take the insn as parameter.
22265         (recog_op_alt): Change into a pointer.
22266         (target_recog): Add x_op_alt.
22267         * recog.c (asm_op_alt): New variable.
22268         (recog_op_alt): Change into a pointer.
22269         (preprocess_constraints): New overload, replacing the old function
22270         definition with one that doesn't use global state.
22271         (preprocess_insn_constraints): New function.
22272         (preprocess_constraints): Use them.  Take the insn as parameter.
22273         Use asm_op_alt for asms.
22274         (recog_init): Free existing x_op_alt entries.
22275         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22276         pointer const.
22277         (make_early_clobber_and_input_conflicts): Likewise.
22278         (process_bb_node_lives): Pass the insn to process_constraints.
22279         * reg-stack.c (check_asm_stack_operands): Likewise.
22280         (subst_asm_stack_regs): Likewise.
22281         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22282         * regrename.c (build_def_use): Likewise.
22283         * sched-deps.c (sched_analyze_insn): Likewise.
22284         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22285         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22286         (note_invalid_constants): Likewise.
22287         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22288         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22289         const.
22290
22291 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22292
22293         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22294         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22295         alternatives.
22296         (make_early_clobber_and_input_conflicts): Likewise.
22297         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22298
22299 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22300
22301         * recog.h (alternative_class): New function.
22302         (which_op_alt): Return a const recog_op_alt.
22303         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22304         (subst_asm_stack_regs): Likewise.
22305         * config/arm/arm.c (note_invalid_constants): Likewise.
22306         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22307         the operand_alternative; use alternative class instead.
22308         * sel-sched.c (get_reg_class): Likewise.
22309         * regrename.c (build_def_use): Likewise.
22310         (hide_operands, restore_operands, record_out_operands): Update type
22311         accordingly.
22312
22313 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22314
22315         * recog.h (recog_op_alt): Convert to a flat array.
22316         (which_op_alt): New function.
22317         * recog.c (recog_op_alt): Convert to a flat array.
22318         (preprocess_constraints): Update accordingly, grouping all
22319         operands of the same alternative together, rather than the
22320         other way around.
22321         * ira-lives.c (check_and_make_def_conflict): Likewise.
22322         (make_early_clobber_and_input_conflicts): Likewise.
22323         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22324         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22325         (subst_asm_stack_regs): Likewise.
22326         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22327         * regrename.c (hide_operands, record_out_operands): Likewise.
22328         (build_def_use): Likewise.
22329         * sel-sched.c (get_reg_class): Likewise.
22330         * config/arm/arm.c (note_invalid_constants): Likewise.
22331
22332 2014-06-04  Jason Merrill  <jason@redhat.com>
22333
22334         PR c++/51253
22335         PR c++/61382
22336         * gimplify.c (gimplify_arg): Non-static.
22337         * gimplify.h: Declare it.
22338
22339 2014-06-04  Richard Biener  <rguenther@suse.de>
22340
22341         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22342         TREE_PUBLIC and DECL_EXTERNAL decls.
22343
22344 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
22345
22346         * regcprop.c (copyprop_hardreg_forward_1): Account for
22347         HARD_REGNO_CALL_PART_CLOBBERED.
22348
22349 2014-06-04  Richard Biener  <rguenther@suse.de>
22350
22351         * configure.ac: Check whether the underlying type of int64_t
22352         is long or long long.
22353         * configure: Regenerate.
22354         * config.in: Likewise.
22355         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22356         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22357
22358 2014-06-04  Richard Biener  <rguenther@suse.de>
22359
22360         PR tree-optimization/60098
22361         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22362         we hit a kill.
22363         (dse_optimize_stmt): Simplify, now that we found a kill
22364         earlier.
22365
22366 2014-06-04  Richard Biener  <rguenther@suse.de>
22367
22368         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22369         of accesses with non-invariant address.
22370
22371 2014-06-04  Martin Liska  <mliska@suse.cz>
22372
22373         * cgraph.h (cgraph_make_wrapper): New function introduced.
22374         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22375         * ipa-inline.h (inline_analyze_function): The function is global.
22376         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22377
22378 2014-06-04  Martin Liska  <mliska@suse.cz>
22379
22380         * tree.h (private_lookup_attribute_starting): New function.
22381         (lookup_attribute_starting): Likewise.
22382         * tree.c (private_lookup_attribute_starting): Likewise.
22383
22384 2014-06-04  Martin Liska  <mliska@suse.cz>
22385
22386         * cgraph.h (expand_thunk): New argument added.
22387         (address_taken_from_non_vtable_p): New global function.
22388         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22389         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22390         * cgraphunit.c (analyze_function): Likewise.
22391         (assemble_thunks_and_aliases): Argument added to call.
22392         (expand_thunk): New argument forces to produce GIMPLE thunk.
22393
22394 2014-06-04  Martin Liska  <mliska@suse.cz>
22395
22396         * coverage.h (coverage_compute_cfg_checksum): Argument added.
22397         * coverage.c (coverage_compute_cfg_checksum): Likewise.
22398         * profile.c (branch_prob): Likewise.
22399
22400 2014-06-04  Martin Jambor  <mjambor@suse.cz>
22401
22402         PR ipa/61340
22403         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
22404         handler for switch on an ipa_ref_use enum.
22405         * ipa-reference.c (analyze_function): Likewise.
22406
22407 2014-06-04  Kai Tietz  <ktietz@redhat.com>
22408
22409         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
22410         from old call-instruction.
22411
22412 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
22413
22414         * config/aarch64/aarch64.c (aarch64_classify_address)
22415         (aarch64_legitimize_reload_address): Support full addressing modes
22416         for vector modes.
22417         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
22418         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
22419
22420 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22421
22422         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
22423         for OP0.
22424
22425 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22426
22427         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
22428         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
22429
22430 2014-06-03  Kai Tietz  <ktietz@redhat.com>
22431
22432         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
22433         for 64-bit ms-abi.
22434
22435 2014-06-03  Dehao Chen  <dehao@google.com>
22436
22437         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
22438         the same loop.
22439
22440 2014-06-03  Marek Polacek  <polacek@redhat.com>
22441
22442         PR c/60439
22443         * doc/invoke.texi: Document -Wswitch-bool.
22444         * function.c (stack_protect_epilogue): Cast controlling expression of
22445         the switch to int.
22446         * gengtype.c (walk_type): Generate switch expression with its
22447         controlling expression cast to int.
22448
22449 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
22450
22451         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
22452         and attiny841.
22453         * config/avr/avr-tables.opt: Regenerate.
22454         * config/avr/t-multilib: Regenerate.
22455         * doc/avr-mmcu.texi: Regenerate.
22456
22457 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
22458             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22459
22460         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
22461         (ata6617c, ata664251): Add new avr35 devices.
22462         (ata6612c): Add new avr4 device.
22463         (ata6613c, ata6614q): Add new avr5 devices.
22464         * config/avr/avr-tables.opt: Regenerate.
22465         * config/avr/t-multilib: Regenerate.
22466         * doc/avr-mmcu.texi: Regenerate.
22467
22468 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22469
22470         * gcc/config/aarch64/aarch64-builtins.c
22471         (aarch64_types_binop_ssu_qualifiers): New static data.
22472         (TYPES_BINOP_SSU): Define.
22473         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
22474         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
22475         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
22476         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
22477         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
22478         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
22479         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
22480         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
22481         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
22482         suffix to builtin function name, remove cast.
22483         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
22484         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
22485         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
22486
22487 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22488
22489         * gcc/config/aarch64/aarch64-builtins.c
22490         (aarch64_types_binop_uus_qualifiers,
22491         aarch64_types_shift_to_unsigned_qualifiers,
22492         aarch64_types_unsigned_shiftacc_qualifiers): Define.
22493         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
22494         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
22495         sqshlu_n, uqshl_n): Update qualifiers.
22496         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
22497         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
22498         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
22499         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
22500         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
22501         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
22502         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
22503         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
22504         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
22505         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
22506         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
22507         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
22508         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
22509         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
22510         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
22511         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
22512         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
22513         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
22514         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
22515         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
22516         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
22517         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
22518         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
22519         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
22520         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
22521         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
22522         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
22523
22524 2014-06-03  Teresa Johnson  <tejohnson@google.com>
22525
22526         * tree-sra.c (modify_function): Record caller nodes after rebuild.
22527
22528 2014-06-02  Jason Merrill  <jason@redhat.com>
22529
22530         PR c++/61020
22531         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
22532
22533 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22534
22535         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
22536         location == 0.
22537
22538 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22539
22540         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
22541         New pattern.
22542         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
22543         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
22544         * config/aarch64/iterators.md (REVERSE): New iterator.
22545         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
22546         (rev_op): New int_attribute.
22547         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
22548         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
22549         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
22550         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
22551         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
22552         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
22553         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
22554         Replace temporary __asm__ with __builtin_shuffle.
22555
22556 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22557
22558         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
22559         mips64r5.
22560         * config/mips/mips-tables.opt: Regenerate.
22561         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
22562         to use mips_isa_rev rather than ISA_MIPS32R2.
22563         * config/mips/mips.h (ISA_MIPS32R3): New define.
22564         (ISA_MIPS32R5): New define.
22565         (ISA_MIPS64R3): New define.
22566         (ISA_MIPS64R5): New define.
22567         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
22568         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
22569         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
22570         and mips64r5.
22571         (MIPS_ISA_SYNCI_SPEC): Likewise.
22572         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
22573         (LINK_SPEC): Added mips32r3 and mips32r5.
22574         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
22575         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
22576         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
22577         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
22578         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
22579         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
22580         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
22581
22582 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
22583
22584         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
22585         options.
22586         * config/mips/mips.opt (mxpa): New option.
22587         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
22588         assembler.
22589
22590 2014-06-03  Martin Jambor  <mjambor@suse.cz>
22591
22592         PR ipa/61160
22593         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
22594         thunks.
22595
22596 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22597
22598         PR tree-optimization/61328
22599         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
22600         initialization from find_bswap_or_nop_1.
22601         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
22602         in source_expr2 before using the size value the function sets. Also
22603         make use of init_symbolic_number () in both the old place and
22604         find_bswap_or_nop_load () to avoid reading uninitialized memory when
22605         doing recursion in the GIMPLE_BINARY_RHS case.
22606
22607 2014-06-03  Richard Biener  <rguenther@suse.de>
22608
22609         PR tree-optimization/61383
22610         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
22611         stmts can't trap.
22612
22613 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
22614
22615         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
22616         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
22617         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
22618         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
22619         in this file.
22620         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
22621         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
22622         * system.h: ...here and make it unconditional.
22623         * target.def (conditional_register_usage): Mention
22624         define_register_constraint instead of old-style constraint macros.
22625         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
22626         * doc/tm.texi: Regenerate.
22627         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
22628         protected by !USE_MD_CONSTRAINTS.
22629         * config/frv/frv.md: Remove quote from old version of documentation.
22630         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
22631         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
22632         CONST_DOUBLE_OK_FOR_LETTER.
22633         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
22634
22635 2014-06-02  Andrew Pinski  <apinski@cavium.com>
22636
22637         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
22638         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
22639         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
22640         file whose name depends on -mabi= and -mbig-endian.
22641         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
22642         Handle LP64 better and handle ilp32 too.
22643         (MULTILIB_OPTIONS): Delete.
22644         (MULTILIB_DIRNAMES): Delete.
22645
22646 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
22647
22648         * expr.h: Remove prototypes of functions defined in builtins.c.
22649         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
22650         Remove prototypes of functions defined in builtins.c.
22651         * builtins.h: Update prototype list to include all exported functions.
22652         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
22653         no_c99_libc_has_function): Move to targhooks.c
22654         (build_string_literal, build_call_expr_loc_array,
22655         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
22656         to tree.c.
22657         (expand_builtin_object_size, fold_builtin_object_size): Make static.
22658         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
22659         no_c99_libc_has_function): Relocate from builtins.c.
22660         * tree.c: Include builtins.h.
22661         (build_call_expr_loc_array, build_call_expr_loc_vec,
22662         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
22663         from builtins.c.
22664         * fold-const.h (fold_fma): Move prototype to builtins.h.
22665         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
22666         * asan.c: Include builtins.h.
22667         * cfgexpand.c: Likewise.
22668         * convert.c: Likewise.
22669         * emit-rtl.c: Likewise.
22670         * except.c: Likewise.
22671         * expr.c: Likewise.
22672         * fold-const.c: Likewise.
22673         * gimple-fold.c: Likewise.
22674         * gimple-ssa-strength-reduction.c: Likewise.
22675         * gimplify.c: Likewise.
22676         * ipa-inline.c: Likewise.
22677         * ipa-prop.c: Likewise.
22678         * lto-streamer-out.c: Likewise.
22679         * stmt.c: Likewise.
22680         * tree-inline.c: Likewise.
22681         * tree-object-size.c: Likewise.
22682         * tree-sra.c: Likewise.
22683         * tree-ssa-ccp.c: Likewise.
22684         * tree-ssa-forwprop.c: Likewise.
22685         * tree-ssa-loop-ivcanon.c: Likewise.
22686         * tree-ssa-loop-ivopts.c: Likewise.
22687         * tree-ssa-math-opts.c: Likewise.
22688         * tree-ssa-reassoc.c: Likewise.
22689         * tree-ssa-threadedge.c: Likewise.
22690         * tree-streamer-in.c: Likewise.
22691         * tree-vect-data-refs.c: Likewise.
22692         * tree-vect-patterns.c: Likewise.
22693         * tree-vect-stmts.c: Likewise.
22694         * config/aarch64/aarch64.c: Likewise.
22695         * config/alpha/alpha.c: Likewise.
22696         * config/arc/arc.c: Likewise.
22697         * config/arm/arm.c: Likewise.
22698         * config/avr/avr.c: Likewise.
22699         * config/bfin/bfin.c: Likewise.
22700         * config/c6x/c6x.c: Likewise.
22701         * config/cr16/cr16.c: Likewise.
22702         * config/cris/cris.c: Likewise.
22703         * config/epiphany/epiphany.c: Likewise.
22704         * config/fr30/fr30.c: Likewise.
22705         * config/frv/frv.c: Likewise.
22706         * config/h8300/h8300.c: Likewise.
22707         * config/i386/i386.c: Likewise.
22708         * config/i386/winnt.c: Likewise.
22709         * config/ia64/ia64.c: Likewise.
22710         * config/iq2000/iq2000.c: Likewise.
22711         * config/lm32/lm32.c: Likewise.
22712         * config/m32c/m32c.c: Likewise.
22713         * config/m32r/m32r.c: Likewise.
22714         * config/m68k/m68k.c: Likewise.
22715         * config/mcore/mcore.c: Likewise.
22716         * config/mep/mep.c: Likewise.
22717         * config/microblaze/microblaze.c: Likewise.
22718         * config/mips/mips.c: Likewise.
22719         * config/mmix/mmix.c: Likewise.
22720         * config/mn10300/mn10300.c: Likewise.
22721         * config/moxie/moxie.c: Likewise.
22722         * config/msp430/msp430.c: Likewise.
22723         * config/nds32/nds32.c: Likewise.
22724         * config/pa/pa.c: Likewise.
22725         * config/pdp11/pdp11.c: Likewise.
22726         * config/picochip/picochip.c: Likewise.
22727         * config/rl78/rl78.c: Likewise.
22728         * config/rs6000/rs6000.c: Likewise.
22729         * config/rx/rx.c: Likewise.
22730         * config/s390/s390.c: Likewise.
22731         * config/score/score.c: Likewise.
22732         * config/sh/sh.c: Likewise.
22733         * config/sparc/sparc.c: Likewise.
22734         * config/spu/spu.c: Likewise.
22735         * config/stormy16/stormy16.c: Likewise.
22736         * config/tilegx/tilegx.c: Likewise.
22737         * config/tilepro/tilepro.c: Likewise.
22738         * config/v850/v850.c: Likewise.
22739         * config/vax/vax.c: Likewise.
22740         * config/xtensa/xtensa.c: Likewise.
22741
22742 2014-06-02  Jeff Law  <law@redhat.com>
22743
22744         PR rtl-optimization/61094
22745         * ree.c (combine_reaching_defs): Do not reextend an insn if it
22746         was marked as do_no_reextend.  If a copy is needed to eliminate
22747         an extension, then mark it as do_not_reextend.
22748
22749 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22750
22751         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
22752
22753 2014-06-02  Richard Henderson  <rth@redhat.com>
22754
22755         PR target/61336
22756         * config/alpha/alpha.c (print_operand_address): Allow symbolic
22757         addresses inside asms.  Use output_operand_lossage instead of
22758         gcc_unreachable.
22759
22760 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
22761
22762         PR target/61239
22763         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
22764         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
22765
22766 2014-06-02  Tom de Vries  <tom@codesourcery.com>
22767
22768         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
22769         case that x has VOIDmode.
22770
22771 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
22772
22773         * varasm.c (copy_constant): Delete function.
22774         (build_constant_desc): Don't call it.
22775
22776 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22777
22778         PR target/61154
22779         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
22780         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
22781         with immediate_operand.
22782
22783 2014-06-02  Andreas Schwab  <schwab@suse.de>
22784
22785         * config/ia64/ia64.c
22786         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
22787         pending_data_specs first.
22788
22789 2014-06-02  Richard Biener  <rguenther@suse.de>
22790
22791         PR tree-optimization/61378
22792         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
22793         valueized_anything.
22794
22795 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
22796
22797         * config/i386/constraints.md (Bw): Rename from 'w'.
22798         (Bz): Rename from 'z'.
22799         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
22800
22801 2014-06-01  Kai Tietz  <ktietz@redhat.com>
22802
22803         PR target/61377
22804         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
22805         * config/i386/i386.md (sibcall_insn_operand): Use Bs
22806         instead of m constraint.
22807
22808 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
22809
22810         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
22811         a separate alternative where the scratch operand 2 is marked as
22812         early clobber.
22813
22814 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
22815
22816         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
22817         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
22818         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
22819         and __builtins_arm_get_fpscr.
22820         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
22821         __builtins_arm_get_fpscr.
22822         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
22823         __builtins_arm_ldfpscr.
22824         (arm_atomic_assign_expand_fenv): New function.
22825         * config/arm/vfp.md (set_fpscr): New pattern.
22826         (get_fpscr) : Likewise.
22827         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
22828         VUNSPEC_SET_FPSCR.
22829         * doc/extend.texi (AARCH64 Built-in Functions) : Document
22830         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
22831
22832 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
22833
22834         * asan.c (report_error_func): Add SLOW_P argument, use
22835         BUILT_IN_ASAN_*_N if set.
22836         (build_check_stmt): Likewise.
22837         (instrument_derefs): If T has insufficient alignment,
22838         force same handling as for odd sizes.
22839
22840         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
22841         BUILT_IN_ASAN_REPORT_STORE_N): New.
22842         * asan.c (struct asan_mem_ref): Change access_size type to
22843         HOST_WIDE_INT.
22844         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
22845         update_mem_ref_hash_table): Likewise.
22846         (asan_mem_ref_hasher::hash): Hash in a HWI.
22847         (report_error_func): Change size_in_bytes argument to HWI.
22848         Use *_N builtins if size_in_bytes is larger than 16 or not power of
22849         two.
22850         (build_shadow_mem_access): New function.
22851         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
22852         Handle size_in_bytes not power of two or larger than 16.
22853         (instrument_derefs): Don't give up if size_in_bytes is not
22854         power of two or is larger than 16.
22855
22856 2014-05-30  Kai Tietz  <ktietz@redhat.com>
22857
22858         PR target/60104
22859         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
22860         for sibling-tail-calls.
22861         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
22862         to its use.
22863         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
22864         (sibcall_insn_operand): Add check for sibcall_memory_operand.
22865
22866 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22867
22868         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
22869         * config/avr/avr-tables.opt: Regenerate.
22870         * config/avr/t-multilib: Regenerate.
22871         * doc/avr-mmcu.texi: Regenerate.
22872
22873 2014-05-30  Ian Lance Taylor  <iant@google.com>
22874
22875         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
22876         target("sse").
22877
22878 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22879
22880         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
22881         Redefine as true.
22882
22883 2014-05-30  Tom de Vries  <tom@codesourcery.com>
22884
22885         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22886         * lra.c (initialize_lra_reg_info_element): Add init of
22887         actual_call_used_reg_set field.
22888         (lra): Call lra_create_live_ranges before lra_inheritance for
22889         -fuse-caller-save.
22890         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22891         -fuse-caller-save.
22892         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
22893         instead of call_used_reg_set for -fuse-caller-save.
22894         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22895
22896 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22897
22898         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
22899         to mov_imm.
22900         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
22901
22902 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
22903
22904         * ira.c (ira_get_dup_out_num): Check for output operands at
22905         the start of the loop.  Handle cases where an included alternative
22906         follows an excluded one.
22907
22908 2014-05-29  Mike Stump  <mikestump@comcast.net>
22909
22910         PR debug/61352
22911         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
22912         post ld passes when lto is used.
22913
22914 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
22915
22916         PR rtl-optimization/61325
22917         * lra-constraints.c (process_address): Rename to process_address_1.
22918         (process_address): New function.
22919
22920 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
22921
22922         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
22923         TYPES_BINOPV): New static data.
22924         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
22925         New builtin.
22926         * config/aarch64/aarch64-simd.md (aarch64_ext,
22927         aarch64_im_lane_boundsi): New patterns.
22928         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
22929         patterns for EXT.
22930         (aarch64_evpc_ext): New function.
22931
22932         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
22933
22934         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
22935         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
22936         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
22937         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
22938         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
22939
22940 2014-05-29  Tom de Vries  <tom@codesourcery.com>
22941
22942         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
22943
22944 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
22945             Richard Sandiford  <rdsandiford@googlemail.com>
22946
22947         * arm/iterators.md (shiftable_ops): New code iterator.
22948         (t2_binop0, arith_shift_insn): New code attributes.
22949         * arm/predicates.md (shift_nomul_operator): New predicate.
22950         * arm/arm.md (insn_enabled): Delete.
22951         (enabled): Remove insn_enabled test.
22952         (*arith_shiftsi): Delete.  Replace with ...
22953         (*<arith_shift_insn>_multsi): ... new pattern.
22954         (*<arith_shift_insn>_shiftsi): ... new pattern.
22955         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
22956
22957 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
22958             Tom de Vries  <tom@codesourcery.com>
22959
22960         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
22961         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
22962         clobber.
22963         (mips_split_call): Use POST_CALL_TMP_REG.
22964         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
22965
22966 2014-05-29  Tom de Vries  <tom@codesourcery.com>
22967
22968         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
22969         with #ifdef STACK_REGS.
22970
22971 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
22972
22973         * varasm.c (get_variable_section): Walk aliases.
22974         (place_block_symbol): Walk aliases.
22975
22976 2014-05-28  Tom de Vries  <tom@codesourcery.com>
22977
22978         Revert:
22979         2014-05-28  Tom de Vries  <tom@codesourcery.com>
22980
22981         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
22982         * lra.c (initialize_lra_reg_info_element): Add init of
22983         actual_call_used_reg_set field.
22984         (lra): Call lra_create_live_ranges before lra_inheritance for
22985         -fuse-caller-save.
22986         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
22987         -fuse-caller-save.
22988         * lra-constraints.c (need_for_call_save_p): Use
22989         actual_call_used_reg_set instead of call_used_reg_set for
22990         -fuse-caller-save.
22991         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
22992
22993 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
22994
22995         * doc/md.texi: Document that the % constraint character must
22996         be at the beginning of the string.
22997         * genoutput.c (validate_insn_alternatives): Check that '=',
22998         '+' and '%' only appear at the beginning of a constraint.
22999         * ira.c (commutative_constraint_p): Delete.
23000         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23001         at the start of the string.
23002         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23003         duplicate '='s.
23004         * config/arm/neon.md (bicdi3_neon): Likewise.
23005         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23006         (slt_si, sltu_si): Likewise.
23007         * config/vax/vax.md (sbcdi3): Likewise.
23008         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23009         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23010         (mul64): Move '%' to beginning of constraint.
23011         * config/arm/arm.md (*xordi3_insn): Likewise.
23012         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23013         (xorsi3): Likewise.
23014
23015 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23016
23017         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23018
23019 2014-05-28  Jason Merrill  <jason@redhat.com>
23020
23021         PR c++/47202
23022         * cgraph.h (symtab_node::get_comdat_group_id): New.
23023         * cgraphunit.c (analyze_functions): Call it.
23024         * symtab.c (dump_symtab_node): Likewise.
23025         * tree.c (decl_comdat_group_id): New.
23026         * tree.h: Declare it.
23027         * lto-streamer-out.c (write_symbol): Use it.
23028         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23029
23030 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23031
23032         PR bootstrap/PR61146
23033         * wide-int.cc: Do not include longlong.h when compiling with clang.
23034
23035 2014-05-28  Richard Biener  <rguenther@suse.de>
23036
23037         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23038         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23039         (vrp_visit_assignment_or_call): Print less vertical space.
23040         (vrp_visit_stmt): Likewise.
23041         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23042         VR_VARYING range consider recording it as copy.
23043
23044 2014-05-28  Richard Biener  <rguenther@suse.de>
23045
23046         Revert
23047         2014-05-28  Richard Biener  <rguenther@suse.de>
23048
23049         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23050
23051 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23052
23053         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23054         sufficiently aligned and an offset is used at the same time.
23055         (expand_expr_real_1): Likewise.
23056
23057 2014-05-28  Richard Biener  <rguenther@suse.de>
23058
23059         PR middle-end/61045
23060         * fold-const.c (fold_comparison): When folding
23061         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23062         the sign of the remaining constant operand stays the same.
23063
23064 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23065
23066         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23067         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23068         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23069         to the assembler.
23070         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23071         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23072         (m32bit-doubles) Likewise.
23073         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23074         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23075         option for RL78.
23076
23077 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23078
23079         * configure.ac ($gcc_cv_ld_clearcap): New test.
23080         * configure: Regenerate.
23081         * config.in: Regenerate.
23082         * config/sol2.opt (mclear-hwcap): New option.
23083         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23084         * config/sol2-clearcap.map: Moved here from
23085         testsuite/gcc.target/i386/clearcap.map.
23086         * config/sol2-clearcapv2.map: Move here from
23087         gcc.target/i386/clearcapv2.map.
23088         * config/t-sol2 (install): Depend on install-clearcap-map.
23089         (install-clearcap-map): New target.
23090         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23091         -mclear-hwcap.
23092
23093 2014-05-28  Richard Biener  <rguenther@suse.de>
23094
23095         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23096         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23097         ... here and remove the rest.
23098         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23099
23100 2014-05-28  Richard Biener  <rguenther@suse.de>
23101
23102         PR tree-optimization/61335
23103         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23104         new range fails, drop to varying.
23105
23106 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23107
23108         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23109         (CPP_SPEC): Add entry for -mcpu=8548.
23110         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23111         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23112
23113 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23114
23115         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23116         * lra.c (initialize_lra_reg_info_element): Add init of
23117         actual_call_used_reg_set field.
23118         (lra): Call lra_create_live_ranges before lra_inheritance for
23119         -fuse-caller-save.
23120         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23121         -fuse-caller-save.
23122         * lra-constraints.c (need_for_call_save_p): Use
23123         actual_call_used_reg_set instead of call_used_reg_set for
23124         -fuse-caller-save.
23125         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23126
23127 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23128             Tom de Vries  <tom@codesourcery.com>
23129
23130         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23131         to gccoptlist.
23132         (@item -fuse-caller-save): New item.
23133
23134 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23135             Tom de Vries  <tom@codesourcery.com>
23136
23137         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23138         OPT_fuse_caller_save.
23139
23140 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23141             Tom de Vries  <tom@codesourcery.com>
23142
23143         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23144         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23145         get_call_reg_set_usage.
23146         * resource.c (mark_set_resources, mark_target_live_regs): Use
23147         get_call_reg_set_usage.
23148         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23149         field.
23150         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23151         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23152         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23153         * ira-build.c (ira_create_allocno): Init
23154         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23155         (create_cap_allocno, propagate_allocno_info)
23156         (propagate_some_info_from_allocno)
23157         (copy_info_to_removed_store_destinations): Handle
23158         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23159         * ira-costs.c (ira_tune_allocno_costs): Use
23160         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23161
23162 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23163             Tom de Vries  <tom@codesourcery.com>
23164
23165         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23166         and function_used_regs_valid fields.
23167         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23168         find_all_hard_reg_sets.
23169         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23170         (get_call_reg_set_usage): New function.
23171         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23172         * regs.h (get_call_reg_set_usage): Declare.
23173
23174 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23175
23176         PR libgcc/61152
23177         * config/dbx.h (License): Add Runtime Library Exception.
23178         * config/newlib-stdint.h (License): Same.
23179         * config/rtems.h (License): Same
23180         * config/initfini-array.h (License): Same
23181         * config/v850/v850.h (License): Same.
23182         * config/v850/v850-opts.h (License): Same
23183         * config/v850/rtems.h (License): Same.
23184
23185 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23186
23187         PR target/61044
23188         * doc/extend.texi (Local Labels): Note that label differences are
23189         not supported for AVR.
23190
23191 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23192             Olivier Hainque  <hainque@adacore.com>
23193
23194         * rtl.h (set_for_reg_notes): Declare.
23195         * emit-rtl.c (set_for_reg_notes): New function.
23196         (set_unique_reg_note): Use it.
23197         * optabs.c (add_equal_note): Likewise
23198
23199 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23200
23201         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23202         Use <w> for the register in assembly template.
23203         (stack_protect_test): Use the mode of operands[0] for the result.
23204         (stack_protect_test_<mode>): Use <w> for the register
23205         in assembly template.
23206
23207 2014-05-27  DJ Delorie  <dj@redhat.com>
23208
23209         * config/rx/rx.c (add_vector_labels): New.
23210         (rx_output_function_prologue): Call it.
23211         (rx_handle_func_attribute): Don't require empty arguments.
23212         (rx_handle_vector_attribute): New.
23213         (rx_attribute_table): Add "vector" attribute.
23214         * doc/extend.texi (interrupt, vector): Document new/changed
23215         RX-specific attributes.
23216
23217         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23218
23219 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23220
23221         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23222         predicate to detect a negative quotient.
23223
23224 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23225
23226         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23227         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23228         Add X - Y CMP 0 to X CMP Y transformation.
23229         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23230
23231 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23232
23233         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23234         before printing.
23235
23236 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23237
23238         * config/mips/mips.c: Add include of cgraph.h.
23239
23240 2014-05-27  Richard Biener  <rguenther@suse.de>
23241
23242         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23243
23244 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23245
23246         PR libgcc/61152
23247         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23248         * config/arm/arm-cores.def (License): Same.
23249         * config/arm/arm-opts.h (License): Same.
23250         * config/arm/aout.h (License): Same.
23251         * config/arm/bpabi.h (License): Same.
23252         * config/arm/elf.h (License): Same.
23253         * config/arm/linux-elf.h (License): Same.
23254         * config/arm/linux-gas.h (License): Same.
23255         * config/arm/netbsd-elf.h (License): Same.
23256         * config/arm/uclinux-eabi.h (License): Same.
23257         * config/arm/uclinux-elf.h (License): Same.
23258         * config/arm/vxworks.h (License): Same.
23259
23260 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23261
23262         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23263         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23264         (arm_init_neon_builtins): Handle NEON_BSWAP.
23265         Define required type nodes.
23266         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23267         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23268         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23269         * config/arm/iterators.md (VDQHSD): New mode iterator.
23270
23271 2014-05-27  Richard Biener  <rguenther@suse.de>
23272
23273         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23274         Try using literal operands when comparing value-ranges failed.
23275
23276 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23277
23278         * ira.c (commutative_operand): Adjust for change to recog_data.
23279         [Missing from previous commit.]
23280
23281 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23282
23283         * system.h (TEST_BIT): New macro.
23284         * recog.h (alternative_mask): New type.
23285         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23286         (recog_data_d): Replace alternative_enabled_p array with
23287         enabled_alternatives.
23288         (target_recog): New structure.
23289         (default_target_recog, this_target_recog): Declare.
23290         (get_enabled_alternatives, recog_init): Likewise.
23291         * recog.c (default_target_recog, this_target_recog): New variables.
23292         (get_enabled_alternatives): New function.
23293         (extract_insn): Use it.
23294         (recog_init): New function.
23295         (preprocess_constraints, constrain_operands): Adjust for change to
23296         recog_data.
23297         * postreload.c (reload_cse_simplify_operands): Likewise.
23298         * reload.c (find_reloads): Likewise.
23299         * ira-costs.c (record_reg_classes): Likewise.
23300         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23301         all alternatives after a disabled one would be skipped.
23302         (ira_implicitly_set_insn_hard_regs): Likewise.
23303         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23304         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23305         with enabled_alternatives.
23306         * lra.c (free_insn_recog_data): Update accordingly.
23307         (lra_update_insn_recog_data): Likewise.
23308         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23309         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23310         only_alternative as part of the enabled mask.
23311         * target-globals.h (this_target_recog): Declare.
23312         (target_globals): Add a recog field.
23313         (restore_target_globals): Restore this_target_recog.
23314         * target-globals.c: Include recog.h.
23315         (default_target_globals): Initialize recog field.
23316         (save_target_globals): Likewise.
23317         * reginfo.c (reinit_regs): Call recog_init.
23318         * toplev.c (backend_init_target): Likewise.
23319
23320 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23321
23322         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23323         rather than any named insn's code.
23324
23325 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23326
23327         PR libgcc/61152
23328         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23329         * config/arm/arm-cores.def (License): Same.
23330
23331 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23332
23333         * tree.h (decl_comdat_group): Declare.
23334         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23335         * tree.c (decl_comdat_group): Here.
23336
23337 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23338
23339         PR rtl-optimization/61222
23340         * combine.c (simplify_shift_const_1): When moving a PLUS outside
23341         the shift, truncate the PLUS operand to the result mode.
23342
23343 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
23344
23345         PR target/61271
23346         * config/i386/i386.c (ix86_rtx_costs)
23347         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23348         Fix condition.
23349
23350 2014-05-26  Martin Jambor  <mjambor@suse.cz>
23351
23352         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23353         subreg uses.
23354
23355 2014-05-26  Richard Biener  <rguenther@suse.de>
23356
23357         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23358         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23359         Provide specializations.
23360         (wi::int_traits <HOST_WIDE_INT>,
23361         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23362
23363 2014-05-26  Alan Modra  <amodra@gmail.com>
23364
23365         PR target/61098
23366         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23367         params and return a bool.  Remove dead code.  Update comment.
23368         Assert we have a const_int source.  Remove bogus code from
23369         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
23370         handling of constants > 2G and reg_equal note, from..
23371         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
23372         return value.  Update comment.  If we can, use a new pseudo
23373         for intermediate calculations.
23374         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23375         prototype.
23376         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23377         call to rs6000_emit_set_const in splitter.
23378         (movdi_internal64+2, +3): Likewise.
23379
23380 2014-05-26  Richard Biener  <rguenther@suse.de>
23381
23382         * system.h: Define __STDC_FORMAT_MACROS before
23383         including inttypes.h.
23384         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23385         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23386         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23387         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23388         HOST_WIDEST_INT_C): Remove.
23389         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23390         if C99 inttypes.h is not available.
23391         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23392         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
23393         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
23394         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
23395         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
23396         (struct output_info): Likewise.
23397         (print_statistics): Adjust.
23398         (dump_bitmap_statistics): Likewise.
23399         * bt-load.c (migrate_btr_defs): Print with PRId64.
23400         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
23401         (MAX_SAFE_MULTIPLIER): Adjust.
23402         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
23403         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
23404         dump_cgraph_node): Likewise.
23405         * final.c (dump_basic_block_info): Likewise.
23406         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
23407         * gcov.c (format_gcov): Likewise.
23408         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
23409         for calculation.
23410         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
23411         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
23412         (inline_small_functions, dump_overall_stats, dump_inline_stats):
23413         Use PRId64 for dumping.
23414         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
23415         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
23416         (add_allocno_hard_regs): Adjust.
23417         * loop-doloop.c (doloop_modify): Print using PRId64.
23418         * loop-iv.c (inverse): Compute in uint64_t.
23419         (determine_max_iter, iv_number_of_iterations): Likewise.
23420         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
23421         Print using PRId64.
23422         * lto-streamer-out.c (write_symbol): Use uint64_t.
23423         * mcf.c (CAP_INFINITY): Use int64_t maximum.
23424         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
23425         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
23426         * modulo-sched.c (const_iteration_count): Use int64_t.
23427         (sms_schedule): Dump using PRId64.
23428         * predict.c (dump_prediction): Likewise.
23429         * pretty-print.h (pp_widest_integer): Remove.
23430         * profile.c (get_working_sets, is_edge_inconsistent,
23431         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
23432         * tree-pretty-print.c (pp_double_int): Remove case handling
23433         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
23434         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
23435         and adjust users.
23436         (pass_optimize_bswap::execute): Remove restriction on hosts.
23437         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
23438         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23439         * tree.c (widest_int_cst_value): Remove.
23440         * tree.h (widest_int_cst_value): Likewise.
23441         * value-prof.c (dump_histogram_value): Print using PRId64.
23442         * gengtype.c (main): Also inject int64_t.
23443         * ggc-page.c (struct max_alignment): Use int64_t.
23444         * alloc-pool.c (struct allocation_object_def): Likewise.
23445         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
23446         for computation.
23447         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
23448         * doc/tm.texi: Regenerated.
23449         * gengtype-lex.l (IWORD): Handle [u]int64_t.
23450         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
23451         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
23452         mmix_output_register_setting): Use [u]int64_t in prototypes.
23453         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
23454         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
23455         mmix_output_octa, mmix_output_shifted_value): Adjust.
23456         (mmix_intval): Adjust.  Remove unreachable case.
23457         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
23458
23459 2014-05-26  Richard Biener  <rguenther@suse.de>
23460
23461         * configure.ac: Drop __int64 type check.  Insist that we
23462         found uint64_t and int64_t.
23463         * hwint.h (HOST_BITS_PER___INT64): Remove.
23464         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
23465         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
23466         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
23467         (HOST_WIDEST_FAST_INT): Remove __int64 case.
23468         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
23469         for dst_q_src_df_rms_cdt.
23470         * configure: Regenerate.
23471         * config.in: Likewise.
23472
23473 2014-05-26  Michael Tautschnig  <mt@debian.org>
23474
23475         PR target/61249
23476         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
23477         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
23478
23479 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23480
23481         PR rtl-optimization/61278
23482         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
23483
23484 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
23485
23486         PR rtl-optimization/61220
23487         Part of PR rtl-optimization/61225
23488         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
23489         insn; skip split_edge for a block with only one successor.
23490
23491 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23492
23493         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
23494         for variables.
23495
23496 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23497
23498         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
23499         (update_vtable_references): New function.
23500         (function_and_variable_visibility): Rewrite also vtable initializers.
23501         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
23502
23503 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23504
23505         * ggc.h (ggc_grow): New function.
23506         * ggc-none.c (ggc_grow): New function.
23507         * ggc-page.c (ggc_grow): Likewise.
23508
23509 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23510
23511         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
23512         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
23513         comdat_can_be_unshared_p, cgraph_externally_visible_p,
23514         varpool_externally_visible_p, can_replace_by_local_alias,
23515         update_visibility_by_resolution_info, function_and_variable_visibility,
23516         pass_data_ipa_function_and_variable_visibility,
23517         make_pass_ipa_function_and_variable_visibility,
23518         whole_program_function_and_variable_visibility,
23519         pass_data_ipa_whole_program_visibility,
23520         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
23521         * cgraph.h (cgraph_local_node_p): Declare.
23522         * ipa-visibility.c: New file.
23523         * Makefile.in (OBJS): Add ipa-visiblity.o
23524
23525 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23526
23527         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
23528         that var decl is available.
23529
23530 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23531
23532         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
23533         symtab_node pointer.
23534         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
23535         (find_decls_types_r): Do not walk COMDAT_GROUP.
23536         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
23537         * varasm.c (make_decl_one_only): Use set_comdat_group;
23538         create node if needed.
23539         * ipa-inline-transform.c (save_inline_function_body): Update
23540         way we decl->symtab mapping.
23541         * symtab.c (symtab_hash, hash_node, eq_node
23542         symtab_insert_node_to_hashtable): Remove.
23543         (symtab_register_node): Update.
23544         (symtab_unregister_node): Update.
23545         (symtab_get_node): Reimplement as inline function.
23546         (symtab_add_to_same_comdat_group): Update.
23547         (symtab_dissolve_same_comdat_group_list): Update.
23548         (dump_symtab_base): Update.
23549         (verify_symtab_base): Update.
23550         (symtab_make_decl_local): Update.
23551         (fixup_same_cpp_alias_visibility): Update.
23552         (symtab_nonoverwritable_alias): Update.
23553         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
23554         * ipa.c (update_visibility_by_resolution_info): UPdate.
23555         * bb-reorder.c: Include cgraph.h
23556         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
23557         with comdat groups.
23558         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
23559         * cgraph.c (cgraph_get_create_node): Update.
23560         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
23561         and comdat_group_.
23562         (symtab_get_node): Make inline.
23563         (symtab_insert_node_to_hashtable): Remove.
23564         (symtab_can_be_discarded): Update.
23565         (decl_comdat_group): New function.
23566         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
23567         Update.
23568         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
23569         comdat group name.
23570         (read_comdat_group): New function.
23571         (input_node, input_varpool_node): Use it.
23572         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
23573         comdat groups.
23574         * mips.c (mips_start_unique_function): Likewise.
23575         (ix86_code_end): Likewise.
23576         (rs6000_code_end): Likweise.
23577         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
23578
23579 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23580
23581         * gengtype-state.c (fatal_reading_state): Bring offline.
23582         * optabs.c (widening_optab_handler): Bring offline.
23583         * optabs.h (widening_optab_handler): Likewise.
23584         * final.c (get_attr_length_1): Likewise.
23585
23586 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
23587
23588         * sched-int.h (sd_iterator_cond): Manually tail recurse.
23589
23590 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23591
23592         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
23593         (ppc440-compare): Include shift with dot.
23594         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
23595         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
23596         without dot.
23597         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
23598         without dot.
23599         (e6500_sfx2): Include it.
23600         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
23601         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
23602         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
23603         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
23604         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
23605         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
23606         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
23607         *lshiftrt_internal1le, *lshiftrt_internal1be,
23608         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
23609         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
23610         *rotldi3_internal10le, *rotldi3_internal10be,
23611         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
23612         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
23613         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
23614         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
23615         define_insns): Use type "shift" in the appropriate alternatives.
23616
23617 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23618
23619         * config/rs6000/rs6000.md (type): Add "logical".  Delete
23620         "fast_compare".
23621         (dot): Adjust comment.
23622         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
23623         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
23624         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
23625         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
23626         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
23627         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
23628         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
23629         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23630
23631         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23632         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23633         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23634         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23635         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23636         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23637         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23638         * config/rs6000/8540.md (ppc8540_su): Adjust.
23639         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23640         cell-cmp-microcoded): Adjust.
23641         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23642         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23643         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23644         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23645         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23646         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23647         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23648         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23649         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23650         Adjust.
23651         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23652         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
23653         Adjust.  Adjust comment.
23654         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23655         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23656
23657 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23658
23659         * config/rs6000/rs6000.md (type): Add "add".
23660         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
23661         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
23662         define_insns): Use it.
23663         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
23664
23665         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23666         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
23667         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23668         * config/rs6000/601.md (ppc601-integer): Adjust.
23669         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23670         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23671         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23672         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23673         * config/rs6000/8540.md (ppc8540_su): Adjust.
23674         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23675         cell-cmp-microcoded): Adjust.
23676         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
23677         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23678         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
23679         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
23680         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
23681         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23682         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
23683         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
23684         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
23685         Adjust.
23686         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
23687         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
23688         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23689         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
23690
23691 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23692
23693         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
23694         "delayed_compare", "var_delayed_compare".
23695         (var_shift): New attribute.
23696         (cell_micro): Adjust.
23697         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
23698         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
23699         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
23700         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
23701         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
23702         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
23703         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
23704         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
23705         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
23706         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
23707         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
23708         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
23709         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
23710         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
23711         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
23712         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
23713         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
23714         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
23715         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
23716         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
23717         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
23718         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
23719         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
23720         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23721         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23722
23723         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
23724         * config/rs6000/440.md (ppc440-integer): Adjust.
23725         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
23726         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
23727         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
23728         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
23729         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
23730         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
23731         * config/rs6000/8540.md (ppc8540_su): Adjust.
23732         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
23733         cell-cmp-microcoded): Adjust.
23734         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
23735         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23736         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
23737         e500mc64_delayed): Adjust.
23738         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
23739         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
23740         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
23741         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
23742         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
23743         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
23744         power6-delayed-compare, power6-var-delayed-compare): Adjust.
23745         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
23746         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
23747         Adjust comment.
23748         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
23749         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23750
23751 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23752
23753         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
23754         (bits): New mode_attr.
23755         (idiv_ldiv): Delete mode_attr.
23756         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
23757         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23758         rs6000_adjust_priority, is_nonpipeline_insn,
23759         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23760
23761         * config/rs6000/40x.md (ppc403-idiv): Adjust.
23762         * config/rs6000/440.md (ppc440-idiv): Adjust.
23763         * config/rs6000/476.md (ppc476-idiv): Adjust.
23764         * config/rs6000/601.md (ppc601-idiv): Adjust.
23765         * config/rs6000/603.md (ppc603-idiv): Adjust.
23766         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
23767         ppc620-ldiv): Adjust.
23768         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
23769         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
23770         * config/rs6000/8540.md (ppc8540_divide): Adjust.
23771         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
23772         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
23773         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
23774         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
23775         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
23776         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
23777         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
23778         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
23779         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
23780         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
23781         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
23782         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
23783         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
23784         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
23785         * config/rs6000/titan.md (titan_fxu_div): Adjust.
23786
23787 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23788
23789         * config/rs6000/rs6000.md (type): Delete "insert_word",
23790         "insert_dword".  Add "insert".
23791         (size): Update comment.
23792         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23793         insn_must_be_first_in_group): Adjust.
23794         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
23795         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
23796         *insvsi_internal6, insvdi_internal): Adjust.
23797
23798         * config/rs6000/40x.md (ppc403-integer): Adjust.
23799         * config/rs6000/440.md (ppc440-integer): Adjust.
23800         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
23801         * config/rs6000/601.md (ppc601-integer): Adjust.
23802         * config/rs6000/603.md (ppc603-integer): Adjust.
23803         * config/rs6000/6xx.md (ppc604-integer): Adjust.
23804         * config/rs6000/7450.md (ppc7450-integer): Adjust.
23805         * config/rs6000/7xx.md (ppc750-integer): Adjust.
23806         * config/rs6000/8540.md (ppc8540_su): Adjust.
23807         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
23808         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
23809         * config/rs6000/e500mc.md (e500mc_su): Adjust.
23810         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
23811         * config/rs6000/e5500.md (e5500_sfx): Adjust.
23812         * config/rs6000/e6500.md (e6500_sfx): Adjust.
23813         * config/rs6000/mpc.md (mpccore-integer): Adjust.
23814         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
23815         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
23816         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
23817         * config/rs6000/power7.md (power7-integer): Adjust.
23818         * config/rs6000/power8.md (power8-1cyc): Adjust.
23819         * config/rs6000/rs64.md (rs64a-integer): Adjust.
23820         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
23821
23822 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23823
23824         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
23825         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
23826         (size): New attribute.
23827         (dot): New attribute.
23828         (cell_micro): Adjust.
23829         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
23830         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
23831         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
23832         umuldi3_highpart): Adjust.
23833         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
23834         rs6000_adjust_priority, is_nonpipeline_insn,
23835         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
23836
23837         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
23838         ppc405-imul3): Adjust.
23839         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
23840         * config/rs6000/476.md (ppc476-imul): Adjust.
23841         * config/rs6000/601.md (ppc601-imul): Adjust.
23842         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
23843         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
23844         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
23845         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
23846         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
23847         Adjust.
23848         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
23849         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
23850         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
23851         cell-imul): Adjust.
23852         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
23853         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
23854         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
23855         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
23856         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
23857         * config/rs6000/mpc.md (mpccore-imul): Adjust.
23858         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
23859         power4-lmul, power4-imul, power4-imul3): Adjust.
23860         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
23861         power5-lmul, power5-imul, power5-imul3): Adjust.
23862         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
23863         power6-lmul, power6-imul, power6-imul3): Adjust.
23864         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
23865         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
23866
23867         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
23868         rs64a-lmul): Adjust.
23869         * config/rs6000/titan.md (titan_imul): Adjust.
23870
23871 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23872
23873         * config/rs6000/rs6000.md (type): Add new value "halfmul".
23874         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
23875         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
23876         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
23877         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
23878         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
23879         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
23880         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
23881         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
23882         * config/rs6000/titan.md: Delete nonsensical comment.
23883         (titan_imul): Add type imul3.
23884         (titan_mulhw): Remove type imul3; add type halfmul.
23885
23886 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
23887
23888         * config/rs6000/rs6000.md (type): Reorder, reformat.
23889
23890 2014-05-23  Martin Jambor  <mjambor@suse.cz>
23891
23892         PR tree-optimization/53787
23893         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
23894         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
23895         analysis_done, update all uses.
23896         * ipa-prop.c: Include domwalk.h
23897         (param_analysis_info): Removed.
23898         (param_aa_status): New type.
23899         (ipa_bb_info): Likewise.
23900         (func_body_info): Likewise.
23901         (ipa_get_bb_info): New function.
23902         (aa_overwalked): Likewise.
23903         (find_dominating_aa_status): Likewise.
23904         (parm_bb_aa_status_for_bb): Likewise.
23905         (parm_preserved_before_stmt_p): Changed to use new param AA info.
23906         (load_from_unmodified_param): Accept func_body_info as a parameter
23907         instead of parms_ainfo.
23908         (parm_ref_data_preserved_p): Changed to use new param AA info.
23909         (parm_ref_data_pass_through_p): Likewise.
23910         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
23911         (compute_complex_assign_jump_func): Changed to use new param AA info.
23912         (compute_complex_ancestor_jump_func): Likewise.
23913         (ipa_compute_jump_functions_for_edge): Likewise.
23914         (ipa_compute_jump_functions): Removed.
23915         (ipa_compute_jump_functions_for_bb): New function.
23916         (ipa_analyze_indirect_call_uses): Likewise, moved variable
23917         declarations down.
23918         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
23919         and info, moved variable declarations down.
23920         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
23921         node and info.
23922         (ipa_analyze_stmt_uses): Likewise.
23923         (ipa_analyze_params_uses): Removed.
23924         (ipa_analyze_params_uses_in_bb): New function.
23925         (ipa_analyze_controlled_uses): Likewise.
23926         (free_ipa_bb_info): Likewise.
23927         (analysis_dom_walker): New class.
23928         (ipa_analyze_node): Handle node-specific forbidden analysis,
23929         initialize and free func_body_info, use dominator walker.
23930         (ipcp_modif_dom_walker): New class.
23931         (ipcp_transform_function): Create and free func_body_info, use
23932         ipcp_modif_dom_walker, moved a lot of functionality there.
23933
23934 2014-05-23  Marek Polacek  <polacek@redhat.com>
23935             Jakub Jelinek  <jakub@redhat.com>
23936
23937         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
23938         * gcc.c (sanitize_spec_function): Likewise.
23939         * convert.c (convert_to_integer): Include "ubsan.h".  Add
23940         floating-point to integer instrumentation.
23941         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
23942         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
23943         SANITIZE_NONDEFAULT.
23944         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
23945         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
23946         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
23947         * ubsan.c: Include "realmpfr.h" and "dfp.h".
23948         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
23949         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
23950         float/double/long double.
23951         (ubsan_instrument_float_cast): New function.
23952         * ubsan.h (ubsan_instrument_float_cast): Declare.
23953
23954 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
23955
23956         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
23957         predicate.
23958         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
23959         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
23960         Adjust for tailcalling through registers.
23961         * config/aarch64/aarch64.h (enum reg_class): New caller save
23962         register class.
23963         (REG_CLASS_NAMES): Likewise.
23964         (REG_CLASS_CONTENTS): Likewise.
23965         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
23966         Allow tailcalling without decls.
23967
23968 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
23969
23970         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23971         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
23972
23973         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
23974         gsi, and variables v_* to v*.
23975
23976 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
23977
23978         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
23979
23980 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
23981
23982         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
23983         * omp-low.c: Update accordingly.
23984
23985         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
23986         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
23987         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
23988         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
23989         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
23990         GF_OMP_TARGET_KIND_UPDATE.
23991
23992         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
23993         Explicitly enumerate the expected region types.
23994
23995 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
23996
23997         PR other/56955
23998         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
23999         documentation; the old documentation didn't clearly state the
24000         constraints on the contents of the pointed-to storage.
24001
24002 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24003
24004         Fix bootstrap error on ia64
24005         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24006         Return default value.
24007
24008 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24009
24010         PR tree-optimization/54733
24011         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24012         (CMPNOP): Define.
24013         (find_bswap_or_nop_load): New.
24014         (find_bswap_1): Renamed to ...
24015         (find_bswap_or_nop_1): This. Also add support for memory source.
24016         (find_bswap): Renamed to ...
24017         (find_bswap_or_nop): This. Also add support for memory source and
24018         detection of bitwise operations equivalent to load in target
24019         endianness.
24020         (execute_optimize_bswap): Likewise. Also move its leading comment back
24021         in place and split statement transformation into ...
24022         (bswap_replace): This.
24023
24024 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24025
24026         PR rtl-optimization/61215
24027         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24028         simplify_gen_subreg until final substitution.
24029
24030 2014-05-23  Alan Modra  <amodra@gmail.com>
24031
24032         PR target/61231
24033         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24034         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24035         Use "Y" constraint rather than "m".
24036
24037 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24038
24039         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24040         define.
24041         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24042         New function declaration.
24043         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24044         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24045         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24046         (aarch64_init_builtins) : Initialize builtins
24047         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24048         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24049         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24050         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24051         and __builtins_aarch64_set_fpsr.
24052         (aarch64_atomic_assign_expand_fenv): New function.
24053         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24054         (get_fpcr) : Likewise.
24055         (set_fpsr) : Likewise.
24056         (get_fpsr) : Likewise.
24057         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24058         and UNSPECV_SET_FPSR.
24059         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24060         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24061         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24062
24063 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24064
24065         PR rtl-optimization/60969
24066         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24067         constraints.  Set up mem cost for NO_REGS case.
24068
24069 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24070
24071         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24072
24073 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24074
24075         * config/darwin.c: Include "lto-section-names.h".
24076         (LTO_SEGMENT_NAME): Don't define.
24077         * config/i386/winnt.c: Include "lto-section-names.h".
24078         * lto-streamer.c: Include "lto-section-names.h".
24079         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24080         * lto-wrapper.c: Include "lto-section-names.h".
24081         (LTO_SECTION_NAME_PREFIX): Don't define.
24082         * lto-section-names.h: New file.
24083         * cgraphunit.c: Include "lto-section-names.h".
24084
24085 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24086
24087         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24088
24089 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24090
24091         PR target/61208
24092         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24093
24094 2014-05-22  Nick Clifton  <nickc@redhat.com>
24095
24096         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24097
24098 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24099
24100         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24101         -> (T)A transformation to integer types.
24102
24103 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24104
24105         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24106         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24107         (gcov_rewrite): Use gcov_nonruntime_assert.
24108         (gcov_open): Ditto.
24109         (gcov_write_words): Ditto.
24110         (gcov_write_length): Ditto.
24111         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24112         gcc_assert from IN_LIBGCOV code.
24113         (gcov_read_summary): Use gcov_error to flag profile corruption.
24114         (gcov_sync): Use gcov_nonruntime_assert.
24115         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24116         (gcov_histo_index): Use gcov_nonruntime_assert.
24117         (static void gcov_histogram_merge): Ditto.
24118         (compute_working_sets): Ditto.
24119         * gcov-io.h (gcov_nonruntime_assert): Define.
24120         (gcov_error): Define for !IN_LIBGCOV
24121
24122 2014-05-22  Richard Biener  <rguenther@suse.de>
24123
24124         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24125         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24126         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24127         and deallocation site.
24128         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24129         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24130         passing through the incoming points-to set.
24131         (handle_lhs_call): Use flags argument instead of recomputing it.
24132         (find_func_aliases_for_call): Call handle_lhs_call with proper
24133         call return flags.
24134
24135 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24136
24137         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24138         all padding bits in REAL_VALUE_TYPE are cleared.
24139
24140 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24141
24142         Cleanup and improve multipass_dfa_lookahead_guard
24143         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24144         (core2i7_first_cycle_multipass_begin,)
24145         (core2i7_first_cycle_multipass_issue,)
24146         (core2i7_first_cycle_multipass_backtrack): Update signature.
24147         * config/ia64/ia64.c
24148         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24149         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24150         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24151         hook definition.
24152         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24153         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24154         values.
24155         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24156         return values.
24157         * doc/tm.texi: Regenerate.
24158         * doc/tm.texi.in
24159         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24160         * haifa-sched.c (ready_try): Make signed to allow negative values.
24161         (rebug_ready_list_1): Update.
24162         (choose_ready): Simplify.
24163         (sched_extend_ready_list): Update.
24164
24165 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24166
24167         Remove IA64 speculation tweaking flags
24168         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24169         speculation tuning flags.
24170         (msched-prefer-non-data-spec-insns,)
24171         (msched-prefer-non-control-spec-insns): Obsolete options.
24172         * haifa-sched.c (choose_ready): Remove handling of
24173         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24174         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24175         and PREFER_NON_DATA_SPEC.
24176         * sel-sched.c (process_spec_exprs): Remove handling of
24177         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24178
24179 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24180
24181         Improve scheduling debug output
24182         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24183         (advance_one_cycle): Update.
24184         (schedule_insn, queue_to_ready): Add debug printouts.
24185         (debug_ready_list_1): New static function.
24186         (debug_ready_list): Update.
24187         (max_issue): Add debug printouts.
24188         (dump_insn_stream): New static function.
24189         (schedule_block): Use it.  Also better indent printouts.
24190
24191 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24192
24193         Fix sched_insn debug counter
24194         * haifa-sched.c (schedule_insn): Update.
24195         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24196         (save_backtrack_point, restore_backtrack_point): Update.
24197         (first_nonscheduled_insn): New static function.
24198         (queue_to_ready, choose_ready): Use it.
24199         (schedule_block): Init nonscheduled_insns_begin.
24200         (sched_emit_insn): Update.
24201
24202
24203 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24204
24205         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24206         to GENERAL_REGS.
24207         (aarch64_secondary_reload) : LikeWise.
24208         (aarch64_class_max_nregs) : Remove CORE_REGS.
24209         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24210         (REG_CLASS_NAMES) : Likewise.
24211         (REG_CLASS_CONTENTS) : LikeWise.
24212         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24213
24214 2014-05-21  Guozhi Wei  <carrot@google.com>
24215
24216         PR target/61202
24217         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24218         constraint.
24219         (vqdmulhq_n_s16): Likewise.
24220
24221 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24222
24223         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24224
24225 2014-05-21  Marek Polacek  <polacek@redhat.com>
24226
24227         PR sanitizer/61272
24228         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24229
24230 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24231
24232         * doc/invoke.texi (Optimize Options): Document parameters
24233         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24234         ipa-cp-array-index-hint-bonus.
24235
24236 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24237
24238         PR debug/16063
24239         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24240         version >= 3 or not strict DWARF.
24241         * langhooks.h (struct lang_hooks_for_types): Add
24242         enum_underlying_base_type.
24243         * langhooks.c (lhd_enum_underlying_base_type): New function.
24244         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24245         enum_underlying_base_type.
24246         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24247         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24248         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24249
24250 2014-05-21  Richard Biener  <rguenther@suse.de>
24251
24252         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24253
24254 2014-05-21  John Marino  <gnugcc@marino.st>
24255
24256         * config.gcc (*-*-dragonfly*): New target.
24257         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24258         * configure: Regenerate.
24259         * config/dragonfly-stdint.h: New.
24260         * config/dragonfly.h: New.
24261         * config/dragonfly.opt: New.
24262         * config/i386/dragonfly.h: New.
24263         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24264
24265 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24266
24267         * tree.def (VOID_CST): New.
24268         * tree-core.h (TI_VOID): New.
24269         * tree.h (void_node): New.
24270         * tree.c (tree_node_structure_for_code, tree_code_size)
24271         (iterative_hash_expr): Handle VOID_CST.
24272         (build_common_tree_nodes): Initialize void_node.
24273
24274 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24275
24276         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24277         functions.
24278         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24279
24280         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24281         more places.
24282
24283         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24284         flag_reorder_blocks_and_partition.
24285         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24286
24287 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24288
24289         PR target/54236
24290         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24291         constraints.
24292         (*addc_r_t): Add new insn_and_split.
24293
24294 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24295
24296         PR middle-end/61252
24297         * omp-low.c (handle_simd_reference): New function.
24298         (lower_rec_input_clauses): Use it.  Defer adding reference
24299         initialization even for reduction without placeholder if in simd,
24300         handle it properly later on.
24301
24302 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24303
24304         PR tree-optimization/60899
24305         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24306         assume all static symbols will have definition wile parsing and
24307         check the do have definition later in compilation; check that
24308         variable referring symbol will be output before concluding that
24309         reference is safe; be conservative for referring local statics;
24310         be more precise about when comdat is output in other partition.
24311
24312 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24313
24314         PR bootstrap/60984
24315         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24316         parameter.
24317         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24318         (ipa_inline): Loop inline_to_all_callers until no more aliases
24319         are removed.
24320
24321 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24322
24323         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24324         set writeonly flag only for vars actually written to.
24325
24326 2014-05-20  Dehao Chen  <dehao@google.com>
24327
24328         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24329         and callee count to get clone count.
24330         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24331         count in copy_body.
24332
24333 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24334
24335         PR rtl-optimization/61243
24336         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24337
24338 2014-05-20  Xinliang David Li  <davidxl@google.com>
24339
24340         * cgraphunit.c (walk_polymorphic_call_targets): Add
24341         dbgcnt and fopt-info support.
24342         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24343         * ipa-devirt.c (ipa_devirt): Ditto.
24344         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24345         * ipa.c (walk_polymorphic_call_targets): Ditto.
24346         * gimple-fold.c (fold_gimple_assign): Ditto.
24347         (gimple_fold_call): Ditto.
24348         * dbgcnt.def: New counter.
24349
24350 2014-05-20  DJ Delorie  <dj@redhat.com>
24351
24352         * config/msp430/msp430.md (split): Don't allow subregs when
24353         splitting SImode adds.
24354         (andneghi): Fix subtraction logic.
24355         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24356
24357 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24358
24359         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24360         symbols.
24361         * except.c (switch_to_exception_section, resolve_unique_section,
24362         get_named_text_section, default_function_rodata_section,
24363         align_variable, get_block_for_decl, default_section_type_flags):
24364         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24365         * symtab.c (symtab_add_to_same_comdat_group,
24366         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24367         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24368         Likewise.
24369         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24370         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24371         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24372         (c6x_function_in_section_p): Likewise.
24373         * config/darwin.c (machopic_select_section): Likewise.
24374         * config/arm/arm.c (arm_function_in_section_p): Likewise.
24375         * config/mips/mips.c (mips_function_rodata_section): Likewise.
24376         * config/mep/mep.c (mep_select_section): LIkewise.
24377         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24378
24379 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
24380
24381         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24382         EH region of calls to pure functions that can throw an exception.
24383         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24384         (copy_reference_ops_from_call): Also copy the EH region of the call if
24385         it can throw an exception.
24386
24387 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24388
24389         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24390         nested VEC_SELECTs that are inverses of each other.
24391
24392 2014-05-20  Richard Biener  <rguenther@suse.de>
24393
24394         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
24395         (extract_and_process_scc_for_name): not here.
24396         (cond_dom_walker::before_dom_children): Only process
24397         stmts that end the BB in interesting ways.
24398         (run_scc_vn): Mark param uses as visited.
24399
24400 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24401
24402         * config/arm/arm.md (arith_shiftsi): Do not predicate for
24403         arm_restrict_it.
24404
24405 2014-05-20  Nick Clifton  <nickc@redhat.com>
24406
24407         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
24408         (msp430_gimplify_va_arg_expr): New function.
24409         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
24410
24411         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
24412         operand 0 in order to prevent confusion about the number of
24413         registers involved.
24414
24415 2014-05-20  Richard Biener  <rguenther@suse.de>
24416
24417         PR tree-optimization/61221
24418         * tree-ssa-pre.c (el_to_update): Remove.
24419         (eliminate_dom_walker::before_dom_children): Handle released
24420         VDEFs by value-numbering them to the associated VUSE.  Update
24421         stmt immediately for substituted call address.
24422         (eliminate): Remove delayed stmt updating code.
24423         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
24424         possibly late re-numbered vuses.
24425         (vn_reference_lookup_2): Adjust.
24426         (vn_reference_lookup_pieces): Likewise.
24427         (vn_reference_lookup): Likewise.
24428
24429 2014-05-20  Richard Biener  <rguenther@suse.de>
24430
24431         * config.gcc: Remove need_64bit_hwint.
24432         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
24433         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
24434         it to be true.
24435         * config.in: Regenerate.
24436         * configure: Likewise.
24437
24438 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
24439
24440         * doc/extend.texi: Create Label Attributes section,
24441         move all label attributes into it and reference it.
24442
24443 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
24444
24445         * arm.c (thumb1_reorg): When scanning backwards skip anything
24446         that's not a proper insn.
24447
24448 2014-05-19  Richard Biener  <rguenther@suse.de>
24449
24450         PR tree-optimization/61221
24451         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24452         Do nothing for unreachable blocks.
24453         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
24454         Improve unreachability detection.
24455
24456 2014-05-19  Richard Biener  <rguenther@suse.de>
24457
24458         PR tree-optimization/61209
24459         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
24460
24461 2014-05-19  Nick Clifton  <nickc@redhat.com>
24462
24463         * except.c (init_eh): Fix computation of builtin setjmp buffer
24464         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
24465
24466 2014-05-19  Richard Biener  <rguenther@suse.de>
24467
24468         PR tree-optimization/61184
24469         * tree-vrp.c (is_negative_overflow_infinity): Use
24470         TREE_OVERFLOW_P and do that check first.
24471         (is_positive_overflow_infinity): Likewise.
24472         (is_overflow_infinity): Likewise.
24473         (vrp_operand_equal_p): Properly treat operands with
24474         differing overflow as not equal.
24475
24476 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
24477
24478         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
24479         shift simplification where it was intended.
24480
24481 2014-05-19  Christian Bruel  <christian.bruel@st.com>
24482
24483         PR target/61195
24484         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
24485
24486 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
24487
24488         PR target/61084
24489         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
24490         than wide_int.
24491
24492 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24493
24494         * reg-notes.def (CROSSING_JUMP): Likewise.
24495         * rtl.h (rtx_def): Update comment for jump flag.
24496         (CROSSING_JUMP_P): Define.
24497         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
24498         of a REG_CROSSING_JUMP note.
24499         * cfghooks.c (tidy_fallthru_edges): Likewise.
24500         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
24501         * emit-rtl.c (try_split): Likewise.
24502         * haifa-sched.c (sched_create_recovery_edges): Likewise.
24503         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
24504         * jump.c (redirect_jump_2): Likewise.
24505         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
24506         (relax_delay_slots): Likewise.
24507         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
24508         (bbit_di): Likewise.
24509         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
24510         * config/sh/sh.md (jump_compact): Likewise.
24511         * bb-reorder.c (rotate_loop): Likewise.
24512         (pass_duplicate_computed_gotos::execute): Likewise.
24513         (add_reg_crossing_jump_notes): Rename to...
24514         (update_crossing_jump_flags): ...this.
24515         (pass_partition_blocks::execute): Update accordingly.
24516
24517 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
24518
24519         * tree.h: Remove extraneous template <>.
24520
24521 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24522
24523         * ipa.c (symtab_remove_unreachable_nodes): Remove
24524         symbol from comdat group if its body was eliminated.
24525         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
24526         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
24527         (symtab_unregister_node): ... this one.
24528         (verify_symtab_base): More strict checking of comdats.
24529         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
24530
24531 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24532
24533         * tree-pass.h (make_pass_ipa_comdats): New pass.
24534         * timevar.def (TV_IPA_COMDATS): New timevar.
24535         * passes.def (pass_ipa_comdats): Add.
24536         * Makefile.in (OBJS): Add ipa-comdats.o
24537         * ipa-comdats.c: New file.
24538
24539 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24540
24541         * ipa.c (update_visibility_by_resolution_info): New function.
24542         (function_and_variable_visibility): Use it.
24543
24544 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
24545
24546         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
24547         New functions.
24548         (FOR_EACH_DEFINED_SYMBOL): New macro.
24549         (varpool_first_static_initializer, varpool_next_static_initializer,
24550         varpool_first_defined_variable, varpool_next_defined_variable):
24551         Fix comments.
24552         (symtab_in_same_comdat_p): Correctly deal with inline functions.
24553
24554 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24555
24556         * ggc-page.c (ggc_handle_finalizers): Add comment.
24557
24558 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24559
24560         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
24561         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
24562         (ggc_internal_cleared_alloc): Likewise.
24563         * ggc-page.c (finalizer): New class.
24564         (vec_finalizer): Likewise.
24565         (globals::finalizers): New member.
24566         (globals::vec_finalizers): Likewise.
24567         (ggc_internal_alloc): Record the finalizer if any for the block being
24568         allocated.
24569         (ggc_handle_finalizers): New function.
24570         (ggc_collect): Call ggc_handle_finalizers.
24571         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
24572         finalizer.
24573         (ggc_internal_cleared_alloc): Likewise.
24574         (finalize): New function.
24575         (need_finalization_p): Likewise.
24576         (ggc_alloc): Install the type's destructor as the finalizer if it
24577         might do something.
24578         (ggc_cleared_alloc): Likewise.
24579         (ggc_vec_alloc): Likewise.
24580         (ggc_cleared_vec_alloc): Likewise.
24581
24582 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24583
24584         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
24585
24586 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24587
24588         * alias.c (record_alias_subset): Adjust.
24589         * bitmap.c (bitmap_element_allocate): Likewise.
24590         (bitmap_gc_alloc_stat): Likewise.
24591         * cfg.c (init_flow): Likewise.
24592         (alloc_block): Likewise.
24593         (unchecked_make_edge): Likewise.
24594         * cfgloop.c (alloc_loop): Likewise.
24595         (flow_loops_find): Likewise.
24596         (rescan_loop_exit): Likewise.
24597         * cfgrtl.c (init_rtl_bb_info): Likewise.
24598         * cgraph.c (insert_new_cgraph_node_version): Likewise.
24599         (cgraph_allocate_node): Likewise.
24600         (cgraph_create_edge_1): Likewise.
24601         (cgraph_allocate_init_indirect_info): Likewise.
24602         * cgraphclones.c (cgraph_clone_edge): Likewise.
24603         * cgraphunit.c (add_asm_node): Likewise.
24604         (init_lowered_empty_function): Likewise.
24605         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
24606         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
24607         (alpha_use_linkage): Likewise.
24608         * config/arc/arc.c (arc_init_machine_status): Likewise.
24609         * config/arm/arm.c (arm_init_machine_status): Likewise.
24610         * config/avr/avr.c (avr_init_machine_status): Likewise.
24611         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
24612         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
24613         * config/cris/cris.c (cris_init_machine_status): Likewise.
24614         * config/darwin.c (machopic_indirection_name): Likewise.
24615         (darwin_build_constant_cfstring): Likewise.
24616         (darwin_enter_string_into_cfstring_table): Likewise.
24617         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
24618         * config/frv/frv.c (frv_init_machine_status): Likewise.
24619         * config/i386/i386.c (get_dllimport_decl): Likewise.
24620         (ix86_init_machine_status): Likewise.
24621         (assign_386_stack_local): Likewise.
24622         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
24623         (i386_pe_maybe_record_exported_symbol): Likewise.
24624         (i386_pe_record_stub): Likewise.
24625         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
24626         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
24627         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
24628         (m32c_note_pragma_address): Likewise.
24629         * config/mep/mep.c (mep_init_machine_status): Likewise.
24630         (mep_note_pragma_flag): Likewise.
24631         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
24632         (mips16_local_alias): Likewise.
24633         (mips_init_machine_status): Likewise.
24634         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
24635         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
24636         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
24637         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
24638         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
24639         * config/pa/pa.c (pa_init_machine_status): Likewise.
24640         (pa_get_deferred_plabel): Likewise.
24641         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
24642         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
24643         (rs6000_init_machine_status): Likewise.
24644         (output_toc): Likewise.
24645         * config/s390/s390.c (s390_init_machine_status): Likewise.
24646         * config/score/score.c (score_output_external): Likewise.
24647         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
24648         * config/spu/spu.c (spu_init_machine_status): Likewise.
24649         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
24650         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
24651         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
24652         * coverage.c (coverage_end_function): Likewise.
24653         * dbxout.c (dbxout_init): Likewise.
24654         * doc/gty.texi: Don't mention variable_size attribute.
24655         * dwarf2cfi.c (new_cfi): Adjust.
24656         (new_cfi_row): Likewise.
24657         (copy_cfi_row): Likewise.
24658         (create_cie_data): Likewise.
24659         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
24660         (new_loc_descr): Likewise.
24661         (find_AT_string_in_table): Likewise.
24662         (add_addr_table_entry): Likewise.
24663         (new_die): Likewise.
24664         (add_var_loc_to_decl): Likewise.
24665         (clone_die): Likewise.
24666         (clone_as_declaration): Likewise.
24667         (break_out_comdat_types): Likewise.
24668         (new_loc_list): Likewise.
24669         (add_loc_descr_to_each): Likewise.
24670         (add_location_or_const_value_attribute): Likewise.
24671         (add_linkage_name): Likewise.
24672         (lookup_filename): Likewise.
24673         (dwarf2out_var_location): Likewise.
24674         (new_line_info_table): Likewise.
24675         (dwarf2out_init): Likewise.
24676         (mem_loc_descriptor): Likewise.
24677         (loc_descriptor): Likewise.
24678         (add_const_value_attribute): Likewise.
24679         (tree_add_const_value_attribute): Likewise.
24680         (comp_dir_string): Likewise.
24681         (dwarf2out_vms_debug_main_pointer): Likewise.
24682         (string_cst_pool_decl): Likewise.
24683         * emit-rtl.c (set_mem_attrs): Likewise.
24684         (get_reg_attrs): Likewise.
24685         (start_sequence): Likewise.
24686         (init_emit): Likewise.
24687         (init_emit_regs): Likewise.
24688         * except.c (init_eh_for_function): Likewise.
24689         (gen_eh_region): Likewise.
24690         (gen_eh_region_catch): Likewise.
24691         (gen_eh_landing_pad): Likewise.
24692         (add_call_site): Likewise.
24693         * function.c (add_frame_space): Likewise.
24694         (insert_temp_slot_address): Likewise.
24695         (assign_stack_temp_for_type): Likewise.
24696         (get_hard_reg_initial_val): Likewise.
24697         (allocate_struct_function): Likewise.
24698         (prepare_function_start): Likewise.
24699         (types_used_by_var_decl_insert): Likewise.
24700         * gengtype.c (variable_size_p): Remove function.
24701         (enum alloc_quantity): Remove enum.
24702         (write_typed_alloc_def): Remove function.
24703         (write_typed_struct_alloc_def): Likewise.
24704         (write_typed_typedef_alloc_def): Likewise.
24705         (write_typed_alloc_defns): Likewise.
24706         (main): Adjust.
24707         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
24708         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
24709         * ggc.h (ggc_alloc): new function.
24710         (ggc_cleared_alloc): Likewise.
24711         (ggc_vec_alloc): Template on type of vector element, and remove
24712         element size argument.
24713         (ggc_cleared_vec_alloc): Likewise.
24714         * gimple.c (gimple_build_omp_for): Adjust.
24715         (gimple_copy): Likewise.
24716         * ipa-cp.c (get_replacement_map): Likewise.
24717         (find_aggregate_values_for_callers_subset): Likewise.
24718         (known_aggs_to_agg_replacement_list): Likewise.
24719         * ipa-devirt.c (get_odr_type): Likewise.
24720         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
24721         (read_agg_replacement_chain): Likewise.
24722         * loop-iv.c (get_simple_loop_desc): Likewise.
24723         * lto-cgraph.c (input_node_opt_summary): Likewise.
24724         * lto-section-in.c (lto_new_in_decl_state): Likewise.
24725         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
24726         (input_eh_region): Likewise.
24727         (input_eh_lp): Likewise.
24728         (input_cfg): Likewise.
24729         * optabs.c (set_optab_libfunc): Likewise.
24730         (init_tree_optimization_optabs): Likewise.
24731         (set_conv_libfunc): Likewise.
24732         * passes.c (do_per_function_toporder): Likewise.
24733         * rtl.h: Don't use variable_size gty attribute.
24734         * sese.c (if_region_set_false_region): Adjust.
24735         * stringpool.c (gt_pch_save_stringpool): Likewise.
24736         * target-globals.c (save_target_globals): Likewise.
24737         * toplev.c (general_init): Likewise.
24738         * trans-mem.c (record_tm_replacement): Likewise.
24739         (split_bb_make_tm_edge): Likewise.
24740         * tree-cfg.c (move_sese_region_to_fn): Likewise.
24741         * tree-data-ref.h (lambda_vector_new): Likewise.
24742         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
24743         * tree-iterator.c (tsi_link_before): Likewise.
24744         (tsi_link_after): Likewise.
24745         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
24746         * tree-ssa-loop-niter.c (record_estimate): Likewise.
24747         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
24748         * tree-ssa-operands.h: Don't use variable_size gty attribute.
24749         * tree-ssa.c (init_tree_ssa): Adjust.
24750         * tree-ssanames.c (set_range_info): Likewise.
24751         (get_ptr_info): Likewise.
24752         (duplicate_ssa_name_ptr_info): Likewise.
24753         (duplicate_ssa_name_range_info): Likewise.
24754         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
24755         (unpack_ts_fixed_cst_value_fields): Likewise.
24756         * tree.c (build_fixed): Likewise.
24757         (build_real): Likewise.
24758         (build_string): Likewise.
24759         (decl_priority_info): Likewise.
24760         (decl_debug_expr_insert): Likewise.
24761         (decl_value_expr_insert): Likewise.
24762         (decl_debug_args_insert): Likewise.
24763         (type_hash_add): Likewise.
24764         (build_omp_clause): Likewise.
24765         * ubsan.c (decl_for_type_insert): Likewise.
24766         * varasm.c (get_unnamed_section): Likewise.
24767         (get_noswitch_section): Likewise.
24768         (get_section): Likewise.
24769         (get_block_for_section): Likewise.
24770         (create_block_symbol): Likewise.
24771         (build_constant_desc): Likewise.
24772         (create_constant_pool): Likewise.
24773         (force_const_mem): Likewise.
24774         (record_tm_clone_pair): Likewise.
24775         * varpool.c (varpool_create_empty_node): Likewise.
24776
24777 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
24778
24779         * dwarf2out.c (tree_add_const_value_attribute): Call
24780         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
24781         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
24782         instead of ggc_internal_<x>alloc_stat.
24783         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
24784         (ggc_realloc): Likewise.
24785         * ggc-none.c (ggc_internal_alloc): Likewise.
24786         (ggc_internal_cleared_alloc): Likewise.
24787         * ggc-page.c: Likewise.
24788         * ggc.h (ggc_internal_alloc_stat): Likewise.
24789         (ggc_internal_alloc): Remove macro.
24790         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
24791         (ggc_internal_cleared_alloc): Remove macro.
24792         (GGC_RESIZEVEC): Adjust.
24793         (ggc_resizevar): Remove macro.
24794         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
24795         (ggc_internal_cleared_vec_alloc_stat): Likewise.
24796         (ggc_internal_vec_cleared_alloc): Remove macro.
24797         (ggc_alloc_atomic_stat): Drop _stat suffix.
24798         (ggc_alloc_atomic): Remove macro.
24799         (ggc_alloc_cleared_atomic): Remove macro.
24800         (ggc_alloc_string_stat): Drop _stat suffix.
24801         (ggc_alloc_string): Remove macro.
24802         (ggc_alloc_rtx_def_stat): Adjust.
24803         (ggc_alloc_tree_node_stat): Likewise.
24804         (ggc_alloc_cleared_tree_node_stat): Likewise.
24805         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
24806         (ggc_alloc_cleared_simd_clone_stat): Likewise.
24807         * gimple.c (gimple_build_omp_for): Likewise.
24808         (gimple_copy): Likewise.
24809         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
24810         * toplev.c (realloc_for_line_map): Adjust.
24811         * tree-data-ref.h (lambda_vector_new): Likewise.
24812         * tree-phinodes.c (allocate_phi_node): Likewise.
24813         * tree.c (grow_tree_vec_stat): Likewise.
24814         * vec.h (va_gc::reserve): Adjust.
24815
24816 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
24817
24818         * config/microblaze/microblaze.c (break_handler): New Declaration.
24819         (microblaze_break_function_p,microblaze_is_break_handler): New.
24820         (compute_frame_size): Use microblaze_break_function_p.
24821         Add the test of break_handler.
24822         (microblaze_function_prologue) : Add the test of variable
24823         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
24824         (microblaze_function_epilogue) : Add the test of break_handler.
24825         (microblaze_globalize_label) : Add the test of break_handler.
24826         Check the name by BREAK_HANDLER_NAME.
24827
24828         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
24829
24830         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
24831         microblaze_is_break_handler test.
24832         (call_internal1,call_value_intern): Use microblaze_break_function_p.
24833         Use SYMBOL_REF_DECL.
24834
24835         * config/microblaze/microblaze-protos.h
24836         (microblaze_break_function_p,microblaze_is_break_handler):
24837         New Declaration.
24838
24839         * doc/extend.texi (MicroBlaze break_handler Functions): Document
24840         new MicroBlaze break_handler functions.
24841
24842 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24843
24844         * doc/extend.texi (Size of an asm): Move node text according
24845         to its @menu entry position.
24846
24847 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
24848
24849         PR tree-optimization/61140
24850         PR tree-optimization/61150
24851         PR tree-optimization/61197
24852         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
24853
24854 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
24855
24856         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
24857
24858 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
24859
24860         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
24861         __SIZEOF_INT128__ is defined.
24862
24863 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24864
24865         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
24866         (rs6000_delegitimize_address): Use it.
24867
24868 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
24869
24870         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
24871         inplace argument.  Store the new address in the original MEM when true.
24872         * emit-rtl.c (change_address_1): Likewise.
24873         (adjust_address_1, adjust_automodify_address_1, offset_address):
24874         Update accordingly.
24875         * rtl.h (plus_constant): Add an inplace argument.
24876         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
24877         when true.  Avoid generating (plus X (const_int 0)).
24878         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
24879         in-place.  Pass true to plus_constant.
24880         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
24881
24882 2014-05-16  Dehao Chen  <dehao@google.com>
24883
24884         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
24885
24886 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24887
24888         PR target/54089
24889         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
24890         patterns.
24891         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
24892
24893 2014-05-16  Dehao Chen  <dehao@google.com>
24894
24895         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
24896         optimize_function_for_size_p.
24897         * regs.h (REG_FREQ_FROM_BB): Likewise.
24898
24899 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24900
24901         PR target/51244
24902         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
24903         negt_reg_operand cases.
24904         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
24905         predicate.
24906         * config/sh/predicates.md (cbranch_treg_value): Simplify.
24907
24908 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
24909
24910         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
24911         target variants.
24912
24913 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
24914
24915         Revert:
24916         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
24917
24918         * tree-cfg.c (dump_function_to_file): Dump the return type of
24919         functions, in a line to itself before the function body, mimicking
24920         the layout of a C function.
24921
24922 2014-05-16  Dehao Chen  <dehao@google.com>
24923
24924         * cfghooks.c (make_forwarder_block): Use direct computation to
24925         get fall-through edge's count and frequency.
24926
24927 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
24928
24929         * config/arc/arc.c (arc_init): Fix typo in error message.
24930         * config/i386/i386.c (ix86_expand_builtin): Likewise.
24931         (split_stack_prologue_scratch_regno): Likewise.
24932         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
24933         word from error message.
24934
24935 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
24936
24937         * ira-costs.c: Fix typo in comment.
24938
24939 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
24940
24941         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
24942
24943 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
24944
24945         * varpool.c (dump_varpool_node): Dump write-only flag.
24946         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
24947         write-only flag.
24948         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
24949         write-only variables.
24950         * ipa.c (process_references): New function.
24951         (set_readonly_bit): New function.
24952         (set_writeonly_bit): New function.
24953         (clear_addressable_bit): New function.
24954         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
24955         fix handling of aliases.
24956         * cgraph.h (struct varpool_node): Add writeonly flag.
24957
24958 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
24959
24960         PR rtl-optimization/60969
24961         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
24962         Calculate costs for this case.
24963
24964 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
24965
24966         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
24967         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
24968
24969 2014-05-16  Richard Biener  <rguenther@suse.de>
24970
24971         PR tree-optimization/61194
24972         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
24973         bool patterns ending in a COND_EXPR.
24974
24975 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24976
24977         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
24978
24979 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24980
24981         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
24982         where we were unable to cost an RTX.
24983
24984 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24985
24986         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
24987         HIGH, LO_SUM.
24988
24989 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24990             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24991
24992         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
24993
24994 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
24995             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24996
24997         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
24998         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
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 comparison
25004         operators.
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): Improve costs for
25010         DIV/MOD.
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_arith_op_extract_p): New.
25016         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
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_costs): Improve costs for
25022         rotates and shifts.
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): Cost
25028         ZERO_EXTEND and SIGN_EXTEND better.
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): Improve cost for
25034         logical operations.
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): Use address
25040         costs when costing loads and stores to memory.
25041
25042 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25043             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25044
25045         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25046         for SET RTX.
25047
25048 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25049
25050         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25051
25052 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25053             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25054
25055         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25056         to...
25057         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25058         well formed.
25059         (aarch64_rtx_mult_cost): New.
25060         (aarch64_rtx_costs): Use it, refactor as appropriate.
25061
25062 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25063             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25064
25065         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25066         emit instructions, return number of instructions which would
25067         be emitted.
25068         (aarch64_add_constant): Update call to aarch64_build_constant.
25069         (aarch64_output_mi_thunk): Likewise.
25070         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25071         a CONST_DOUBLE.
25072
25073 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25074
25075         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25076         (TARGET_RTX_COSTS): Call it.
25077
25078 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25079
25080         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25081         (cortexa57_vector_cost): Likewise.
25082         (cortexa57_tunings): Use them.
25083
25084 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25085
25086         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25087         (cpu_addrcost_table): Use it.
25088         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25089         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25090         move it.
25091
25092 2014-05-16  Richard Biener  <rguenther@suse.de>
25093
25094         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25095         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25096         (visit_phi): Ignore edges marked as not executable.
25097         (class cond_dom_walker): New.
25098         (cond_dom_walker::before_dom_children): Value-number
25099         control statements and mark successor edges as not
25100         executable if possible.
25101         (run_scc_vn): First walk all control statements in
25102         dominator order, marking edges as not executable.
25103         * tree-inline.c (copy_edges_for_bb): Be not confused
25104         about random edge flags.
25105
25106 2014-05-16  Richard Biener  <rguenther@suse.de>
25107
25108         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25109
25110 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25111
25112         PR target/61193
25113         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25114         (__TM_simple_begin): Use it.
25115         (__TM_begin): Likewise.
25116
25117 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25118
25119         PR ipa/61085
25120         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25121         type_preserved flag when the indirect edge is polymorphic.
25122
25123 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25124
25125         PR tree-optimization/61090
25126         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25127         build_ref_for_model.
25128
25129 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25130
25131         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25132         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25133
25134 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25135
25136         PR tree-optimization/61158
25137         * fold-const.c (fold_binary_loc): If X is zero-extended and
25138         shiftc >= prec, make sure zerobits is all ones instead of
25139         invoking undefined behavior.
25140
25141 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25142
25143         * regcprop.h: New file.
25144         * regcprop.c (skip_debug_insn_p): New decl.
25145         (replace_oldest_value_reg): Check skip_debug_insn_p.
25146         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25147         * shrink-wrap.c: Include regcprop.h.
25148         (prepare_shrink_wrap): Call
25149         copyprop_hardreg_forward_bb_without_debug_insn.
25150
25151 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25152
25153         * shrink-wrap.h: Update comment.
25154         * shrink-wrap.c: Update comment.
25155         (next_block_for_reg): Rename to live_edge_for_reg.
25156         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25157         (move_insn_for_shrink_wrap): Split live_edge.
25158         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25159
25160 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25161
25162         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25163         Delete.
25164         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25165         * config/sparc/sparc.md (fptype_ut699): New attribute.
25166         (in_branch_delay): Return false if -mfix-ut699 is specified and
25167         fptype_ut699 is set to single.
25168         (truncdfsf2): Add fptype_ut699 attribute.
25169         (fix_truncdfsi2): Likewise.
25170         (floatsisf2): Change fptype attribute.
25171         (fix_truncsfsi2): Likewise.
25172         (negtf2_notv9): Delete.
25173         (negtf2_v9): Likewise.
25174         (negtf2_hq): New instruction.
25175         (negtf2): New instruction and splitter.
25176         (negdf2_notv9): Rewrite.
25177         (abstf2_notv9): Delete.
25178         (abstf2_hq_v9): Likewise.
25179         (abstf2_v9): Likewise.
25180         (abstf2_hq): New instruction.
25181         (abstf2): New instruction and splitter.
25182         (absdf2_notv9): Rewrite.
25183
25184 2014-05-14  Cary Coutant  <ccoutant@google.com>
25185
25186         PR debug/61013
25187         * opts.c (common_handle_option): Don't special-case "-g".
25188         (set_debug_level): Default to at least level 2 with "-g".
25189
25190 2014-05-14  DJ Delorie  <dj@redhat.com>
25191
25192         * config/msp430/msp430.c (msp430_builtin): Add
25193         MSP430_BUILTIN_DELAY_CYCLES.
25194         (msp430_init_builtins): Register void __delay_cycles(long long).
25195         (msp430_builtin_decl): Add it.
25196         (cg_magic_constant): New.
25197         (msp430_expand_delay_cycles): New.
25198         (msp430_expand_builtin): Call it.
25199         (msp430_print_operand_raw): Change integer printing from "int" to
25200         HOST_WIDE_INT.
25201         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25202         (delay_cycles_start): New.
25203         (delay_cycles_end): New.
25204         (delay_cycles_32): New.
25205         (delay_cycles_32x): New.
25206         (delay_cycles_16): New.
25207         (delay_cycles_16x): New.
25208         (delay_cycles_2): New.
25209         (delay_cycles_1): New.
25210         * doc/extend.texi: Document __delay_cycles().
25211
25212 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25213
25214         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25215         length attribute computation.
25216
25217 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25218
25219         PR debug/61188
25220         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25221
25222 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25223
25224         PR target/61084
25225         * config/sparc/sparc.md: Fix types of low and high in DI constant
25226         splitter.  Use gen_int_mode in some other splitters.
25227
25228 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25229
25230         PR ipa/60897
25231         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25232
25233 2014-05-14  James Norris  <jnorris@codesourcery.com>
25234
25235         * omp-low.c (expand_parallel_call): Remove shadow variable.
25236         (expand_omp_taskreg): Likewise.
25237
25238 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25239
25240         * common/config/i386/i386-common.c
25241         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25242         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25243         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25244         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25245         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25246         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25247         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25248         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25249         xsavecintrin.h, xsavesintrin.h.
25250         (x86_64-*-*): Ditto.
25251         * config/i386/clflushoptintrin.h: New.
25252         * config/i386/xsavecintrin.h: Ditto.
25253         * config/i386/xsavesintrin.h: Ditto.
25254         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25255         (bit_XSAVES): Ditto.
25256         (bit_XSAVES): Ditto.
25257         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25258         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25259         -mno-clflushopt.
25260         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25261         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25262         OPTION_MASK_ISA_XSAVES.
25263         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25264         -mxsavec, -mxsaves.
25265         (PTA_CLFLUSHOPT) Define.
25266         (PTA_XSAVEC): Ditto.
25267         (PTA_XSAVES): Ditto.
25268         (ix86_option_override_internal): Handle new options.
25269         (ix86_valid_target_attribute_inner_p): Ditto.
25270         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25271         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25272         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25273         (bdesc_special_args): Add __builtin_ia32_xsaves,
25274         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25275         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25276         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25277         (ix86_expand_builtin): Handle new builtins.
25278         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25279         (TARGET_CLFLUSHOPT_P): Ditto.
25280         (TARGET_XSAVEC): Ditto.
25281         (TARGET_XSAVEC_P): Ditto.
25282         (TARGET_XSAVES): Ditto.
25283         (TARGET_XSAVES_P): Ditto.
25284         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25285         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25286         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25287         (ANY_XRSTOR): New.
25288         (ANY_XRSTOR64): Ditto.
25289         (xrstor): Ditto.
25290         (xrstor): Change into <xrstor>.
25291         (xrstor_rex64): Change into <xrstor>_rex64.
25292         (xrstor64): Change into <xrstor>64
25293         (clflushopt): New.
25294         * config/i386/i386.opt (mclflushopt): New.
25295         (mxsavec): Ditto.
25296         (mxsaves): Ditto.
25297         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25298         xsavecintrin.h.
25299         * doc/invoke.texi: Document new options.
25300
25301 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25302
25303         PR rtl-optimization/60866
25304         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25305         Default it to -1.  Pass it down to init_simplejump_data.
25306         (init_simplejump_data): New parameter old_seqno.  Pass it down
25307         to get_seqno_for_a_jump.
25308         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25309         initializing new jump seqno as a last resort.  Add comment.
25310         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25311         jump and pass it down to sel_init_new_insn.
25312         (sel_redirect_edge_and_branch_force): Likewise.
25313
25314 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25315
25316         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25317         shifted values to avoid build warning.
25318
25319 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25320
25321         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25322         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25323         (cfg_layout_merge_blocks): Likewise.
25324         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25325
25326 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25327
25328         PR rtl-optimization/60901
25329         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25330         bb predecessor belongs to the same scheduling region.  Adjust comment.
25331
25332 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25333
25334         * doc/sourcebuild.texi: (dfp_hw): Document.
25335         (p8vector_hw): Likewise.
25336         (powerpc_eabi_ok): Likewise.
25337         (powerpc_elfv2): Likewise.
25338         (powerpc_htm_ok): Likewise.
25339         (ppc_recip_hw): Likewise.
25340         (vsx_hw): Likewise.
25341
25342 2014-05-13  Cary Coutant  <ccoutant@google.com>
25343
25344         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25345
25346 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
25347
25348         * gengtype-parse.c (require3): Eliminate in favor of...
25349         (require4): New.
25350         (require_template_declaration): Update to support optional single *
25351         on a type.
25352
25353         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25354         (create_user_defined_type): Handle a single level of explicit
25355         pointerness within template arguments.
25356         (struct write_types_data): Add field "kind".
25357         (filter_type_name): Handle "*" character.
25358         (write_user_func_for_structure_ptr): Require a write_types_data
25359         rather than just a prefix string, so that we can look up the kind
25360         of the wtd and use it as an index into wrote_user_func_for_ptr,
25361         ensuring that such functions are written at most once.  Support
25362         subclasses by invoking the marking function of the ultimate base class.
25363         (write_user_func_for_structure_body): Require a write_types_data
25364         rather than just a prefix string, so that we can pass this to
25365         write_user_func_for_structure_ptr.
25366         (write_func_for_structure): Likewise.
25367         (ggc_wtd): Add initializer of new "kind" field.
25368         (pch_wtd): Likewise.
25369
25370         * gengtype.h (enum write_types_kinds): New.
25371         (struct type): Add field wrote_user_func_for_ptr to the "s"
25372         union member.
25373
25374 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25375
25376         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25377         instead of const_binop.
25378         (fold_binary_loc): Likewise.
25379
25380 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25381
25382         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25383         calculation to match get_ref_base_and_extent.
25384
25385 2014-05-13  Catherine Moore  <clm@codesourcery.com>
25386             Sandra Loosemore  <sandra@codesourcery.com>
25387
25388         * configure.ac: Fix assembly for explicit JALR relocation check.
25389         * configure: Regenerate.
25390
25391 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25392
25393         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
25394         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
25395         Remove associated type declarations and initialisations.
25396         (arm_expand_neon_builtin): Likewise.
25397         (neon_emit_pair_result_insn): Delete.
25398         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
25399         * config/arm/neon.md (neon_vtrn<mode>): Delete.
25400         (neon_vzip<mode>): Likewise.
25401         (neon_vuzp<mode>): Likewise.
25402
25403 2014-05-13  Richard Biener  <rguenther@suse.de>
25404
25405         PR ipa/60973
25406         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
25407         it needs revisiting whether the call still may be tail-called.
25408
25409 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25410
25411         * rtl.def (SYMBOL_REF): Remove middle "0" field.
25412         * rtl.h (block_symbol): Reduce number of fields to 2.
25413         (rtx_def): Add u2.symbol_ref_flags.
25414         (SYMBOL_REF_FLAGS): Use it.
25415         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
25416         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
25417         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
25418         Lower index of SYMBOL_REF_DATA.
25419         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
25420         Print SYMBOL_REF_FLAGS at the same time.
25421         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
25422
25423 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25424
25425         * rtl.def (VAR_LOCATION): Remove "i" field.
25426         * rtl.h (rtx_def): Add u2.var_location_status.
25427         (PAT_VAR_LOCATION_STATUS): Use it.
25428         (gen_rtx_VAR_LOCATION): Declare.
25429         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
25430         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
25431         * var-tracking.c (emit_note_insn_var_location): Remove casts.
25432
25433 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25434
25435         * rtl.def (scratch): Fix outdated comment and remove "0" field.
25436         * gengtype.c (adjust_field_rtx_def): Update accordingly.
25437
25438 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25439
25440         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
25441         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
25442         * rtl.h (rtx_def): Add insn_uid to u2 field.
25443         (RTX_FLAG_CHECK8): Delete in favor of...
25444         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
25445         (INSN_DELETED_P): Update accordingly.
25446         (INSN_UID): Use u2.insn_uid.
25447         (INSN_CHAIN_CODE_P): Define.
25448         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
25449         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
25450         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
25451         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
25452         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
25453         indices accordingly.
25454         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
25455         Update indices for insn-chain rtxes.
25456         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
25457         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
25458         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
25459         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
25460         * combine.c (try_combine): Likewise.
25461         * ira.c (setup_prohibited_mode_move_regs): Likewise.
25462
25463 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25464
25465         * rtl.def (REG): Remove middle field.
25466         * rtl.h (rtx_def): Add orignal_regno to u2.
25467         (ORIGINAL_REGNO): Use it instead of field 1.
25468         (REG_ATTRS): Lower field index accordingly.
25469         * gengtype.c (adjust_field_rtx_def): Remove handling of
25470         ORIGINAL_REGNO.  Move REG_ATTRS index down.
25471         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
25472         code that prints the REGNO.
25473
25474 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25475
25476         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
25477         GENERATOR_FILE.
25478
25479 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25480
25481         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
25482
25483 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
25484
25485         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
25486         (alloc_iv): Lower base expressions containing ADDR_EXPR.
25487
25488 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
25489
25490         * config/aarch64/aarch64-protos.h
25491         (aarch64_hard_regno_caller_save_mode): New prototype.
25492         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
25493         New function.
25494         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
25495
25496 2014-05-13  Christian Bruel  <christian.bruel@st.com>
25497
25498         * target.def (mode_switching): New hook vector.
25499         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
25500         (mode_exit, modepriority_to_mode): Likewise.
25501         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
25502         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25503         * target.h: Include tm.h and hard-reg-set.h.
25504         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
25505         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
25506         * doc/tm.texi Regenerate.
25507         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25508         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25509         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
25510         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
25511         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
25512         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25513         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
25514         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
25515         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
25516         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
25517         (ix86_emit_mode_set): Hookify.
25518         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
25519         Delete.
25520         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
25521         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
25522         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
25523         (epiphany_mode_priority_to_mode): Remove declaration.
25524         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
25525         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
25526         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
25527         Likewise.
25528         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
25529         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
25530         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
25531
25532 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
25533
25534         PR target/61060
25535         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
25536         is const0_rtx, return immediately.  Don't test count == 0 when
25537         it is always true.
25538
25539 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25540
25541         * Makefile.in: add shrink-wrap.o.
25542         * config/i386/i386.c: include "shrink-wrap.h"
25543         * function.c: Likewise.
25544         (requires_stack_frame_p, next_block_for_reg,
25545         move_insn_for_shrink_wrap, prepare_shrink_wrap,
25546         dup_block_and_redirect): Move to shrink-wrap.c
25547         (thread_prologue_and_epilogue_insns): Extract three code segments
25548         as functions in shrink-wrap.c
25549         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
25550         shrink-wrap.h
25551         * shrink-wrap.c: New file.
25552         * shrink-wrap.h: New file.
25553
25554 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25555
25556         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
25557         reference to Solaris.
25558
25559 2014-05-12  Mike Stump  <mikestump@comcast.net>
25560
25561         PR other/31778
25562         * genattrtab.c (filename): Add.
25563         (convert_set_attr_alternative): Improve error message.
25564         (check_defs): Restore read_md_filename for error messages.
25565         (gen_insn): Save filename.
25566
25567 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
25568
25569         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
25570         -fno-local-ivars and -fivar-visibility.
25571         * c-family/c.opt: Make -Wshadow also implicitly enable
25572         -Wshadow-ivar.
25573
25574 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
25575
25576         * doc/tm.texi: Remove reference to deleted macro.
25577         * doc/tm.texi.in: Likewise.
25578
25579 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
25580
25581         PR target/60991
25582         * config/avr/avr.c (avr_out_store_psi): Use correct constant
25583         to restore Y.
25584
25585 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
25586
25587         PR libgcc/61152
25588         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
25589         * config/arm/aout.h (License): Same.
25590         * config/arm/bpabi.h (License): Same.
25591         * config/arm/elf.h (License): Same.
25592         * config/arm/linux-elf.h (License): Same.
25593         * config/arm/linux-gas.h (License): Same.
25594         * config/arm/netbsd-elf.h (License): Same.
25595         * config/arm/uclinux-eabi.h (License): Same.
25596         * config/arm/uclinux-elf.h (License): Same.
25597         * config/arm/vxworks.h (License): Same.
25598
25599 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
25600
25601         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
25602         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
25603         number of operands to 3.
25604         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
25605         * tree-nested.c (convert_nonlocal_omp_clauses,
25606         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
25607         * gimplify.c (gimplify_scan_omp_clauses): Handle
25608         OMP_CLAUSE_LINEAR_STMT.
25609         * omp-low.c (lower_rec_input_clauses): Fix typo.
25610         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
25611         cast between Fortran boolean_type_node and C _Bool if
25612         needed.
25613
25614 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
25615
25616         PR tree-optimization/61136
25617         * wide-int.h (multiple_of_p): Define a version that doesn't return
25618         the quotient.
25619         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
25620         integer_zerop/const_binop pair.
25621         (multiple_of_p): Likewise, converting both operands to widest_int
25622         precision.
25623
25624 2014-05-09  Teresa Johnson  <tejohnson@google.com>
25625
25626         * cgraphunit.c (analyze_functions): Use correct dump file.
25627
25628 2014-05-09  Florian Weimer  <fweimer@redhat.com>
25629
25630         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
25631         expand_used_vars.
25632         (stack_protect_return_slot_p): New function.
25633         (expand_used_vars): Call stack_protect_decl_p and
25634         stack_protect_return_slot_p for -fstack-protector-strong.
25635
25636 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
25637         Andrew Haley <aph@redhat.com>
25638         Richard Sandiford <rdsandiford@googlemail.com>
25639
25640         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
25641         pages.
25642
25643 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
25644
25645         PR middle-end/61111
25646         * fold-const.c (fold_binary_loc): Changed width of mask.
25647
25648 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25649
25650         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
25651         unsigned int initializers for regno_in, regno_out.
25652
25653 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
25654
25655         PR target/61055
25656         * config/avr/avr.md (cc): Add new attribute set_vzn.
25657         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
25658         Set cc insn attribute to set_vzn instead of set_zn for alternatives
25659         with INC, DEC or NEG.
25660         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
25661         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
25662         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
25663
25664 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25665
25666         Revert:
25667         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25668
25669         * wide-int.cc (UTItype): Define.
25670         (UDWtype): Define for appropriate W_TYPE_SIZE.
25671
25672 2014-05-09  Richard Biener  <rguenther@suse.de>
25673
25674         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
25675         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
25676         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
25677         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
25678         ssa_propagate): Adjust.
25679
25680 2014-05-08  Jeff Law  <law@redhat.com>
25681
25682         PR tree-optimization/61009
25683         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
25684         tri-state rather than a boolean.  When a block is too big to
25685         thread through, inform caller via negative return value.
25686         (thread_across_edge): If a block was too big for normal threading,
25687         then it's too big for a joiner too, so remove temporary equivalences
25688         and return immediately.
25689
25690 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25691             Matthias Klose  <doko@ubuntu.com>
25692
25693         PR driver/61106
25694         * optc-gen.awk: Fix option handling for -Wunused-parameter.
25695
25696 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25697
25698         PR target/59952
25699         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
25700
25701 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
25702
25703         PR target/61092
25704         * config/alpha/alpha.c: Include gimple-iterator.h.
25705         (alpha_gimple_fold_builtin): New function.  Move
25706         ALPHA_BUILTIN_UMULH folding from ...
25707         (alpha_fold_builtin): ... here.
25708         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
25709
25710 2014-05-08  Wei Mi  <wmi@google.com>
25711
25712         PR target/58066
25713         * config/i386/i386.c (ix86_compute_frame_layout): Update
25714         preferred_stack_boundary for call, expanded from tls descriptor.
25715         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
25716         to depend on SP register.
25717         (*tls_local_dynamic_base_32_gnu): Ditto.
25718         (*tls_local_dynamic_32_once): Ditto.
25719         (tls_global_dynamic_64_<mode>): Set
25720         ix86_tls_descriptor_calls_expanded_in_cfun.
25721         (tls_local_dynamic_base_64_<mode>): Ditto.
25722         (tls_global_dynamic_32): Set
25723         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
25724         to depend on SP register.
25725         (tls_local_dynamic_base_32): Ditto.
25726
25727 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25728
25729         * config/arm/arm_neon.h: Update comment.
25730         * config/arm/neon-docgen.ml: Delete.
25731         * config/arm/neon-gen.ml: Delete.
25732         * doc/arm-neon-intrinsics.texi: Update comment.
25733
25734 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25735
25736         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
25737         and v4sf versions.
25738         (vand, vorr, veor, vorn, vbic): Remove.
25739         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
25740         iterator.
25741         (neon_vsub_unspec): Likewise.
25742         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
25743
25744 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25745
25746         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
25747         (vadd_s16): Likewise.
25748         (vadd_s32): Likewise.
25749         (vadd_f32): Likewise.
25750         (vadd_u8): Likewise.
25751         (vadd_u16): Likewise.
25752         (vadd_u32): Likewise.
25753         (vadd_s64): Likewise.
25754         (vadd_u64): Likewise.
25755         (vaddq_s8): Likewise.
25756         (vaddq_s16): Likewise.
25757         (vaddq_s32): Likewise.
25758         (vaddq_s64): Likewise.
25759         (vaddq_f32): Likewise.
25760         (vaddq_u8): Likewise.
25761         (vaddq_u16): Likewise.
25762         (vaddq_u32): Likewise.
25763         (vaddq_u64): Likewise.
25764         (vmul_s8): Likewise.
25765         (vmul_s16): Likewise.
25766         (vmul_s32): Likewise.
25767         (vmul_f32): Likewise.
25768         (vmul_u8): Likewise.
25769         (vmul_u16): Likewise.
25770         (vmul_u32): Likewise.
25771         (vmul_p8): Likewise.
25772         (vmulq_s8): Likewise.
25773         (vmulq_s16): Likewise.
25774         (vmulq_s32): Likewise.
25775         (vmulq_f32): Likewise.
25776         (vmulq_u8): Likewise.
25777         (vmulq_u16): Likewise.
25778         (vmulq_u32): Likewise.
25779         (vsub_s8): Likewise.
25780         (vsub_s16): Likewise.
25781         (vsub_s32): Likewise.
25782         (vsub_f32): Likewise.
25783         (vsub_u8): Likewise.
25784         (vsub_u16): Likewise.
25785         (vsub_u32): Likewise.
25786         (vsub_s64): Likewise.
25787         (vsub_u64): Likewise.
25788         (vsubq_s8): Likewise.
25789         (vsubq_s16): Likewise.
25790         (vsubq_s32): Likewise.
25791         (vsubq_s64): Likewise.
25792         (vsubq_f32): Likewise.
25793         (vsubq_u8): Likewise.
25794         (vsubq_u16): Likewise.
25795         (vsubq_u32): Likewise.
25796         (vsubq_u64): Likewise.
25797         (vand_s8): Likewise.
25798         (vand_s16): Likewise.
25799         (vand_s32): Likewise.
25800         (vand_u8): Likewise.
25801         (vand_u16): Likewise.
25802         (vand_u32): Likewise.
25803         (vand_s64): Likewise.
25804         (vand_u64): Likewise.
25805         (vandq_s8): Likewise.
25806         (vandq_s16): Likewise.
25807         (vandq_s32): Likewise.
25808         (vandq_s64): Likewise.
25809         (vandq_u8): Likewise.
25810         (vandq_u16): Likewise.
25811         (vandq_u32): Likewise.
25812         (vandq_u64): Likewise.
25813         (vorr_s8): Likewise.
25814         (vorr_s16): Likewise.
25815         (vorr_s32): Likewise.
25816         (vorr_u8): Likewise.
25817         (vorr_u16): Likewise.
25818         (vorr_u32): Likewise.
25819         (vorr_s64): Likewise.
25820         (vorr_u64): Likewise.
25821         (vorrq_s8): Likewise.
25822         (vorrq_s16): Likewise.
25823         (vorrq_s32): Likewise.
25824         (vorrq_s64): Likewise.
25825         (vorrq_u8): Likewise.
25826         (vorrq_u16): Likewise.
25827         (vorrq_u32): Likewise.
25828         (vorrq_u64): Likewise.
25829         (veor_s8): Likewise.
25830         (veor_s16): Likewise.
25831         (veor_s32): Likewise.
25832         (veor_u8): Likewise.
25833         (veor_u16): Likewise.
25834         (veor_u32): Likewise.
25835         (veor_s64): Likewise.
25836         (veor_u64): Likewise.
25837         (veorq_s8): Likewise.
25838         (veorq_s16): Likewise.
25839         (veorq_s32): Likewise.
25840         (veorq_s64): Likewise.
25841         (veorq_u8): Likewise.
25842         (veorq_u16): Likewise.
25843         (veorq_u32): Likewise.
25844         (veorq_u64): Likewise.
25845         (vbic_s8): Likewise.
25846         (vbic_s16): Likewise.
25847         (vbic_s32): Likewise.
25848         (vbic_u8): Likewise.
25849         (vbic_u16): Likewise.
25850         (vbic_u32): Likewise.
25851         (vbic_s64): Likewise.
25852         (vbic_u64): Likewise.
25853         (vbicq_s8): Likewise.
25854         (vbicq_s16): Likewise.
25855         (vbicq_s32): Likewise.
25856         (vbicq_s64): Likewise.
25857         (vbicq_u8): Likewise.
25858         (vbicq_u16): Likewise.
25859         (vbicq_u32): Likewise.
25860         (vbicq_u64): Likewise.
25861         (vorn_s8): Likewise.
25862         (vorn_s16): Likewise.
25863         (vorn_s32): Likewise.
25864         (vorn_u8): Likewise.
25865         (vorn_u16): Likewise.
25866         (vorn_u32): Likewise.
25867         (vorn_s64): Likewise.
25868         (vorn_u64): Likewise.
25869         (vornq_s8): Likewise.
25870         (vornq_s16): Likewise.
25871         (vornq_s32): Likewise.
25872         (vornq_s64): Likewise.
25873         (vornq_u8): Likewise.
25874         (vornq_u16): Likewise.
25875         (vornq_u32): Likewise.
25876         (vornq_u64): Likewise.
25877
25878 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25879
25880         * wide-int.cc (UTItype): Define.
25881         (UDWtype): Define for appropriate W_TYPE_SIZE.
25882
25883 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
25884
25885         PR tree-optimization/59100
25886         * tree-ssa-phiopt.c: Include tree-inline.h.
25887         (neutral_element_p, absorbing_element_p): New functions.
25888         (value_replacement): Handle conditional binary operations with a
25889         neutral or absorbing element.
25890
25891 2014-05-08  Richard Biener  <rguenther@suse.de>
25892
25893         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
25894         folding the expression.
25895         (valueize_expr): Remove.
25896         (visit_reference_op_load): Do not valueize the result of
25897         vn_get_expr_for.
25898         (simplify_binary_expression): Likewise.
25899         (simplify_unary_expression): Likewise.
25900
25901 2014-05-08  Richard Biener  <rguenther@suse.de>
25902
25903         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
25904         looking at TYPE_ARG_TYPES.
25905
25906 2014-05-08  Richard Biener  <rguenther@suse.de>
25907
25908         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
25909         pointer propagation special-case.
25910
25911 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
25912
25913         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
25914         core part of address expressions.
25915
25916 2014-05-08  Alan Modra  <amodra@gmail.com>
25917
25918         PR target/60737
25919         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
25920         loads and stores when -mno-strict-align at any alignment.
25921         (expand_block_clear): Similarly.  Also correct calculation of
25922         instruction count.
25923
25924 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25925
25926         PR middle-end/39246
25927         * tree-complex.c (expand_complex_move): Keep line info when expanding
25928         complex move.
25929         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
25930         of complex expression. Use new argument to display correct location
25931         for values coming from phi statement.
25932         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
25933         (warn_uninitialized_phi): Pass location of phi argument to
25934         warn_uninit.
25935         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
25936         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
25937
25938 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
25939
25940         * config/rs6000/predicates.md (indexed_address_mem): New.
25941         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
25942         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
25943         fpstore_ux, fpstore_u.
25944         (sign_extend, indexed, update): New.
25945         (cell_micro): Adjust.
25946         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
25947         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
25948         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
25949         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
25950         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
25951         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
25952         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
25953         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
25954         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
25955         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
25956         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
25957         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
25958         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
25959         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
25960         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
25961
25962         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
25963         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
25964         *vsx_extract_<mode>_store): Adjust.
25965         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
25966         is_cracked_insn, insn_must_be_first_in_group,
25967         insn_must_be_last_in_group): Adjust.
25968
25969         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
25970         Adjust.
25971         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
25972         ppc440-fpstore): Adjust.
25973         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
25974         ppc476-fpstore): Adjust.
25975         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
25976         ppc601-fpstore): Adjust.
25977         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
25978         Adjust.
25979         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
25980         Adjust.
25981         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
25982         ppc7450-fpstore): Adjust.
25983         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
25984         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
25985         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
25986         Adjust.
25987         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
25988         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
25989         cell-fpstore, cell-fpstore-update): Adjust.
25990         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
25991         ppce300c3_store, ppce300c3_fpstore): Adjust.
25992         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
25993         e500mc_fpstore): Adjust.
25994         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
25995         e500mc64_store, e500mc64_fpstore): Adjust.
25996         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
25997         e5500_fpstore): Adjust.
25998         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
25999         e6500_fpstore): Adjust.
26000         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26001         Adjust.
26002         * config/rs6000/power4.md (power4-load, power4-load-ext,
26003         power4-load-ext-update, power4-load-ext-update-indexed,
26004         power4-load-update-indexed, power4-load-update, power4-fpload,
26005         power4-fpload-update, power4-store, power4-store-update,
26006         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26007         Adjust.
26008         * config/rs6000/power5.md (power5-load, power5-load-ext,
26009         power5-load-ext-update, power5-load-ext-update-indexed,
26010         power5-load-update-indexed, power5-load-update, power5-fpload,
26011         power5-fpload-update, power5-store, power5-store-update,
26012         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26013         Adjust.
26014         * config/rs6000/power6.md (power6-load, power6-load-ext,
26015         power6-load-update, power6-load-update-indexed,
26016         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26017         power6-fpload-update, power6-store, power6-store-update,
26018         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26019         Adjust.
26020         * config/rs6000/power7.md (power7-load, power7-load-ext,
26021         power7-load-update, power7-load-update-indexed,
26022         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26023         power7-fpload-update, power7-store, power7-store-update,
26024         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26025         Adjust.
26026         * config/rs6000/power8.md (power8-load, power8-load-update,
26027         power8-load-ext, power8-load-ext-update, power8-fpload,
26028         power8-fpload-update, power8-store, power8-store-update-indexed,
26029         power8-fpstore, power8-fpstore-update): Adjust.
26030         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26031         Adjust.
26032         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26033         titan_lsu_store, titan_lsu_fpstore): Adjust.
26034         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26035
26036 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26037
26038         PR target/60884
26039         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26040         unrolled byte insns.  Emit address increments after move insns.
26041
26042 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26043
26044         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26045         const_gimple, rather than a gimple.
26046         (gimple_call_builtin_p): Likewise, for the three variants.
26047
26048         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26049         (gimple_call_builtin_p): Likewise, for the three variants.
26050
26051 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26052
26053         PR tree-optimization/61095
26054         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26055
26056 2014-05-07  Richard Biener  <rguenther@suse.de>
26057
26058         PR tree-optimization/61034
26059         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26060         (maybe_skip_until): Use translate to take into account
26061         lattices when trying to do disambiguations.
26062         (get_continuation_for_phi_1): Likewise.
26063         (get_continuation_for_phi): Adjust for added translate arguments.
26064         (walk_non_aliased_vuses): Likewise.
26065         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26066         (walk_non_aliased_vuses): Likewise.
26067         (call_may_clobber_ref_p_1): Declare.
26068         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26069         calls.  Stop early if we are only supposed to disambiguate.
26070         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26071
26072 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26073
26074         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26075         Emit an error when the function has arguments.
26076
26077 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26078
26079         * cfgloop.h (unswitch_loops): Remove.
26080         * doc/passes.texi: Remove references to loop-unswitch.c
26081         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26082
26083 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26084
26085         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26086         check for loads group of length 3.
26087         (vect_permute_load_chain): New permutations for loads group of
26088         length 3.
26089         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26090         of vec_perm_shuffle for the new permutations.
26091
26092 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26093
26094         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26095         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26096         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26097         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26098         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26099         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26100         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26101         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26102
26103 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26104
26105         * loop-unswitch.c: Delete.
26106
26107 2014-05-07  Richard Biener  <rguenther@suse.de>
26108
26109         * config.gcc: Always set need_64bit_hwint to yes.
26110
26111 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26112
26113         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26114         of using optimize_size.
26115
26116 2014-05-06  Mike Stump  <mikestump@comcast.net>
26117
26118         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26119
26120 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26121
26122         * config/i386/sse.md (*mov<mode>_internal)
26123         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26124         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26125         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26126         (*<code><mode>3, *andnot<mode>3<mask_name>)
26127         (<mask_codefor><code><mode>3<mask_name>): Only consider
26128         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26129
26130 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26131
26132         Revert:
26133         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26134
26135         * lra-constraints.c (valid_address_p): Move earlier in file.
26136         Add a constraint argument to the address_info version.
26137         (satisfies_memory_constraint_p): New function.
26138         (satisfies_address_constraint_p): Likewise.
26139         (process_alt_operands, curr_insn_transform): Use them.
26140         (process_address): Pass the constraint to valid_address_p when
26141         checking address operands.
26142
26143 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26144
26145         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26146         to their respective blocks.  Fix inadvertent use of "node".
26147
26148 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26149
26150         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26151         out from...
26152         (init_emit_once): ...here.
26153         * rtl.h (init_derived_machine_modes): Declare.
26154         * toplev.c (do_compile): Call it even if no_backend.
26155
26156 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26157             Mike Stump  <mikestump@comcast.net>
26158             Richard Sandiford  <rdsandiford@googlemail.com>
26159             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26160
26161         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26162         (rtx_equal_for_memref_p): Update comment.
26163         (adjust_offset_for_component_ref): Use wide-int interfaces.
26164         * builtins.c (get_object_alignment_2): Likewise.
26165         (c_readstr): Likewise.
26166         (target_char_cast): Add comment.
26167         (determine_block_size): Use wide-int interfaces.
26168         (expand_builtin_signbit): Likewise.
26169         (fold_builtin_int_roundingfn): Likewise.
26170         (fold_builtin_bitop): Likewise.
26171         (fold_builtin_bswap): Likewise.
26172         (fold_builtin_logarithm): Use signop.
26173         (fold_builtin_pow): Likewise.
26174         (fold_builtin_memory_op): Use wide-int interfaces.
26175         (fold_builtin_object_size): Likewise.
26176         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26177         nb_iterations_estimate.
26178         (record_niter_bound): Use wide-int interfaces.
26179         (get_estimated_loop_iterations_int): Likewise.
26180         (get_estimated_loop_iterations): Likewise.
26181         (get_max_loop_iterations): Likewise.
26182         * cfgloop.h: Include wide-int.h.
26183         (struct nb_iter_bound): Change bound to widest_int.
26184         (struct loop): Change nb_iterations_upper_bound and
26185         nb_iterations_estimate to widest_int.
26186         (record_niter_bound): Switch to use widest_int.
26187         (get_estimated_loop_iterations): Likewise.
26188         (get_max_loop_iterations): Likewise.
26189         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26190         update for wide-int.
26191         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26192         * combine.c (try_combine): Likewise.
26193         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26194         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26195         interfaces.
26196         (aarch64_float_const_representable_p): Likewise.
26197         * config/arc/arc.c: Include wide-int.h.
26198         (arc_can_use_doloop_p): Use wide-int interfaces.
26199         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26200         (vfp3_const_double_index): Likewise.
26201         * config/avr/avr.c (avr_out_round): Likewise.
26202         (avr_fold_builtin): Likewise.
26203         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26204         (bfin_can_use_doloop_p): Likewise.
26205         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26206         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26207         * config/i386/i386.c: Include wide-int.h.
26208         (ix86_data_alignment): Use wide-int interfaces.
26209         (ix86_local_alignment): Likewise.
26210         (ix86_emit_swsqrtsf): Update real_from_integer.
26211         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26212         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26213         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26214         (zero_constant): Likewise.
26215         (input_operand): Likewise.
26216         (splat_input_operand): Likewise.
26217         (non_logical_cint_operand): Change const_double to const_wide_int.
26218         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26219         (easy_altivec_constant): Remove comment.
26220         (paired_expand_vector_init): Use CONSTANT_P.
26221         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26222         (rs6000_emit_move): Update checks.
26223         (rs6000_aggregate_candidate): Use wide-int interfaces.
26224         (rs6000_expand_ternop_builtin): Likewise.
26225         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26226         (rs6000_assemble_integer): Likewise.
26227         (rs6000_hash_constant): Likewise.
26228         (output_toc): Likewise.
26229         (rs6000_rtx_costs): Likewise.
26230         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26231         * config/rs6000/rs6000-c.c: Include wide-int.h.
26232         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26233         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26234         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26235         Handle CONST_WIDE_INT.
26236         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26237         Use tree_fits_uhwi_p.
26238         * config/sparc/sparc.c: Include wide-int.h.
26239         (sparc_fold_builtin): Use wide-int interfaces.
26240         * config/vax/vax.c: Include wide-int.h.
26241         (vax_float_literal): Use real_from_integer.
26242         * coretypes.h (struct hwivec_def): New.
26243         (hwivec): New.
26244         (const_hwivec): New.
26245         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26246         (equiv_constant): Handle CONST_WIDE_INT.
26247         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26248         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26249         * dbxout.c (stabstr_U): Use wide-int interfaces.
26250         (dbxout_type): Update to use cst_fits_shwi_p.
26251         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26252         (TARGET_SUPPORTS_WIDE_INT): Add default.
26253         * dfp.c: Include wide-int.h.
26254         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26255         decimal_real_to_integer.
26256         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26257         decimal_real_to_integer.
26258         * doc/generic.texi (Constant expressions): Update for wide_int.
26259         * doc/rtl.texi (const_double): Likewise.
26260         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26261         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26262         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26263         (REAL_VALUE_FROM_INT): Remove.
26264         (TARGET_SUPPORTS_WIDE_INT): New.
26265         * doc/tm.texi: Regenerate.
26266         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26267         * double-int.h: Include wide-int.h.
26268         (struct wi::int_traits): New.
26269         * dwarf2out.c (get_full_len): New.
26270         (dw_val_equal_p): Add case dw_val_class_wide_int.
26271         (size_of_loc_descr): Likewise.
26272         (output_loc_operands): Likewise.
26273         (insert_double): Remove.
26274         (insert_wide_int): New.
26275         (add_AT_wide): New.
26276         (print_die): Add case dw_val_class_wide_int.
26277         (attr_checksum): Likewise.
26278         (attr_checksum_ordered): Likewise.
26279         (same_dw_val_p): Likewise.
26280         (size_of_die): Likewise.
26281         (value_format): Likewise.
26282         (output_die): Likewise.
26283         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26284         Use wide-int.
26285         (clz_loc_descriptor): Use wide-int interfaces.
26286         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26287         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26288         (round_up_to_align): Use wide-int interfaces.
26289         (field_byte_offset): Likewise.
26290         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26291         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26292         CONST_DOUBLE handling.  Use wide-int interfaces.
26293         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26294         (gen_enumeration_type_die): Use add_AT_wide.
26295         (hash_loc_operands): Add case dw_val_class_wide_int.
26296         (compare_loc_operands): Likewise.
26297         * dwarf2out.h: Include wide-int.h.
26298         (wide_int_ptr): New.
26299         (enum dw_val_class): Add dw_val_class_wide_int.
26300         (struct dw_val_struct): Add val_wide.
26301         * emit-rtl.c (const_wide_int_htab): New.
26302         (const_wide_int_htab_hash): New.
26303         (const_wide_int_htab_eq): New.
26304         (lookup_const_wide_int): New.
26305         (const_double_htab_hash): Use wide-int interfaces.
26306         (const_double_htab_eq): Likewise.
26307         (rtx_to_double_int): Conditionally compile for wide-int.
26308         (immed_double_int_const): Rename to immed_wide_int_const and
26309         update for wide-int.
26310         (immed_double_const): Conditionally compile for wide-int.
26311         (init_emit_once): Use wide-int interfaces.
26312         * explow.c (plus_constant): Likewise.
26313         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26314         (lshift_value): Use wide-int interfaces.
26315         (expand_mult): Likewise.
26316         (choose_multiplier): Likewise.
26317         (expand_smod_pow2): Likewise.
26318         (make_tree): Likewise.
26319         * expr.c (convert_modes): Consolidate handling of constants.
26320         Use wide-int interfaces.
26321         (emit_group_load_1): Add note.
26322         (store_expr): Update comment.
26323         (get_inner_reference): Use wide-int interfaces.
26324         (expand_constructor): Update comment.
26325         (expand_expr_real_2): Use wide-int interfaces.
26326         (expand_expr_real_1): Likewise.
26327         (reduce_to_bit_field_precision): Likewise.
26328         (const_vector_from_tree): Likewise.
26329         * final.c: Include wide-int-print.h.
26330         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26331         * fixed-value.c: Include wide-int.h.
26332         (fixed_from_string): Use wide-int interfaces.
26333         (fixed_to_decimal): Likewise.
26334         (fixed_convert_from_real): Likewise.
26335         (real_convert_from_fixed): Likewise.
26336         * fold-const.h (mem_ref_offset): Return an offset_int.
26337         (div_if_zero_remainder): Remove code parameter.
26338         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26339         Use wide-int interfaces.
26340         (may_negate_without_overflow_p): Use wide-int interfaces.
26341         (negate_expr_p): Likewise.
26342         (fold_negate_expr): Likewise.
26343         (int_const_binop_1): Likewise.
26344         (const_binop): Likewise.
26345         (fold_convert_const_int_from_int): Likewise.
26346         (fold_convert_const_int_from_real): Likewise.
26347         (fold_convert_const_int_from_fixed): Likewise.
26348         (fold_convert_const_fixed_from_int): Likewise.
26349         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
26350         (sign_bit_p): Use wide-int interfaces.
26351         (make_range_step): Likewise.
26352         (build_range_check): Likewise.  Pass an integer of the correct type
26353         instead of using integer_one_node.
26354         (range_predecessor): Pass an integer of the correct type instead
26355         of using integer_one_node.
26356         (range_successor): Likewise.
26357         (merge_ranges): Likewise.
26358         (unextend): Use wide-int interfaces.
26359         (extract_muldiv_1): Likewise.
26360         (fold_div_compare): Likewise.
26361         (fold_single_bit_test): Likewise.
26362         (fold_sign_changed_comparison): Likewise.
26363         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26364         (fold_plusminus_mult_expr): Use wide-int interfaces.
26365         (native_encode_int): Likewise.
26366         (native_interpret_int): Likewise.
26367         (fold_unary_loc): Likewise.
26368         (pointer_may_wrap_p): Likewise.
26369         (size_low_cst): Likewise.
26370         (mask_with_tz): Likewise.
26371         (fold_binary_loc): Likewise.
26372         (fold_ternary_loc): Likewise.
26373         (multiple_of_p): Likewise.
26374         (tree_call_nonnegative_warnv_p): Update calls to
26375         tree_int_cst_min_precision and real_from_integer.
26376         (fold_negate_const): Use wide-int interfaces.
26377         (fold_abs_const): Likewise.
26378         (fold_relational_const): Use tree_int_cst_lt.
26379         (round_up_loc): Use wide-int interfaces.
26380         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26381         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26382         * gengtype.c: Remove include of double-int.h.
26383         (do_typedef): Use wide-int interfaces.
26384         (open_base_files): Add wide-int.h.
26385         (main): Add offset_int and widest_int typedefs.
26386         * gengtype-lex.l: Handle "^".
26387         (CXX_KEYWORD): Add "static".
26388         * gengtype-parse.c (require3): New.
26389         (require_template_declaration): Handle constant template arguments
26390         and nested templates.
26391         * gengtype-state.c: Don't include "double-int.h".
26392         * genpreds.c (write_one_predicate_function): Update comment.
26393         (write_tm_constrs_h): Add check for hval and lval use in
26394         CONST_WIDE_INT.
26395         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
26396         (add_to_sequence): Likewise.
26397         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
26398         and const_double_operand.
26399         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
26400         interfaces.
26401         * gimple-fold.c (get_base_constructor): Likewise.
26402         (fold_array_ctor_reference): Likewise.
26403         (fold_nonarray_ctor_reference): Likewise.
26404         (fold_const_aggregate_ref_1): Likewise.
26405         (gimple_val_nonnegative_real_p): Likewise.
26406         (gimple_fold_indirect_ref): Likewise.
26407         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
26408         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
26409         (struct slsr_cand_d): Change index to be widest_int.
26410         (struct incr_info_d): Change incr to be widest_int.
26411         (alloc_cand_and_find_basis): Use wide-int interfaces.
26412         (slsr_process_phi): Likewise.
26413         (backtrace_base_for_ref): Likewise.  Return a widest_int.
26414         (restructure_reference): Take a widest_int instead of a double_int.
26415         (slsr_process_ref): Use wide-int interfaces.
26416         (create_mul_ssa_cand): Likewise.
26417         (create_mul_imm_cand): Likewise.
26418         (create_add_ssa_cand): Likewise.
26419         (create_add_imm_cand): Take a widest_int instead of a double_int.
26420         (slsr_process_add): Use wide-int interfaces.
26421         (slsr_process_cast): Likewise.
26422         (slsr_process_copy): Likewise.
26423         (dump_candidate): Likewise.
26424         (dump_incr_vec): Likewise.
26425         (replace_ref): Likewise.
26426         (cand_increment): Likewise.  Return a widest_int.
26427         (cand_abs_increment): Likewise.
26428         (replace_mult_candidate): Take a widest_int instead of a double_int.
26429         (replace_unconditional_candidate): Use wide-int interfaces.
26430         (incr_vec_index): Take a widest_int instead of a double_int.
26431         (create_add_on_incoming_edge): Likewise.
26432         (create_phi_basis): Use wide-int interfaces.
26433         (replace_conditional_candidate): Likewise.
26434         (record_increment): Take a widest_int instead of a double_int.
26435         (record_phi_increments): Use wide-int interfaces.
26436         (phi_incr_cost): Take a widest_int instead of a double_int.
26437         (lowest_cost_path): Likewise.
26438         (total_savings): Likewise.
26439         (analyze_increments): Use wide-int interfaces.
26440         (ncd_with_phi): Take a widest_int instead of a double_int.
26441         (ncd_of_cand_and_phis): Likewise.
26442         (nearest_common_dominator_for_cands): Likewise.
26443         (insert_initializers): Use wide-int interfaces.
26444         (all_phi_incrs_profitable): Likewise.
26445         (replace_one_candidate): Likewise.
26446         (replace_profitable_candidates): Likewise.
26447         * godump.c: Include wide-int-print.h.
26448         (go_output_typedef): Use wide-int interfaces.
26449         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
26450         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
26451         (build_loop_iteration_domains): Likewise.
26452         * hooks.h: Include wide-int.h rather than double-int.h.
26453         (hook_bool_dint_dint_uint_bool_true): Delete.
26454         (hook_bool_wint_wint_uint_bool_true): Declare.
26455         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
26456         (hook_bool_wint_wint_uint_bool_true): New.
26457         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
26458         interfaces.
26459         (ubsan_expand_si_overflow_mul_check): Likewise.
26460         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
26461         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
26462         (get_ancestor_addr_info): Likewise.
26463         (ipa_modify_call_arguments): Likewise.
26464         * loop-doloop.c (doloop_modify): Likewise.
26465         (doloop_optimize): Likewise.
26466         * loop-iv.c (iv_number_of_iterations): Likewise.
26467         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
26468         (unroll_loop_constant_iterations): Likewise.
26469         (decide_unroll_runtime_iterations): Likewise.
26470         (unroll_loop_runtime_iterations): Likewise.
26471         (decide_peel_simple): Likewise.
26472         (decide_unroll_stupid): Likewise.
26473         * lto-streamer-in.c (streamer_read_wi): Add.
26474         (input_cfg): Use wide-int interfaces.
26475         (lto_input_tree_1): Likewise.
26476         * lto-streamer-out.c (streamer_write_wi): Add.
26477         (hash_tree): Use wide-int interfaces.
26478         (output_cfg): Likewise.
26479         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
26480         (GTFILES): Add wide-int.h and signop.h.
26481         (TAGS): Look for .cc files too.
26482         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
26483         * optabs.c (expand_subword_shift): Likewise.
26484         (expand_doubleword_shift): Likewise.
26485         (expand_absneg_bit): Likewise.
26486         (expand_copysign_absneg): Likewise.
26487         (expand_copysign_bit): Likewise.
26488         * postreload.c (reload_cse_simplify_set): Likewise.
26489         * predict.c (predict_iv_comparison): Likewise.
26490         * pretty-print.h: Include wide-int-print.h.
26491         (pp_wide_int) New.
26492         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
26493         * print-tree.c: Include wide-int-print.h.
26494         (print_node_brief): Use wide-int interfaces.
26495         (print_node): Likewise.
26496         * read-rtl.c (validate_const_wide_int): New.
26497         (read_rtx_code): Add CONST_WIDE_INT case.
26498         * real.c: Include wide-int.h.
26499         (real_to_integer2): Delete.
26500         (real_to_integer): New function, returning a wide_int.
26501         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26502         (ten_to_ptwo): Update call to real_from_integer.
26503         (real_digit): Likewise.
26504         * real.h: Include signop.h, wide-int.h and insn-modes.h.
26505         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
26506         (REAL_VALUE_TO_INT): Delete.
26507         (real_to_integer): Declare a wide-int form.
26508         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
26509         * recog.c (const_int_operand): Improve comment.
26510         (const_scalar_int_operand): New.
26511         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
26512         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
26513         (split_double): Likewise.
26514         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
26515         (rtx_size): Likewise.
26516         (rtx_alloc_stat_v): New.
26517         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
26518         (cwi_output_hex): New.
26519         (iterative_hash_rtx): Handle CONST_WIDE_INT.
26520         (cwi_check_failed_bounds): New.
26521         * rtl.def (CONST_WIDE_INT): New.
26522         * rtl.h: Include <utility> and wide-int.h.
26523         (struct hwivec_def): New.
26524         (CWI_GET_NUM_ELEM): New.
26525         (CWI_PUT_NUM_ELEM): New.
26526         (struct rtx_def): Add num_elem and hwiv.
26527         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
26528         (CASE_CONST_UNIQUE): Likewise.
26529         (CASE_CONST_ANY): Likewise.
26530         (CONST_SCALAR_INT_P): Likewise.
26531         (CONST_WIDE_INT_P): New.
26532         (CWI_ELT): New.
26533         (HWIVEC_CHECK): New.
26534         (cwi_check_failed_bounds): New.
26535         (CWI_ELT): New.
26536         (HWIVEC_CHECK): New.
26537         (CONST_WIDE_INT_VEC) New.
26538         (CONST_WIDE_INT_NUNITS) New.
26539         (CONST_WIDE_INT_ELT) New.
26540         (rtx_mode_t): New type.
26541         (wi::int_traits <rtx_mode_t>): New.
26542         (wi::shwi): New.
26543         (wi::min_value): New.
26544         (wi::max_value): New.
26545         (rtx_alloc_v) New.
26546         (const_wide_int_alloc): New.
26547         (immed_wide_int_const): New.
26548         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
26549         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
26550         * signop.h: New file.
26551         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
26552         (simplify_const_unary_operation): Use wide-int interfaces.
26553         (simplify_binary_operation_1): Likewise.
26554         (simplify_const_binary_operation): Likewise.
26555         (simplify_const_relational_operation): Likewise.
26556         (simplify_immed_subreg): Likewise.
26557         * stmt.c (expand_case): Likewise.
26558         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
26559         signop rather than a bool.
26560         * stor-layout.c (layout_type): Use wide-int interfaces.
26561         (initialize_sizetypes): Update calls to
26562         set_min_and_max_values_for_integral_type.
26563         (set_min_and_max_values_for_integral_type): Take a signop rather
26564         than a bool.  Use wide-int interfaces.
26565         (fixup_signed_type): Update accordingly.  Remove
26566         HOST_BITS_PER_DOUBLE_INT limit.
26567         (fixup_unsigned_type): Likewise.
26568         * system.h (STATIC_CONSTANT_P): New.
26569         (STATIC_ASSERT): New.
26570         * target.def (can_use_doloop_p): Take widest_ints rather than
26571         double_ints.
26572         * target.h: Include wide-int.h rather than double-int.h.
26573         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
26574         than double_ints.
26575         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
26576         rather than INT_CST_LT_UNSIGNED.
26577         (can_use_doloop_if_innermost): Take widest_ints rather than
26578         double_ints.
26579         * tree-affine.c: Include wide-int-print.h.
26580         (double_int_ext_for_comb): Delete.
26581         (wide_int_ext_for_comb): New.
26582         (aff_combination_zero): Use wide-int interfaces.
26583         (aff_combination_const): Take a widest_int instead of a double_int.
26584         (aff_combination_elt): Use wide-int interfaces.
26585         (aff_combination_scale): Take a widest_int instead of a double_int.
26586         (aff_combination_add_elt): Likewise.
26587         (aff_combination_add_cst): Likewise.
26588         (aff_combination_add): Use wide-int interfaces.
26589         (aff_combination_convert): Likewise.
26590         (tree_to_aff_combination): Likewise.
26591         (add_elt_to_tree): Take a widest_int instead of a double_int.
26592         (aff_combination_to_tree): Use wide-int interfaces.
26593         (aff_combination_remove_elt): Likewise.
26594         (aff_combination_add_product): Take a widest_int instead of
26595         a double_int.
26596         (aff_combination_mult): Use wide-int interfaces.
26597         (aff_combination_expand): Likewise.
26598         (double_int_constant_multiple_p): Delete.
26599         (wide_int_constant_multiple_p): New.
26600         (aff_combination_constant_multiple_p): Take a widest_int pointer
26601         instead of a double_int pointer.
26602         (print_aff): Use wide-int interfaces.
26603         (get_inner_reference_aff): Take a widest_int pointer
26604         instead of a double_int pointer.
26605         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
26606         * tree-affine.h: Include wide-int.h.
26607         (struct aff_comb_elt): Change type of coef to widest_int.
26608         (struct affine_tree_combination): Change type of offset to widest_int.
26609         (double_int_ext_for_comb): Delete.
26610         (wide_int_ext_for_comb): New.
26611         (aff_combination_const): Use widest_int instead of double_int.
26612         (aff_combination_scale): Likewise.
26613         (aff_combination_add_elt): Likewise.
26614         (aff_combination_constant_multiple_p): Likewise.
26615         (get_inner_reference_aff): Likewise.
26616         (aff_comb_cannot_overlap_p): Likewise.
26617         (aff_combination_zero_p): Use wide-int interfaces.
26618         * tree.c: Include tree.h.
26619         (init_ttree): Use make_int_cst.
26620         (tree_code_size): Removed code for INTEGER_CST case.
26621         (tree_size): Add INTEGER_CST case.
26622         (make_node_stat): Update comment.
26623         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
26624         (build_int_cst_type): Use wide-int interfaces.
26625         (double_int_to_tree): Likewise.
26626         (double_int_fits_to_tree_p): Delete.
26627         (force_fit_type_double): Delete.
26628         (force_fit_type): New.
26629         (int_cst_hash_hash): Use wide-int interfaces.
26630         (int_cst_hash_eq): Likewise.
26631         (build_int_cst_wide): Delete.
26632         (wide_int_to_tree): New.
26633         (cache_integer_cst): Use wide-int interfaces.
26634         (build_low_bits_mask): Likewise.
26635         (cst_and_fits_in_hwi): Likewise.
26636         (real_value_from_int_cst): Likewise.
26637         (make_int_cst_stat): New.
26638         (integer_zerop): Use wide_int interfaces.
26639         (integer_onep): Likewise.
26640         (integer_all_onesp): Likewise.
26641         (integer_pow2p): Likewise.
26642         (integer_nonzerop): Likewise.
26643         (tree_log2): Likewise.
26644         (tree_floor_log2): Likewise.
26645         (tree_ctz): Likewise.
26646         (int_size_in_bytes): Likewise.
26647         (mem_ref_offset): Return an offset_int rather than a double_int.
26648         (build_type_attribute_qual_variant): Use wide_int interfaces.
26649         (type_hash_eq): Likewise
26650         (tree_int_cst_equal): Likewise.
26651         (tree_int_cst_lt): Delete.
26652         (tree_int_cst_compare): Likewise.
26653         (tree_fits_shwi_p): Use wide_int interfaces.
26654         (tree_fits_uhwi_p): Likewise.
26655         (tree_int_cst_sign_bit): Likewise.
26656         (tree_int_cst_sgn): Likewise.
26657         (tree_int_cst_min_precision): Take a signop rather than a bool.
26658         (simple_cst_equal): Use wide_int interfaces.
26659         (compare_tree_int): Likewise.
26660         (iterative_hash_expr): Likewise.
26661         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
26662         INT_CST_LT.
26663         (get_type_static_bounds): Use wide_int interfaces.
26664         (tree_int_cst_elt_check_failed): New.
26665         (build_common_tree_nodes): Reordered to set prec before filling in
26666         value.
26667         (int_cst_value): Check cst_and_fits_in_hwi.
26668         (widest_int_cst_value): Use wide_int interfaces.
26669         (upper_bound_in_type): Likewise.
26670         (lower_bound_in_type): Likewise.
26671         (num_ending_zeros): Likewise.
26672         (drop_tree_overflow): Likewise.
26673         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
26674         (gen_conditions_for_pow_cst_base): Likewise.
26675         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
26676         (group_case_labels_stmt): Use wide-int interfaces.
26677         (verify_gimple_assign_binary): Likewise.
26678         (print_loop): Likewise.
26679         * tree-chrec.c (tree_fold_binomial): Likewise.
26680         * tree-core.h (struct tree_base): Add int_length.
26681         (struct tree_int_cst): Change rep of value.
26682         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
26683         (dr_may_alias_p): Likewise.
26684         (max_stmt_executions_tree): Likewise.
26685         * tree.def (INTEGER_CST): Update comment.
26686         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
26687         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
26688         * tree-dump.c: Include wide-int.h and wide-int-print.h.
26689         (dequeue_and_dump): Use wide-int interfaces.
26690         * tree.h: Include wide-int.h.
26691         (NULL_TREE): Moved to earlier loc in file.
26692         (TREE_INT_CST_ELT_CHECK): New.
26693         (tree_int_cst_elt_check_failed): New.
26694         (TYPE_SIGN): New.
26695         (TREE_INT_CST): Delete.
26696         (TREE_INT_CST_LOW): Use wide-int interfaces.
26697         (TREE_INT_CST_HIGH): Delete.
26698         (TREE_INT_CST_NUNITS): New.
26699         (TREE_INT_CST_EXT_NUNITS): Likewise.
26700         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
26701         (TREE_INT_CST_ELT): Likewise.
26702         (INT_CST_LT): Delete.
26703         (tree_int_cst_elt_check): New (two forms).
26704         (type_code_size): Update comment.
26705         (make_int_cst_stat, make_int_cst): New.
26706         (tree_to_double_int): Delete.
26707         (double_int_fits_to_tree_p): Delete.
26708         (force_fit_type_double): Delete.
26709         (build_int_cstu): Replace with out-of-line function.
26710         (build_int_cst_wide): Delete.
26711         (tree_int_cst_lt): Define inline.
26712         (tree_int_cst_le): New.
26713         (tree_int_cst_compare): Define inline.
26714         (tree_int_cst_min_precision): Take a signop rather than a bool.
26715         (wi::int_traits <const_tree>): New.
26716         (wi::int_traits <tree>): New.
26717         (wi::extended_tree): New.
26718         (wi::int_traits <wi::extended_tree>): New.
26719         (wi::to_widest): New.
26720         (wi::to_offset): New.
26721         (wi::fits_to_tree_p): New.
26722         (wi::min_value): New.
26723         (wi::max_value): New.
26724         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
26725         (copy_tree_body_r): Likewise.
26726         * tree-object-size.c (compute_object_offset): Likewise.
26727         (addr_object_size): Likewise.
26728         * tree-predcom.c: Include wide-int-print.h.
26729         (struct dref_d): Change type of offset to widest_int.
26730         (dump_dref): Call wide-int printer.
26731         (aff_combination_dr_offset): Use wide-int interfaces.
26732         (determine_offset): Take a widest_int pointer rather than a
26733         double_int pointer.
26734         (split_data_refs_to_components): Use wide-int interfaces.
26735         (suitable_component_p): Likewise.
26736         (order_drefs): Likewise.
26737         (add_ref_to_chain): Likewise.
26738         (valid_initializer_p): Likewise.
26739         (determine_roots_comp): Likewise.
26740         * tree-pretty-print.c: Include wide-int-print.h.
26741         (dump_generic_node): Use wide-int interfaces.
26742         * tree-sra.c (sra_ipa_modify_expr): Likewise.
26743         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
26744         (move_fixed_address_to_symbol): Likewise.
26745         (move_hint_to_base): Likewise.
26746         (move_pointer_to_base): Likewise.
26747         (move_variant_to_index): Likewise.
26748         (most_expensive_mult_to_index): Likewise.
26749         (addr_to_parts): Likewise.
26750         (copy_ref_info): Likewise.
26751         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26752         (indirect_refs_may_alias_p): Likewise.
26753         (stmt_kills_ref_p_1): Likewise.
26754         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
26755         * tree-ssa-ccp.c: Update comment at top of file.  Include
26756         wide-int-print.h.
26757         (struct prop_value_d): Change type of mask to widest_int.
26758         (extend_mask): New function.
26759         (dump_lattice_value): Use wide-int interfaces.
26760         (get_default_value): Likewise.
26761         (set_constant_value): Likewise.
26762         (set_value_varying): Likewise.
26763         (valid_lattice_transition): Likewise.
26764         (set_lattice_value): Likewise.
26765         (value_to_double_int): Delete.
26766         (value_to_wide_int): New.
26767         (get_value_from_alignment): Use wide-int interfaces.
26768         (get_value_for_expr): Likewise.
26769         (do_dbg_cnt): Likewise.
26770         (ccp_finalize): Likewise.
26771         (ccp_lattice_meet): Likewise.
26772         (bit_value_unop_1): Use widest_ints rather than double_ints.
26773         (bit_value_binop_1): Likewise.
26774         (bit_value_unop): Use wide-int interfaces.
26775         (bit_value_binop): Likewise.
26776         (bit_value_assume_aligned): Likewise.
26777         (evaluate_stmt): Likewise.
26778         (ccp_fold_stmt): Likewise.
26779         (visit_cond_stmt): Likewise.
26780         (ccp_visit_stmt): Likewise.
26781         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
26782         (constant_pointer_difference): Likewise.
26783         (associate_pointerplus): Likewise.
26784         (combine_conversions): Likewise.
26785         * tree-ssa-loop.h: Include wide-int.h.
26786         (struct tree_niter_desc): Change type of max to widest_int.
26787         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
26788         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
26789         (remove_redundant_iv_tests): Likewise.
26790         (canonicalize_loop_induction_variables): Likewise.
26791         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
26792         (constant_multiple_of): Take a widest_int pointer instead of
26793         a double_int pointer.
26794         (get_computation_aff): Use wide-int interfaces.
26795         (ptr_difference_cost): Likewise.
26796         (difference_cost): Likewise.
26797         (get_loop_invariant_expr_id): Likewise.
26798         (get_computation_cost_at): Likewise.
26799         (iv_elimination_compare_lt): Likewise.
26800         (may_eliminate_iv): Likewise.
26801         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
26802         instead of double_int.
26803         (max_loop_iterations): Likewise.
26804         (max_stmt_executions): Likewise.
26805         (estimated_stmt_executions): Likewise.
26806         * tree-ssa-loop-niter.c: Include wide-int-print.h.
26807         (split_to_var_and_offset): Use wide-int interfaces.
26808         (determine_value_range): Likewise.
26809         (bound_difference_of_offsetted_base): Likewise.
26810         (bounds_add): Take a widest_int instead of a double_int.
26811         (number_of_iterations_ne_max): Use wide-int interfaces.
26812         (number_of_iterations_ne): Likewise.
26813         (number_of_iterations_lt_to_ne): Likewise.
26814         (assert_loop_rolls_lt): Likewise.
26815         (number_of_iterations_lt): Likewise.
26816         (number_of_iterations_le): Likewise.
26817         (number_of_iterations_cond): Likewise.
26818         (number_of_iterations_exit): Likewise.
26819         (finite_loop_p): Likewise.
26820         (derive_constant_upper_bound_assign): Likewise.
26821         (derive_constant_upper_bound): Return a widest_int.
26822         (derive_constant_upper_bound_ops): Likewise.
26823         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
26824         (record_estimate): Take a widest_int rather than a double_int.
26825         (record_nonwrapping_iv): Use wide-int interfaces.
26826         (double_int_cmp): Delete.
26827         (wide_int_cmp): New.
26828         (bound_index): Take a widest_int rather than a double_int.
26829         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
26830         (maybe_lower_iteration_bound): Likewise.
26831         (estimate_numbers_of_iterations_loop): Likewise.
26832         (estimated_loop_iterations): Take a widest_int pointer than than
26833         a double_int pointer.
26834         (estimated_loop_iterations_int): Use wide-int interfaces.
26835         (max_loop_iterations): Take a widest_int pointer than than
26836         a double_int pointer.
26837         (max_loop_iterations_int): Use wide-int interfaces.
26838         (max_stmt_executions): Take a widest_int pointer than than
26839         a double_int pointer.
26840         (estimated_stmt_executions): Likewise.
26841         (n_of_executions_at_most): Use wide-int interfaces.
26842         (scev_probably_wraps_p): Likewise.
26843         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
26844         to real_to_integer.
26845         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
26846         interfaces.
26847         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
26848         double_ints.  Adjust for trailing_wide_ints <3> representation.
26849         (set_nonzero_bits): Likewise.
26850         (get_range_info): Return wide_ints rather than double_ints.
26851         Adjust for trailing_wide_ints <3> representation.
26852         (get_nonzero_bits): Likewise.
26853         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
26854         representation.
26855         * tree-ssanames.h (struct range_info_def): Replace min, max and
26856         nonzero_bits with a trailing_wide_ints <3>.
26857         (set_range_info): Use wide_int_refs rather than double_ints.
26858         (set_nonzero_bits): Likewise.
26859         (get_range_info): Return wide_ints rather than double_ints.
26860         (get_nonzero_bits): Likewise.
26861         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
26862         * tree-ssa-pre.c (phi_translate_1): Likewise.
26863         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
26864         (acceptable_pow_call): Likewise.
26865         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
26866         interfaces.
26867         (vn_reference_fold_indirect): Likewise.
26868         (vn_reference_maybe_forwprop_address): Likewise.
26869         (valueize_refs_1): Likewise.
26870         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
26871         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
26872         tree_int_cst_lt and tree_int_cst_le.
26873         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
26874         interfaces.
26875         (streamer_alloc_tree): Likewise.
26876         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
26877         (streamer_write_tree_header): Likewise.
26878         (streamer_write_integer_cst): Likewise.
26879         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
26880         (build_constructors): Likewise.
26881         (array_value_type): Likewise.
26882         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
26883         (vect_check_gather): Likewise.
26884         * tree-vect-generic.c (build_replicated_const): Likewise.
26885         (expand_vector_divmod): Likewise.
26886         * tree-vect-loop.c (vect_transform_loop): Likewise.
26887         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
26888         (vect_do_peeling_for_alignment): Likewise.
26889         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
26890         * tree-vrp.c: Include wide-int.h.
26891         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
26892         (extract_range_from_assert): Use wide-int interfaces.
26893         (vrp_int_const_binop): Likewise.
26894         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
26895         double_int pointers.
26896         (ranges_from_anti_range): Use wide-int interfaces.
26897         (quad_int_cmp): Delete.
26898         (quad_int_pair_sort): Likewise.
26899         (extract_range_from_binary_expr_1): Use wide-int interfaces.
26900         (extract_range_from_unary_expr_1): Likewise.
26901         (adjust_range_with_scev): Likewise.
26902         (masked_increment): Take and return wide_ints rather than double_ints.
26903         (register_edge_assert_for_2): Use wide-int interfaces.
26904         (check_array_ref): Likewise.
26905         (search_for_addr_array): Likewise.
26906         (maybe_set_nonzero_bits): Likewise.
26907         (union_ranges): Pass an integer of the correct type instead of
26908         using integer_one_node.
26909         (intersect_ranges): Likewise.
26910         (simplify_truth_ops_using_ranges): Likewise.
26911         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
26912         (range_fits_type_p): Likewise.
26913         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
26914         a bool.
26915         (simplify_conversion_using_ranges): Use wide-int interfaces.
26916         (simplify_float_conversion_using_ranges): Likewise.
26917         (vrp_finalize): Likewise.
26918         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
26919         (gimple_stringops_transform): Likewise.
26920         * varasm.c (decode_addr_const): Likewise.
26921         (const_hash_1): Likewise.
26922         (const_rtx_hash_1): Likewise
26923         (output_constant): Likewise.
26924         (array_size_for_constructor): Likewise.
26925         (output_constructor_regular_field): Likewise.
26926         (output_constructor_bitfield): Likewise.
26927         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
26928         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
26929         GENERATOR_FILEs.
26930         * gencheck.c: Define BITS_PER_UNIT.
26931         * wide-int.cc: New.
26932         * wide-int.h: New.
26933         * wide-int-print.cc: New.
26934         * wide-int-print.h: New.
26935
26936 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
26937
26938         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
26939
26940 2014-05-06  Richard Biener  <rguenther@suse.de>
26941
26942         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
26943         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
26944         (TODO_verify_all): Adjust.
26945         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
26946         TODO_verify_stmts and TODO_verify_rtl_sharing.
26947         * bb-reorder.c: Likewise.
26948         * cfgexpand.c: Likewise.
26949         * cprop.c: Likewise.
26950         * cse.c: Likewise.
26951         * function.c: Likewise.
26952         * fwprop.c: Likewise.
26953         * gcse.c: Likewise.
26954         * gimple-ssa-isolate-paths.c: Likewise.
26955         * gimple-ssa-strength-reduction.c: Likewise.
26956         * ipa-split.c: Likewise.
26957         * loop-init.c: Likewise.
26958         * loop-unroll.c: Likewise.
26959         * lower-subreg.c: Likewise.
26960         * modulo-sched.c: Likewise.
26961         * postreload-gcse.c: Likewise.
26962         * predict.c: Likewise.
26963         * recog.c: Likewise.
26964         * sched-rgn.c: Likewise.
26965         * store-motion.c: Likewise.
26966         * tracer.c: Likewise.
26967         * trans-mem.c: Likewise.
26968         * tree-call-cdce.c: Likewise.
26969         * tree-cfg.c: Likewise.
26970         * tree-cfgcleanup.c: Likewise.
26971         * tree-complex.c: Likewise.
26972         * tree-eh.c: Likewise.
26973         * tree-emutls.c: Likewise.
26974         * tree-if-conv.c: Likewise.
26975         * tree-into-ssa.c: Likewise.
26976         * tree-loop-distribution.c: Likewise.
26977         * tree-object-size.c: Likewise.
26978         * tree-parloops.c: Likewise.
26979         * tree-pass.h: Likewise.
26980         * tree-sra.c: Likewise.
26981         * tree-ssa-ccp.c: Likewise.
26982         * tree-ssa-copy.c: Likewise.
26983         * tree-ssa-copyrename.c: Likewise.
26984         * tree-ssa-dce.c: Likewise.
26985         * tree-ssa-dom.c: Likewise.
26986         * tree-ssa-dse.c: Likewise.
26987         * tree-ssa-forwprop.c: Likewise.
26988         * tree-ssa-ifcombine.c: Likewise.
26989         * tree-ssa-loop-ch.c: Likewise.
26990         * tree-ssa-loop-ivcanon.c: Likewise.
26991         * tree-ssa-loop.c: Likewise.
26992         * tree-ssa-math-opts.c: Likewise.
26993         * tree-ssa-phiopt.c: Likewise.
26994         * tree-ssa-phiprop.c: Likewise.
26995         * tree-ssa-pre.c: Likewise.
26996         * tree-ssa-reassoc.c: Likewise.
26997         * tree-ssa-sink.c: Likewise.
26998         * tree-ssa-strlen.c: Likewise.
26999         * tree-ssa-tail-merge.c: Likewise.
27000         * tree-ssa-uncprop.c: Likewise.
27001         * tree-switch-conversion.c: Likewise.
27002         * tree-tailcall.c: Likewise.
27003         * tree-vect-generic.c: Likewise.
27004         * tree-vectorizer.c: Likewise.
27005         * tree-vrp.c: Likewise.
27006         * tsan.c: Likewise.
27007         * var-tracking.c: Likewise.
27008         * bt-load.c: Likewise.
27009         * cfgcleanup.c: Likewise.
27010         * combine-stack-adj.c: Likewise.
27011         * combine.c: Likewise.
27012         * compare-elim.c: Likewise.
27013         * config/epiphany/resolve-sw-modes.c: Likewise.
27014         * config/i386/i386.c: Likewise.
27015         * config/mips/mips.c: Likewise.
27016         * config/s390/s390.c: Likewise.
27017         * config/sh/sh_treg_combine.cc: Likewise.
27018         * config/sparc/sparc.c: Likewise.
27019         * dce.c: Likewise.
27020         * dse.c: Likewise.
27021         * final.c: Likewise.
27022         * ifcvt.c: Likewise.
27023         * mode-switching.c: Likewise.
27024         * passes.c: Likewise.
27025         * postreload.c: Likewise.
27026         * ree.c: Likewise.
27027         * reg-stack.c: Likewise.
27028         * regcprop.c: Likewise.
27029         * regrename.c: Likewise.
27030         * web.c: Likewise.
27031
27032 2014-05-06  Richard Biener  <rguenther@suse.de>
27033
27034         PR middle-end/61070
27035         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27036         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27037
27038 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27039
27040         PR ipa/60965
27041         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27042
27043 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27044             Tom de Vries  <tom@codesourcery.com>
27045
27046         * target.def (call_fusage_contains_non_callee_clobbers): New
27047         DEFHOOKPOD.
27048         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27049         Hooks to @menu.
27050         (@node Miscellaneous Register Hooks): New node.
27051         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27052         * doc/tm.texi: Regenerate.
27053
27054 2014-05-05  Marek Polacek  <polacek@redhat.com>
27055
27056         PR driver/61065
27057         * opts.c (common_handle_option): Call error_at instead of warning_at.
27058
27059 2014-05-05  Richard Biener  <rguenther@suse.de>
27060
27061         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27062         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27063         under the TODO_verify_il umbrella.
27064
27065 2014-05-05  Richard Biener  <rguenther@suse.de>
27066
27067         * passes.c (execute_function_todo): Move TODO_verify_flow under
27068         the TODO_verify_ul umbrella.
27069
27070 2014-05-05  Richard Biener  <rguenther@suse.de>
27071
27072         PR middle-end/61010
27073         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27074         X & CST away from a CST that is the mask of a mode.
27075
27076 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27077
27078         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27079         int argument to enum machine_mode.
27080         (picochip_class_max_nregs): Ditto.
27081         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27082         (picochip_class_max_nregs): Ditto.
27083
27084 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27085
27086         * target.def: Add new target hook.
27087         * doc/tm.texi: Regenerate.
27088         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27089         * targhooks.c (default_keep_leaf_when_profiled): New function.
27090
27091         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27092         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27093
27094 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27095
27096         PR tree-optimization/60363
27097         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27098         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27099         (update_destination_phis): New parameter.
27100         (create_edge_and_update_destination_phis): Ditto.
27101         (ssa_fix_duplicate_block_edges): Pass new arguments.
27102         (thread_single_edge): Ditto.
27103
27104 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27105
27106         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27107         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27108         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27109         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27110         Use RS6000_BTM_HARD_FLOAT.
27111         (BU_MISC_2): Likewise.
27112         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27113         RS6000_BTM_HARD_FLOAT.
27114         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27115         is explicitly used.
27116         (rs6000_invalid_builtin): Add hard floating builtin support.
27117         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27118         hard float builtins.
27119         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27120
27121 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27122
27123         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27124         Add missing function* argument.
27125
27126 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27127
27128         * lra-constraints.c (valid_address_p): Move earlier in file.
27129         Add a constraint argument to the address_info version.
27130         (satisfies_memory_constraint_p): New function.
27131         (satisfies_address_constraint_p): Likewise.
27132         (process_alt_operands, curr_insn_transform): Use them.
27133         (process_address): Pass the constraint to valid_address_p when
27134         checking address operands.
27135
27136 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27137
27138         * config/mips/mips.c (mips_isa_rev): New variable.
27139         (mips_set_architecture): Set it.
27140         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27141         from mips_isa_rev.
27142         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27143         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27144         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27145         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27146         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27147         conditions in terms of mips_isa_rev.
27148         (mips_isa_rev): Declare.
27149
27150 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27151
27152         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27153         (prob_unlikely, prob_likely): Make variables const.
27154
27155 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27156
27157         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27158
27159 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27160
27161         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27162
27163 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27164
27165         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27166         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27167         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27168         functions.
27169         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27170         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27171         sh_pass_in_reg_p.
27172         Replace usage of ROUND_REG with sh_round_reg.
27173         Use CEIL instead of ROUND_ADVANCE.
27174
27175 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27176
27177         PR target/61026
27178         * config/sh/sh.c: Include stdlib headers before everything else.
27179
27180 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27181
27182         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27183         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27184         (gimplify_adjust_omp_clauses): Simd region is never
27185         directly nested in combined parallel.  Instead, for linear
27186         with copyin/copyout, if in combined for simd loop, make decl
27187         firstprivate/lastprivate on OMP_FOR.
27188         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27189         expand_omp_for_static_chunk): When setting endvar, also set
27190         fd->loop.v to the same value.
27191
27192 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27193
27194         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27195
27196 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27197
27198         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27199         expression.
27200
27201 2014-05-02  Marek Polacek  <polacek@redhat.com>
27202
27203         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27204
27205 2014-05-02  Kito Cheng  <kito@0xlab.org>
27206
27207         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27208         to a C expression marco.
27209         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27210         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27211         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27212         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27213         HONOR_REG_ALLOC_ORDER.
27214         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27215
27216 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27217
27218         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27219
27220 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27221
27222         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27223
27224 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27225
27226         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27227         (convert_scalar_cond_reduction): Likewise.
27228         (predicate_scalar_phi): Add recognition and transformation
27229         of simple conditioanl reduction to be vectorizable.
27230
27231 2014-05-01  Marek Polacek  <polacek@redhat.com>
27232
27233         PR c/43245
27234         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27235
27236 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27237
27238         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27239         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27240         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27241         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27242         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27243         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27244         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27245         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27246
27247 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27248
27249         * config/arc/arc.opt (mlra): Move comment above option name
27250         to avoid mis-parsing as language options.
27251
27252 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27253
27254         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27255         * config/sol2.h: ... here.
27256         * config/sol2-10.h: Remove.
27257
27258         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27259         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27260         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27261         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27262         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27263         * config/sol2.h: ... here.
27264         (SECTION_NAME_FORMAT): Don't redefine.
27265         (STARTFILE_ARCH32_SPEC): Rename to ...
27266         (STARTFILE_ARCH_SPEC): ... this.
27267         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27268         * config/sparc/sol2.h: ... here.
27269         (SECTION_NAME_FORMAT): Don't undef.
27270         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27271         (SUBTARGET_EXTRA_SPECS): Remove.
27272         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27273
27274         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27275         (MD_STARTFILE_PREFIX): Remove.
27276         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27277         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27278         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27279         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27280         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27281         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27282         * config/i386/sol2.h: ... here.
27283         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27284         * config/i386/sol2-bi.h: Remove.
27285         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27286         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27287
27288         * config/i386/t-sol2-64: Rename to ...
27289         * config/i386/t-sol2: ... this.
27290         * config/sparc/t-sol2-64: Rename to ...
27291         * config/sparc/t-sol2: ... this.
27292
27293         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27294         sol2_tm_file_head, sol2_tm_file_tail.
27295         Include ${cpu_type}/sol2.h before sol2.h.
27296         Remove sol2-10.h.
27297         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27298         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27299         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27300         Reflect i386/t-sol2-64 renaming.
27301         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27302         Reflect sparc/t-sol2-64 renaming.
27303
27304 2014-04-30  Richard Biener  <rguenther@suse.de>
27305
27306         * passes.c (execute_function_todo): Move TODO_verify_stmts
27307         and TODO_verify_ssa under the TODO_verify_il umbrella.
27308         * tree-ssa.h (verify_ssa): Adjust prototype.
27309         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27310         we should verify SSA operands.
27311         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27312         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27313         whether we should verify whether not throwing stmts have EH info.
27314         * graphite-scop-detection.c (create_sese_edges): Adjust.
27315         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27316         * tree-eh.c (lower_try_finally_switch): Do not add the
27317         default case label twice.
27318
27319 2014-04-30  Marek Polacek  <polacek@redhat.com>
27320
27321         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27322         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27323         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27324         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27325
27326 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27327
27328         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27329         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27330         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27331         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27332         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27333         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27334         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27335         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27336
27337 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27338
27339         * tree-cfg.c (dump_function_to_file): Dump the return type of
27340         functions, in a line to itself before the function body, mimicking
27341         the layout of a C function.
27342
27343 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
27344
27345         PR tree-optimization/60971
27346         * tree-tailcall.c (process_assignment): Reject conversions which
27347         reduce precision.
27348
27349 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27350
27351         * calls.c (initialize_argument_information): Always treat
27352         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27353         (expand_call): Likewise.
27354         (emit_library_call_calue_1): Likewise.
27355         * expr.c (PUSH_ARGS_REVERSED): Do not define.
27356         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27357         code accordingly.
27358
27359 2014-04-29  Nick Clifton  <nickc@redhat.com>
27360
27361         * config/msp430/msp430.md (umulsidi): Fix typo.
27362         (mulhisi3): Enable even inside interrupt handlers.
27363         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27364         bigger return address pushed in large mode.
27365
27366 2014-04-29  Nick Clifton  <nickc@redhat.com>
27367
27368         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27369         (arc_init_reg_tables): Use a machine_mode enum to iterate over
27370         available modes.
27371         * config/m32r/m32r.c (init_reg_tables): Likewise.
27372         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27373         enum to hold the modes.
27374
27375 2014-04-29  Richard Biener  <rguenther@suse.de>
27376
27377         * dominance.c (free_dominance_info): Add overload with
27378         function parameter.
27379         (dom_info_state): Likewise.
27380         (dom_info_available_p): Likewise.
27381         * basic-block.h (free_dominance_info, dom_info_state,
27382         dom_info_available_p): Declare overloads.
27383         * passes.c (execute_function_todo): Verify that verifiers
27384         don't change dominator info state.  Drop dominator info
27385         for IPA pass invocations.
27386         * cgraph.c (release_function_body): Restore asserts that
27387         dominator information is released.
27388
27389 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
27390
27391         * doc/invoke.texi: Fix typo.
27392         * tree-vrp.c: Fix typos.
27393         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
27394
27395 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27396
27397         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
27398
27399 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27400
27401         * config/aarch64/aarch64-builtins.c
27402         (aarch64_types_storestruct_lane_qualifiers): New.
27403         (TYPES_STORESTRUCT_LANE): Likewise.
27404         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
27405         (st3_lane): Likewise.
27406         (st4_lane): Likewise.
27407         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
27408         (vec_store_lanesci_lane<mode>): Likewise.
27409         (vec_store_lanesxi_lane<mode>): Likewise.
27410         (aarch64_st2_lane<VQ:mode>): Likewise.
27411         (aarch64_st3_lane<VQ:mode>): Likewise.
27412         (aarch64_st4_lane<VQ:mode>): Likewise.
27413         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
27414         * config/aarch64/arm_neon.h
27415         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
27416         use new macro arguments.
27417         (__ST3_LANE_FUNC): Likewise.
27418         (__ST4_LANE_FUNC): Likewise.
27419         * config/aarch64/iterators.md (V_TWO_ELEM): New.
27420         (V_THREE_ELEM): Likewise.
27421         (V_FOUR_ELEM): Likewise.
27422
27423 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
27424
27425         * doc/gimple.texi: Replace the description of the now-defunct
27426         union gimple_statement_d with a diagram showing the
27427         gimple_statement_base class hierarchy and its relationships to
27428         the GSS_ and GIMPLE_ enums.
27429
27430 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27431
27432         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
27433         * config/aarch64/aarch64.c
27434         (aarch64_cannot_change_mode_class): Weaken conditions.
27435         (aarch64_modes_tieable_p): New.
27436         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
27437
27438 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
27439
27440         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
27441         (loadsync_<mode>): Change mode.
27442         (load_quadpti, store_quadpti): New.
27443         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
27444         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
27445
27446 2014-04-28  Martin Jambor  <mjambor@suse.cz>
27447
27448         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
27449         same alias type as the original statement.
27450         (subreplacement_assignment_data): New type.
27451         (handle_unscalarized_data_in_subtree): New type of parameter,
27452         generate new memory accesses with same alias type as the original
27453         statement.
27454         (load_assign_lhs_subreplacements): Likewise.
27455         (sra_modify_constructor_assign): Generate new memory accesses with
27456         same alias type as the original statement.
27457
27458 2014-04-28  Richard Biener  <rguenther@suse.de>
27459
27460         * tree-pass.h (TODO_verify_il): Define.
27461         (TODO_verify_all): Complete properly.
27462         * passes.c (execute_function_todo): Move existing loop-closed
27463         SSA verification under TODO_verify_il.
27464         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
27465         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
27466         Fix tree sharing issue.
27467
27468 2014-04-28  Richard Biener  <rguenther@suse.de>
27469
27470         PR middle-end/60092
27471         * builtins.def (DEF_C11_BUILTIN): Add.
27472         (BUILT_IN_ALIGNED_ALLOC): Likewise.
27473         * coretypes.h (enum function_class): Add function_c11_misc.
27474         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
27475         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
27476         (call_may_clobber_ref_p_1): Likewise.
27477         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
27478         (mark_all_reaching_defs_necessary_1): Likewise.
27479         (propagate_necessity): Likewise.
27480         (eliminate_unnecessary_stmts): Likewise.
27481         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
27482
27483 2014-04-28  Richard Biener  <rguenther@suse.de>
27484
27485         * tree-vrp.c (vrp_var_may_overflow): Remove.
27486         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
27487         with overflow immediately bump to one before that value and
27488         let iteration figure out overflow status.
27489
27490 2014-04-28  Richard Biener  <rguenther@suse.de>
27491
27492         * configure.ac: Do valgrind header checks unconditionally.
27493         Add --enable-valgrind-annotations.
27494         * system.h: Guard valgrind header inclusion with
27495         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
27496         * alloc-pool.c (pool_alloc, pool_free): Use
27497         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
27498         to guard possibly dead code.
27499         * config.in: Regenerated.
27500         * configure: Likewise.
27501
27502 2014-04-28  Jeff Law  <law@redhat.com>
27503
27504         PR tree-optimization/60902
27505         * tree-ssa-threadedge.c
27506         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
27507         over real defs when invalidating outputs from statements that do not
27508         produce useful outputs for threading.
27509
27510 2014-04-28  Richard Biener  <rguenther@suse.de>
27511
27512         PR tree-optimization/60979
27513         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
27514         SCOPs that end in a block with a successor with abnormal
27515         predecessors.
27516
27517 2014-04-28  Richard Biener  <rguenther@suse.de>
27518
27519         * tree-pass.h (execute_pass_list): Adjust prototype.
27520         * passes.c (pass_manager::execute_early_local_passes): Adjust.
27521         (do_per_function): Change callback signature, push all actual
27522         work to the callbals.
27523         (do_per_function_toporder): Likewise.
27524         (execute_function_dump): Adjust.
27525         (execute_function_todo): Likewise.
27526         (clear_last_verified): Likewise.
27527         (verify_curr_properties): Likewise.
27528         (update_properties_after_pass): Likewise.
27529         (execute_pass_list_1): Split out from ...
27530         (execute_pass_list): ... here.  Adjust.
27531         (execute_ipa_pass_list): Likewise.
27532         * cgraphunit.c (cgraph_add_new_function): Adjust.
27533         (analyze_function): Likewise.
27534         (expand_function): Likewise.
27535         * cgraph.c (release_function_body): Free dominance info
27536         here instead of asserting it was magically freed elsewhere.
27537
27538 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27539
27540         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
27541         * configure: Regenerate.
27542         * config/sparc/sparc.opt (muser-mode): New option.
27543         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
27544         for LEON3.
27545         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
27546         * doc/invoke.texi (SPARC options): Document -muser-mode.
27547
27548 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
27549
27550         * cselib.c (find_slot_memmode): Delete.
27551         (cselib_hasher): Change compare_type to a struct.
27552         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
27553         constants.
27554         (preserve_constants_and_equivs): Adjust for new compare_type.
27555         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
27556         (wrap_constant): Delete.
27557         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
27558
27559 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
27560
27561         * doc/install.texi (Building with profile feedback): Remove
27562         outdated sentence.
27563
27564 2014-04-26  Tom de Vries  <tom@codesourcery.com>
27565
27566         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
27567         array accesses.
27568
27569 2014-04-25  Cary Coutant  <ccoutant@google.com>
27570
27571         PR debug/60929
27572         * dwarf2out.c (should_move_die_to_comdat): A type definition
27573         can contain a subprogram definition, but don't move it to a
27574         comdat unit.
27575         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
27576         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
27577         from original DIE.
27578         (clone_tree_hash): Rename to...
27579         (clone_tree_partial): ...this; change callers.  Copy
27580         DW_TAG_subprogram DIEs as declarations.
27581         (copy_decls_walk): Don't copy children of a declaration into a
27582         type unit.
27583
27584 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
27585
27586         PR target/60969
27587         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
27588         alternative 12.
27589
27590 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
27591
27592         * config/arm/predicates.md (call_insn_operand): Add long_call check.
27593         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
27594         reg for long_call.
27595         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
27596         restriction.
27597
27598 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27599
27600         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
27601
27602 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27603
27604         PR tree-optimization/60930
27605         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
27606         creating a multiply candidate by folding two constant
27607         multiplicands when the result overflows.
27608
27609 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
27610
27611         PR tree-optimization/60960
27612         * tree-vect-generic.c (expand_vector_operation): Only call
27613         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
27614
27615 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27616
27617         * expr.c (clobber_reg_mode): New function.
27618         * expr.h (clobber_reg): New function.
27619
27620 2014-04-25  Tom de Vries  <tom@codesourcery.com>
27621
27622         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
27623         clobbers.
27624
27625 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
27626             Tom de Vries  <tom@codesourcery.com>
27627
27628         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
27629         handle.
27630         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
27631         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
27632         new argument to find_all_hard_reg_sets call.
27633
27634 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27635
27636         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
27637         Use HOST_WIDE_INT_C for mask literal.
27638         (aarch_rev16_shleft_mask_imm_p): Likewise.
27639
27640 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
27641
27642         PR target/60941
27643         * config/sparc/sparc.md (ashlsi3_extend): Delete.
27644
27645 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
27646
27647         PR preprocessor/56540
27648         * config/i386/i386-c.c (ix86_target_macros): Define
27649         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
27650
27651 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27652
27653         * configure.ac (tga_func): Remove.
27654         (LIB_TLS_SPEC): Remove.
27655         * configure: Regenerate.
27656         * config.in: Regenerate.
27657         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
27658
27659 2014-04-25  Richard Biener  <rguenther@suse.de>
27660
27661         PR ipa/60912
27662         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
27663         call stmt use/clobber sets during stmt walk instead of
27664         walking the possibly incomplete set of caller edges.
27665
27666 2014-04-25  Richard Biener  <rguenther@suse.de>
27667
27668         PR ipa/60911
27669         * passes.c (apply_ipa_transforms): Inline into only caller ...
27670         (execute_one_pass): ... here.  Properly bring in function
27671         bodies for nodes we want to apply IPA transforms to.
27672
27673 2014-04-24  Cong Hou  <congh@google.com>
27674
27675         PR tree-optimization/60896
27676         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
27677         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
27678         (vect_mark_pattern_stmts): Set the def type of all statements in
27679         PATTERN_DEF_SEQ as vect_internal_def.
27680
27681 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
27682
27683         * doc/extend.texi (PowerPC Built-in Functions): Document new
27684         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
27685         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
27686
27687         * config/rs6000/predicates.md (const_0_to_3_operand): New
27688         predicate to match 0..3 integer constants.
27689
27690         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
27691         to support adding miscellaneous builtin functions.
27692         (BU_DFP_MISC_2): Likewise.
27693         (BU_P7_MISC_1): Likewise.
27694         (BU_P7_MISC_2): Likewise.
27695         (BU_P8V_MISC_3): Likewise.
27696         (BU_MISC_1): Likewise.
27697         (BU_MISC_2): Likewise.
27698         (DIVWE): Add extended divide builtin functions.
27699         (DIVWEO): Likewise.
27700         (DIVWEU): Likewise.
27701         (DIVWEUO): Likewise.
27702         (DIVDE): Likewise.
27703         (DIVDEO): Likewise.
27704         (DIVDEU): Likewise.
27705         (DIVDEUO): Likewise.
27706         (DXEX): Add decimal floating-point builtin functions.
27707         (DXEXQ): Likewise.
27708         (DDEDPD): Likewise.
27709         (DDEDPDQ): Likewise.
27710         (DENBCD): Likewise.
27711         (DENBCDQ): Likewise.
27712         (DIEX): Likewise.
27713         (DIEXQ): Likewise.
27714         (DSCLI): Likewise.
27715         (DSCLIQ): Likewise.
27716         (DSCRI): Likewise.
27717         (DSCRIQ): Likewise.
27718         (CDTBCD): Add new BCD builtin functions.
27719         (CBCDTD): Likewise.
27720         (ADDG6S): Likewise.
27721         (BCDADD): Likewise.
27722         (BCDADD_LT): Likewise.
27723         (BCDADD_EQ): Likewise.
27724         (BCDADD_GT): Likewise.
27725         (BCDADD_OV): Likewise.
27726         (BCDSUB): Likewise.
27727         (BCDSUB_LT): Likewise.
27728         (BCDSUB_EQ): Likewise.
27729         (BCDSUB_GT): Likewise.
27730         (BCDSUB_OV): Likewise.
27731         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
27732         (UNPACK_TD): Likewise.
27733         (PACK_TF): Likewise.
27734         (UNPACK_TF): Likewise.
27735         (UNPACK_TF_0): Likewise.
27736         (UNPACK_TF_1): Likewise.
27737         (PACK_V1TI): Likewise.
27738         (UNPACK_V1TI): Likewise.
27739
27740         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
27741         support for decimal floating point builtin functions.
27742         (rs6000_expand_ternop_builtin): Add checks for the new builtin
27743         functions that take constant arguments.
27744         (rs6000_invalid_builtin): Add decimal floating point builtin support.
27745         (rs6000_init_builtins): Setup long double, _Decimal64, and
27746         _Decimal128 types for new builtin functions.
27747         (builtin_function_type): Set the unsigned flags appropriately for
27748         the new builtin functions.
27749         (rs6000_opt_masks): Add support for decimal floating point builtin
27750         functions.
27751
27752         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
27753         floating point builtin functions.
27754         (RS6000_BTM_COMMON): Likewise.
27755         (RS6000_BTI_long_double): Likewise.
27756         (RS6000_BTI_dfloat64): Likewise.
27757         (RS6000_BTI_dfloat128): Likewise.
27758         (long_double_type_internal_node): Likewise.
27759         (dfloat64_type_internal_node): Likewise.
27760         (dfloat128_type_internal_node): Likewise.
27761
27762         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
27763         2.07 bcd arithmetic instructions.
27764         (UNSPEC_BCDSUB): Likewise.
27765         (UNSPEC_BCD_OVERFLOW): Likewise.
27766         (UNSPEC_BCD_ADD_SUB): Likewise.
27767         (bcd_add_sub): Likewise.
27768         (BCD_TEST): Likewise.
27769         (bcd<bcd_add_sub>): Likewise.
27770         (bcd<bcd_add_sub>_test): Likewise.
27771         (bcd<bcd_add_sub>_test2): Likewise.
27772         (bcd<bcd_add_sub>_<code>): Likewise.
27773         (peephole2 for combined bcd ops): Likewise.
27774
27775         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
27776         decimal floating point builtin functions.
27777         (UNSPEC_DENBCD): Likewise.
27778         (UNSPEC_DXEX): Likewise.
27779         (UNSPEC_DIEX): Likewise.
27780         (UNSPEC_DSCLI): Likewise.
27781         (UNSPEC_DSCRI): Likewise.
27782         (D64_D128): Likewise.
27783         (dfp_suffix): Likewise.
27784         (dfp_ddedpd_<mode>): Likewise.
27785         (dfp_denbcd_<mode>): Likewise.
27786         (dfp_dxex_<mode>): Likewise.
27787         (dfp_diex_<mode>): Likewise.
27788         (dfp_dscli_<mode>): Likewise.
27789         (dfp_dscri_<mode>): Likewise.
27790
27791         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
27792         builtin functions.
27793         (UNSPEC_CDTBCD): Likewise.
27794         (UNSPEC_CBCDTD): Likewise.
27795         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
27796         (UNSPEC_DIVEO): Likewise.
27797         (UNSPEC_DIVEU): Likewise.
27798         (UNSPEC_DIVEUO): Likewise.
27799         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
27800         pack/unpack 128-bit types.
27801         (UNSPEC_PACK_128BIT): Likewise.
27802         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
27803         (udiv<mode>3): Use idiv_ldiv mode attribute.
27804         (div<mode>3): Likewise.
27805         (addg6s): Add new BCD builtin functions.
27806         (cdtbcd): Likewise.
27807         (cbcdtd): Likewise.
27808         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
27809         (div_extend): Likewise.
27810         (div<div_extend>_<mode>"): Likewise.
27811         (FP128_64): Add support for new builtin functions to pack/unpack
27812         128-bit types.
27813         (unpack<mode>): Likewise.
27814         (unpacktf_0): Likewise.
27815         (unpacktf_1): Likewise.
27816         (unpack<mode>_dm): Likewise.
27817         (unpack<mode>_nodm): Likewise.
27818         (pack<mode>): Likewise.
27819         (unpackv1ti): Likewise.
27820         (packv1ti): Likewise.
27821
27822 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
27823
27824         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
27825         is disabled.
27826
27827 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
27828
27829         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
27830         * gimplify.c (omp_is_private): Change last argument's type to int.
27831         Only diagnose lastprivate if the simd argument is 1, only diagnose
27832         linear if the simd argument is 2.
27833         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
27834         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
27835         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
27836         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
27837         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
27838         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27839         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
27840         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
27841         * tree-nested.c (convert_nonlocal_omp_clauses,
27842         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
27843
27844 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
27845
27846         PR target/60822
27847         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
27848         operand 1.
27849
27850 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
27851
27852         * flag-types.h (enum ivar_visibility): Add.
27853
27854 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
27855
27856         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
27857         function * argument.
27858
27859 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
27860
27861         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
27862
27863 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27864             Tom de Vries  <tom@codesourcery.com>
27865
27866         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
27867         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
27868         reg-note.
27869         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
27870         * emit-rtl.c (try_split): Same.
27871
27872 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
27873             Tom de Vries  <tom@codesourcery.com>
27874
27875         * common.opt (fuse-caller-save): New option.
27876
27877 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
27878
27879         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
27880         elements for big-endian.
27881
27882 2014-04-24  Richard Biener  <rguenther@suse.de>
27883
27884         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
27885         during TER and instead use the sepops interface for expanding
27886         non-GIMPLE_SINGLE_RHS.
27887
27888 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27889
27890         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
27891         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
27892
27893 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27894
27895         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
27896         assembler 64-bit option.
27897         * configure: Regenerate.
27898
27899 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27900
27901         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
27902         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
27903         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
27904         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
27905         (TARGET_CRYPTO): Take TARGET_SIMD into account.
27906
27907 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27908
27909         * config/aarch64/aarch64-builtins.c
27910         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
27911         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
27912         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
27913         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
27914         builtins.
27915         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
27916         (Vrevsuff): New mode attribute.
27917
27918 2014-04-24  Terry Guo  <terry.guo@arm.com>
27919
27920         * config/arm/arm.h (machine_function): Define variable
27921         after_arm_reorg here.
27922         * config/arm/arm.c (after_arm_reorg): Remove the definition.
27923         (arm_split_constant): Update the way to access variable
27924         after_arm_reorg.
27925         (arm_reorg): Ditto.
27926         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
27927
27928 2014-04-23  Tom de Vries  <tom@codesourcery.com>
27929
27930         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
27931
27932 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
27933
27934         * is-a.h: Update comments to reflect the following changes to the
27935         "pointerness" of the API, making the template parameter match the
27936         return type, allowing use of is-a.h with typedefs of pointers.
27937         (is_a_helper::cast): Return a T rather then a pointer to a T, so
27938         that the return type matches the parameter to the is_a_helper.
27939         (as_a): Likewise.
27940         (dyn_cast): Likewise.
27941
27942         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
27943         pointer from the is-a.h API.
27944
27945         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
27946         (is_a_helper <cgraph_node *>::test): ...this, matching change to
27947         is-a.h API.
27948         (is_a_helper <varpool_node>::test): Likewise, convert to...
27949         (is_a_helper <varpool_node *>::test): ...this.
27950
27951         (varpool_first_variable): Update for removal of implicit pointer
27952         from the is-a.h API.
27953         (varpool_next_variable): Likewise.
27954         (varpool_first_static_initializer): Likewise.
27955         (varpool_next_static_initializer): Likewise.
27956         (varpool_first_defined_variable): Likewise.
27957         (varpool_next_defined_variable): Likewise.
27958         (cgraph_first_defined_function): Likewise.
27959         (cgraph_next_defined_function): Likewise.
27960         (cgraph_first_function): Likewise.
27961         (cgraph_next_function): Likewise.
27962         (cgraph_first_function_with_gimple_body): Likewise.
27963         (cgraph_next_function_with_gimple_body): Likewise.
27964         (cgraph_alias_target): Likewise.
27965         (varpool_alias_target): Likewise.
27966         (cgraph_function_or_thunk_node): Likewise.
27967         (varpool_variable_node): Likewise.
27968         (symtab_real_symbol_p): Likewise.
27969         * cgraphunit.c (referred_to_p): Likewise.
27970         (analyze_functions): Likewise.
27971         (handle_alias_pairs): Likewise.
27972         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
27973         * gimple-ssa.h (gimple_vuse_op): Likewise.
27974         (gimple_vdef_op): Likewise.
27975         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
27976         * gimple.c (gimple_build_asm_1): Likewise.
27977         (gimple_build_try): Likewise.
27978         (gimple_build_resx): Likewise.
27979         (gimple_build_eh_dispatch): Likewise.
27980         (gimple_build_omp_for): Likewise.
27981         (gimple_omp_for_set_clauses): Likewise.
27982
27983         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
27984         (is_a_helper <gimple_statement_asm *>::test): ...this.
27985         (is_a_helper <gimple_statement_bind>::test): Convert to...
27986         (is_a_helper <gimple_statement_bind *>::test): ...this.
27987         (is_a_helper <gimple_statement_call>::test): Convert to...
27988         (is_a_helper <gimple_statement_call *>::test): ...this.
27989         (is_a_helper <gimple_statement_catch>::test): Convert to...
27990         (is_a_helper <gimple_statement_catch *>::test): ...this.
27991         (is_a_helper <gimple_statement_resx>::test): Convert to...
27992         (is_a_helper <gimple_statement_resx *>::test): ...this.
27993         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
27994         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
27995         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
27996         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
27997         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
27998         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
27999         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28000         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28001         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28002         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28003         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28004         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28005         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28006         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28007         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28008         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28009         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28010         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28011         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28012         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28013         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28014         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28015         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28016         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28017         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28018         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28019         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28020         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28021         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28022         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28023         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28024         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28025         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28026         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28027         (is_a_helper <gimple_statement_phi>::test): Convert to...
28028         (is_a_helper <gimple_statement_phi *>::test): ...this.
28029         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28030         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28031         (is_a_helper <gimple_statement_try>::test): Convert to...
28032         (is_a_helper <gimple_statement_try *>::test): ...this.
28033         (is_a_helper <gimple_statement_wce>::test): Convert to...
28034         (is_a_helper <gimple_statement_wce *>::test): ...this.
28035         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28036         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28037         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28038         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28039         (is_a_helper <const gimple_statement_call>::test): Convert to...
28040         (is_a_helper <const gimple_statement_call *>::test): ...this.
28041         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28042         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28043         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28044         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28045         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28046         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28047         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28048         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28049         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28050         Convert to...
28051         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28052         ...this.
28053         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28054         Convert to...
28055         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28056         ...this.
28057         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28058         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28059         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28060         to...
28061         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28062         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28063         to...
28064         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28065         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28066         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28067         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28068         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28069         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28070         to...
28071         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28072         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28073         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28074         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28075         to...
28076         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28077         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28078         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28079         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28080         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28081         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28082         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28083         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28084         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28085         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28086         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28087         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28088         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28089         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28090         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28091         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28092         to...
28093         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28094         ...this.
28095         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28096         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28097
28098         (gimple_use_ops): Update for removal of implicit pointer from the
28099         is-a.h API.
28100         (gimple_set_use_ops): Likewise.
28101         (gimple_vuse): Likewise.
28102         (gimple_vdef): Likewise.
28103         (gimple_vuse_ptr): Likewise.
28104         (gimple_vdef_ptr): Likewise.
28105         (gimple_set_vuse): Likewise.
28106         (gimple_set_vdef): Likewise.
28107         (gimple_omp_return_set_lhs): Likewise.
28108         (gimple_omp_return_lhs): Likewise.
28109         (gimple_omp_return_lhs_ptr): Likewise.
28110         (gimple_call_fntype): Likewise.
28111         (gimple_call_set_fntype): Likewise.
28112         (gimple_call_set_internal_fn): Likewise.
28113         (gimple_call_use_set): Likewise.
28114         (gimple_call_clobber_set): Likewise.
28115         (gimple_bind_vars): Likewise.
28116         (gimple_bind_set_vars): Likewise.
28117         (gimple_bind_body_ptr): Likewise.
28118         (gimple_bind_set_body): Likewise.
28119         (gimple_bind_add_stmt): Likewise.
28120         (gimple_bind_block): Likewise.
28121         (gimple_bind_set_block): Likewise.
28122         (gimple_asm_ninputs): Likewise.
28123         (gimple_asm_noutputs): Likewise.
28124         (gimple_asm_nclobbers): Likewise.
28125         (gimple_asm_nlabels): Likewise.
28126         (gimple_asm_input_op): Likewise.
28127         (gimple_asm_input_op_ptr): Likewise.
28128         (gimple_asm_output_op): Likewise.
28129         (gimple_asm_output_op_ptr): Likewise.
28130         (gimple_asm_set_output_op): Likewise.
28131         (gimple_asm_clobber_op): Likewise.
28132         (gimple_asm_set_clobber_op): Likewise.
28133         (gimple_asm_label_op): Likewise.
28134         (gimple_asm_set_label_op): Likewise.
28135         (gimple_asm_string): Likewise.
28136         (gimple_catch_types): Likewise.
28137         (gimple_catch_types_ptr): Likewise.
28138         (gimple_catch_handler_ptr): Likewise.
28139         (gimple_catch_set_types): Likewise.
28140         (gimple_catch_set_handler): Likewise.
28141         (gimple_eh_filter_types): Likewise.
28142         (gimple_eh_filter_types_ptr): Likewise.
28143         (gimple_eh_filter_failure_ptr): Likewise.
28144         (gimple_eh_filter_set_types): Likewise.
28145         (gimple_eh_filter_set_failure): Likewise.
28146         (gimple_eh_must_not_throw_fndecl): Likewise.
28147         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28148         (gimple_eh_else_n_body_ptr): Likewise.
28149         (gimple_eh_else_e_body_ptr): Likewise.
28150         (gimple_eh_else_set_n_body): Likewise.
28151         (gimple_eh_else_set_e_body): Likewise.
28152         (gimple_try_eval_ptr): Likewise.
28153         (gimple_try_cleanup_ptr): Likewise.
28154         (gimple_try_set_eval): Likewise.
28155         (gimple_try_set_cleanup): Likewise.
28156         (gimple_wce_cleanup_ptr): Likewise.
28157         (gimple_wce_set_cleanup): Likewise.
28158         (gimple_phi_capacity): Likewise.
28159         (gimple_phi_num_args): Likewise.
28160         (gimple_phi_result): Likewise.
28161         (gimple_phi_result_ptr): Likewise.
28162         (gimple_phi_set_result): Likewise.
28163         (gimple_phi_arg): Likewise.
28164         (gimple_phi_set_arg): Likewise.
28165         (gimple_resx_region): Likewise.
28166         (gimple_resx_set_region): Likewise.
28167         (gimple_eh_dispatch_region): Likewise.
28168         (gimple_eh_dispatch_set_region): Likewise.
28169         (gimple_omp_critical_name): Likewise.
28170         (gimple_omp_critical_name_ptr): Likewise.
28171         (gimple_omp_critical_set_name): Likewise.
28172         (gimple_omp_for_clauses): Likewise.
28173         (gimple_omp_for_clauses_ptr): Likewise.
28174         (gimple_omp_for_set_clauses): Likewise.
28175         (gimple_omp_for_collapse): Likewise.
28176         (gimple_omp_for_index): Likewise.
28177         (gimple_omp_for_index_ptr): Likewise.
28178         (gimple_omp_for_set_index): Likewise.
28179         (gimple_omp_for_initial): Likewise.
28180         (gimple_omp_for_initial_ptr): Likewise.
28181         (gimple_omp_for_set_initial): Likewise.
28182         (gimple_omp_for_final): Likewise.
28183         (gimple_omp_for_final_ptr): Likewise.
28184         (gimple_omp_for_set_final): Likewise.
28185         (gimple_omp_for_incr): Likewise.
28186         (gimple_omp_for_incr_ptr): Likewise.
28187         (gimple_omp_for_set_incr): Likewise.
28188         (gimple_omp_for_pre_body_ptr): Likewise.
28189         (gimple_omp_for_set_pre_body): Likewise.
28190         (gimple_omp_parallel_clauses): Likewise.
28191         (gimple_omp_parallel_clauses_ptr): Likewise.
28192         (gimple_omp_parallel_set_clauses): Likewise.
28193         (gimple_omp_parallel_child_fn): Likewise.
28194         (gimple_omp_parallel_child_fn_ptr): Likewise.
28195         (gimple_omp_parallel_set_child_fn): Likewise.
28196         (gimple_omp_parallel_data_arg): Likewise.
28197         (gimple_omp_parallel_data_arg_ptr): Likewise.
28198         (gimple_omp_parallel_set_data_arg): Likewise.
28199         (gimple_omp_task_clauses): Likewise.
28200         (gimple_omp_task_clauses_ptr): Likewise.
28201         (gimple_omp_task_set_clauses): Likewise.
28202         (gimple_omp_task_child_fn): Likewise.
28203         (gimple_omp_task_child_fn_ptr): Likewise.
28204         (gimple_omp_task_set_child_fn): Likewise.
28205         (gimple_omp_task_data_arg): Likewise.
28206         (gimple_omp_task_data_arg_ptr): Likewise.
28207         (gimple_omp_task_set_data_arg): Likewise.
28208         (gimple_omp_taskreg_clauses): Likewise.
28209         (gimple_omp_taskreg_clauses_ptr): Likewise.
28210         (gimple_omp_taskreg_set_clauses): Likewise.
28211         (gimple_omp_taskreg_child_fn): Likewise.
28212         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28213         (gimple_omp_taskreg_set_child_fn): Likewise.
28214         (gimple_omp_taskreg_data_arg): Likewise.
28215         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28216         (gimple_omp_taskreg_set_data_arg): Likewise.
28217         (gimple_omp_task_copy_fn): Likewise.
28218         (gimple_omp_task_copy_fn_ptr): Likewise.
28219         (gimple_omp_task_set_copy_fn): Likewise.
28220         (gimple_omp_task_arg_size): Likewise.
28221         (gimple_omp_task_arg_size_ptr): Likewise.
28222         (gimple_omp_task_set_arg_size): Likewise.
28223         (gimple_omp_task_arg_align): Likewise.
28224         (gimple_omp_task_arg_align_ptr): Likewise.
28225         (gimple_omp_task_set_arg_align): Likewise.
28226         (gimple_omp_single_clauses): Likewise.
28227         (gimple_omp_single_clauses_ptr): Likewise.
28228         (gimple_omp_single_set_clauses): Likewise.
28229         (gimple_omp_target_clauses): Likewise.
28230         (gimple_omp_target_clauses_ptr): Likewise.
28231         (gimple_omp_target_set_clauses): Likewise.
28232         (gimple_omp_target_child_fn): Likewise.
28233         (gimple_omp_target_child_fn_ptr): Likewise.
28234         (gimple_omp_target_set_child_fn): Likewise.
28235         (gimple_omp_target_data_arg): Likewise.
28236         (gimple_omp_target_data_arg_ptr): Likewise.
28237         (gimple_omp_target_set_data_arg): Likewise.
28238         (gimple_omp_teams_clauses): Likewise.
28239         (gimple_omp_teams_clauses_ptr): Likewise.
28240         (gimple_omp_teams_set_clauses): Likewise.
28241         (gimple_omp_sections_clauses): Likewise.
28242         (gimple_omp_sections_clauses_ptr): Likewise.
28243         (gimple_omp_sections_set_clauses): Likewise.
28244         (gimple_omp_sections_control): Likewise.
28245         (gimple_omp_sections_control_ptr): Likewise.
28246         (gimple_omp_sections_set_control): Likewise.
28247         (gimple_omp_for_set_cond): Likewise.
28248         (gimple_omp_for_cond): Likewise.
28249         (gimple_omp_atomic_store_set_val): Likewise.
28250         (gimple_omp_atomic_store_val): Likewise.
28251         (gimple_omp_atomic_store_val_ptr): Likewise.
28252         (gimple_omp_atomic_load_set_lhs): Likewise.
28253         (gimple_omp_atomic_load_lhs): Likewise.
28254         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28255         (gimple_omp_atomic_load_set_rhs): Likewise.
28256         (gimple_omp_atomic_load_rhs): Likewise.
28257         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28258         (gimple_omp_continue_control_def): Likewise.
28259         (gimple_omp_continue_control_def_ptr): Likewise.
28260         (gimple_omp_continue_set_control_def): Likewise.
28261         (gimple_omp_continue_control_use): Likewise.
28262         (gimple_omp_continue_control_use_ptr): Likewise.
28263         (gimple_omp_continue_set_control_use): Likewise.
28264         (gimple_transaction_body_ptr): Likewise.
28265         (gimple_transaction_label): Likewise.
28266         (gimple_transaction_label_ptr): Likewise.
28267         (gimple_transaction_set_body): Likewise.
28268         (gimple_transaction_set_label): Likewise.
28269
28270         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28271         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28272         * ipa-ref.c (ipa_record_reference): Likewise.
28273         * ipa-reference.c (analyze_function): Likewise.
28274         (ipa_reference_write_optimization_summary): Likewise.
28275         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28276         (address_taken_from_non_vtable_p): Likewise.
28277         (comdat_can_be_unshared_p_1): Likewise.
28278         * lto-cgraph.c (lto_output_ref): Likewise.
28279         (add_references): Likewise.
28280         (compute_ltrans_boundary): Likewise.
28281         (output_symtab): Likewise.
28282         (input_ref): Likewise.
28283         (input_cgraph_1): Likewise.
28284         (output_cgraph_opt_summary): Likewise.
28285         * lto-streamer-out.c (lto_output): Likewise.
28286         (output_symbol_p): Likewise.
28287         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28288         (lsei_start_function_in_partition): Likewise.
28289         (lsei_next_variable_in_partition): Likewise.
28290         (lsei_start_variable_in_partition): Likewise.
28291         * symtab.c (insert_to_assembler_name_hash): Likewise.
28292         (unlink_from_assembler_name_hash): Likewise.
28293         (symtab_unregister_node): Likewise.
28294         (symtab_remove_node): Likewise.
28295         (dump_symtab_node): Likewise.
28296         (verify_symtab_base): Likewise.
28297         (verify_symtab_node): Likewise.
28298         (symtab_make_decl_local): Likewise.
28299         (symtab_alias_ultimate_target): Likewise.
28300         (symtab_resolve_alias): Likewise.
28301         (symtab_get_symbol_partitioning_class): Likewise.
28302         * tree-phinodes.c (allocate_phi_node): Likewise.
28303         (reserve_phi_args_for_new_edge): Likewise.
28304         (remove_phi_args): Likewise.
28305         * varpool.c (varpool_node_for_asm): Likewise.
28306         (varpool_remove_unreferenced_decls): Likewise.
28307
28308 2014-04-23  Jeff Law  <law@redhat.com>
28309
28310         PR tree-optimization/60902
28311         * tree-ssa-threadedge.c
28312         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28313         invalidate outputs from statements that do not produce useful
28314         outputs for threading.
28315
28316 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28317
28318         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28319         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28320         machine descriptions for Stack Smashing Protector.
28321
28322 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28323
28324         * aarch64.md (<optab>_rol<mode>3): New pattern.
28325         (<optab>_rolsi3_uxtw): Likewise.
28326         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28327
28328 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28329
28330         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28331         (arm_cortex_a12_tune): Likewise.
28332
28333 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28334
28335         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28336
28337 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28338
28339         * config/arm/arm.md (arm_rev16si2): New pattern.
28340         (arm_rev16si2_alt): Likewise.
28341         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28342
28343 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28344
28345         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28346         (rev16<mode>2_alt): Likewise.
28347         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28348         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28349         (aarch_rev16_shleft_mask_imm_p): Likewise.
28350         (aarch_rev16_p_1): Likewise.
28351         (aarch_rev16_p): Likewise.
28352         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28353         (aarch_rev16_shright_mask_imm_p): Likewise.
28354         (aarch_rev16_shleft_mask_imm_p): Likewise.
28355
28356 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28357
28358         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28359         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28360         rev cost.
28361         (cortex_a53_extra_costs): Likewise.
28362         (cortex_a57_extra_costs): Likewise.
28363         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28364         (cortexa7_extra_costs): Likewise.
28365         (cortexa8_extra_costs): Likewise.
28366         (cortexa12_extra_costs): Likewise.
28367         (cortexa15_extra_costs): Likewise.
28368         (v7m_extra_costs): Likewise.
28369         (arm_new_rtx_costs): Handle BSWAP.
28370
28371 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28372
28373         * config/arm/arm.c (cortexa8_extra_costs): New table.
28374         (arm_cortex_a8_tune): New tuning struct.
28375         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28376
28377 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28378
28379         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28380
28381 2014-04-23  Richard Biener  <rguenther@suse.de>
28382
28383         * Makefile.in (OBJS): Remove loop-unswitch.o.
28384         * tree-pass.h (make_pass_rtl_unswitch): Remove.
28385         * passes.def (pass_rtl_unswitch): Likewise.
28386         * loop-init.c (gate_rtl_unswitch): Likewise.
28387         (rtl_unswitch): Likewise.
28388         (pass_data_rtl_unswitch): Likewise.
28389         (pass_rtl_unswitch): Likewise.
28390         (make_pass_rtl_unswitch): Likewise.
28391         * rtl.h (reversed_condition): Likewise.
28392         (compare_and_jump_seq): Likewise.
28393         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
28394         and make static.
28395         * loop-unroll.c (compare_and_jump_seq): Likewise.
28396
28397 2014-04-23  Richard Biener  <rguenther@suse.de>
28398
28399         PR tree-optimization/60903
28400         * tree-ssa-loop-im.c (analyze_memory_references): Remove
28401         commented code block.
28402         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
28403         loop flags to newly created BBs and edges.
28404
28405 2014-04-23  Nick Clifton  <nickc@redhat.com>
28406
28407         * config/msp430/msp430.c (msp430_handle_option): Move function
28408         to msp430-common.c
28409         (msp430_option_override): Simplify mcu and mcpu option handling.
28410         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
28411         support for -mhwmult command line option.
28412         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
28413         -mhwmult command line option.
28414         (msp430_hwmult_enabled): Delete.
28415         (msp43o_output_labelref): Add support for -mhwmult command line option.
28416         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
28417         (umulsidi3): Likewise.
28418         * config/msp430/msp430.opt (mmcu): Add Report attribute.
28419         (mcpu, mlarge, msmall): Likewise.
28420         (mhwmult): New option.
28421         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
28422         prototype.
28423         (msp430_is_f5_mcu): Remove prototype.
28424         (msp430_use_f5_series_hwmult): Add prototype.
28425         * config/msp430/msp430-opts.h: New file.
28426         * common/config/msp430: New directory.
28427         * common/config/msp430/msp430-common.c: New file.
28428         * config.gcc (msp430): Remove target_has_targetm_common.
28429         * doc/invoke.texi: Document -mhwmult command line option.
28430
28431 2014-04-23  Nick Clifton  <nickc@redhat.com>
28432
28433         * config/i386/cygwin.h (ENDFILE_SPEC): Include
28434         default-manifest.o if it can be found in the search path.
28435         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
28436
28437 2014-04-23  Terry Guo  <terry.guo@arm.com>
28438
28439         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
28440
28441 2014-04-23  Richard Biener  <rguenther@suse.de>
28442
28443         PR middle-end/60895
28444         * tree-inline.c (declare_return_variable): Use mark_addressable.
28445
28446 2014-04-23  Richard Biener  <rguenther@suse.de>
28447
28448         PR middle-end/60891
28449         * loop-init.c (loop_optimizer_init): Make sure to apply
28450         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
28451
28452 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28453
28454         PR sanitizer/60275
28455         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
28456         New options.
28457         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
28458         if flag_sanitize_undefined_trap_on_error.
28459         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
28460         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
28461         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
28462         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
28463         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
28464         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
28465         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
28466         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
28467         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
28468         * ubsan.c (ubsan_instrument_unreachable): Return
28469         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
28470         (ubsan_expand_null_ifn): Emit __builtin_trap ()
28471         if flag_sanitize_undefined_trap_on_error and
28472         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
28473         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
28474         instrument_bool_enum_load): Emit __builtin_trap () if
28475         flag_sanitize_undefined_trap_on_error and
28476         __builtin_handle_*_abort () if !flag_sanitize_recover.
28477         * doc/invoke.texi (-fsanitize-recover,
28478         -fsanitize-undefined-trap-on-error): Document.
28479
28480 2014-04-22  Christian Bruel  <christian.bruel@st.com>
28481
28482         * config/sh/sh.md (mov<mode>): Replace movQIHI.
28483         Force immediates to SImode.
28484
28485 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
28486
28487         * config/nios2/nios2.md (UNSPEC_ROUND): New.
28488         (lroundsfsi2): New.
28489         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
28490         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
28491         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
28492         (nios2_fpu_insn): Add entry for round.
28493         (N2FPU_NO_ERRNO_P): Define.
28494         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
28495         flag_errno_math.
28496         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
28497
28498 2014-04-22  Richard Henderson  <rth@redhat.com>
28499
28500         * config/aarch64/aarch64 (addti3, subti3): New expanders.
28501         (add<GPI>3_compare0): Remove leading * from name.
28502         (add<GPI>3_carryin): Likewise.
28503         (sub<GPI>3_compare0): Likewise.
28504         (sub<GPI>3_carryin): Likewise.
28505         (<su_optab>mulditi3): New expander.
28506         (multi3): New expander.
28507         (madd<GPI>): Remove leading * from name.
28508
28509 2014-04-22  Martin Jambor  <mjambor@suse.cz>
28510
28511         * cgraphclones.c (cgraph_function_versioning): Copy
28512         ipa_transforms_to_apply instead of asserting it is empty.
28513
28514 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
28515
28516         PR target/60868
28517         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
28518         on count_exp to get mode.
28519
28520 2014-04-22  Andrew Pinski  <apinski@cavium.com>
28521
28522         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
28523         Handle TLS for ILP32.
28524         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
28525         (tlsie_small_<mode>): this and handle PTR.
28526         (tlsie_small_sidi): New pattern.
28527         (tlsle_small): Change to an expand to handle ILP32.
28528         (tlsle_small_<mode>): New pattern.
28529         (tlsdesc_small): Rename to ...
28530         (tlsdesc_small_<mode>): this and handle PTR.
28531
28532 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28533
28534         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
28535
28536 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28537
28538         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28539         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
28540         (aarch64_types_signed_poly_qualifiers): Likewise.
28541         (aarch64_types_unsigned_signed_qualifiers): Likewise.
28542         (aarch64_types_poly_signed_qualifiers): Likewise.
28543         (TYPES_REINTERP_SS): Type macro added.
28544         (TYPES_REINTERP_SU): Likewise.
28545         (TYPES_REINTERP_SP): Likewise.
28546         (TYPES_REINTERP_US): Likewise.
28547         (TYPES_REINTERP_PS): Likewise.
28548         (aarch64_fold_builtin): New expression folding added.
28549         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
28550         Declarations removed.
28551         (REINTERP_SS): Declarations added.
28552         (REINTERP_US): Likewise.
28553         (REINTERP_PS): Likewise.
28554         (REINTERP_SU): Likewise.
28555         (REINTERP_SP): Likewise.
28556         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
28557         (vreinterpretq_p8_f64): Likewise.
28558         (vreinterpret_p16_f64): Likewise.
28559         (vreinterpretq_p16_f64): Likewise.
28560         (vreinterpret_f32_f64): Likewise.
28561         (vreinterpretq_f32_f64): Likewise.
28562         (vreinterpret_f64_f32): Likewise.
28563         (vreinterpret_f64_p8): Likewise.
28564         (vreinterpret_f64_p16): Likewise.
28565         (vreinterpret_f64_s8): Likewise.
28566         (vreinterpret_f64_s16): Likewise.
28567         (vreinterpret_f64_s32): Likewise.
28568         (vreinterpret_f64_s64): Likewise.
28569         (vreinterpret_f64_u8): Likewise.
28570         (vreinterpret_f64_u16): Likewise.
28571         (vreinterpret_f64_u32): Likewise.
28572         (vreinterpret_f64_u64): Likewise.
28573         (vreinterpretq_f64_f32): Likewise.
28574         (vreinterpretq_f64_p8): Likewise.
28575         (vreinterpretq_f64_p16): Likewise.
28576         (vreinterpretq_f64_s8): Likewise.
28577         (vreinterpretq_f64_s16): Likewise.
28578         (vreinterpretq_f64_s32): Likewise.
28579         (vreinterpretq_f64_s64): Likewise.
28580         (vreinterpretq_f64_u8): Likewise.
28581         (vreinterpretq_f64_u16): Likewise.
28582         (vreinterpretq_f64_u32): Likewise.
28583         (vreinterpretq_f64_u64): Likewise.
28584         (vreinterpret_s64_f64): Likewise.
28585         (vreinterpretq_s64_f64): Likewise.
28586         (vreinterpret_u64_f64): Likewise.
28587         (vreinterpretq_u64_f64): Likewise.
28588         (vreinterpret_s8_f64): Likewise.
28589         (vreinterpretq_s8_f64): Likewise.
28590         (vreinterpret_s16_f64): Likewise.
28591         (vreinterpretq_s16_f64): Likewise.
28592         (vreinterpret_s32_f64): Likewise.
28593         (vreinterpretq_s32_f64): Likewise.
28594         (vreinterpret_u8_f64): Likewise.
28595         (vreinterpretq_u8_f64): Likewise.
28596         (vreinterpret_u16_f64): Likewise.
28597         (vreinterpretq_u16_f64): Likewise.
28598         (vreinterpret_u32_f64): Likewise.
28599         (vreinterpretq_u32_f64): Likewise.
28600
28601 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28602
28603         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
28604         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
28605         (vreinterpret_p8_s8): Likewise.
28606         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
28607         (vreinterpret_p8_s16): Likewise.
28608         (vreinterpret_p8_s32): Likewise.
28609         (vreinterpret_p8_s64): Likewise.
28610         (vreinterpret_p8_f32): Likewise.
28611         (vreinterpret_p8_u8): Likewise.
28612         (vreinterpret_p8_u16): Likewise.
28613         (vreinterpret_p8_u32): Likewise.
28614         (vreinterpret_p8_u64): Likewise.
28615         (vreinterpret_p8_p16): Likewise.
28616         (vreinterpretq_p8_s8): Likewise.
28617         (vreinterpretq_p8_s16): Likewise.
28618         (vreinterpretq_p8_s32): Likewise.
28619         (vreinterpretq_p8_s64): Likewise.
28620         (vreinterpretq_p8_f32): Likewise.
28621         (vreinterpretq_p8_u8): Likewise.
28622         (vreinterpretq_p8_u16): Likewise.
28623         (vreinterpretq_p8_u32): Likewise.
28624         (vreinterpretq_p8_u64): Likewise.
28625         (vreinterpretq_p8_p16): Likewise.
28626         (vreinterpret_p16_s8): Likewise.
28627         (vreinterpret_p16_s16): Likewise.
28628         (vreinterpret_p16_s32): Likewise.
28629         (vreinterpret_p16_s64): Likewise.
28630         (vreinterpret_p16_f32): Likewise.
28631         (vreinterpret_p16_u8): Likewise.
28632         (vreinterpret_p16_u16): Likewise.
28633         (vreinterpret_p16_u32): Likewise.
28634         (vreinterpret_p16_u64): Likewise.
28635         (vreinterpret_p16_p8): Likewise.
28636         (vreinterpretq_p16_s8): Likewise.
28637         (vreinterpretq_p16_s16): Likewise.
28638         (vreinterpretq_p16_s32): Likewise.
28639         (vreinterpretq_p16_s64): Likewise.
28640         (vreinterpretq_p16_f32): Likewise.
28641         (vreinterpretq_p16_u8): Likewise.
28642         (vreinterpretq_p16_u16): Likewise.
28643         (vreinterpretq_p16_u32): Likewise.
28644         (vreinterpretq_p16_u64): Likewise.
28645         (vreinterpretq_p16_p8): Likewise.
28646         (vreinterpret_f32_s8): Likewise.
28647         (vreinterpret_f32_s16): Likewise.
28648         (vreinterpret_f32_s32): Likewise.
28649         (vreinterpret_f32_s64): Likewise.
28650         (vreinterpret_f32_u8): Likewise.
28651         (vreinterpret_f32_u16): Likewise.
28652         (vreinterpret_f32_u32): Likewise.
28653         (vreinterpret_f32_u64): Likewise.
28654         (vreinterpret_f32_p8): Likewise.
28655         (vreinterpret_f32_p16): Likewise.
28656         (vreinterpretq_f32_s8): Likewise.
28657         (vreinterpretq_f32_s16): Likewise.
28658         (vreinterpretq_f32_s32): Likewise.
28659         (vreinterpretq_f32_s64): Likewise.
28660         (vreinterpretq_f32_u8): Likewise.
28661         (vreinterpretq_f32_u16): Likewise.
28662         (vreinterpretq_f32_u32): Likewise.
28663         (vreinterpretq_f32_u64): Likewise.
28664         (vreinterpretq_f32_p8): Likewise.
28665         (vreinterpretq_f32_p16): Likewise.
28666         (vreinterpret_s64_s8): Likewise.
28667         (vreinterpret_s64_s16): Likewise.
28668         (vreinterpret_s64_s32): Likewise.
28669         (vreinterpret_s64_f32): Likewise.
28670         (vreinterpret_s64_u8): Likewise.
28671         (vreinterpret_s64_u16): Likewise.
28672         (vreinterpret_s64_u32): Likewise.
28673         (vreinterpret_s64_u64): Likewise.
28674         (vreinterpret_s64_p8): Likewise.
28675         (vreinterpret_s64_p16): Likewise.
28676         (vreinterpretq_s64_s8): Likewise.
28677         (vreinterpretq_s64_s16): Likewise.
28678         (vreinterpretq_s64_s32): Likewise.
28679         (vreinterpretq_s64_f32): Likewise.
28680         (vreinterpretq_s64_u8): Likewise.
28681         (vreinterpretq_s64_u16): Likewise.
28682         (vreinterpretq_s64_u32): Likewise.
28683         (vreinterpretq_s64_u64): Likewise.
28684         (vreinterpretq_s64_p8): Likewise.
28685         (vreinterpretq_s64_p16): Likewise.
28686         (vreinterpret_u64_s8): Likewise.
28687         (vreinterpret_u64_s16): Likewise.
28688         (vreinterpret_u64_s32): Likewise.
28689         (vreinterpret_u64_s64): Likewise.
28690         (vreinterpret_u64_f32): Likewise.
28691         (vreinterpret_u64_u8): Likewise.
28692         (vreinterpret_u64_u16): Likewise.
28693         (vreinterpret_u64_u32): Likewise.
28694         (vreinterpret_u64_p8): Likewise.
28695         (vreinterpret_u64_p16): Likewise.
28696         (vreinterpretq_u64_s8): Likewise.
28697         (vreinterpretq_u64_s16): Likewise.
28698         (vreinterpretq_u64_s32): Likewise.
28699         (vreinterpretq_u64_s64): Likewise.
28700         (vreinterpretq_u64_f32): Likewise.
28701         (vreinterpretq_u64_u8): Likewise.
28702         (vreinterpretq_u64_u16): Likewise.
28703         (vreinterpretq_u64_u32): Likewise.
28704         (vreinterpretq_u64_p8): Likewise.
28705         (vreinterpretq_u64_p16): Likewise.
28706         (vreinterpret_s8_s16): Likewise.
28707         (vreinterpret_s8_s32): Likewise.
28708         (vreinterpret_s8_s64): Likewise.
28709         (vreinterpret_s8_f32): Likewise.
28710         (vreinterpret_s8_u8): Likewise.
28711         (vreinterpret_s8_u16): Likewise.
28712         (vreinterpret_s8_u32): Likewise.
28713         (vreinterpret_s8_u64): Likewise.
28714         (vreinterpret_s8_p8): Likewise.
28715         (vreinterpret_s8_p16): Likewise.
28716         (vreinterpretq_s8_s16): Likewise.
28717         (vreinterpretq_s8_s32): Likewise.
28718         (vreinterpretq_s8_s64): Likewise.
28719         (vreinterpretq_s8_f32): Likewise.
28720         (vreinterpretq_s8_u8): Likewise.
28721         (vreinterpretq_s8_u16): Likewise.
28722         (vreinterpretq_s8_u32): Likewise.
28723         (vreinterpretq_s8_u64): Likewise.
28724         (vreinterpretq_s8_p8): Likewise.
28725         (vreinterpretq_s8_p16): Likewise.
28726         (vreinterpret_s16_s8): Likewise.
28727         (vreinterpret_s16_s32): Likewise.
28728         (vreinterpret_s16_s64): Likewise.
28729         (vreinterpret_s16_f32): Likewise.
28730         (vreinterpret_s16_u8): Likewise.
28731         (vreinterpret_s16_u16): Likewise.
28732         (vreinterpret_s16_u32): Likewise.
28733         (vreinterpret_s16_u64): Likewise.
28734         (vreinterpret_s16_p8): Likewise.
28735         (vreinterpret_s16_p16): Likewise.
28736         (vreinterpretq_s16_s8): Likewise.
28737         (vreinterpretq_s16_s32): Likewise.
28738         (vreinterpretq_s16_s64): Likewise.
28739         (vreinterpretq_s16_f32): Likewise.
28740         (vreinterpretq_s16_u8): Likewise.
28741         (vreinterpretq_s16_u16): Likewise.
28742         (vreinterpretq_s16_u32): Likewise.
28743         (vreinterpretq_s16_u64): Likewise.
28744         (vreinterpretq_s16_p8): Likewise.
28745         (vreinterpretq_s16_p16): Likewise.
28746         (vreinterpret_s32_s8): Likewise.
28747         (vreinterpret_s32_s16): Likewise.
28748         (vreinterpret_s32_s64): Likewise.
28749         (vreinterpret_s32_f32): Likewise.
28750         (vreinterpret_s32_u8): Likewise.
28751         (vreinterpret_s32_u16): Likewise.
28752         (vreinterpret_s32_u32): Likewise.
28753         (vreinterpret_s32_u64): Likewise.
28754         (vreinterpret_s32_p8): Likewise.
28755         (vreinterpret_s32_p16): Likewise.
28756         (vreinterpretq_s32_s8): Likewise.
28757         (vreinterpretq_s32_s16): Likewise.
28758         (vreinterpretq_s32_s64): Likewise.
28759         (vreinterpretq_s32_f32): Likewise.
28760         (vreinterpretq_s32_u8): Likewise.
28761         (vreinterpretq_s32_u16): Likewise.
28762         (vreinterpretq_s32_u32): Likewise.
28763         (vreinterpretq_s32_u64): Likewise.
28764         (vreinterpretq_s32_p8): Likewise.
28765         (vreinterpretq_s32_p16): Likewise.
28766         (vreinterpret_u8_s8): Likewise.
28767         (vreinterpret_u8_s16): Likewise.
28768         (vreinterpret_u8_s32): Likewise.
28769         (vreinterpret_u8_s64): Likewise.
28770         (vreinterpret_u8_f32): Likewise.
28771         (vreinterpret_u8_u16): Likewise.
28772         (vreinterpret_u8_u32): Likewise.
28773         (vreinterpret_u8_u64): Likewise.
28774         (vreinterpret_u8_p8): Likewise.
28775         (vreinterpret_u8_p16): Likewise.
28776         (vreinterpretq_u8_s8): Likewise.
28777         (vreinterpretq_u8_s16): Likewise.
28778         (vreinterpretq_u8_s32): Likewise.
28779         (vreinterpretq_u8_s64): Likewise.
28780         (vreinterpretq_u8_f32): Likewise.
28781         (vreinterpretq_u8_u16): Likewise.
28782         (vreinterpretq_u8_u32): Likewise.
28783         (vreinterpretq_u8_u64): Likewise.
28784         (vreinterpretq_u8_p8): Likewise.
28785         (vreinterpretq_u8_p16): Likewise.
28786         (vreinterpret_u16_s8): Likewise.
28787         (vreinterpret_u16_s16): Likewise.
28788         (vreinterpret_u16_s32): Likewise.
28789         (vreinterpret_u16_s64): Likewise.
28790         (vreinterpret_u16_f32): Likewise.
28791         (vreinterpret_u16_u8): Likewise.
28792         (vreinterpret_u16_u32): Likewise.
28793         (vreinterpret_u16_u64): Likewise.
28794         (vreinterpret_u16_p8): Likewise.
28795         (vreinterpret_u16_p16): Likewise.
28796         (vreinterpretq_u16_s8): Likewise.
28797         (vreinterpretq_u16_s16): Likewise.
28798         (vreinterpretq_u16_s32): Likewise.
28799         (vreinterpretq_u16_s64): Likewise.
28800         (vreinterpretq_u16_f32): Likewise.
28801         (vreinterpretq_u16_u8): Likewise.
28802         (vreinterpretq_u16_u32): Likewise.
28803         (vreinterpretq_u16_u64): Likewise.
28804         (vreinterpretq_u16_p8): Likewise.
28805         (vreinterpretq_u16_p16): Likewise.
28806         (vreinterpret_u32_s8): Likewise.
28807         (vreinterpret_u32_s16): Likewise.
28808         (vreinterpret_u32_s32): Likewise.
28809         (vreinterpret_u32_s64): Likewise.
28810         (vreinterpret_u32_f32): Likewise.
28811         (vreinterpret_u32_u8): Likewise.
28812         (vreinterpret_u32_u16): Likewise.
28813         (vreinterpret_u32_u64): Likewise.
28814         (vreinterpret_u32_p8): Likewise.
28815         (vreinterpret_u32_p16): Likewise.
28816         (vreinterpretq_u32_s8): Likewise.
28817         (vreinterpretq_u32_s16): Likewise.
28818         (vreinterpretq_u32_s32): Likewise.
28819         (vreinterpretq_u32_s64): Likewise.
28820         (vreinterpretq_u32_f32): Likewise.
28821         (vreinterpretq_u32_u8): Likewise.
28822         (vreinterpretq_u32_u16): Likewise.
28823         (vreinterpretq_u32_u64): Likewise.
28824         (vreinterpretq_u32_p8): Likewise.
28825         (vreinterpretq_u32_p16): Likewise.
28826
28827 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28828
28829         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
28830         Pattern extended.
28831         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
28832         (sqabs): Likewise.
28833         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
28834         (vqnegd_s64): Likewise.
28835         (vqabs_s64): Likewise.
28836         (vqabsd_s64): Likewise.
28837
28838 2014-04-22  Richard Henderson  <rth@redhat.com>
28839
28840         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
28841         computation to the top of the loop.
28842
28843 2014-04-22  Renlin  <renlin.li@arm.com>
28844             Jiong Wang  <jiong.wang@arm.com>
28845
28846         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
28847         * config/aarch64/aarch64.c (aarch64_layout_frame)
28848         (aarch64_initial_elimination_offset): Likewise.
28849
28850 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
28851
28852         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
28853         Fix indentation.
28854
28855 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
28856
28857         * machmode.h (bitwise_mode_for_mode): Declare.
28858         * stor-layout.h (bitwise_type_for_mode): Likewise.
28859         * stor-layout.c (bitwise_mode_for_mode): New function.
28860         (bitwise_type_for_mode): Likewise.
28861         * builtins.c (fold_builtin_memory_op): Use it instead of
28862         int_mode_for_mode and build_nonstandard_integer_type.
28863
28864 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28865
28866         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
28867         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
28868         (*-*-solaris2*): Simplify.
28869         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
28870         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
28871         *-*-solaris2.9* handling.
28872
28873         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
28874         as bug.
28875         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
28876         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
28877         handling, simplify.
28878         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
28879         * configure: Regenerate.
28880
28881         * config/i386/sol2-9.h: Remove.
28882
28883         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
28884         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
28885         Remove Solaris 9 references.
28886
28887 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
28888
28889         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
28890         (floatuns<GPI:mode><GPF:mode>2): Remove.
28891         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
28892         and floatuns conversions.
28893         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
28894         and floatuns conversions.
28895         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
28896         (w1,w2): New mode attributes for inequal width conversions.
28897
28898 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
28899
28900         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
28901         the output asm format.
28902
28903 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
28904
28905         * config/aarch64/aarch64-simd.md
28906         (aarch64_cm<optab>di): Always split.
28907         (*aarch64_cm<optab>di): New.
28908         (aarch64_cmtstdi): Always split.
28909         (*aarch64_cmtstdi): New.
28910
28911 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28912
28913         PR tree-optimization/60823
28914         * omp-low.c (ipa_simd_modify_function_body): Go through
28915         all SSA_NAMEs and for those refering to vector arguments
28916         which are going to be replaced adjust SSA_NAME_VAR and,
28917         if it is a default definition, change it into a non-default
28918         definition assigned at the beginning of function from new_decl.
28919         (ipa_simd_modify_stmt_ops): Rewritten.
28920         * tree-dfa.c (set_ssa_default_def): When removing default def,
28921         check for NULL loc instead of NULL *loc.
28922
28923 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28924
28925         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
28926         restrictions on core registers for DImode values in Thumb2.
28927
28928 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28929
28930         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
28931         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
28932
28933 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28934
28935         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
28936         (*iordi_notzesidi_di): Likewise.
28937         (*iordi_notsesidi_di): Likewise.
28938
28939 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
28940
28941         * config/arm/arm-protos.h (tune_params): New struct members.
28942         * config/arm/arm.c: Initialise tune_params per processor.
28943         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
28944         for speed, based on new tune_params.
28945
28946 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
28947
28948         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
28949         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
28950         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
28951         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
28952         * config/aarch64/arm_neon.h (vrnd_f64): Added.
28953         (vrnda_f64): Likewise.
28954         (vrndi_f64): Likewise.
28955         (vrndm_f64): Likewise.
28956         (vrndn_f64): Likewise.
28957         (vrndp_f64): Likewise.
28958         (vrndx_f64): Likewise.
28959
28960 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
28961
28962         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
28963         GET_MODE_SIZE argument is enum machine_mode.
28964
28965 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28966
28967         PR target/60910
28968         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
28969         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
28970
28971 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
28972
28973         PR middle-end/60281
28974         * asan.c (asan_emit_stack_protection): Force the base to align to
28975         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
28976         appropriate bits if STRICT_ALIGNMENT.
28977         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
28978         when asan is on.
28979         (expand_used_vars): Leave a space in the stack frame for alignment
28980         if STRICT_ALIGNMENT.
28981
28982 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
28983
28984         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
28985         than a gimple.
28986         (gimple_store_p): Likewise.
28987         (gimple_assign_load_p): Likewise.
28988         (gimple_assign_cast_p): Likewise.
28989         (gimple_clobber_p): Likewise.
28990
28991         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
28992         rather than a gimple.
28993         (gimple_assign_cast_p): Likewise.
28994
28995 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
28996
28997         PR target/60735
28998         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
28999         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29000
29001         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29002         more debug information for E500 if -mdebug=reg.
29003
29004 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29005
29006         PR target/60909
29007         * config/i386/i386.c (ix86_expand_builtin)
29008         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29009         register for target RTX.
29010         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29011
29012 2014-04-18  Cong Hou  <congh@google.com>
29013
29014         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29015         the widen-mult pattern by handling two operands with different sizes,
29016         and operands whose size is smaller than half of the result type.
29017
29018 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29019
29020         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29021         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29022         (do_estimate_edge_time): Compute it.
29023         * ipa-inline.c (want_inline_small_function_p): Bypass
29024         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29025
29026 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29027
29028         * ipa-inline.c (spec_rem): New static variable.
29029         (dump_overall_stats): New function.
29030         (dump_inline_stats): New function.
29031
29032 2014-04-18  Richard Henderson  <rth@redhat.com>
29033
29034         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29035         to GET_MODE_SIZE, not a reg_class_t.
29036
29037 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29038
29039         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29040         (vsx_xxmrglw_<mode>): Likewise.
29041
29042 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29043
29044         PR target/60876
29045         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29046         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29047         (rs6000_init_hard_regno_mode_ok): Likewise.
29048
29049 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29050
29051         * ipa-inline.c (inline_small_functions): Account only non-cold
29052         functions.
29053         * doc/invoke.texi (inline-unit-growth): Update documentation.
29054
29055 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29056
29057         * config/rs6000/rs6000.md (addti3, subti3): New.
29058
29059 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29060
29061         PR target/60863
29062         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29063         comment.  Check optimize_insn_for_size_p instead of
29064         optimize_insn_for_speed_p.
29065
29066 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29067
29068         * gimple-iterator.c (gsi_start_edge): New function.
29069         * gimple-iterator.h (gsi_start_edge): Declare.
29070         * tree-sra.c (single_non_eh_succ): New function.
29071         (disqualify_ops_if_throwing_stmt): Renamed to
29072         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29073         having one non-EH successor BB.
29074         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29075         generate loads into replacements.
29076         (sra_modify_assign): Likewise and and also use the simple path for
29077         such statements.
29078         (sra_modify_function_body): Commit statements on edges.
29079
29080 2014-04-17  Richard Biener  <rguenther@suse.de>
29081
29082         PR middle-end/60849
29083         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29084         comparison results and add clarifying comment.
29085
29086 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29087
29088         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29089         (blank_mode): Initialize it.
29090         (emit_mode_size_inline, emit_mode_nunits_inline,
29091         emit_mode_inner_inline): New functions.
29092         (emit_insn_modes_h): Call them and surround their output with
29093         #if GCC_VERSION >= 4001 ... #endif.
29094         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29095         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29096         mode_* arrays if the argument is __builtin_constant_p.
29097         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29098         is enum machine_mode.
29099
29100 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29101
29102         * passes.c (opt_pass::execute): Adjust.
29103         (pass_manager::execute_pass_mode_switching): Likewise.
29104         (early_local_passes::execute): Likewise.
29105         (execute_one_pass): Pass cfun to the pass's execute method.
29106         * tree-pass.h (opt_pass::execute): Add function * argument.
29107         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29108         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29109         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29110         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29111         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29112         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29113         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29114         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29115         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29116         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29117         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29118         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29119         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29120         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29121         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29122         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29123         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29124         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29125         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29126         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29127         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29128         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29129         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29130         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29131         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29132         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29133         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29134         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29135         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29136         Adjust.
29137
29138 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29139
29140         * passes.c (opt_pass::gate): Take function * argument.
29141         (gate_all_early_local_passes): Merge into
29142         (early_local_passes::gate): this.
29143         (gate_all_early_optimizations): Merge into
29144         (all_early_optimizations::gate): this.
29145         (gate_all_optimizations): Mege into
29146         (all_optimizations::gate): this.
29147         (gate_all_optimizations_g): Merge into
29148         (all_optimizations_g::gate): this.
29149         (gate_rest_of_compilation): Mege into
29150         (rest_of_compilation::gate): this.
29151         (gate_postreload): Merge into
29152         (postreload::gate): this.
29153         (dump_one_pass): Pass cfun to the pass's gate method.
29154         (execute_ipa_summary_passes): Likewise.
29155         (execute_one_pass): Likewise.
29156         (ipa_write_summaries_2): Likewise.
29157         (ipa_write_optimization_summaries_1): Likewise.
29158         (ipa_read_summaries_1): Likewise.
29159         (ipa_read_optimization_summaries_1): Likewise.
29160         (execute_ipa_stmt_fixups): Likewise.
29161         * tree-pass.h (opt_pass::gate): Add function * argument.
29162         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29163         combine-stack-adj.c, combine.c, compare-elim.c,
29164         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29165         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29166         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29167         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29168         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29169         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29170         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29171         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29172         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29173         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29174         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29175         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29176         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29177         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29178         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29179         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29180         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29181         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29182         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29183         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29184         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29185         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29186         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29187         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29188         var-tracking.c, vtable-verify.c, web.c: Adjust.
29189
29190 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29191
29192         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29193         * configure: Regenerate.
29194
29195 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29196
29197         * passes.c (dump_one_pass): don't check pass->has_gate.
29198         (execute_ipa_summary_passes): Likewise.
29199         (execute_one_pass): Likewise.
29200         (ipa_write_summaries_2): Likewise.
29201         (ipa_write_optimization_summaries_1): Likewise.
29202         (ipa_read_optimization_summaries_1): Likewise.
29203         (execute_ipa_stmt_fixups): Likewise.
29204         * tree-pass.h (pass_data::has_gate): Remove.
29205         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29206         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29207         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29208         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29209         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29210         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29211         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29212         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29213         gimple-low.c, gimple-ssa-isolate-paths.c,
29214         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29215         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29216         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29217         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29218         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29219         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29220         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29221         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29222         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29223         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29224         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29225         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29226         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29227         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29228         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29229         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29230         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29231         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29232         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29233         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29234         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29235         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29236         Adjust.
29237
29238 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29239
29240         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29241         declaration.
29242         * passes.c (pass_manager::register_dump_files_1): Merge into
29243         (pass_manager::register_dump_files): this, and remove its handling of
29244         properties since the pass always has the properties anyway.
29245         (pass_manager::pass_manager): Adjust.
29246
29247 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29248
29249         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29250         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29251         dealing with properties.
29252         (pass_manager::register_dump_files): Adjust.
29253
29254 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29255
29256         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29257         then represent the bound as normal constant value.
29258
29259 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29260
29261         PR target/60847
29262         Forward port from 4.8 branch
29263         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29264
29265         * config/i386/bmiintrin.h (_blsi_u32): New.
29266         (_blsi_u64): Ditto.
29267         (_blsr_u32): Ditto.
29268         (_blsr_u64): Ditto.
29269         (_blsmsk_u32): Ditto.
29270         (_blsmsk_u64): Ditto.
29271         (_tzcnt_u32): Ditto.
29272         (_tzcnt_u64): Ditto.
29273
29274 2014-04-17  Kito Cheng  <kito@0xlab.org>
29275
29276         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29277
29278 2014-04-17  Richard Biener  <rguenther@suse.de>
29279
29280         PR middle-end/60849
29281         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29282         boolean results for comparisons.
29283
29284 2014-04-17  Richard Biener  <rguenther@suse.de>
29285
29286         PR tree-optimization/60836
29287         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29288         initial PHI args to be gimple values.
29289
29290 2014-04-17  Richard Biener  <rguenther@suse.de>
29291
29292         PR tree-optimization/60841
29293         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29294         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29295         of stmts to SLP build.
29296         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29297         (vect_analyze_slp): Likewise.
29298         (vect_analyze_slp_instance): Likewise.
29299         (vect_build_slp_tree): Limit overall SLP tree growth.
29300         * tree-vectorizer.h (vect_analyze_data_refs,
29301         vect_analyze_slp): Adjust prototypes.
29302
29303 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29304
29305         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29306         Silvermont.
29307
29308 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29309
29310         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29311         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29312         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29313         for TARGET_SLOW_PSHUFB
29314
29315 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29316
29317         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29318         * config/i386/i386.c (intel_cost): Ditto.
29319
29320 2014-04-17  Joey Ye  <joey.ye@arm.com>
29321
29322         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29323
29324 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29325
29326         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29327         with -fuse-profile.
29328
29329 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29330
29331         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29332         (type_all_derivations_known_p): New predicate.
29333         (type_all_ctors_visible_p): New predicate.
29334         (type_possibly_instantiated_p): New predicate.
29335         (get_odr_type): Compute all_derivations_known.
29336         (dump_odr_type): Dump the flag.
29337         (maybe_record_type): Cleanup.
29338         (record_target_from_binfo): Add bases_to_consider array;
29339         record bases for types w/o instances and skip CXX destructor.
29340         (possible_polymorphic_call_targets_1): Add bases_to_consider
29341         and consider_construction parameters; check if type may have instance.
29342         (get_polymorphic_call_info): Set maybe_in_construction to true
29343         when we know nothing.
29344         (record_targets_from_bases): Skip CXX destructors; they are
29345         never called for types in construction.
29346         (possible_polymorphic_call_targets): Do not record target when
29347         type may not have instance.
29348
29349 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29350
29351         PR ipa/60854
29352         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29353         external aliases alive, too.
29354
29355 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
29356
29357         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29358         definition.
29359
29360 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29361
29362         * final.c (compute_alignments): Do not apply loop alignment to a block
29363         falling through to the exit.
29364
29365 2014-04-16  Catherine Moore  <clm@codesourcery.com>
29366
29367         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29368         Adjust constraints for microMIPS store patterns.
29369
29370 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29371
29372         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29373
29374 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29375
29376         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29377         (append_use): Run at -O0.
29378         (append_vdef): Likewise.
29379         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29380         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29381
29382 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
29383
29384         PR tree-optimization/60844
29385         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29386         (propagate_op_to_single_use, remove_visited_stmt_chain,
29387         linearize_expr, repropagate_negates, reassociate_bb): Use it
29388         instead of gsi_remove.
29389
29390 2014-04-16  Martin Jambor  <mjambor@suse.cz>
29391
29392         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
29393         ipa_transforms_to_apply.
29394         (cgraph_function_versioning): Assert that old_node has empty
29395         ipa_transforms_to_apply.
29396         * trans-mem.c (ipa_tm_create_version): Likewise.
29397         * tree-inline.c (tree_function_versioning): Do not duplicate
29398         ipa_transforms_to_apply.
29399
29400 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29401
29402         PR target/60817
29403         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
29404         x86_64-*-* cases.
29405         Pass necessary as flags on 64-bit Solaris/x86.
29406         Use lowercase relocs for x86_64-*-*.
29407         * configure: Regenerate.
29408
29409 2014-04-15  Jan Hubicka  <jh@suse.cz>
29410
29411         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
29412         (maybe_record_node, likely_target_p): Use it.
29413
29414 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29415
29416         PR target/60839
29417         Revert following patch
29418
29419         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29420
29421         PR target/60735
29422         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
29423         software floating point or no floating point registers, do not
29424         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
29425         in GPRs that occurs after we tested for GPRs that would never be
29426         true.
29427
29428         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
29429         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
29430         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
29431         specifically allow DDmode, since that does not use the SPE SIMD
29432         instructions.
29433
29434 2014-03-21  Mark Wielaard  <mjw@redhat.com>
29435
29436         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
29437         as unsigned or int depending on type and value used.
29438
29439 2014-04-15  Richard Biener  <rguenther@suse.de>
29440
29441         PR rtl-optimization/56965
29442         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
29443         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
29444         ... here.
29445         * alias.c (true_dependence_1): Do not call
29446         nonoverlapping_component_refs_p.
29447         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
29448         nonoverlapping_component_refs_p.
29449         (indirect_refs_may_alias_p): Likewise.
29450
29451 2014-04-15  Teresa Johnson  <tejohnson@google.com>
29452
29453         * cfg.c (dump_bb_info): Fix flags check.
29454         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
29455
29456 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29457
29458         PR rtl-optimization/60663
29459         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
29460         avoid 0 cost.
29461
29462 2014-04-15  Richard Biener  <rguenther@suse.de>
29463
29464         * lto-streamer.h (LTO_major_version): Bump to 4.
29465
29466 2014-04-15  Richard Biener  <rguenther@suse.de>
29467
29468         * common.opt (lto_partition_model): New enum.
29469         (flto-partition=): Merge separate options with a single with argument,
29470         add -flto-partition=one support.
29471         * flag-types.h (enum lto_partition_model): Declare.
29472         * opts.c (finish_options): Remove duplicate -flto-partition=
29473         option check.
29474         * lto-wrapper.c (run_gcc): Adjust.
29475
29476 2014-04-15  Richard Biener  <rguenther@suse.de>
29477
29478         * alias.c (ncr_compar): New function.
29479         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
29480
29481 2014-04-15  Richard Biener  <rguenther@suse.de>
29482
29483         * alias.c (record_component_aliases): Do not walk BINFOs.
29484
29485 2014-04-15  Richard Biener  <rguenther@suse.de>
29486
29487         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
29488         Add struct function argument and adjust.
29489         (find_func_aliases_for_call): Likewise.
29490         (find_func_aliases): Likewise.
29491         (find_func_clobbers): Likewise.
29492         (intra_create_variable_infos): Likewise.
29493         (compute_points_to_sets): Likewise.
29494         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
29495
29496 2014-04-15  Richard Biener  <rguenther@suse.de>
29497
29498         * tree.c (iterative_hash_expr): Use enum tree_code_class
29499         to store TREE_CODE_CLASS.
29500         (tree_block): Likewise.
29501         (tree_set_block): Likewise.
29502         * tree.h (fold_build_pointer_plus_loc): Use
29503         convert_to_ptrofftype_loc.
29504
29505 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
29506
29507         PR plugins/59335
29508         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
29509         added in 4.9.
29510
29511 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
29512
29513         * cfgloop.h (struct loop): Move force_vectorize down.
29514         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
29515         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
29516         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
29517         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
29518         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
29519         * tree-core.h (enum annot_expr_kind): Add new kind values.
29520         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
29521         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
29522         kinds.
29523         * tree.def (ANNOTATE_EXPR): Tweak comment.
29524
29525 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29526
29527         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
29528         cxa_pure_virtual).
29529
29530 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
29531
29532         * tree.h (TYPE_IDENTIFIER): Declare.
29533         * tree.c (subrange_type_for_debug_p): Use it.
29534         * godump.c (go_format_type): Likewise.
29535         * dwarf2out.c (is_cxx_auto, modified_type_die,
29536         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
29537         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
29538
29539 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29540
29541         PR lto/60820
29542         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
29543
29544 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
29545
29546         * config/i386/i386.c (examine_argument): Return bool.  Return true if
29547         parameter should be passed in memory.
29548         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
29549         (construct_container): Update calls to examine_argument.
29550         (function_arg_advance_64): Ditto.
29551         (return_in_memory_32): Merge with ix86_return_in_memory.
29552         (return_in_memory_64): Ditto.
29553         (return_in_memory_ms_64): Ditto.
29554
29555 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
29556
29557         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
29558         * coverage.c (coverage_compute_profile_id): Handle externally visible
29559         symbols.
29560
29561 2014-04-14  Martin Jambor  <mjambor@suse.cz>
29562
29563         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
29564         DECL_DISREGARD_INLINE_LIMITS functions.
29565
29566 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29567
29568         PR target/60827
29569         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
29570
29571 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
29572
29573         PR target/60827
29574         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
29575         optimize_insn_for_speed_p instead of
29576         optimize_function_for_speed_p.
29577
29578 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
29579
29580         * doc/invoke.texi (free): Document AArch64.
29581
29582 2014-04-14  Richard Biener  <rguenther@suse.de>
29583
29584         PR tree-optimization/60042
29585         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
29586         (insert_into_preds_of_block): Do not prevent PHI insertion
29587         for REFERENCE exprs here ...
29588         (eliminate_dom_walker::before_dom_children): ... but prevent
29589         their use here under similar conditions when applied to the
29590         IL after PRE optimizations.
29591
29592 2014-04-14  Richard Biener  <rguenther@suse.de>
29593
29594         * passes.def: Move early points-to after early SRA.
29595
29596 2014-04-14  Richard Biener  <rguenther@suse.de>
29597
29598         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
29599         check for which sign-changes we allow when forwarding
29600         a converted value into a switch.
29601
29602 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29603
29604         * stor-layout.c (place_field): Finalize non-constant offset for the
29605         field, if any.
29606
29607 2014-04-14  Richard Biener  <rguenther@suse.de>
29608
29609         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
29610         as argument.
29611         (expand_switch_using_bit_tests_p): Likewise.
29612         (process_switch): Compute and pass on speed_p based on the
29613         switch stmt.
29614         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
29615         optimize_bb_for_speed_p.
29616
29617 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
29618
29619         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
29620         * function.h (struct function): Rename has_force_vect_loops into
29621         has_force_vectorize_loops.
29622         * lto-streamer-in.c (input_cfg): Adjust for renaming.
29623         (input_struct_function_base): Likewise.
29624         * lto-streamer-out.c (output_cfg): Likewise.
29625         (output_struct_function_base): Likewise.
29626         * omp-low.c (expand_omp_simd): Likewise.
29627         * tree-cfg.c (move_sese_region_to_fn): Likewise.
29628         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
29629         (version_loop_for_if_conversion): Likewise.
29630         (tree_if_conversion): Likewise.
29631         (main_tree_if_conversion): Likewise.
29632         (gate_tree_if_conversion): Likewise.
29633         * tree-inline.c (copy_loops): Likewise.
29634         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
29635         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
29636         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
29637         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
29638         * tree-vectorizer.c (vectorize_loops): Likewise.
29639         * tree-vectorizer.h (unlimited_cost_model): Likewise.
29640
29641 2014-04-14  Richard Biener  <rguenther@suse.de>
29642
29643         PR lto/60720
29644         * lto-streamer-out.c (wrap_refs): New function.
29645         (lto_output): Wrap symbol references in global initializes in
29646         type-preserving MEM_REFs.
29647
29648 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29649
29650         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
29651
29652 2014-04-14  Christian Bruel  <christian.bruel@st.com>
29653
29654         * config/sh/sh.md (setmemqi): New expand pattern.
29655         * config/sh/sh.h (CLEAR_RATIO): Define.
29656         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
29657         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
29658
29659 2014-04-14  Richard Biener  <rguenther@suse.de>
29660
29661         PR middle-end/55022
29662         * fold-const.c (negate_expr_p): Don't negate directional rounding
29663         division.
29664         (fold_negate_expr): Likewise.
29665
29666 2014-04-14  Richard Biener  <rguenther@suse.de>
29667
29668         PR tree-optimization/59817
29669         PR tree-optimization/60453
29670         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
29671         recursion to catch all CHRECs in the scalar evolution and restrict
29672         the predicate for the remains appropriately.
29673
29674 2014-04-12  Catherine Moore  <clm@codesourcery.com>
29675
29676         * config/mips/constraints.md: Add new register constraint "kb".
29677         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
29678         (*movhi_internal): Likewise.
29679         (*movqi_internal): Likewise.
29680         * config/mips/mips.h (M16_STORE_REGS): New register class.
29681         (REG_CLASS_NAMES): Add M16_STORE_REGS.
29682         (REG_CLASS_CONTENTS): Likewise.
29683         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
29684
29685 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29686
29687         PR c/60194
29688         * doc/invoke.texi (-Wformat-signedness): Document it.
29689         (Wformat=2): Mention that this enables -Wformat-signedness.
29690
29691 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29692
29693         * common/config/epiphany/epiphany-common.c
29694         (epiphany_option_optimization_table): Enable section anchors by
29695         default at -O1 or higher.
29696         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
29697         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
29698         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
29699         carries no extra cost.
29700         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
29701         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
29702         * config/epiphany/predicates.md (memclob_operand): New predicate.
29703         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
29704         Use memclob_operand predicate and X constraint for operand 3.
29705
29706 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29707
29708         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
29709         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
29710         its operands.
29711
29712 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29713
29714         PR rtl-optimization/60651
29715         * mode-switching.c (optimize_mode_switching): Make sure to emit
29716         sets of a lower numbered entity before sets of a higher numbered
29717         entity to a mode of the same or lower priority.
29718         When creating a seginfo for a basic block that starts with a code
29719         label, move the insertion point past the code label.
29720         (new_seginfo): Document and enforce requirement that
29721         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
29722         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
29723         * doc/tm.texi: Regenerate.
29724
29725 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
29726
29727         PR target/60811
29728         * config/arc/arc.c (arc_save_restore): Fix assert typo.
29729
29730 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
29731
29732         * BASE-VER: Set to 4.10.0.
29733
29734 2014-04-11  Tobias Burnus  <burnus@net-b.de>
29735
29736         PR other/59055
29737         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
29738         * doc/gcc.texi (Service): Update description in the @menu
29739         * doc/invoke.texi (Option Summary): Remove misplaced and
29740         duplicated @menu.
29741
29742 2014-04-11  Steve Ellcey  <sellcey@mips.com>
29743             Jakub Jelinek  <jakub@redhat.com>
29744
29745         PR middle-end/60556
29746         * expr.c (convert_move): Use emit_store_flag_force instead of
29747         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
29748         argument to it.
29749
29750 2014-04-11  Richard Biener  <rguenther@suse.de>
29751
29752         PR middle-end/60797
29753         * varasm.c (assemble_alias): Avoid endless error reporting
29754         recursion by setting TREE_ASM_WRITTEN.
29755
29756 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29757
29758         * config/s390/s390.md: Add a splitter for NOT rtx.
29759
29760 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
29761
29762         PR rtl-optimization/60663
29763         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
29764
29765 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
29766             Jakub Jelinek  <jakub@redhat.com>
29767
29768         PR lto/60567
29769         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
29770         flag from decl_node to node.
29771
29772 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29773
29774         PR debug/60655
29775         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
29776         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
29777         ameliorating the cases where it can be.
29778
29779 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
29780
29781         Revert
29782         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29783
29784         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29785         (loadsync_<mode>): Change mode.
29786         (load_quadpti, store_quadpti): New.
29787         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29788         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29789         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
29790
29791 2014-04-09  Cong Hou  <congh@google.com>
29792
29793         PR testsuite/60773
29794         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
29795         documentation.
29796
29797 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29798
29799         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
29800         instead of vnor to exploit possible fusion opportunity in the
29801         future.
29802         (altivec_expand_vec_perm_const_le): Likewise.
29803
29804 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
29805
29806         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
29807         (loadsync_<mode>): Change mode.
29808         (load_quadpti, store_quadpti): New.
29809         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
29810         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
29811
29812 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
29813
29814         PR target/60763
29815         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
29816         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
29817         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
29818
29819 2014-04-08  Richard Biener  <rguenther@suse.de>
29820
29821         PR middle-end/60706
29822         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
29823         a 64bit widest int print double-int similar to on HWI64 hosts.
29824
29825 2014-04-08  Richard Biener  <rguenther@suse.de>
29826
29827         PR tree-optimization/60785
29828         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
29829         default defs properly.
29830
29831 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
29832
29833         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
29834         (Weffc++): Likewise.
29835
29836 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
29837
29838         * ipa-devirt.c (maybe_record_node): When node is not recorded,
29839         set completep to false rather than true.
29840
29841 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
29842
29843         PR target/60504
29844         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
29845         ARM_TARGET2_DWARF_FORMAT.
29846
29847 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
29848
29849         PR target/60609
29850         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
29851         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
29852         ADDR_DIFF_VEC.
29853
29854 2014-04-07  Richard Biener  <rguenther@suse.de>
29855
29856         PR tree-optimization/60766
29857         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
29858         (may_eliminate_iv): Convert cand_value_at result to desired type.
29859
29860 2014-04-07  Jason Merrill  <jason@redhat.com>
29861
29862         PR c++/60731
29863         * common.opt (-fno-gnu-unique): Add.
29864         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
29865
29866 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29867
29868         * haifa-sched.c: Fix outdated function reference and minor
29869         grammar errors in introductory comment.
29870
29871 2014-04-07  Richard Biener  <rguenther@suse.de>
29872
29873         PR middle-end/60750
29874         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
29875         for noreturn calls.
29876         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
29877
29878 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
29879
29880         PR debug/55794
29881         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
29882         size accounting for thunks.
29883         (pa_asm_output_mi_thunk): Use final_start_function() and
29884         final_end_function() to output function start and end directives.
29885
29886 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29887
29888         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
29889         device specific ISA/ feature information. Remove short_sp and
29890         errata_skip ds.  Add avr_device_specific_features enum to have device
29891         specific info.
29892         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
29893         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
29894         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
29895         updated device specific info.
29896         * config/avr/avr-mcus.def: Merge device specific details to
29897         dev_attribute field.
29898         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
29899         errata_skip.
29900         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
29901         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
29902         assembler if RMW isa supported by current device.
29903         * config/avr/genmultilib.awk: Update as device info structure changed.
29904         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
29905
29906 2014-04-04  Cong Hou  <congh@google.com>
29907
29908         PR tree-optimization/60656
29909         * tree-vect-stmts.c (supportable_widening_operation):
29910         Fix a bug that elements in a vector with vect_used_by_reduction
29911         property are incorrectly reordered when the operation on it is not
29912         consistant with the one in reduction operation.
29913
29914 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
29915
29916         PR rtl-optimization/60155
29917         * gcse.c (record_set_data): New function.
29918         (single_set_gcse): New function.
29919         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
29920         (hoist_code): Likewise.
29921         (get_pressure_class_and_nregs): Likewise.
29922
29923 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
29924
29925         * explow.c (probe_stack_range): Emit a final optimization blockage.
29926
29927 2014-04-04  Anthony Green  <green@moxielogic.com>
29928
29929         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
29930         typos.
29931
29932 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
29933
29934         PR ipa/59626
29935         * lto-cgraph.c (input_overwrite_node): Check that partitioning
29936         flags are set only during streaming.
29937         * ipa.c (process_references, walk_polymorphic_call_targets,
29938         symtab_remove_unreachable_nodes): Drop bodies of always inline
29939         after early inlining.
29940         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
29941
29942 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
29943         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29944
29945         PR debug/60655
29946         * dwarf2out.c (const_ok_for_output_1): Reject expressions
29947         containing a NOT.
29948
29949 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29950
29951         PR bootstrap/60743
29952         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
29953         duration.
29954         (cortex_a53_fdivd): Likewise.
29955
29956 2014-04-04  Martin Jambor  <mjambor@suse.cz>
29957
29958         PR ipa/60640
29959         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
29960         Adjust all callers.
29961         * cgraph.c (clone_of_p): Also return true if thunks match.
29962         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
29963         cgraph_function_or_thunk_node and an obsolete comment.
29964         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
29965         file.
29966         (build_function_decl_skip_args): Likewise.
29967         (set_new_clone_decl_and_node_flags): New function.
29968         (duplicate_thunk_for_node): Likewise.
29969         (redirect_edge_duplicating_thunks): Likewise.
29970         (cgraph_clone_node): New parameter args_to_skip, pass it to
29971         redirect_edge_duplicating_thunks which is called instead of
29972         cgraph_redirect_edge_callee.
29973         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
29974         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
29975
29976 2014-04-04  Jeff Law  <law@redhat.com>
29977
29978         PR target/60657
29979         * config/arm/predicates.md (const_int_I_operand): New predicate.
29980         (const_int_M_operand): Similarly.
29981         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
29982         const_int_operand.
29983         (insv_t2, extv_reg, extzv_t2): Likewise.
29984         (load_multiple_with_writeback): Similarly for const_int_I_operand.
29985         (pop_multiple_with_writeback_and_return): Likewise.
29986         (vfp_pop_multiple_with_writeback): Likewise
29987
29988 2014-04-04  Richard Biener  <rguenther@suse.de>
29989
29990         PR ipa/60746
29991         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
29992         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
29993         non-GIMPLE_LABELs.
29994         * gimplify.h (gimple_add_tmp_var_fn): Declare.
29995         * gimplify.c (gimple_add_tmp_var_fn): New function.
29996         * gimple-expr.h (create_tmp_reg_fn): Declare.
29997         * gimple-expr.c (create_tmp_reg_fn): New function.
29998         * gimple-low.c (record_vars_into): Don't change cfun.
29999         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30000         code generation without cfun.
30001
30002 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30003
30004         PR bootstrap/60719
30005         * Makefile.in (install-driver): Fix shell scripting.
30006
30007 2014-04-03  Cong Hou  <congh@google.com>
30008
30009         PR tree-optimization/60505
30010         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30011         threshold of number of iterations below which no vectorization
30012         will be done.
30013         * tree-vect-loop.c (new_loop_vec_info):
30014         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30015         * tree-vect-loop.c (vect_analyze_loop_operations):
30016         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30017         * tree-vect-loop.c (vect_transform_loop):
30018         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30019         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30020         of iterations of the loop and see if we should build the epilogue.
30021
30022 2014-04-03  Richard Biener  <rguenther@suse.de>
30023
30024         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30025         (streamer_tree_cache_create): Adjust.
30026         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30027         to allow optional nodes array.
30028         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30029         (streamer_tree_cache_append): Likewise.
30030         (streamer_tree_cache_create): Create nodes array optionally
30031         as specified by parameter.
30032         * lto-streamer-out.c (create_output_block): Avoid maintaining
30033         the node array in the writer cache.
30034         (DFS_write_tree): Remove assertion.
30035         (produce_asm_for_decls): Free the out decl state hash table early.
30036         * lto-streamer-in.c (lto_data_in_create): Adjust for
30037         streamer_tree_cache_create prototype change.
30038
30039 2014-04-03  Richard Biener  <rguenther@suse.de>
30040
30041         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30042         set TREE_CHAIN to NULL_TREE.
30043
30044 2014-04-03  Richard Biener  <rguenther@suse.de>
30045
30046         PR tree-optimization/60740
30047         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30048         over all GIMPLE_COND operands.
30049
30050 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30051
30052         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30053         (Weffc++): Remove Scott's numbering, merge lists and reference
30054         Wnon-virtual-dtor.
30055
30056 2014-04-03  Nick Clifton  <nickc@redhat.com>
30057
30058         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30059         properly.
30060
30061 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30062
30063         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30064         mention gcc_unreachable before failing.
30065         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30066         removed symbols.
30067
30068 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30069
30070         PR ipa/60659
30071         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30072         inconsistent code and instead mark the context inconsistent.
30073         (possible_polymorphic_call_targets): For inconsistent contexts
30074         return empty complete list.
30075
30076 2014-04-02  Anthony Green  <green@moxielogic.com>
30077
30078         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30079         (extendqisi2, extendhisi2): Define.
30080         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30081         (WCHAR_TYPE): Change to unsigned int.
30082
30083 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30084
30085         PR tree-optimization/60733
30086         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30087         insertion point for PHI candidates to be the end of the feeding
30088         block for the PHI argument.
30089
30090 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30091
30092         PR rtl-optimization/60650
30093         * lra-constraints.c (process_alt_operands): Decrease reject for
30094         earlyclobber matching.
30095
30096 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30097
30098         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30099
30100 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30101
30102         * config/spu/spu.c (pad_bb): Do not crash when the last
30103         insn is CODE_FOR_blockage.
30104
30105 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30106
30107         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30108         lies outside the target mode.
30109
30110 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30111
30112         PR target/60735
30113         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30114         software floating point or no floating point registers, do not
30115         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30116         in GPRs that occurs after we tested for GPRs that would never be
30117         true.
30118
30119         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30120         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30121         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30122         specifically allow DDmode, since that does not use the SPE SIMD
30123         instructions.
30124
30125 2014-04-02  Richard Biener  <rguenther@suse.de>
30126
30127         PR middle-end/60729
30128         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30129         MODE_INTs.  Properly use negv_optab.
30130         (expand_abs): Likewise.
30131
30132 2014-04-02  Richard Biener  <rguenther@suse.de>
30133
30134         PR bootstrap/60719
30135         * Makefile.in (install-driver): Guard extra installs with special
30136         names properly.
30137
30138 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30139
30140         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30141         Document vec_vgbbd.
30142
30143 2014-04-01  Richard Henderson  <rth@redhat.com>
30144
30145         PR target/60704
30146         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30147         alternative enabled before register allocation.
30148
30149 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30150
30151         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30152         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30153         typo.
30154         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30155         (nios2_got_address): Update nios2_large_got_address call site.
30156         (nios2_delegitimize_address): New function.
30157         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30158         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30159         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30160
30161 2014-04-01  Martin Husemann  <martin@duskware.de>
30162
30163         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30164         for -mabi=32.
30165
30166 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30167
30168         PR rtl-optimization/60604
30169         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30170         check from register_operand.
30171         (register_operand): Redefine in terms of general_operand.
30172         (nonmemory_operand): Use register_operand for the non-constant cases.
30173
30174 2014-04-01  Richard Biener  <rguenther@suse.de>
30175
30176         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30177
30178 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30179
30180         * doc/invoke.texi (mapp-regs): Clarify.
30181
30182 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30183
30184         * config/i386/avx512fintrin.h (__v32hi): Define type.
30185         (__v64qi): Likewise.
30186         (_mm512_set1_epi8): Define.
30187         (_mm512_set1_epi16): Define.
30188         (_mm512_set4_epi32): Define.
30189         (_mm512_set4_epi64): Define.
30190         (_mm512_set4_pd): Define.
30191         (_mm512_set4_ps): Define.
30192         (_mm512_setr4_epi64): Define.
30193         (_mm512_setr4_epi32): Define.
30194         (_mm512_setr4_pd): Define.
30195         (_mm512_setr4_ps): Define.
30196         (_mm512_setzero_epi32): Define.
30197
30198 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30199
30200         PR middle-end/60647
30201         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30202         callsite_arguments_match_p.  Updated all callers.  Also check types of
30203         corresponding formal parameters and actual arguments.
30204         (not_all_callers_have_enough_arguments_p) Renamed to
30205         some_callers_have_mismatched_arguments_p.
30206
30207 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30208
30209         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30210
30211 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30212
30213         PR target/60034
30214         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30215         section anchor.
30216
30217 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30218
30219         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30220         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30221         Split out
30222         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30223         Use FMAMODE_NOVF512 mode iterator.
30224         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30225         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30226         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30227         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30228         Split out
30229         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30230         Use VF_128_256 mode iterator.
30231         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30232         Ditto.
30233
30234 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30235
30236         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30237         static chain if needed.
30238
30239 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30240
30241         PR target/60697
30242         * lra-constraints.c (index_part_to_reg): New.
30243         (process_address): Use it.
30244
30245 2014-03-27  Jeff Law  <law@redhat.com>
30246             Jakub Jelinek  <jakub@redhat.com>
30247
30248         PR target/60648
30249         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30250         gen_rtx_{PLUS,MULT} to build up the address expression.
30251
30252         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30253         creating non-canonical RTL.
30254
30255 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30256
30257         PR ipa/60243
30258         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30259         functions; reorganize to make cheap checks first.
30260         (inline_small_functions): Do not estimate growth when dumping;
30261         it is expensive.
30262         * ipa-inline.h (inline_summary): Add min_size.
30263         (growth_likely_positive): New function.
30264         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30265         (set_cond_stmt_execution_predicate): Cleanup.
30266         (estimate_edge_size_and_time): Compute min_size.
30267         (estimate_calls_size_and_time): Likewise.
30268         (estimate_node_size_and_time): Likewise.
30269         (inline_update_overall_summary): Update min_size.
30270         (do_estimate_edge_time): Likewise.
30271         (do_estimate_edge_size): Update.
30272         (do_estimate_edge_hints): Update.
30273         (growth_likely_positive): New function.
30274
30275 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30276
30277         PR target/60693
30278         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30279         also if addr has VOIDmode.
30280
30281 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30282
30283         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30284         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30285         Declare extern.
30286         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30287         instructions as well as AdvancedSIMD loads.
30288
30289 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30290
30291         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30292         Use crypto_aese type.
30293         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30294         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30295         crypto_aese, crypto_aesmc.  Move to types.md.
30296         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30297         crypto_aesmc.
30298         * config/arm/iterators.md (crypto_type): Likewise.
30299
30300 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30301
30302         * cgraph.c: Include expr.h and tree-dfa.h.
30303         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30304         remove LHS.
30305
30306 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30307
30308         PR target/60675
30309         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30310         regs from checking multi-reg pseudos.
30311
30312 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30313
30314         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30315
30316 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30317
30318         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30319         if it would clobber the stack pointer, even temporarily.
30320
30321 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30322
30323         * mode-switching.c: Make small adjustments to the top comment.
30324
30325 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30326
30327         * config/rs6000/constraints.md (wD constraint): New constraint to
30328         match the constant integer to get the top DImode/DFmode out of a
30329         vector in a VSX register.
30330
30331         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30332         match the constant integer to get the top DImode/DFmode out of a
30333         vector in a VSX register.
30334
30335         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30336         for ISA 2.07.
30337
30338         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30339         vbpermq builtins.
30340
30341         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30342         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30343
30344         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30345         Optimize vec_extract of 64-bit values, where the value being
30346         extracted is in the top word, where we can use scalar
30347         instructions.  Add direct move and store support.  Combine the big
30348         endian/little endian vector select load support into a single insn.
30349         (vsx_extract_<mode>_internal1): Likewise.
30350         (vsx_extract_<mode>_internal2): Likewise.
30351         (vsx_extract_<mode>_load): Likewise.
30352         (vsx_extract_<mode>_store): Likewise.
30353         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30354         combined into vsx_extract_<mode>_load.
30355         (vsx_extract_<mode>_one_le): Likewise.
30356
30357         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30358         define the top 64-bit vector element.
30359
30360         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30361         constraint.
30362
30363         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30364         Document vec_vbpermq builtin.
30365
30366         PR target/60672
30367         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30368         enable use of xxsldwi and xxpermdi builtin functions.
30369         (vec_xxpermdi): Likewise.
30370
30371         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30372         Document use of vec_xxsldwi and vec_xxpermdi builtins.
30373
30374 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30375
30376         PR rtl-optimization/60650
30377         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30378         first_p.  Use it.
30379         (find_spills_for): New.
30380         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30381         Spill all pseudos on the second iteration.
30382
30383 2014-03-27  Marek Polacek  <polacek@redhat.com>
30384
30385         PR c/50347
30386         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30387         types.
30388
30389 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30390
30391         * config/s390/s390.c (s390_can_use_return_insn): Check for
30392         call-saved FPRs on 31 bit.
30393
30394 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
30395
30396         PR middle-end/60682
30397         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
30398         if they need regimplification, just drop them instead of
30399         calling gimple_regimplify_operands on them.
30400
30401 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30402
30403         PR target/60580
30404         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
30405         (aarch64_frame_pointer_required): Adjust logic.
30406         (aarch64_can_eliminate): Adjust logic.
30407         (aarch64_override_options_after_change): Adjust logic.
30408
30409 2014-03-27  Dehao Chen  <dehao@google.com>
30410
30411         * ipa-inline.c (early_inliner): Update node's inline info.
30412
30413 2014-03-26  Dehao Chen  <dehao@google.com>
30414
30415         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
30416         compiler inserted conditional jumps for NAN float check.
30417
30418 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30419
30420         * ubsan.h (ubsan_create_data): Change second argument's type
30421         to const location_t *.
30422         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
30423         _("<unknown>").
30424         (ubsan_create_data): Change second argument to const location_t *PLOC.
30425         Create Loc field whenever PLOC is non-NULL.
30426         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
30427         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
30428         callers.
30429
30430         PR other/59545
30431         * real.c (real_to_integer2): Change type of low to UHWI.
30432
30433 2014-03-26  Tobias Burnus  <burnus@net-b.de>
30434
30435         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
30436         (CILK_SELF_SPECS): New define.
30437         (driver_self_specs): Use it.
30438
30439 2014-03-26  Richard Biener  <rguenther@suse.de>
30440
30441         * tree-pretty-print.c (percent_K_format): Implement special
30442         case for LTO and its stripped down BLOCK tree.
30443
30444 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30445
30446         PR sanitizer/60636
30447         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
30448
30449         * tree-vrp.c (simplify_internal_call_using_ranges): If only
30450         one range is range_int_cst_p, but not both, at least optimize
30451         addition/subtraction of 0 and multiplication by 0 or 1.
30452         * gimple-fold.c (gimple_fold_call): Fold
30453         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
30454         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
30455         INTEGER_CSTs, try to fold at least x * 0 and y - y.
30456
30457 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
30458
30459         PR rtl-optimization/60452
30460         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
30461         <case REG>: Return 1 for invalid offsets from the frame pointer.
30462
30463 2014-03-26  Marek Polacek  <polacek@redhat.com>
30464
30465         PR c/37428
30466         * doc/extend.texi (C Extensions): Mention variable-length arrays in
30467         a structure/union.
30468
30469 2014-03-26  Marek Polacek  <polacek@redhat.com>
30470
30471         PR c/39525
30472         * doc/extend.texi (Designated Inits): Describe what happens to omitted
30473         field members.
30474
30475 2014-03-26  Marek Polacek  <polacek@redhat.com>
30476
30477         PR other/59545
30478         * ira-color.c (update_conflict_hard_regno_costs): Perform the
30479         multiplication in unsigned type.
30480
30481 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30482
30483         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
30484
30485 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
30486
30487         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
30488
30489 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30490
30491         PR ipa/60315
30492         * cif-code.def (UNREACHABLE) New code.
30493         * ipa-inline.c (inline_small_functions): Skip edges to
30494         __builtlin_unreachable.
30495         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
30496         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
30497         predicate to __bulitin_unreachable.
30498         (set_cond_stmt_execution_predicate): Fix issue when
30499         invert_tree_comparison returns ERROR_MARK.
30500         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
30501         propagate to inline clones.
30502         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
30503         to unreachable.
30504         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
30505         * cgraphclones.c (cgraph_clone_node): If call destination is already
30506         ureachable, do not redirect it back.
30507         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
30508         unreachable.
30509
30510 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
30511
30512         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
30513         Do not modify inline clones.
30514
30515 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30516
30517         * config/i386/i386.md (general_sext_operand): New mode attr.
30518         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
30519         don't generate (sign_extend (const_int)).
30520         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
30521         operands[2].  Use We constraint instead of <i> and
30522         <general_sext_operand> predicate instead of <general_operand>.
30523         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
30524         * config/i386/constraints.md (We): New constraint.
30525         * config/i386/predicates.md (x86_64_sext_operand,
30526         sext_operand): New predicates.
30527
30528 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30529
30530         PR ipa/60600
30531         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
30532         inconsistent devirtualizations to __builtin_unreachable.
30533
30534 2014-03-25  Marek Polacek  <polacek@redhat.com>
30535
30536         PR c/35449
30537         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
30538
30539 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
30540
30541         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
30542         order of elements for big-endian.
30543
30544 2014-03-25  Richard Biener  <rguenther@suse.de>
30545
30546         PR middle-end/60635
30547         * gimplify-me.c (gimple_regimplify_operands): Update the
30548         re-gimplifed stmt.
30549
30550 2014-03-25  Martin Jambor  <mjambor@suse.cz>
30551
30552         PR ipa/59176
30553         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
30554         (lto_output_varpool_node): Likewise.
30555         (input_overwrite_node): Likewise.
30556         (input_varpool_node): Likewise.
30557
30558 2014-03-25  Richard Biener  <rguenther@suse.de>
30559
30560         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
30561         (run_gcc): Likewise.
30562
30563 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
30564
30565         * combine.c (simplify_compare_const): Add MODE argument.
30566         Handle mode_width 0 as very large mode_width.
30567         (try_combine, simplify_comparison): Adjust callers.
30568
30569         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
30570         type to avoid signed integer overflow.
30571         * explow.c (plus_constant): Likewise.
30572
30573 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30574
30575         * doc/generic.texi: Correct typos.
30576
30577 2014-03-24  Tobias Burnus  <burnus@net-b.de>
30578
30579         * doc/invoke.texi (-flto): Expand section about
30580         using static libraries with LTO.
30581
30582 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30583
30584         PR rtl-optimization/60501
30585         * optabs.def (addptr3_optab): New optab.
30586         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
30587         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
30588         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
30589
30590         * lra.c (emit_add3_insn): Use the addptr pattern if available.
30591
30592         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
30593
30594 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
30595
30596         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
30597         _mm512_set1_pd.
30598
30599         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
30600         (_mm256_undefined_ps): Define.
30601         (_mm256_undefined_pd): Define.
30602         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
30603         (_mm_undefined_pd): Define.
30604         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
30605         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
30606         (_mm512_undefined_ps): Define.
30607         (_mm512_undefined_pd): Define.
30608         Use _mm*_undefined_*.
30609         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
30610
30611 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
30612
30613         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
30614         (lshr_simd): DI mode added.
30615         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
30616         (aarch64_ushr_simddi): Likewise.
30617         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
30618         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
30619         (vshrd_n_u64): Likewise.
30620
30621 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30622
30623         * Makefile.in (s-macro_list): Depend on cc1.
30624
30625 2014-03-23  Teresa Johnson  <tejohnson@google.com>
30626
30627         * ipa-utils.c (ipa_print_order): Use specified dump file.
30628
30629 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30630
30631         PR rtl-optimization/60601
30632         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
30633
30634         * gcc.c (eval_spec_function): Initialize save_growing_value.
30635
30636 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
30637
30638         PR sanitizer/60613
30639         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
30640         code == MINUS_EXPR, never swap op0 with op1.
30641
30642         * toplev.c (init_local_tick): Avoid signed integer multiplication
30643         overflow.
30644         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
30645         shift by first operand's bitsize.
30646
30647 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
30648
30649         PR target/60610
30650         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
30651         redefine to 1 or 0.
30652         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
30653         TARGET_ISA_64BIT_P(x).
30654
30655 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30656
30657         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
30658         pattern for vector nor instead of subtract from splat(-1).
30659         (altivec_expand_vec_perm_const_le): Likewise.
30660
30661 2014-03-21  Richard Henderson  <rth@twiddle.net>
30662
30663         PR target/60598
30664         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
30665         related insns after epilogue_completed.
30666
30667 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30668
30669         PR ipa/59176
30670         * cgraph.h (symtab_node): New flag body_removed.
30671         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
30672         when removing bodies.
30673         * symtab.c (dump_symtab_base): Dump body_removed flag.
30674         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
30675         had their bodies removed.
30676
30677 2014-03-21  Martin Jambor  <mjambor@suse.cz>
30678
30679         PR ipa/60419
30680         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
30681         in the border.
30682
30683 2014-03-21  Richard Biener  <rguenther@suse.de>
30684
30685         PR tree-optimization/60577
30686         * tree-core.h (struct tree_base): Document nothrow_flag use
30687         in DECL_NONALIASED.
30688         * tree.h (DECL_NONALIASED): New.
30689         (may_be_aliased): Adjust.
30690         * coverage.c (build_var): Set DECL_NONALIASED.
30691
30692 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30693
30694         * expr.c (expand_expr_real_1): Remove outdated comment.
30695
30696 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
30697
30698         PR middle-end/60597
30699         * ira.c (adjust_cleared_regs): Call copy_rtx on
30700         *reg_equiv[REGNO (loc)].src_p before passing it to
30701         simplify_replace_fn_rtx.
30702
30703         PR target/60568
30704         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
30705         into CONST, put pic register as first operand of PLUS.  Use
30706         gen_const_mem for both 32-bit and 64-bit PIC got loads.
30707
30708 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30709
30710         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
30711
30712 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30713
30714         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
30715         around for store forwarding issue in the FPU on the UT699.
30716         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
30717         loads and operations if -mfix-ut699 is specified.
30718         (divtf3_hq): Tweak attribute.
30719         (sqrttf2_hq): Likewise.
30720
30721 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
30722
30723         * calls.c (store_one_arg): Remove incorrect const qualification on the
30724         type of the temporary.
30725         * cfgexpand.c (expand_return): Likewise.
30726         * expr.c (expand_constructor): Likewise.
30727         (expand_expr_real_1): Likewise.
30728
30729 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
30730
30731         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
30732         of parts.
30733
30734 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
30735
30736         PR target/60039
30737         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
30738
30739 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
30740
30741         * config/arm/aarch-common-protos.h
30742         (alu_cost_table): Fix spelling of "extend".
30743         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
30744
30745 2014-03-19  Richard Biener  <rguenther@suse.de>
30746
30747         PR middle-end/60553
30748         * tree-core.h (tree_type_common): Re-order pointer members
30749         to reduce recursion depth during GC walks.
30750
30751 2014-03-19  Marek Polacek  <polacek@redhat.com>
30752
30753         PR sanitizer/60569
30754         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
30755         before accessing it.
30756
30757 2014-03-19  Richard Biener  <rguenther@suse.de>
30758
30759         PR lto/59543
30760         * lto-streamer-in.c (input_function): In WPA stage do not drop
30761         debug stmts.
30762
30763 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
30764
30765         PR tree-optimization/60559
30766         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
30767         with build_zero_cst assignment.
30768
30769 2014-03-18  Kai Tietz  <ktietz@redhat.com>
30770
30771         PR rtl-optimization/56356
30772         * sdbout.c (sdbout_parms): Verify that parms'
30773         incoming argument is valid.
30774         (sdbout_reg_parms): Likewise.
30775
30776 2014-03-18  Richard Henderson  <rth@redhat.com>
30777
30778         PR target/60562
30779         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
30780         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
30781         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
30782
30783 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
30784
30785         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
30786         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
30787         Italicize plugin event names in description.  Explain that
30788         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
30789         Remind that no GCC functions should be called after PLUGIN_FINISH.
30790         Explain what pragmas with expansion are.
30791
30792 2014-03-18  Martin Liska  <mliska@suse.cz>
30793
30794         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
30795         gimple call statement is update.
30796         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
30797         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
30798
30799 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30800
30801         PR sanitizer/60557
30802         * ubsan.c (ubsan_instrument_unreachable): Call
30803         initialize_sanitizer_builtins.
30804         (ubsan_pass): Likewise.
30805
30806         PR sanitizer/60535
30807         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
30808         varpool_finalize_decl instead of rest_of_decl_compilation.
30809
30810 2014-03-18  Richard Biener  <rguenther@suse.de>
30811
30812         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
30813         by using bitmap_and_compl instead of bitmap_and_compl_into.
30814         (df_rd_transfer_function): Likewise.
30815
30816 2014-03-18  Richard Biener  <rguenther@suse.de>
30817
30818         * doc/lto.texi (fresolution): Fix typo.
30819
30820 2014-03-18  Richard Biener  <rguenther@suse.de>
30821
30822         * doc/invoke.texi (flto): Update for changes in 4.9.
30823
30824 2014-03-18  Richard Biener  <rguenther@suse.de>
30825
30826         * doc/loop.texi: Remove section on the removed lambda framework.
30827         Update loop docs with recent changes in preserving loop structure.
30828
30829 2014-03-18  Richard Biener  <rguenther@suse.de>
30830
30831         * doc/lto.texi (-fresolution): Document.
30832
30833 2014-03-18  Richard Biener  <rguenther@suse.de>
30834
30835         * doc/contrib.texi: Adjust my name.
30836
30837 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
30838
30839         PR ipa/58721
30840         * internal-fn.c: Include diagnostic-core.h.
30841         (expand_BUILTIN_EXPECT): New function.
30842         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
30843         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
30844         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
30845         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
30846         IFN_BUILTIN_EXPECT.
30847         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
30848         Revert 3 argument __builtin_expect code.
30849         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
30850         * gimple-fold.c (gimple_fold_call): Likewise.
30851         * tree.h (fold_builtin_expect): New prototype.
30852         * builtins.c (build_builtin_expect_predicate): Add predictor
30853         argument, if non-NULL, create 3 argument __builtin_expect.
30854         (fold_builtin_expect): No longer static.  Add ARG2 argument,
30855         pass it through to build_builtin_expect_predicate.
30856         (fold_builtin_2): Adjust caller.
30857         (fold_builtin_3): Handle BUILT_IN_EXPECT.
30858         * internal-fn.def (BUILTIN_EXPECT): New.
30859
30860 2014-03-18  Tobias Burnus  <burnus@net-b.de>
30861
30862         PR ipa/58721
30863         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
30864         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
30865         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
30866
30867 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
30868
30869         PR ipa/58721
30870         * predict.c (combine_predictions_for_bb): Fix up formatting.
30871         (expr_expected_value_1, expr_expected_value): Add predictor argument,
30872         fill what it points to if non-NULL.
30873         (tree_predict_by_opcode): Adjust caller, use the predictor.
30874         * predict.def (PRED_COMPARE_AND_SWAP): Add.
30875
30876 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
30877
30878         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
30879         proper constant for the store mode.
30880
30881 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
30882
30883         * symtab.c (change_decl_assembler_name): Fix transparent alias
30884         chain construction.
30885
30886 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
30887
30888         * config/aarch64/aarch64.c: Correct the comments about the
30889         aarch64 stack layout.
30890
30891 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
30892
30893         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
30894         check for GF_OMP_FOR_KIND_FOR.
30895
30896 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
30897
30898         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
30899         ymm and zmm register names.
30900
30901 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
30902
30903         PR target/60516
30904         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
30905         note creation for the 2010-08-31 changes.
30906
30907 2014-03-17  Marek Polacek  <polacek@redhat.com>
30908
30909         PR middle-end/60534
30910         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
30911         as -fno-tree-loop-vectorize.
30912         (expand_omp_simd): Likewise.
30913
30914 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
30915
30916         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
30917         (eligible_for_call_delay): New prototype.
30918         * config/sparc/sparc.c (tls_call_delay): Rename into...
30919         (eligible_for_call_delay): ...this.  Return false if the instruction
30920         cannot be put in the delay slot of a branch.
30921         (eligible_for_restore_insn): Simplify.
30922         (eligible_for_return_delay): Return false if the instruction cannot be
30923         put in the delay slot of a branch and simplify.
30924         (eligible_for_sibcall_delay): Return false if the instruction cannot be
30925         put in the delay slot of a branch.
30926         * config/sparc/sparc.md (fix_ut699): New attribute.
30927         (tls_call_delay): Delete.
30928         (in_call_delay): Reimplement.
30929         (eligible_for_sibcall_delay): Rename into...
30930         (in_sibcall_delay): ...this.
30931         (eligible_for_return_delay): Rename into...
30932         (in_return_delay): ...this.
30933         (in_branch_delay): Reimplement.
30934         (in_uncond_branch_delay): Delete.
30935         (in_annul_branch_delay): Delete.
30936
30937 2014-03-14  Richard Henderson  <rth@redhat.com>
30938
30939         PR target/60525
30940         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
30941         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
30942         (*floathi<X87MODEF>2_i387_with_temp): Remove.
30943         (floathi splitters): Remove.
30944         (float<SWI48x>xf2): New pattern.
30945         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
30946         code that tried to handle DImode for 32-bit, but which was excluded
30947         by the pattern's condition.  Drop allocation of stack temporary.
30948         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
30949         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
30950         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
30951         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
30952         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
30953         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
30954         (*float<SWI48><MODEF>2_sse_interunit): Remove.
30955         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
30956         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
30957         (*float<SWI48x><X87MODEF>2_i387): Remove.
30958         (all float _with_temp splitters): Remove.
30959         (*float<SWI48x><MODEF>2_i387): New pattern.
30960         (*float<SWI48><MODEF>2_sse): New pattern.
30961         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
30962         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
30963
30964 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
30965             Marek Polacek  <polacek@redhat.com>
30966
30967         PR middle-end/60484
30968         * common.opt (dump_base_name_prefixed): New Variable.
30969         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
30970         if x_dump_base_name_prefixed is already set, set it at the end.
30971
30972 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
30973
30974         PR rtl-optimization/60508
30975         * lra-constraints.c (get_reload_reg): Add new parameter
30976         in_subreg_p.
30977         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
30978         Pass the new parameter values.
30979
30980 2014-03-14  Richard Biener  <rguenther@suse.de>
30981
30982         * common.opt: Revert unintented changes from r205065.
30983         * opts.c: Likewise.
30984
30985 2014-03-14  Richard Biener  <rguenther@suse.de>
30986
30987         PR middle-end/60518
30988         * cfghooks.c (split_block): Properly adjust all loops the
30989         block was a latch of.
30990
30991 2014-03-14  Martin Jambor  <mjambor@suse.cz>
30992
30993         PR lto/60461
30994         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
30995         and simplify it.
30996
30997 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
30998
30999         PR target/59396
31000         * config/avr/avr.c (avr_set_current_function): Pass function name
31001         through default_strip_name_encoding before sanity checking instead
31002         of skipping the first char of the assembler name.
31003
31004 2014-03-13  Richard Henderson  <rth@redhat.com>
31005
31006         PR debug/60438
31007         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31008         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31009         * config/i386/i386-protos.h: Likewise.
31010         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31011         in the expander instead of a splitter.
31012         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31013         any possibility of requiring a memory.
31014         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31015         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31016         (fp branch splitters): Update for ix86_split_fp_branch.
31017         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31018         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31019         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31020         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31021         (*fop_<MODEF>_3_i387): Likewise.
31022         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31023         (splitters for the fop_* register patterns): Remove.
31024         (fscalexf4_i387): Rename from *fscalexf4_i387.
31025         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31026
31027 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31028
31029         PR tree-optimization/59779
31030         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31031         type for bitsize and maxsize instead of HOST_WIDE_INT.
31032
31033 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31034
31035         PR rtl-optimization/57320
31036         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31037         the CFG after thread_prologue_and_epilogue_insns.
31038
31039 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31040
31041         PR rtl-optimization/57189
31042         * lra-constraints.c (process_alt_operands): Disfavor spilling
31043         vector pseudos.
31044
31045 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31046
31047         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31048
31049 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31050
31051         PR tree-optimization/59025
31052         PR middle-end/60418
31053         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31054         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31055
31056 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31057
31058         PR target/60486
31059         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31060         calls of avr_out_plus_1.
31061
31062 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31063
31064         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31065         BB's single pred and update the father loop's latch info later.
31066
31067 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31068
31069         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31070         (VEC_M): Likewise.
31071         (VEC_N): Likewise.
31072         (VEC_R): Likewise.
31073         (VEC_base): Likewise.
31074         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31075         registers, we need to swap double words in little endian mode.
31076
31077         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31078         to be a container mode for 128-bit integer operations added in ISA
31079         2.07.  Unlike TImode and PTImode, the preferred register set is
31080         the Altivec/VMX registers for the 128-bit operations.
31081
31082         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31083         declarations.
31084         (rs6000_split_128bit_ok_p): Likewise.
31085
31086         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31087         macros for creating ISA 2.07 normal and overloaded builtin
31088         functions with 3 arguments.
31089         (BU_P8V_OVERLOAD_3): Likewise.
31090         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31091         for use as overloaded functions.
31092         (VPERM_1TI_UNS): Likewise.
31093         (VSEL_1TI): Likewise.
31094         (VSEL_1TI_UNS): Likewise.
31095         (ST_INTERNAL_1ti): Likewise.
31096         (LD_INTERNAL_1ti): Likewise.
31097         (XXSEL_1TI): Likewise.
31098         (XXSEL_1TI_UNS): Likewise.
31099         (VPERM_1TI): Likewise.
31100         (VPERM_1TI_UNS): Likewise.
31101         (XXPERMDI_1TI): Likewise.
31102         (SET_1TI): Likewise.
31103         (LXVD2X_V1TI): Likewise.
31104         (STXVD2X_V1TI): Likewise.
31105         (VEC_INIT_V1TI): Likewise.
31106         (VEC_SET_V1TI): Likewise.
31107         (VEC_EXT_V1TI): Likewise.
31108         (EQV_V1TI): Likewise.
31109         (NAND_V1TI): Likewise.
31110         (ORC_V1TI): Likewise.
31111         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31112         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31113         overloaded builtin.
31114         (VADDUQM): Likewise.
31115         (VSUBCUQ): Likewise.
31116         (VADDEUQM): Likewise.
31117         (VADDECUQ): Likewise.
31118         (VSUBEUQM): Likewise.
31119         (VSUBECUQ): Likewise.
31120
31121         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31122         __int128_t and __uint128_t types.
31123         (__uint128_type): Likewise.
31124         (altivec_categorize_keyword): Add support for vector __int128_t,
31125         vector __uint128_t, vector __int128, and vector unsigned __int128
31126         as a container type for TImode operations that need to be done in
31127         VSX/Altivec registers.
31128         (rs6000_macro_to_expand): Likewise.
31129         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31130         to support 128-bit integer instructions vaddcuq, vadduqm,
31131         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31132         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31133
31134         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31135         for V1TImode, and set up preferences to use VSX/Altivec registers.
31136         Setup VSX reload handlers.
31137         (rs6000_debug_reg_global): Likewise.
31138         (rs6000_init_hard_regno_mode_ok): Likewise.
31139         (rs6000_preferred_simd_mode): Likewise.
31140         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31141         (easy_altivec_constant): Likewise.
31142         (output_vec_const_move): Likewise.
31143         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31144         simple move.
31145         (rs6000_expand_vector_extract): Likewise.
31146         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31147         addressing.
31148         (rs6000_const_vec): Add support for V1TImode.
31149         (rs6000_emit_le_vsx_load): Swap double words when loading or
31150         storing TImode/V1TImode.
31151         (rs6000_emit_le_vsx_store): Likewise.
31152         (rs6000_emit_le_vsx_move): Likewise.
31153         (rs6000_emit_move): Add support for V1TImode.
31154         (altivec_expand_ld_builtin): Likewise.
31155         (altivec_expand_st_builtin): Likewise.
31156         (altivec_expand_vec_init_builtin): Likewise.
31157         (altivec_expand_builtin): Likewise.
31158         (rs6000_init_builtins): Add support for V1TImode type.  Add
31159         support for ISA 2.07 128-bit integer builtins.  Define type names
31160         for the VSX/Altivec vector types.
31161         (altivec_init_builtins): Add support for overloaded vector
31162         functions with V1TImode type.
31163         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31164         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31165         external function.
31166         (rs6000_split_128bit_ok_p): Likewise.
31167         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31168         __int128_t and vector __uint128_t.
31169
31170         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31171         and mode attributes.
31172         (VSX_M): Likewise.
31173         (VSX_M2): Likewise.
31174         (VSm): Likewise.
31175         (VSs): Likewise.
31176         (VSr): Likewise.
31177         (VSv): Likewise.
31178         (VS_scalar): Likewise.
31179         (VS_double): Likewise.
31180         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31181
31182         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31183         we support the ISA 2.07 128-bit integer arithmetic instructions.
31184         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31185         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31186         and TImode types for use with the builtin functions.
31187         (V1TI_type_node): Likewise.
31188         (unsigned_V1TI_type_node): Likewise.
31189         (intTI_type_internal_node): Likewise.
31190         (uintTI_type_internal_node): Likewise.
31191
31192         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31193         128-bit builtin functions.
31194         (UNSPEC_VADDEUQM): Likewise.
31195         (UNSPEC_VADDECUQ): Likewise.
31196         (UNSPEC_VSUBCUQ): Likewise.
31197         (UNSPEC_VSUBEUQM): Likewise.
31198         (UNSPEC_VSUBECUQ): Likewise.
31199         (VM): Add V1TImode to vector mode iterators.
31200         (VM2): Likewise.
31201         (VI_unit): Likewise.
31202         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31203         (altivec_vaddcuq): Likewise.
31204         (altivec_vsubuqm): Likewise.
31205         (altivec_vsubcuq): Likewise.
31206         (altivec_vaddeuqm): Likewise.
31207         (altivec_vaddecuq): Likewise.
31208         (altivec_vsubeuqm): Likewise.
31209         (altivec_vsubecuq): Likewise.
31210
31211         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31212         mode iterators.
31213         (BOOL_128): Likewise.
31214         (BOOL_REGS_OUTPUT): Likewise.
31215         (BOOL_REGS_OP1): Likewise.
31216         (BOOL_REGS_OP2): Likewise.
31217         (BOOL_REGS_UNARY): Likewise.
31218         (BOOL_REGS_AND_CR0): Likewise.
31219
31220         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31221         128-bit integer builtin support.
31222         (vec_vadduqm): Likewise.
31223         (vec_vaddecuq): Likewise.
31224         (vec_vaddeuqm): Likewise.
31225         (vec_vsubecuq): Likewise.
31226         (vec_vsubeuqm): Likewise.
31227         (vec_vsubcuq): Likewise.
31228         (vec_vsubuqm): Likewise.
31229
31230         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31231         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31232         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31233         128-bit integer add/subtract to ISA 2.07.
31234
31235 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31236
31237         * config/arc/arc.c (arc_predicate_delay_insns):
31238         Fix third argument passed to conditionalize_nonjump.
31239
31240 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31241
31242         * config/aarch64/aarch64-builtins.c
31243         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31244         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31245         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31246         instead of __builtin_lfloor.
31247         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31248
31249 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31250
31251         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31252         (tree_ssa_ifcombine_bb_1): New function.
31253         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31254         is an empty forwarder block to then_bb or vice versa and then_bb
31255         and else_bb are effectively swapped.
31256
31257 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31258
31259         PR target/60264
31260         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31261         REG_CFA_DEF_CFA note.
31262         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31263         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31264
31265 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31266
31267         PR tree-optimization/60454
31268         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31269
31270 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31271
31272         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31273         Do not define target_cpu_default2 to generic.
31274         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31275         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31276         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31277
31278 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31279             Marc Glisse  <marc.glisse@inria.fr>
31280
31281         PR tree-optimization/60502
31282         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31283         instead of build_low_bits_mask.
31284
31285 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31286
31287         PR middle-end/60482
31288         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31289         if there are multiple uses, but op doesn't live on E edge.
31290         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31291         clobber stmts before __builtin_unreachable.
31292
31293 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31294
31295         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31296         hard_frame_pointer_rtx.
31297         * cse.c (cse_insn): Remove volatile check.
31298         * cselib.c (cselib_process_insn): Likewise.
31299         * dse.c (scan_insn): Likewise.
31300
31301 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31302
31303         * config/arc/arc.c (conditionalize_nonjump): New function,
31304         broken out of ...
31305         (arc_ifcvt): ... this.
31306         (arc_predicate_delay_insns): Use it.
31307
31308 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31309
31310         * config/arc/predicates.md (extend_operand): During/after reload,
31311         allow const_int_operand.
31312         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31313         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31314         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31315         to "i".
31316         (umulsi3_highpart_i): Likewise.
31317
31318 2014-03-11  Richard Biener  <rguenther@suse.de>
31319
31320         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31321         Add asserts to guard possible wrong-code bugs.
31322
31323 2014-03-11  Richard Biener  <rguenther@suse.de>
31324
31325         PR tree-optimization/60429
31326         PR tree-optimization/60485
31327         * tree-ssa-structalias.c (set_union_with_increment): Properly
31328         take into account all fields that overlap the shifted vars.
31329         (do_sd_constraint): Likewise.
31330         (do_ds_constraint): Likewise.
31331         (get_constraint_for_ptr_offset): Likewise.
31332
31333 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31334
31335         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31336         (nios2_compute_frame_layout):
31337         Add calculation of cfun->machine->fp_save_offset.
31338         (nios2_expand_prologue): Correct setting of frame pointer register
31339         in prologue.
31340         (nios2_expand_epilogue): Update recovery of stack pointer from
31341         frame pointer accordingly.
31342         (nios2_initial_elimination_offset): Update calculation of offset
31343         for eliminating to HARD_FRAME_POINTER_REGNUM.
31344
31345 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
31346
31347         PR ipa/60457
31348         * ipa.c (symtab_remove_unreachable_nodes): Don't call
31349         cgraph_get_create_node on VAR_DECLs.
31350
31351 2014-03-10  Richard Biener  <rguenther@suse.de>
31352
31353         PR middle-end/60474
31354         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31355
31356 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
31357
31358         * config/vms/vms.opt (vms_float_format): New variable.
31359
31360 2014-03-08  Tobias Burnus  <burnus@net-b.de>
31361
31362         * doc/invoke.texi (-fcilkplus): Update implementation status.
31363
31364 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
31365             Richard Biener  <rguenther@suse.de>
31366
31367         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31368         consistently accross all TUs.
31369         (run_gcc): Enable -fshort-double automatically at link at link-time
31370         and disallow override.
31371
31372 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
31373
31374         PR target/58271
31375         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31376         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31377         if they can't be used.
31378
31379 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31380
31381         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31382         for Solaris 11/x86 ld.
31383         * configure: Regenerate.
31384
31385 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31386
31387         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31388         (LIB_TLS_SPEC): Save as ld_tls_libs.
31389         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31390         (HAVE_AS_IX86_TLSLDM): New test.
31391         * configure, config.in: Regenerate.
31392         * config/i386/i386.c (legitimize_tls_address): Fall back to
31393         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
31394         cannot support TLS_MODEL_LOCAL_DYNAMIC.
31395         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
31396         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
31397
31398 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
31399
31400         * common.opt (fira-loop-pressure): Mark as optimization.
31401
31402 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
31403
31404         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
31405         an OpenMP mappable type.
31406
31407 2014-03-06  Matthias Klose  <doko@ubuntu.com>
31408
31409         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
31410         MULTILIB_OSDIRNAMES is not defined.
31411
31412 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
31413             Meador Inge  <meadori@codesourcery.com>
31414
31415         PR target/58595
31416         * config/arm/arm.c (arm_tls_symbol_p): Remove.
31417         (arm_legitimize_address): Call legitimize_tls_address for any
31418         arm_tls_referenced_p expression, handle constant addend.  Call it
31419         before testing for !TARGET_ARM.
31420         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
31421
31422 2014-03-06  Richard Biener  <rguenther@suse.de>
31423
31424         PR middle-end/60445
31425         PR lto/60424
31426         PR lto/60427
31427         Revert
31428         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31429
31430         * tree-streamer.c (record_common_node): Assert we don't record
31431         nodes with type double.
31432         (preload_common_node): Skip type double, complex double and double
31433         pointer since it is now frontend dependent due to fshort-double option.
31434
31435 2014-03-06  Richard Biener  <rguenther@suse.de>
31436
31437         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
31438         or -fno-lto is specified and the linker has full plugin support.
31439         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
31440         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
31441         * lto-wrapper.c (merge_and_complain): Merge compile-time
31442         optimization levels.
31443         (run_gcc): And pass it through to the link options.
31444
31445 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
31446
31447         PR debug/60381
31448         Revert:
31449         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31450         PR debug/59992
31451         * cselib.c (remove_useless_values): Skip to avoid quadratic
31452         behavior if the condition moved from...
31453         (cselib_process_insn): ... here holds.
31454
31455 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31456
31457         PR plugins/59335
31458         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
31459         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
31460
31461         PR plugins/59335
31462         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31463         (TM_H): Add x86-tune.def.
31464
31465 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31466
31467         * config/aarch64/aarch64.c (generic_tunings):
31468         Use cortexa57_extra_costs.
31469
31470 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31471
31472         PR lto/60404
31473         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
31474         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
31475         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
31476         cost for in_lto_p.
31477
31478 2014-03-04  Heiher  <r@hev.cc>
31479
31480         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
31481         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
31482
31483 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
31484
31485         * config/i386/predicates.md (const2356_operand): Change to ...
31486         (const2367_operand): ... this.
31487         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
31488         const2367_operand.
31489         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31490         (*avx512pf_scatterpf<mode>sf): Ditto.
31491         (avx512pf_scatterpf<mode>df): Ditto.
31492         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31493         (*avx512pf_scatterpf<mode>df): Ditto.
31494         * config/i386/i386.c (ix86_expand_builtin): Update
31495         incorrect hint operand error message.
31496
31497 2014-03-04  Richard Biener  <rguenther@suse.de>
31498
31499         * lto-section-in.c (lto_get_section_data): Fix const cast.
31500
31501 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31502
31503         * tree-streamer.c (record_common_node): Assert we don't record
31504         nodes with type double.
31505         (preload_common_node): Skip type double, complex double and double
31506         pointer since it is now frontend dependent due to fshort-double option.
31507
31508 2014-03-04  Richard Biener  <rguenther@suse.de>
31509
31510         PR lto/60405
31511         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
31512         (lto_input_toplevel_asms): Likewise.
31513         * lto-section-in.c (lto_get_section_data): Instead do it here
31514         for every section.
31515
31516 2014-03-04  Richard Biener  <rguenther@suse.de>
31517
31518         PR tree-optimization/60382
31519         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
31520         dead PHIs a reduction.
31521
31522 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
31523
31524         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
31525         hint value.
31526         (_mm_prefetch): Move out of GCC target("sse") pragma.
31527         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
31528         GCC target("prfchw") pragma.
31529         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
31530         for locality <= 2.
31531         * config/i386/i386.c (ix86_option_override_internal): Enable
31532         -mprfchw with -mprefetchwt1.
31533
31534 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31535
31536         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
31537         Mark as varying.
31538
31539 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
31540
31541         * opts.h (CL_PCH_IGNORE): Define.
31542         * targhooks.c (option_affects_pch_p):
31543         Return false for options that have CL_PCH_IGNORE set.
31544         * opt-functions.awk: Process PchIgnore.
31545         * doc/options.texi: Document PchIgnore.
31546
31547         * config/arc/arc.opt (misize): Add PchIgnore property.
31548
31549 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31550
31551         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
31552         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
31553         constraint on constants to permit them being loaded into
31554         GENERAL_REGS or BASE_REGS.
31555
31556 2014-03-03  Nick Clifton  <nickc@redhat.com>
31557
31558         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
31559         anti-cacnonical alternatives.
31560         (negandhi3_real): New pattern.
31561         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
31562
31563 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
31564
31565         * config/avr/avr-mcus.def: Remove atxmega16x1.
31566         * config/avr/avr-tables.opt: Regenerate.
31567         * config/avr/t-multilib: Regenerate.
31568         * doc/avr-mmcu.texi: Regenerate.
31569
31570 2014-03-03  Tobias Grosser  <tobias@grosser.es>
31571             Mircea Namolaru  <mircea.namolaru@inria.fr>
31572
31573         PR tree-optimization/58028
31574         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
31575         scalar dimensions.
31576
31577 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31578
31579         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
31580         not handled by recognizers.
31581
31582 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
31583
31584         PR middle-end/60175
31585         * function.c (expand_function_end): Don't emit
31586         clobber_return_register sequence if clobber_after is a BARRIER.
31587         * cfgexpand.c (construct_exit_block): Append instructions before
31588         return_label to prev_bb.
31589
31590 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31591
31592         * config/rs6000/constraints.md: Document reserved use of "wc".
31593
31594 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31595
31596         PR ipa/60150
31597         * ipa.c (function_and_variable_visibility): When dissolving comdat
31598         group, also set all symbols to local.
31599
31600 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
31601
31602         PR ipa/60306
31603
31604         Revert:
31605         2013-12-14  Jan Hubicka  <jh@suse.cz>
31606         PR middle-end/58477
31607         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
31608
31609 2014-03-02  Jon Beniston  <jon@beniston.com>
31610
31611         PR bootstrap/48230
31612         PR bootstrap/50927
31613         PR bootstrap/52466
31614         PR target/46898
31615         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
31616         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
31617         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
31618         (simple_return, *simple_return): New patterns
31619         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
31620         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
31621
31622 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
31623
31624         * dwarf2out.c (gen_subprogram_die): Tidy.
31625
31626 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
31627
31628         PR target/60071
31629         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
31630         (*mov_t_msb_neg_negc): ... this new insn.
31631
31632 2014-02-28  Jason Merrill  <jason@redhat.com>
31633
31634         PR c++/58678
31635         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
31636         function.
31637
31638 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
31639
31640         PR c++/60314
31641         * dwarf2out.c (decltype_auto_die): New static.
31642         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
31643         (gen_type_die_with_usage): Handle 'decltype(auto)'.
31644         (is_cxx_auto): Likewise.
31645
31646 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
31647
31648         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
31649         we are not using general regs only.
31650
31651 2014-02-28  Richard Biener  <rguenther@suse.de>
31652
31653         PR target/60280
31654         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
31655         previous fix and only allow to remove trivial pre-headers
31656         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
31657         (remove_forwarder_block): Properly update the latch of a loop.
31658
31659 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31660
31661         PR debug/59992
31662         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
31663         (cselib_preserved_hash_table): New.
31664         (preserve_constants_and_equivs): Move preserved vals to it.
31665         (cselib_find_slot): Look it up first.
31666         (cselib_init): Initialize it.
31667         (cselib_finish): Release it.
31668         (dump_cselib_table): Dump it.
31669
31670 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31671
31672         PR debug/59992
31673         * cselib.c (remove_useless_values): Skip to avoid quadratic
31674         behavior if the condition moved from...
31675         (cselib_process_insn): ... here holds.
31676
31677 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31678
31679         PR debug/57232
31680         * var-tracking.c (vt_initialize): Apply the same condition to
31681         preserve the CFA base value.
31682
31683 2014-02-28  Joey Ye  <joey.ye@arm.com>
31684
31685         PR target/PR60169
31686         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
31687         if reload in progress or completed.
31688
31689 2014-02-28  Tobias Burnus  <burnus@net-b.de>
31690
31691         PR middle-end/60147
31692         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
31693         NAMELIST_DECL.
31694
31695 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
31696
31697         * doc/tm.texi.in (Condition Code Status): Update documention for
31698         relative locations of cc0-setter and cc0-user.
31699
31700 2014-02-27  Jeff Law  <law@redhat.com>
31701
31702         PR rtl-optimization/52714
31703         * combine.c (try_combine): When splitting an unrecognized PARALLEL
31704         into two independent simple sets, if I3 is a jump, ensure the
31705         pattern we place into I3 is a (set (pc) ...).
31706
31707 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
31708             Jeff Law  <law@redhat.com>
31709
31710         PR rtl-optimization/49847
31711         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
31712         are in different blocks.
31713         * doc/tm.texi (Condition Code Status): Update documention for
31714         relative locations of cc0-setter and cc0-user.
31715
31716 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
31717
31718         PR target/59222
31719         * lra.c (lra_emit_add): Check SUBREG too.
31720
31721 2014-02-27  Andreas Schwab  <schwab@suse.de>
31722
31723         * config/m68k/m68k.c (m68k_option_override): Disable
31724         -flive-range-shrinkage for classic m68k.
31725         (m68k_override_options_after_change): Likewise.
31726
31727 2014-02-27  Marek Polacek  <polacek@redhat.com>
31728
31729         PR middle-end/59223
31730         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
31731         -Wmaybe-uninitialized.
31732
31733 2014-02-27  Alan Modra  <amodra@gmail.com>
31734
31735         PR target/57936
31736         * reload1.c (emit_input_reload_insns): When reload_override_in,
31737         set old to rl->in_reg when rl->in_reg is a subreg.
31738
31739 2014-02-26  Richard Biener  <rguenther@suse.de>
31740
31741         PR bootstrap/60343
31742         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
31743
31744 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31745
31746         * common/config/i386/predicates.md (const1256_operand): Remove.
31747         (const2356_operand): New.
31748         (const_1_to_2_operand): Remove.
31749         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
31750         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
31751         (*avx512pf_gatherpf<mode>sf): Ditto.
31752         (avx512pf_gatherpf<mode>df): Ditto.
31753         (*avx512pf_gatherpf<mode>df_mask): Ditto.
31754         (*avx512pf_gatherpf<mode>df): Ditto.
31755         (avx512pf_scatterpf<mode>sf): Ditto.
31756         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
31757         (*avx512pf_scatterpf<mode>sf): Ditto.
31758         (avx512pf_scatterpf<mode>df): Ditto.
31759         (*avx512pf_scatterpf<mode>df_mask): Ditto.
31760         (*avx512pf_scatterpf<mode>df): Ditto.
31761         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
31762
31763 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
31764
31765         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
31766         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
31767         (_mm512_mask_testn_epi64_mask): Move to ...
31768         * config/i386/avx512cdintrin.h: Here.
31769         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
31770         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
31771         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
31772         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
31773         TARGET_AVX512F from TARGET_AVX512CD.
31774
31775 2014-02-26  Richard Biener  <rguenther@suse.de>
31776
31777         PR ipa/60327
31778         * ipa.c (walk_polymorphic_call_targets): Properly guard
31779         call to inline_update_overall_summary.
31780
31781 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
31782
31783         PR target/60280
31784         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
31785         and latches only if requested.  Fix latch if it is removed.
31786         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
31787         LOOPS_HAVE_PREHEADERS.
31788
31789 2014-02-25  Andrew Pinski  <apinski@cavium.com>
31790
31791         * builtins.c (expand_builtin_thread_pointer): Create a new target
31792         when the target is NULL.
31793
31794 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
31795
31796         PR rtl-optimization/60317
31797         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31798         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
31799         * lra-assigns.c: Include params.h.
31800         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
31801         other reload pseudos considerations.
31802
31803 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31804
31805         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
31806         to use canonical form for nor<mode>3.
31807
31808 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31809
31810         PR target/55426
31811         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
31812         conversions.
31813
31814 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
31815
31816         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
31817         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
31818         (ix86_handle_option): Handle OPT_mprefetchwt1.
31819         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
31820         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
31821         PREFETCHWT1 CPUID.
31822         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
31823         OPTION_MASK_ISA_PREFETCHWT1.
31824         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
31825         (PTA_PREFETCHWT1): New.
31826         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
31827         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
31828         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
31829         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
31830         (*prefetch_avx512pf_<mode>_: Change into ...
31831         (*prefetch_prefetchwt1_<mode>: This.
31832         * config/i386/i386.opt (mprefetchwt1): New.
31833         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
31834         (_mm_prefetch): Handle intent to write.
31835         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
31836
31837 2014-02-25  Richard Biener  <rguenther@suse.de>
31838
31839         PR middle-end/60291
31840         * emit-rtl.c (mem_attrs_htab): Remove.
31841         (mem_attrs_htab_hash): Likewise.
31842         (mem_attrs_htab_eq): Likewise.
31843         (set_mem_attrs): Always allocate new mem-attrs when something changed.
31844         (init_emit_once): Do not allocate mem_attrs_htab.
31845
31846 2014-02-25  Richard Biener  <rguenther@suse.de>
31847
31848         PR lto/60319
31849         * lto-opts.c (lto_write_options): Output non-explicit conservative
31850         -fwrapv, -fno-trapv and -fno-strict-overflow.
31851         * lto-wrapper.c (merge_and_complain): Handle merging those options.
31852         (run_gcc): And pass them through.
31853
31854 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31855
31856         * sel-sched.c (calculate_new_fences): New parameter ptime.
31857         Calculate it as a maximum over all fence cycles.
31858         (sel_sched_region_2): Adjust the call to calculate_new_fences.
31859         Print the final schedule timing when sched_verbose.
31860
31861 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
31862
31863         PR rtl-optimization/60292
31864         * sel-sched.c (fill_vec_av_set): Do not reset target availability
31865         bit fot the fence instruction.
31866
31867 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
31868
31869         * calls.h: Fix typo in comment.
31870
31871 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
31872
31873         * config/pa/pa.c (pa_output_move_double): Don't valididate when
31874         adjusting offsetable addresses.
31875
31876 2014-02-24  Guozhi Wei  <carrot@google.com>
31877
31878         * sparseset.h (sparseset_pop): Fix the wrong index.
31879
31880 2014-02-24  Walter Lee  <walt@tilera.com>
31881
31882         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
31883         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
31884         triplet.
31885         * common/config/tilegx/tilegx-common.c
31886         (TARGET_DEFAULT_TARGET_FLAGS): Define.
31887         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
31888         (LINK_SPEC): Ditto.
31889         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
31890         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
31891         (tilegx_gimplify_va_arg_expr): Handle big endian.
31892         (tilegx_expand_unaligned_load): Ditto.
31893         (tilegx_expand_unaligned_store): Ditto.
31894         (TARGET_RETURN_IN_MSB): New.
31895         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
31896         (TARGET_ENDIAN_DEFAULT): New.
31897         (TARGET_BIG_ENDIAN): Handle big endian.
31898         (BYTES_BIG_ENDIAN): Ditto.
31899         (WORDS_BIG_ENDIAN): Ditto.
31900         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
31901         (ENDIAN_SPEC): New.
31902         (EXTRA_SPECS): New.
31903         * config/tilegx/tilegx.md (extv): Handle big endian.
31904         (extzv): Ditto.
31905         (insn_st<n>): Ditto.
31906         (insn_st<n>_add<bitsuffix>): Ditto.
31907         (insn_stnt<n>): Ditto.
31908         (insn_stnt<n>_add<bitsuffix>):Ditto.
31909         (vec_interleave_highv8qi): Handle big endian.
31910         (vec_interleave_highv8qi_be): New.
31911         (vec_interleave_highv8qi_le): New.
31912         (insn_v1int_h): Handle big endian.
31913         (vec_interleave_lowv8qi): Handle big endian.
31914         (vec_interleave_lowv8qi_be): New.
31915         (vec_interleave_lowv8qi_le): New.
31916         (insn_v1int_l): Handle big endian.
31917         (vec_interleave_highv4hi): Handle big endian.
31918         (vec_interleave_highv4hi_be): New.
31919         (vec_interleave_highv4hi_le): New.
31920         (insn_v2int_h): Handle big endian.
31921         (vec_interleave_lowv4hi): Handle big endian.
31922         (vec_interleave_lowv4hi_be): New.
31923         (vec_interleave_lowv4hi_le): New.
31924         (insn_v2int_l): Handle big endian.
31925         (vec_interleave_highv2si): Handle big endian.
31926         (vec_interleave_highv2si_be): New.
31927         (vec_interleave_highv2si_le): New.
31928         (insn_v4int_h): Handle big endian.
31929         (vec_interleave_lowv2si): Handle big endian.
31930         (vec_interleave_lowv2si_be): New.
31931         (vec_interleave_lowv2si_le): New.
31932         (insn_v4int_l): Handle big endian.
31933         * config/tilegx/tilegx.opt (mbig-endian): New option.
31934         (mlittle-endian): New option.
31935         * doc/install.texi: Document tilegxbe-linux.
31936         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
31937
31938 2014-02-24  Martin Jambor  <mjambor@suse.cz>
31939
31940         PR ipa/60266
31941         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
31942         there are no parameter descriptors.
31943
31944 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
31945
31946         PR rtl-optimization/60268
31947         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
31948         initialization to ...
31949         (sched_rgn_init): ... here.
31950         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
31951
31952 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31953
31954         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
31955         names.
31956
31957 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
31958
31959         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
31960         definition.
31961
31962 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31963
31964         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
31965         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
31966
31967 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
31968
31969         * config/microblaze/predicates.md: Add cmp_op predicate.
31970         * config/microblaze/microblaze.md: Add branch_compare instruction
31971         which uses cmp_op predicate and emits cmp insn before branch.
31972         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
31973         to microblaze_expand_conditional_branch and consolidate logic.
31974         (microblaze_expand_conditional_branch): emit branch_compare
31975         insn instead of handling cmp op separate from branch insn.
31976
31977 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31978
31979         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
31980         to permit subregs.
31981
31982 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31983
31984         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
31985         define_insn with define_expand and new define_insn
31986         *altivec_lve<VI_char>x_internal.
31987         (altivec_stve<VI_char>x): Replace define_insn with define_expand
31988         and new define_insn *altivec_stve<VI_char>x_internal.
31989         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
31990         prototype.
31991         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
31992         lve*x built-ins.
31993         (altivec_expand_stvex_be): New function.
31994
31995 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
31996
31997         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
31998         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
31999         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32000         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32001
32002 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32003
32004         PR target/60298
32005         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32006         instead of emit_move_insn.
32007
32008 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32009
32010         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32011         vspltw with vsldoi.
32012         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32013         gen_altivec_vsumsws.
32014
32015 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32016
32017         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32018         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32019         (altivec_lvxl_<mode>): New define_expand incorporating
32020         -maltivec=be semantics where needed.
32021         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32022         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32023         semantics where needed.
32024         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32025         (altivec_stvx_<mode>): New define_expand incorporating
32026         -maltivec=be semantics where needed.
32027         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32028         VM2 iterator instead of V4SI.
32029         (altivec_stvxl_<mode>): New define_expand incorporating
32030         -maltivec=be semantics where needed.
32031         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32032         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32033         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32034         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32035         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32036         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32037         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32038         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32039         ALTIVEC_BUILTIN_STVXL.
32040         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32041         (altivec_expand_stvx_be): Likewise.
32042         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32043         (altivec_expand_lvx_be): Likewise.
32044         (altivec_expand_stvx_be): Likewise.
32045         (altivec_expand_builtin): Add cases for
32046         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32047         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32048         (altivec_init_builtins): Add definitions for
32049         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32050         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32051
32052 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32053
32054         * doc/invoke.texi (mvirt, mno-virt): Document.
32055         * config/mips/mips.opt (mvirt): New option.
32056         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32057
32058 2014-02-21  Richard Biener  <rguenther@suse.de>
32059
32060         PR tree-optimization/60276
32061         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32062         (STMT_VINFO_MIN_NEG_DIST): New macro.
32063         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32064         STMT_VINFO_MIN_NEG_DIST.
32065         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32066         made for negative dependence distances still hold.
32067
32068 2014-02-21  Richard Biener  <rguenther@suse.de>
32069
32070         PR middle-end/60291
32071         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32072         DECL_INITIAL for globals not in the current function context.
32073
32074 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32075
32076         PR tree-optimization/56490
32077         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32078         * tree-ssa-uninit.c: Include params.h.
32079         (compute_control_dep_chain): Add num_calls argument, return false
32080         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32081         num_calls to recursive call.
32082         (find_predicates): Change dep_chain into normal array,
32083         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32084         variable and adjust compute_control_dep_chain caller.
32085         (find_def_preds): Likewise.
32086
32087 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32088
32089         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32090         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32091
32092 2014-02-21  Nick Clifton  <nickc@redhat.com>
32093
32094         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32095         (pushhi1): Likewise.
32096         (popqi1): Add mode to pre_dec.
32097         (pophi1): Likewise.
32098
32099 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32100
32101         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32102         mode for mask of V8SFmode permutation.
32103
32104 2014-02-20  Richard Henderson  <rth@redhat.com>
32105
32106         PR c++/60272
32107         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32108         a new pseudo for OLDVAL.
32109
32110 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32111
32112         PR target/57896
32113         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32114         gen_reg_rtx if d->testing_p.
32115         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32116         if d->testing_p and we will certainly return true.
32117         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32118         if d->testing_p.
32119
32120 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32121
32122         * emit-rtl.c (gen_reg_rtx): Assert that
32123         crtl->emit.regno_pointer_align_length is non-zero.
32124
32125 2014-02-20  Richard Henderson  <rth@redhat.com>
32126
32127         PR c++/60272
32128         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32129         on failure the store back into EXPECT.
32130
32131 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32132             Sandra Loosemore  <sandra@codesourcery.com>
32133
32134         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32135         * config/nios2/nios2.c (nios2_function_profiler): Add
32136         -fPIC (flag_pic == 2) support.
32137         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32138         (nios2_large_offset_p): New function.
32139         (nios2_unspec_reloc_p): Move up position, update to use
32140         nios2_large_offset_p.
32141         (nios2_unspec_address): Remove function.
32142         (nios2_unspec_offset): New function.
32143         (nios2_large_got_address): New function.
32144         (nios2_got_address): Add large offset support.
32145         (nios2_legitimize_tls_address): Update usage of removed and new
32146         functions.
32147         (nios2_symbol_binds_local_p): New function.
32148         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32149         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32150         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32151         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32152         processing for (const (unspec ...)).
32153         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32154
32155 2014-02-20  Richard Biener  <rguenther@suse.de>
32156
32157         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32158         doing the substitution.
32159         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32160
32161 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32162
32163         PR ipa/55260
32164         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32165         info when checking whether lattices are bottom.
32166
32167 2014-02-20  Richard Biener  <rguenther@suse.de>
32168
32169         PR middle-end/60221
32170         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32171         regions at -O0.
32172
32173 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32174
32175         PR ipa/58555
32176         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32177         parameter specifying the scaling.
32178         (inline_call): Update.
32179         (want_inline_recursively): Guard division by zero.
32180         (recursive_inlining): Update.
32181         * ipa-inline.h (clone_inlined_nodes): Update.
32182
32183 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32184
32185         PR target/60204
32186         * config/i386/i386.c (classify_argument): Pass structures of size
32187         64 bytes or less in register.
32188
32189 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32190             Kirill Yukhin  <kirill.yukhin@intel.com>
32191
32192         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32193         (_mm_rcp28_round_ss): Ditto.
32194         (_mm_rsqrt28_round_sd): Ditto.
32195         (_mm_rsqrt28_round_ss): Ditto.
32196         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32197         (_mm_rcp14_round_ss): Ditto.
32198         (_mm_rsqrt14_round_sd): Ditto.
32199         (_mm_rsqrt14_round_ss): Ditto.
32200         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32201         the first input operand, get rid of match_dup.
32202         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32203         attribute to sse.
32204         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32205         Ditto.
32206         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32207         operand as the first input operand, set type attribute.
32208         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32209         Set type attribute.
32210         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32211         operand as the first input operand, set type attribute.
32212
32213 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32214
32215         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32216         bit of zero.
32217
32218 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32219
32220         PR target/60207
32221         * config/i386/i386.c (construct_container): Remove TFmode check
32222         for X86_64_INTEGER_CLASS.
32223
32224 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32225
32226         PR target/59794
32227         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32228         only when -Wpsabi is enabled.
32229
32230 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32231
32232         PR target/59799
32233         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32234         passing arrays in registers are the same as for structs, so remove the
32235         special case for them.
32236
32237 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32238
32239         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32240         destination type, extract only the valid bits if the source type is not
32241         integral and has a different mode.
32242
32243 2014-02-19  Richard Biener  <rguenther@suse.de>
32244
32245         PR ipa/60243
32246         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32247         for all calls.
32248
32249 2014-02-19  Richard Biener  <rguenther@suse.de>
32250
32251         PR ipa/60243
32252         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32253         (ipa_modify_call_arguments): Emit an argument load explicitely and
32254         preserve virtual SSA form there and for the replacement call.
32255         Do not update SSA form nor free dominance info.
32256
32257 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32258
32259         * ipa.c (function_and_variable_visibility): Also clear WEAK
32260         flag when disolving COMDAT_GROUP.
32261
32262 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32263
32264         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32265         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32266         not devirtualizing.
32267         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32268         do more sanity checks.
32269         (detect_type_change): Return true when giving up early.
32270         (compute_complex_assign_jump_func): Fix type parameter of
32271         ipa_set_ancestor_jf.
32272         (compute_complex_ancestor_jump_func): Likewise.
32273         (update_jump_functions_after_inlining): Fix updating of
32274         ancestor function.
32275         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32276
32277 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32278
32279         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32280         inline clones when edge disappears.
32281
32282 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32283
32284         PR target/60203
32285         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32286         Split 64-bit moves into 2 patterns.  Do not allow the use of
32287         direct move for TDmode in little endian, since the decimal value
32288         has little endian bytes within a word, but the 64-bit pieces are
32289         ordered in a big endian fashion, and normal subreg's of TDmode are
32290         not allowed.
32291         (mov<mode>_64bit_dm): Likewise.
32292         (movtd_64bit_nodm): Likewise.
32293
32294 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32295
32296         PR tree-optimization/60174
32297         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32298         statement of an SSA_NAME that occurs in an abnormal PHI node.
32299
32300 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32301
32302         PR sanitizer/60142
32303         * final.c (SEEN_BB): Remove.
32304         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32305         (final_scan_insn): Don't force_source_line on second
32306         NOTE_INSN_BASIC_BLOCK.
32307
32308 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32309
32310         PR target/60205
32311         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32312         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32313         (type_natural_mode): Warn ABI change when %zmm register is not
32314         available for AVX512F vector value passing.
32315
32316 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32317
32318         PR target/60193
32319         * config/i386/i386.c (ix86_expand_prologue): Use value in
32320         rax register as displacement when restoring %r10 or %rax.
32321         Fix wrong offset when restoring both registers.
32322
32323 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32324
32325         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32326         assertion with conditional return.
32327
32328 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32329             Uros Bizjak  <ubizjak@gmail.com>
32330
32331         PR driver/60233
32332         * config/i386/driver-i386.c (host_detect_local_cpu): If
32333         YMM state is not saved by the OS, also clear has_f16c.  Move
32334         CPUID 0x80000001 handling before YMM state saving checking.
32335
32336 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32337
32338         PR rtl-optimization/58960
32339         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32340         factored out from ...
32341         (sched_init): ... here.
32342         (free_global_sched_pressure_data): New, factored out from ...
32343         (sched_finish): ... here.
32344         * sched-int.h (free_global_sched_pressure_data): Declare.
32345         * sched-rgn.c (nr_regions_initial): New static global.
32346         (haifa_find_rgns): Initialize it.
32347         (schedule_region): Disable sched-pressure for the newly
32348         generated regions.
32349
32350 2014-02-17  Richard Biener  <rguenther@suse.de>
32351
32352         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32353         release SSA defs of pattern stmts.
32354
32355 2014-02-17  Richard Biener  <rguenther@suse.de>
32356
32357         * tree-inline.c (expand_call_inline): Release the virtual
32358         operand defined by the call we are about to inline.
32359
32360 2014-02-17  Richard Biener  <rguenther@suse.de>
32361
32362         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32363
32364 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
32365             Ilya Tocar  <ilya.tocar@intel.com>
32366
32367         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32368         arguments order in builtin.
32369         (_mm512_permutexvar_epi64): Ditto.
32370         (_mm512_mask_permutexvar_epi64): Ditto
32371         (_mm512_maskz_permutexvar_epi32): Ditto
32372         (_mm512_permutexvar_epi32): Ditto
32373         (_mm512_mask_permutexvar_epi32): Ditto
32374
32375 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32376
32377         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32378         (p8_vmrgow): Likewise.
32379
32380 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32381
32382         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32383         endian targets.
32384
32385 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
32386
32387         PR target/60203
32388         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32389         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32390         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
32391         using direct move instructions on ISA 2.07.  Also adjust
32392         instruction length for 64-bit.
32393         (mov<mode>_64bit, TFmode/TDmode): Likewise.
32394         (mov<mode>_32bit, TFmode/TDmode): Likewise.
32395
32396 2014-02-15  Alan Modra  <amodra@gmail.com>
32397
32398         PR target/58675
32399         PR target/57935
32400         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
32401         find_replacement on parts of insn rtl that might be reloaded.
32402
32403 2014-02-15  Richard Biener  <rguenther@suse.de>
32404
32405         PR tree-optimization/60183
32406         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
32407         (tree_ssa_phiprop): Calculate and free post-dominators.
32408
32409 2014-02-14  Jeff Law  <law@redhat.com>
32410
32411         PR rtl-optimization/60131
32412         * ree.c (get_extended_src_reg): New function.
32413         (combine_reaching_defs): Use it rather than assuming location of REG.
32414         (find_and_remove_re): Verify first operand of extension is
32415         a REG before adding the insns to the copy list.
32416
32417 2014-02-14  Roland McGrath  <mcgrathr@google.com>
32418
32419         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
32420         * configure: Regenerated.
32421         * config.in: Regenerated.
32422         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
32423         instead of ASM_SHORT.
32424
32425 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
32426             Richard Earnshaw  <rearnsha@arm.com>
32427
32428         PR rtl-optimization/59535
32429         * lra-constraints.c (process_alt_operands): Encourage alternative
32430         when unassigned pseudo class is superset of the alternative class.
32431         (inherit_reload_reg): Don't inherit when optimizing for code size.
32432         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
32433         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
32434         modes not less than 4 for Thumb1.
32435
32436 2014-02-14  Kyle McMartin  <kyle@redhat.com>
32437
32438         PR pch/60010
32439         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
32440
32441 2014-02-14  Richard Biener  <rguenther@suse.de>
32442
32443         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
32444         (get_frame_arg): Drop the assert with langhook types_compatible_p.
32445         Do not strip INDIRECT_REFs.
32446
32447 2014-02-14  Richard Biener  <rguenther@suse.de>
32448
32449         PR lto/60179
32450         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
32451         DECL_FUNCTION_SPECIFIC_TARGET.
32452         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
32453         * tree-streamer-out.c (pack_ts_target_option): Remove.
32454         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
32455         (write_ts_function_decl_tree_pointers): Do not stream
32456         DECL_FUNCTION_SPECIFIC_TARGET.
32457         * tree-streamer-in.c (unpack_ts_target_option): Remove.
32458         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
32459         (lto_input_ts_function_decl_tree_pointers): Do not stream
32460         DECL_FUNCTION_SPECIFIC_TARGET.
32461
32462 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
32463
32464         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
32465         (get_initial_def_for_induction, vectorizable_induction): Ignore
32466         debug stmts when looking for exit_phi.
32467         (vectorizable_live_operation): Fix up condition.
32468
32469 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32470
32471         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
32472         nreverse() because it changes the content of original tree list.
32473
32474 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32475
32476         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
32477         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
32478
32479 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32480
32481         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
32482         GNU coding standards.
32483
32484 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32485
32486         PR debug/60152
32487         * dwarf2out.c (gen_subprogram_die): Don't call
32488         add_calling_convention_attribute if subr_die is old_die.
32489
32490 2014-02-13  Sharad Singhai  <singhai@google.com>
32491
32492         * doc/optinfo.texi: Fix order of nodes.
32493
32494 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
32495
32496         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
32497         operands[2], not operands[3].
32498
32499 2014-02-13  Richard Biener  <rguenther@suse.de>
32500
32501         PR bootstrap/59878
32502         * doc/install.texi (ISL): Update recommended version to 0.12.2,
32503         mention the possibility of an in-tree build.
32504         (CLooG): Update recommended version to 0.18.1, mention the
32505         possibility of an in-tree build and clarify that the ISL
32506         bundled with CLooG does not work.
32507
32508 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
32509
32510         PR target/43546
32511         * expr.c (compress_float_constant): If x is a hard register,
32512         extend into a pseudo and then move to x.
32513
32514 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32515
32516         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
32517         caused by bad second argument to warning_at() with -mhotpatch and
32518         nested functions (e.g. with gfortran).
32519
32520 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
32521
32522         * opts.c (option_name): Remove "enabled by default" rider.
32523
32524 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
32525
32526         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
32527
32528 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32529             Uros Bizjak  <ubizjak@gmail.com>
32530
32531         PR target/60151
32532         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
32533         * configure: Regenerated.
32534
32535 2014-02-12  Richard Biener  <rguenther@suse.de>
32536
32537         * vec.c (vec_prefix::calculate_allocation): Move as
32538         inline variant to vec.h.
32539         (vec_prefix::calculate_allocation_1): New out-of-line version.
32540         * vec.h (vec_prefix::calculate_allocation_1): Declare.
32541         (vec_prefix::m_has_auto_buf): Rename to ...
32542         (vec_prefix::m_using_auto_storage): ... this.
32543         (vec_prefix::calculate_allocation): Inline the easy cases
32544         and dispatch to calculate_allocation_1 which doesn't need the
32545         prefix address.
32546         (va_heap::reserve): Use gcc_checking_assert.
32547         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
32548         m_using_auto_storage.
32549         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
32550         member and adjust.
32551         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
32552         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
32553         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
32554
32555 2014-02-12  Richard Biener  <rguenther@suse.de>
32556
32557         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
32558         when we found a dependence.
32559
32560 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
32561
32562         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
32563         common code...
32564         (maybe_fold_stmt): ... into this new function.
32565         * omp-low.c (lower_omp): Update comment.
32566
32567         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
32568         last use.
32569
32570         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
32571         dereference.
32572
32573 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
32574
32575         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
32576         identifiers in comments.
32577         (cortexa53_extra_costs): Likewise.
32578         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
32579         (cortexa7_extra_costs): Likewise.
32580         (cortexa12_extra_costs): Likewise.
32581         (cortexa15_extra_costs): Likewise.
32582         (v7m_extra_costs): Likewise.
32583
32584 2014-02-12  Richard Biener  <rguenther@suse.de>
32585
32586         PR middle-end/60092
32587         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
32588         of posix_memalign being successful.
32589         (lower_stmt): Restrict lowering of posix_memalign to when
32590         -ftree-bit-ccp is enabled.
32591
32592 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32593
32594         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
32595         arg_loc.
32596         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
32597
32598 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
32599
32600         PR rtl-optimization/60116
32601         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
32602         other_insn once the combination has been validated.
32603
32604 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
32605
32606         PR lto/59468
32607         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
32608         and wrapper.
32609         * ipa-devirt.c: Include demangle.h
32610         (odr_violation_reported): New static variable.
32611         (add_type_duplicate): Update odr_violations.
32612         (maybe_record_node): Add completep parameter; update it.
32613         (record_target_from_binfo): Add COMPLETEP parameter;
32614         update it as needed.
32615         (possible_polymorphic_call_targets_1): Likewise.
32616         (struct polymorphic_call_target_d): Add nonconstruction_targets;
32617         rename FINAL to COMPLETE.
32618         (record_targets_from_bases): Sanity check we found the binfo;
32619         fix COMPLETEP updating.
32620         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
32621         parameter, fix computing of COMPLETEP.
32622         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
32623         at LTO time do demangling.
32624         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
32625         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
32626         parameter.
32627         (gimple_get_virt_method_for_binfo): Likewise.
32628         * gimple-fold.h (gimple_get_virt_method_for_binfo,
32629         gimple_get_virt_method_for_vtable): Update prototypes.
32630
32631 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
32632
32633         PR target/49008
32634         * genautomata.c (add_presence_absence): Fix typo with
32635         {final_}presence_list.
32636
32637 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
32638
32639         PR target/60137
32640         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
32641         for VSX/Altivec vectors that land in GPR registers.
32642
32643 2014-02-11  Richard Henderson  <rth@redhat.com>
32644             Jakub Jelinek  <jakub@redhat.com>
32645
32646         PR debug/59776
32647         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
32648         around drhs if type conversion to lacc->type is not useless.
32649
32650 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32651
32652         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
32653         tuning struct.
32654         (cortex-a57.cortex-a53): Likewise.
32655         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
32656
32657 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32658
32659         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
32660         arm_restrict_it.
32661
32662 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
32663
32664         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
32665         add_options_for_arm_vfp3.
32666
32667 2014-02-11  Jeff Law  <law@redhat.com>
32668
32669         PR middle-end/54041
32670         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
32671         object with an undesirable mode.
32672
32673 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32674
32675         PR libgomp/60107
32676         * config/i386/sol2-9.h: New file.
32677         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
32678         *-*-solaris2.9*): Use it.
32679
32680 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32681
32682         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
32683         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
32684
32685 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
32686
32687         * config/microblaze/microblaze.c: Extend mcpu version format
32688
32689 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
32690
32691         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
32692
32693 2014-02-10  Richard Henderson  <rth@redhat.com>
32694
32695         PR target/59927
32696         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
32697         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
32698         ms-abi vs -mno-accumulate-outgoing-args.
32699         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
32700         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
32701         respect to ms-abi.
32702
32703 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32704
32705         PR middle-end/60080
32706         * cfgexpand.c (expand_asm_operands): Attach source location to
32707         ASM_INPUT rtx objects.
32708         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
32709
32710 2014-02-10  Nick Clifton  <nickc@redhat.com>
32711
32712         * config/mn10300/mn10300.c (popcount): New function.
32713         (mn10300_expand_prologue): Include saved registers in stack usage
32714         count.
32715
32716 2014-02-10  Jeff Law  <law@redhat.com>
32717
32718         PR middle-end/52306
32719         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
32720         when changing the SET_DEST of a prior insn to avoid an input reload.
32721
32722 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32723
32724         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
32725         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
32726         -mcall-openbsd, or -mcall-linux.
32727         (CC1_ENDIAN_BIG_SPEC): Remove.
32728         (CC1_ENDIAN_LITTLE_SPEC): Remove.
32729         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32730         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
32731         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
32732         and %cc1_endian_default.
32733         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
32734
32735 2014-02-10  Richard Biener  <rguenther@suse.de>
32736
32737         PR tree-optimization/60115
32738         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
32739         MEM_REF handling.  Properly verify that the accesses are not
32740         out of the objects bound.
32741
32742 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32743
32744         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
32745         coretex to cortex.
32746
32747 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
32748
32749         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
32750         proper constants and fix formatting.
32751         (possible_polymorphic_call_targets): Fix formatting.
32752
32753 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
32754             Ilya Tocar  <ilya.tocar@intel.com>
32755
32756         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
32757         (_mm512_loadu_epi32): Renamed into...
32758         (_mm512_loadu_si512): This.
32759         (_mm512_storeu_epi32): Renamed into...
32760         (_mm512_storeu_si512): This.
32761         (_mm512_maskz_ceil_ps): Removed.
32762         (_mm512_maskz_ceil_pd): Ditto.
32763         (_mm512_maskz_floor_ps): Ditto.
32764         (_mm512_maskz_floor_pd): Ditto.
32765         (_mm512_floor_round_ps): Ditto.
32766         (_mm512_floor_round_pd): Ditto.
32767         (_mm512_ceil_round_ps): Ditto.
32768         (_mm512_ceil_round_pd): Ditto.
32769         (_mm512_mask_floor_round_ps): Ditto.
32770         (_mm512_mask_floor_round_pd): Ditto.
32771         (_mm512_mask_ceil_round_ps): Ditto.
32772         (_mm512_mask_ceil_round_pd): Ditto.
32773         (_mm512_maskz_floor_round_ps): Ditto.
32774         (_mm512_maskz_floor_round_pd): Ditto.
32775         (_mm512_maskz_ceil_round_ps): Ditto.
32776         (_mm512_maskz_ceil_round_pd): Ditto.
32777         (_mm512_expand_pd): Ditto.
32778         (_mm512_expand_ps): Ditto.
32779         * config/i386/i386.c (ix86_builtins): Remove
32780         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
32781         (bdesc_args): Ditto.
32782         * config/i386/predicates.md (const1256_operand): New.
32783         (const_1_to_2_operand): Ditto.
32784         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32785         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32786         (*avx512pf_gatherpf<mode>sf): Ditto.
32787         (avx512pf_gatherpf<mode>df): Ditto.
32788         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32789         (*avx512pf_gatherpf<mode>df): Ditto.
32790         (avx512pf_scatterpf<mode>sf): Ditto.
32791         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32792         (*avx512pf_scatterpf<mode>sf): Ditto.
32793         (avx512pf_scatterpf<mode>df): Ditto.
32794         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32795         (*avx512pf_scatterpf<mode>df): Ditto.
32796         (avx512f_expand<mode>): Removed.
32797         (<shift_insn><mode>3<mask_name>): Change predicate type.
32798
32799 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32800
32801         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
32802         not at the end of datarefs vector use ordered_remove to avoid
32803         reordering datarefs vector.
32804
32805         PR c/59984
32806         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
32807         mark local addressable non-static vars as GOVD_PRIVATE
32808         instead of GOVD_LOCAL.
32809         * omp-low.c (lower_omp_for): Move gimple_bind_vars
32810         and BLOCK_VARS of gimple_bind_block to new_stmt rather
32811         than copying them.
32812
32813         PR middle-end/60092
32814         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
32815         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
32816         assume_aligned or alloc_align attributes.
32817         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
32818         arguments.  Handle also assume_aligned and alloc_align attributes.
32819         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
32820         calls to functions with assume_aligned or alloc_align attributes.
32821         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
32822
32823 2014-02-08  Terry Guo  <terry.guo@arm.com>
32824
32825         * doc/invoke.texi: Document ARM -march=armv7e-m.
32826
32827 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
32828
32829         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
32830         flag on __cilkrts_rethrow builtin.
32831
32832         PR ipa/60026
32833         * ipa-cp.c (determine_versionability): Fail at -O0
32834         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
32835         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
32836
32837         Revert:
32838         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
32839
32840         PR ipa/60026
32841         * tree-inline.c (copy_forbidden): Fail for
32842         __attribute__((optimize (0))) functions.
32843
32844 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32845
32846         * varpool.c: Include pointer-set.h.
32847         (varpool_remove_unreferenced_decls): Variables in other partitions
32848         will not be output; be however careful to not lose information
32849         about partitioning.
32850
32851 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
32852
32853         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
32854         lookup in the vtable constructor.
32855
32856 2014-02-07  Jeff Law  <law@redhat.com>
32857
32858         PR target/40977
32859         * config/m68k/m68k.md (ashldi_extsi): Turn into a
32860         define_insn_and_split.
32861
32862         * ipa-inline.c (inline_small_functions): Fix typos.
32863
32864 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32865
32866         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
32867         (s390_can_use_return_insn): Declare.
32868         * config/s390/s390.h (EPILOGUE_USES): Define.
32869         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
32870         instructions.
32871         (s390_chunkify_start): Handle return JUMP_LABELs.
32872         (s390_early_mach): Emit a main_pool instruction on the entry edge.
32873         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
32874         (s390_can_use_return_insn): New functions.
32875         (s390_fix_long_loop_prediction): Handle conditional returns.
32876         (TARGET_SET_UP_BY_PROLOGUE): Define.
32877         * config/s390/s390.md (ANY_RETURN): New code iterator.
32878         (*creturn, *csimple_return, return, simple_return): New patterns.
32879
32880 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32881
32882         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
32883         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
32884         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
32885         REG_CFA_RESTORE list when deciding not to restore a register.
32886
32887 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32888
32889         * config/s390/s390.c: Include tree-pass.h and context.h.
32890         (s390_early_mach): New function, split out from...
32891         (s390_emit_prologue): ...here.
32892         (pass_data_s390_early_mach): New pass structure.
32893         (pass_s390_early_mach): New class.
32894         (s390_option_override): Create and register early_mach pass.
32895         Move to end of file.
32896
32897 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
32898
32899         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
32900         to match for the exit block.
32901
32902 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32903
32904         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
32905         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
32906         Reject misaligned operands.
32907
32908 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32909
32910         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
32911
32912 2014-02-07  Richard Biener  <rguenther@suse.de>
32913
32914         PR middle-end/60092
32915         * gimple-low.c (lower_builtin_posix_memalign): New function.
32916         (lower_stmt): Call it to lower posix_memalign in a way
32917         to make alignment info accessible.
32918
32919 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
32920
32921         PR c++/60082
32922         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
32923         __builtin_setjmp_receiver.
32924
32925 2014-02-07  Richard Biener  <rguenther@suse.de>
32926
32927         PR middle-end/60092
32928         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
32929         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
32930         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
32931         Handle BUILT_IN_POSIX_MEMALIGN.
32932         (find_func_clobbers): Likewise.
32933         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
32934         (call_may_clobber_ref_p_1): Likewise.
32935
32936 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32937
32938         PR ipa/59918
32939         * ipa-devirt.c (record_target_from_binfo): Remove overactive
32940         sanity check.
32941
32942 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32943
32944         PR ipa/59469
32945         * lto-cgraph.c (lto_output_node): Use
32946         symtab_get_symbol_partitioning_class.
32947         (lto_output_varpool_node): likewise.
32948         (symtab_get_symbol_partitioning_class): Move here from
32949         lto/lto-partition.c
32950         * cgraph.h (symbol_partitioning_class): Likewise.
32951         (symtab_get_symbol_partitioning_class): Declare.
32952
32953 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32954
32955         * ggc.h (ggc_internal_cleared_alloc): New macro.
32956         * vec.h (vec_safe_copy): Handle memory stats.
32957         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
32958         * target-globals.c (save_target_globals): Likewise.
32959
32960 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
32961
32962         PR target/60077
32963         * expr.c (emit_move_resolve_push): Export; be bit more selective
32964         on when to clear alias set.
32965         * expr.h (emit_move_resolve_push): Declare.
32966         * function.h (struct function): Add tail_call_marked.
32967         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
32968         * config/i386/i386-protos.h (ix86_expand_push): Remove.
32969         * config/i386/i386.md (TImode move expander): De not call
32970         ix86_expand_push.
32971         (FP push expanders): Preserve memory attributes.
32972         * config/i386/sse.md (push<mode>1): Remove.
32973         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
32974         (ix86_expand_push): Remove.
32975         * config/i386/mmx.md (push<mode>1): Remove.
32976
32977 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
32978
32979         PR rtl-optimization/60030
32980         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
32981         lopart with paradoxical subreg before shifting it up by hprec.
32982
32983 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32984
32985         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
32986         Remove extra newline at end of file.
32987         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
32988         (arm_issue_rate): Handle cortexa57.
32989         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
32990         (cortex-a57.cortex-a53): Likewise.
32991
32992 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
32993
32994         PR target/59575
32995         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
32996         don't record in REG_FRAME_RELATED_EXPR registers not set in that
32997         bitmask.
32998         (arm_expand_prologue): Adjust all callers.
32999         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33000         info, registers also at the lowest numbered registers side.  Use
33001         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33002         XEXP.
33003
33004         PR debug/59992
33005         * var-tracking.c (adjust_mems): Before adding a SET to
33006         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33007
33008 2014-02-06  Alan Modra  <amodra@gmail.com>
33009
33010         PR target/60032
33011         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33012         change SDmode to DDmode when lra_in_progress.
33013
33014 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33015
33016         PR middle-end/59150
33017         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33018         free_data_ref on the dr first, and before goto again also set dr
33019         to the next dr.  For simd_lane_access, free old datarefs[i] before
33020         overwriting it.  For get_vectype_for_scalar_type failure, don't
33021         free_data_ref if simd_lane_access.
33022
33023         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33024
33025         PR target/60062
33026         * tree.h (opts_for_fn): New inline function.
33027         (opt_for_fn): Define.
33028         * config/i386/i386.c (ix86_function_regparm): Use
33029         opt_for_fn (decl, optimize) instead of optimize.
33030
33031 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33032
33033         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33034         for SYMBOL_REF in large memory model.
33035
33036 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33037
33038         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33039         and crypto support.
33040         (cortex-a57): Likewise.
33041         (cortex-a57.cortex-a53): Likewise.
33042
33043 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33044             Kugan Vivekanandarajah  <kuganv@linaro.org>
33045
33046         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33047         unaligned_access.
33048         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33049
33050 2014-02-06  Richard Biener  <rguenther@suse.de>
33051
33052         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33053         set_loop_copy and initialize_original_copy_tables.
33054
33055 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33056
33057         * config/aarch64/aarch64-simd.md
33058         (aarch64_ashr_simddi): Change QI to SI.
33059
33060 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33061             Jakub Jelinek  <jakub@redhat.com>
33062
33063         PR middle-end/60013
33064         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33065         of the dataflow.
33066
33067 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33068
33069         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33070         CODE_FOR_altivec_vpku[hw]um to
33071         CODE_FOR_altivec_vpku[hw]um_direct.
33072         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33073         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33074         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33075         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33076
33077 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33078
33079         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33080         generation for -maltivec=be.
33081         (altivec_vsumsws): Simplify redundant test.
33082
33083 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33084
33085         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33086         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33087         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33088         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33089         gen_altivec_vpkuwum.
33090         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33091         BYTES_BIG_ENDIAN.
33092         (altivec_vpks<VI_char>ss): Likewise.
33093         (altivec_vpks<VI_char>us): Likewise.
33094         (altivec_vpku<VI_char>us): Likewise.
33095         (altivec_vpku<VI_char>um): Likewise.
33096         (altivec_vpku<VI_char>um_direct): New (copy of
33097         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33098         internal use).
33099         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33100         target is little endian and -maltivec=be is not specified.
33101         (*altivec_vupkhs<VU_char>_direct): New (copy of
33102         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33103         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33104         target is little endian and -maltivec=be is not specified.
33105         (*altivec_vupkls<VU_char>_direct): New (copy of
33106         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33107         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33108         little endian and -maltivec=be is not specified.
33109         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33110         little endian and -maltivec=be is not specified.
33111
33112 2014-02-05  Richard Henderson  <rth@redhat.com>
33113
33114         PR debug/52727
33115         * combine-stack-adj.c: Revert r206943.
33116         * sched-int.h (struct deps_desc): Add last_args_size.
33117         * sched-deps.c (init_deps): Initialize it.
33118         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33119         contain REG_ARGS_SIZE notes.
33120
33121 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33122
33123         * lto-cgraph.c (asm_nodes_output): Make global.
33124         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33125         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33126         (driver_handle_option): Handle OPT_fwpa.
33127
33128 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33129
33130         PR ipa/59947
33131         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33132         a comment typo and formatting issue.  If odr_hash hasn't been
33133         created, return vNULL and set *completep to false.
33134
33135         PR middle-end/57499
33136         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33137         bb with no successors.
33138
33139 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33140
33141         PR target/59718
33142         * doc/invoke.texi (-march): Clarify documentation for ARM.
33143         (-mtune): Likewise.
33144         (-mcpu): Likewise.
33145
33146 2014-02-05  Richard Biener  <rguenther@suse.de>
33147
33148         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33149         when not vectorizing because of too many alias checks.
33150         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33151         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33152
33153 2014-02-05  Nick Clifton  <nickc@redhat.com>
33154
33155         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33156         accept extended registers in any mode when compiling for the MN10300.
33157
33158 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33159
33160         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33161         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33162         sanitization attributes.
33163         (can_inline_edge_p): Likewise.
33164         (sanitize_attrs_match_for_inline_p): New function.
33165
33166 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33167
33168         * ipa-prop.c (detect_type_change): Shor circuit testing of
33169         type changes on THIS pointer.
33170
33171 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33172
33173         PR target/59777
33174         * config/pa/pa.c (legitimize_tls_address): Return original address
33175         if not passed a SYMBOL_REF rtx.
33176         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33177         addresses.
33178         (pa_emit_move_sequence): Simplify TLS source operands.
33179         (pa_legitimate_constant_p): Reject all TLS constants.
33180         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33181         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33182
33183 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33184
33185         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33186         groups when we know they are controlled by LTO.
33187         * varasm.c (default_binds_local_p_1): If object is in other partition,
33188         it will be resolved locally.
33189
33190 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33191
33192         * config/host-linux.c (linux_gt_pch_use_address): Don't
33193         use SSIZE_MAX because it is not always defined.
33194
33195 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33196
33197         PR bootstrap/59913
33198         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33199         threshold for pseudo splitting.
33200         (update_ebb_live_info): Process call argument hard registers and
33201         hard registers from insn definition too.
33202         (max_small_class_regs_num): New constant.
33203         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33204         reloads_num only for small register classes.  Don't split for
33205         outputs of jumps.
33206
33207 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33208
33209         PR ipa/60058
33210         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33211         is non-null.
33212
33213 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33214
33215         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33216         visibility is safe.
33217
33218 2014-02-04  Marek Polacek  <polacek@redhat.com>
33219
33220         * gdbinit.in (pel): Define.
33221
33222 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33223
33224         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33225         behavior.
33226
33227 2014-02-04  Richard Biener  <rguenther@suse.de>
33228
33229         PR lto/59723
33230         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33231         in function context local.
33232         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33233         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33234         similar to LTO_imported_decl_ref.
33235
33236 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33237
33238         PR tree-optimization/60002
33239         * cgraphclones.c (build_function_decl_skip_args): Clear
33240         DECL_LANG_SPECIFIC.
33241
33242         PR tree-optimization/60023
33243         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33244         false to gsi_replace.
33245         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33246         has been in some EH region and vec_stmt could throw, add
33247         vec_stmt into the same EH region.
33248         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33249         has no lhs, ignore it.
33250         * internal-fn.c (expand_MASK_LOAD): Likewise.
33251
33252         PR ipa/60026
33253         * tree-inline.c (copy_forbidden): Fail for
33254         __attribute__((optimize (0))) functions.
33255
33256         PR other/58712
33257         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33258         is set, copy one less argument.
33259         (expand_simd_clones): Don't subtract clone_info->inbranch
33260         from simd_clone_struct_alloc argument.
33261
33262         PR rtl-optimization/57915
33263         * recog.c (simplify_while_replacing): If all unary/binary/relational
33264         operation arguments are constant, attempt to simplify those.
33265
33266         PR middle-end/59261
33267         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33268         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33269
33270 2014-02-04  Richard Biener  <rguenther@suse.de>
33271
33272         PR tree-optimization/60012
33273         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33274         TBAA disambiguation to all DDRs.
33275
33276 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33277
33278         PR target/59788
33279         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33280         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33281
33282 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33283
33284         PR ipa/59882
33285         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33286
33287 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33288
33289         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33290         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33291
33292 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33293
33294         PR ipa/59831
33295         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33296         to figure out targets of polymorphic calls with known decl.
33297         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33298         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33299         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33300         (get_polymorphic_call_info): ... here.
33301         (get_polymorphic_call_info_from_invariant): New function.
33302
33303 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33304
33305         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33306         lookup via vtable pointer; check for type consistency
33307         and turn inconsitent facts into UNREACHABLE.
33308         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33309         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33310         type inconsistent querries; return UNREACHABLE instead.
33311
33312 2014-02-03  Richard Henderson  <rth@twiddle.net>
33313
33314         PR tree-opt/59924
33315         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33316         already processed this node.
33317         (normalize_one_pred_1): Pass along mark_set.
33318         (normalize_one_pred): Create and destroy a pointer_set_t.
33319         (normalize_one_pred_chain): Likewise.
33320
33321 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33322
33323         PR gcov-profile/58602
33324         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33325
33326 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33327
33328         PR ipa/59831
33329         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33330         -fno-devirtualize; try to devirtualize by the knowledge of
33331         virtual table pointer given by aggregate propagation.
33332         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33333         (ipa_print_node_jump_functions): Dump also offset that
33334         is relevant for polymorphic calls.
33335         (determine_known_aggregate_parts): Add arg_type parameter; use it
33336         instead of determining the type from pointer type.
33337         (ipa_compute_jump_functions_for_edge): Update call of
33338         determine_known_aggregate_parts.
33339         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33340         (gimple_get_virt_method_for_binfo): ... here; simplify using
33341         vtable_pointer_value_to_vtable.
33342         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33343         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33344         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33345         (vtable_pointer_value_to_vtable): Break out from ...; handle also
33346         POINTER_PLUS_EXPR.
33347         (vtable_pointer_value_to_binfo): ... here.
33348         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33349
33350 2014-02-03  Teresa Johnson  <tejohnson@google.com>
33351
33352         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33353         redef of outer loop index variable.
33354
33355 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
33356
33357         PR c++/53017
33358         PR c++/59211
33359         * doc/extend.texi (Function Attributes): Typo.
33360
33361 2014-02-03  Cong Hou  <congh@google.com>
33362
33363         PR tree-optimization/60000
33364         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33365         if the vectorized statement is a store.  A store statement can only
33366         appear at the end of pattern statements.
33367
33368 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33369
33370         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33371         (ix86_option_override_internal): Default long double to 64-bit for
33372         32-bit Bionic and to 128-bit for 64-bit Bionic.
33373
33374         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33375         TARGET_LONG_DOUBLE_128 is true.
33376         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33377
33378         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33379         (mlong-double-64): Negate -mlong-double-128.
33380         (mlong-double-128): New option.
33381
33382         * config/i386/i386-c.c (ix86_target_macros): Define
33383         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33384
33385         * doc/invoke.texi: Document -mlong-double-128.
33386
33387 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33388
33389         PR rtl-optimization/60024
33390         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33391
33392 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
33393
33394         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
33395
33396 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33397
33398         PR rtl-optimization/57662
33399         * sel-sched.c (code_motion_path_driver): Do not mark already not
33400         existing blocks in the visiting bitmap.
33401
33402 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33403
33404         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
33405         on the insn being emitted.
33406
33407 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
33408             Will Deacon  <will.deacon@arm.com>
33409
33410         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
33411
33412 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33413
33414         * config/arm/arm-tables.opt: Regenerate.
33415
33416 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33417
33418         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
33419         for vector types other than V16QImode.
33420         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
33421         define_expand, and call altivec_expand_vec_perm_le when producing
33422         code with little endian element order.
33423         (*altivec_vperm_<mode>_internal): New insn having previous
33424         behavior of altivec_vperm_<mode>.
33425         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
33426         altivec_expand_vec_perm_le when producing code with little endian
33427         element order.
33428         (*altivec_vperm_<mode>_uns_internal): New insn having previous
33429         behavior of altivec_vperm_<mode>_uns.
33430
33431 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33432
33433         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
33434         (altivec_vsumsws): Add handling for -maltivec=be with a little
33435         endian target.
33436         (altivec_vsumsws_direct): New.
33437         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
33438         gen_altivec_vsumsws.
33439
33440 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33441
33442         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
33443         vtable_pointer_value_to_binfo): New functions.
33444         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
33445         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
33446
33447 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
33448
33449         * config/nios2/nios2.md (load_got_register): Initialize GOT
33450         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
33451         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
33452
33453 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33454
33455         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
33456         preserverd by passthrough, do not propagate the type.
33457
33458 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33459
33460         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
33461         (mips_atomic_assign_expand_fenv): New function.
33462         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33463
33464 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33465
33466         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
33467         (__builtin_mips_set_fcsr): Likewise.
33468         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
33469         MIPS_USI_FTYPE_VOID.
33470         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
33471         (mips16_expand_set_fcsr): Likewise.
33472         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
33473         (mips16_set_fcsr_stub): Likewise.
33474         (mips16_get_fcsr_one_only_stub): New class.
33475         (mips16_set_fcsr_one_only_stub): Likewise.
33476         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
33477         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
33478         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
33479         (hard_float): New availability predicate.
33480         (mips_builtins): Add get_fcsr and set_fcsr.
33481         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
33482         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
33483         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
33484         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
33485         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
33486         patterns.
33487
33488 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33489
33490         * config/mips/mips.c (mips_one_only_stub): New class.
33491         (mips_need_mips16_rdhwr_p): Replace with...
33492         (mips16_rdhwr_stub): ...this new variable.
33493         (mips16_stub_call_address): New function.
33494         (mips16_rdhwr_one_only_stub): New class.
33495         (mips_expand_thread_pointer): Use mips16_stub_call_address.
33496         (mips_output_mips16_rdhwr): Delete.
33497         (mips_finish_stub): New function.
33498         (mips_code_end): Use it to handle rdhwr stubs.
33499
33500 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
33501
33502         PR target/60017
33503         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
33504         when calculating size of integer atomic types.
33505
33506 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
33507
33508         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
33509
33510 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
33511
33512         PR tree-optimization/60003
33513         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
33514         * profile.c (branch_prob): Use gimple_call_builtin_p
33515         to check for BUILT_IN_SETJMP_RECEIVER.
33516         * tree-inline.c (copy_bb): Call notice_special_calls.
33517
33518 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
33519
33520         PR bootstrap/59985
33521         * lra-constraints.c (process_alt_operands): Update reload_sum only
33522         on the first pass.
33523
33524 2014-01-31  Richard Henderson  <rth@redhat.com>
33525
33526         PR middle-end/60004
33527         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
33528         until after else_eh is processed.
33529
33530 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33531
33532         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
33533         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
33534         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
33535         in smmintrin.h, remove them.
33536         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
33537         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
33538         * config/i386/i386.md (ROUND_SAE): Fix value.
33539         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
33540         (const48_operand): New.
33541         * config/i386/subst.md (round), (round_expand): Use
33542         const_4_or_8_to_11_operand.
33543         (round_saeonly), (round_saeonly_expand): Use const48_operand.
33544
33545 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
33546
33547         * config/i386/constraints.md (Yk): Swap meaning with k.
33548         * config/i386/i386.md (movhi_internal): Change Yk to k.
33549         (movqi_internal): Ditto.
33550         (*k<logic><mode>): Ditto.
33551         (*andhi_1): Ditto.
33552         (*andqi_1): Ditto.
33553         (kandn<mode>): Ditto.
33554         (*<code>hi_1): Ditto.
33555         (*<code>qi_1): Ditto.
33556         (kxnor<mode>): Ditto.
33557         (kortestzhi): Ditto.
33558         (kortestchi): Ditto.
33559         (kunpckhi): Ditto.
33560         (*one_cmplhi2_1): Ditto.
33561         (*one_cmplqi2_1): Ditto.
33562         * config/i386/sse.md (): Change k to Yk.
33563         (avx512f_load<mode>_mask): Ditto.
33564         (avx512f_blendm<mode>): Ditto.
33565         (avx512f_store<mode>_mask): Ditto.
33566         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
33567         (avx512f_storedqu<mode>_mask): Ditto.
33568         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
33569         Ditto.
33570         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
33571         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
33572         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
33573         (avx512f_maskcmp<mode>3): Ditto.
33574         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
33575         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
33576         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
33577         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
33578         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
33579         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
33580         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
33581         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
33582         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
33583         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
33584         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
33585         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
33586         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
33587         (vec_extract_lo_<mode>_maskm): Ditto.
33588         (vec_extract_hi_<mode>_maskm): Ditto.
33589         (avx512f_vternlog<mode>_mask): Ditto.
33590         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
33591         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
33592         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
33593         (avx512f_<code>v8div16qi2_mask): Ditto.
33594         (avx512f_<code>v8div16qi2_mask_store): Ditto.
33595         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
33596         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
33597         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
33598         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
33599         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33600         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33601         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33602         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33603         (avx512cd_maskb_vec_dupv8di): Ditto.
33604         (avx512cd_maskw_vec_dupv16si): Ditto.
33605         (avx512f_vpermi2var<mode>3_maskz): Ditto.
33606         (avx512f_vpermi2var<mode>3_mask): Ditto.
33607         (avx512f_vpermi2var<mode>3_mask): Ditto.
33608         (avx512f_vpermt2var<mode>3_maskz): Ditto.
33609         (*avx512f_gathersi<mode>): Ditto.
33610         (*avx512f_gathersi<mode>_2): Ditto.
33611         (*avx512f_gatherdi<mode>): Ditto.
33612         (*avx512f_gatherdi<mode>_2): Ditto.
33613         (*avx512f_scattersi<mode>): Ditto.
33614         (*avx512f_scatterdi<mode>): Ditto.
33615         (avx512f_compress<mode>_mask): Ditto.
33616         (avx512f_compressstore<mode>_mask): Ditto.
33617         (avx512f_expand<mode>_mask): Ditto.
33618         * config/i386/subst.md (mask): Change k to Yk.
33619         (mask_scalar_merge): Ditto.
33620         (sd): Ditto.
33621
33622 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
33623
33624         * doc/extend.texi (Vector Extensions): Document ?: in C++.
33625
33626 2014-01-31  Richard Biener  <rguenther@suse.de>
33627
33628         PR middle-end/59990
33629         * builtins.c (fold_builtin_memory_op): Make sure to not
33630         use a floating-point mode or a boolean or enumeral type for
33631         the copy operation.
33632
33633 2014-01-30  DJ Delorie  <dj@redhat.com>
33634
33635         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
33636         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
33637         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
33638         whenever main() has an epilogue.
33639
33640 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33641
33642         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
33643         unused variable "field".
33644         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
33645         (vsx_mergeh_<mode>): Likewise.
33646         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
33647         (altivec_vmrghh): Likewise.
33648         (altivec_vmrghw): Likewise.
33649         (altivec_vmrglb): Likewise.
33650         (altivec_vmrglh): Likewise.
33651         (altivec_vmrglw): Likewise.
33652         (altivec_vspltb): Add missing uses.
33653         (altivec_vsplth): Likewise.
33654         (altivec_vspltw): Likewise.
33655         (altivec_vspltsf): Likewise.
33656
33657 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33658
33659         PR target/59923
33660         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
33661         frame related instructions.
33662
33663 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
33664
33665         PR rtl-optimization/59959
33666         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
33667         any reload of register whose subreg is invalid.
33668
33669 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
33670
33671         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
33672         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
33673         Add missing return type - void.
33674
33675 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33676
33677         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
33678         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
33679         remove element index adjustment for endian (now handled in vsx.md
33680         and altivec.md).
33681         (altivec_expand_vec_perm_const): Use
33682         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
33683         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
33684         (vsx_xxspltw_<mode>): Adjust element index for little endian.
33685         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
33686         define_expand and a new define_insn *altivec_vspltb_internal;
33687         adjust for -maltivec=be on a little endian target.
33688         (altivec_vspltb_direct): New.
33689         (altivec_vsplth): Divide into a define_expand and a new
33690         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
33691         little endian target.
33692         (altivec_vsplth_direct): New.
33693         (altivec_vspltw): Divide into a define_expand and a new
33694         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
33695         little endian target.
33696         (altivec_vspltw_direct): New.
33697         (altivec_vspltsf): Divide into a define_expand and a new
33698         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
33699         a little endian target.
33700
33701 2014-01-30  Richard Biener  <rguenther@suse.de>
33702
33703         PR tree-optimization/59993
33704         * tree-ssa-forwprop.c (associate_pointerplus): Check we
33705         can propagate form the earlier stmt and avoid the transform
33706         when the intermediate result is needed.
33707
33708 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
33709
33710         * README.Portability: Fix typo.
33711
33712 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
33713
33714         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
33715         comparison_operator with ordered_comparison_operator.
33716
33717 2014-01-30  Nick Clifton  <nickc@redhat.com>
33718
33719         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
33720         Rename to mn10300_store_multiple_regs.
33721         * config/mn10300/mn10300.c: Likewise.
33722         * config/mn10300/mn10300.md (store_movm): Fix typo: call
33723         store_multiple_regs.
33724         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
33725         Call mn10300_store_multiple_regs.
33726
33727 2014-01-30  Nick Clifton  <nickc@redhat.com>
33728             DJ Delorie  <dj@redhat.com>
33729
33730         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
33731         %fp 2 to keep registers after it properly word-aligned.
33732         (rl78_alloc_physical_registers_umul): Handle the case where both
33733         input operands are the same.
33734
33735 2014-01-30  Richard Biener  <rguenther@suse.de>
33736
33737         PR tree-optimization/59903
33738         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
33739         check properly.
33740
33741 2014-01-30  Jason Merrill  <jason@redhat.com>
33742
33743         PR c++/59633
33744         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
33745
33746         PR c++/59645
33747         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
33748
33749 2014-01-30  Richard Biener  <rguenther@suse.de>
33750
33751         PR tree-optimization/59951
33752         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
33753
33754 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
33755
33756         PR target/59784
33757         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
33758         SFmode to DFmode case.
33759
33760 2014-01-29  DJ Delorie  <dj@redhat.com>
33761
33762         * config/msp430/msp430.opt (-minrt): New.
33763         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
33764         if -minrt given.
33765         (ENDFILE_SPEC): Likewise.
33766
33767 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
33768
33769         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
33770         (estimate_function_body_sizes): Use it.
33771
33772 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
33773
33774         PR c++/58561
33775         * dwarf2out.c (is_cxx_auto): New.
33776         (is_base_type): Use it.
33777         (gen_type_die_with_usage): Likewise.
33778
33779 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33780
33781         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
33782         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
33783         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
33784         -maltivec=be with LE targets.
33785         (vsx_mergeh_<mode>): Likewise.
33786         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
33787         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
33788         (altivec_vmrghb): Replace with define_expand and new
33789         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
33790         (altivec_vmrghb_direct): New define_insn.
33791         (altivec_vmrghh): Replace with define_expand and new
33792         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
33793         (altivec_vmrghh_direct): New define_insn.
33794         (altivec_vmrghw): Replace with define_expand and new
33795         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
33796         (altivec_vmrghw_direct): New define_insn.
33797         (*altivec_vmrghsf): Adjust for endianness.
33798         (altivec_vmrglb): Replace with define_expand and new
33799         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
33800         (altivec_vmrglb_direct): New define_insn.
33801         (altivec_vmrglh): Replace with define_expand and new
33802         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
33803         (altivec_vmrglh_direct): New define_insn.
33804         (altivec_vmrglw): Replace with define_expand and new
33805         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
33806         (altivec_vmrglw_direct): New define_insn.
33807         (*altivec_vmrglsf): Adjust for endianness.
33808         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33809         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33810         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
33811         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
33812         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33813         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33814         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
33815         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
33816
33817 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33818
33819         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
33820         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
33821         whitespace.
33822
33823 2014-01-29  Richard Biener  <rguenther@suse.de>
33824
33825         PR tree-optimization/58742
33826         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
33827         associate_pointerplus_align.
33828         (associate_pointerplus_diff): New function.
33829         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
33830         and associate_pointerplus_diff.
33831
33832 2014-01-29  Richard Biener  <rguenther@suse.de>
33833
33834         * lto-streamer.h (LTO_major_version): Bump to 3.
33835         (LTO_minor_version): Reset to 0.
33836
33837 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
33838
33839         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
33840         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
33841         (arm_file_start): Generate correct asm header for armv7ve.
33842         * config/arm/bpabi.h: Add multilib support for armv7ve.
33843         * config/arm/driver-arm.c: Change the architectures of cortex-a7
33844         and cortex-a15 to armv7ve.
33845         * config/arm/t-aprofile: Add multilib support for armv7ve.
33846         * doc/invoke.texi: Document -march=armv7ve.
33847
33848 2014-01-29  Richard Biener  <rguenther@suse.de>
33849
33850         PR tree-optimization/58742
33851         * tree-ssa-forwprop.c (associate_plusminus): Return true
33852         if we changed sth, defer EH cleanup to ...
33853         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
33854         (simplify_mult): New function.
33855
33856 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
33857
33858         PR middle-end/59917
33859         PR tree-optimization/59920
33860         * tree.c (build_common_builtin_nodes): Remove
33861         __builtin_setjmp_dispatcher initialization.
33862         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
33863         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
33864         instead of gsi_after_labels + manually skipping debug stmts.
33865         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
33866         ignore bbs with IFN_ABNORMAL_DISPATCHER.
33867         * tree-inline.c (copy_edges_for_bb): Remove
33868         can_make_abnormal_goto argument, instead add abnormal_goto_dest
33869         argument.  Ignore computed_goto_p stmts.  Don't call
33870         make_abnormal_goto_edges.  If a call might need abnormal edges
33871         for non-local gotos, see if it already has an edge to
33872         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
33873         with true argument, don't do anything then, otherwise add
33874         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
33875         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
33876         caller.
33877         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
33878         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
33879         (lower_stmt): Don't set data->calls_builtin_setjmp.
33880         (lower_builtin_setjmp): Adjust comment.
33881         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
33882         * tree-cfg.c (found_computed_goto): Remove.
33883         (factor_computed_gotos): Remove.
33884         (make_goto_expr_edges): Return bool, true for computed gotos.
33885         Don't call make_abnormal_goto_edges.
33886         (build_gimple_cfg): Don't set found_computed_goto, don't call
33887         factor_computed_gotos.
33888         (computed_goto_p): No longer static.
33889         (make_blocks): Don't set found_computed_goto.
33890         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
33891         (make_edges): If make_goto_expr_edges returns true, push bb
33892         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
33893         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
33894         vector.  Record mapping between bbs and OpenMP regions if there
33895         are any, adjust make_gimple_omp_edges caller.  Call
33896         handle_abnormal_edges.
33897         (make_abnormal_goto_edges): Remove.
33898         * tree-cfg.h (make_abnormal_goto_edges): Remove.
33899         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
33900         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
33901         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
33902         * internal-fn.def (ABNORMAL_DISPATCHER): New.
33903         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
33904         filling *region also set *region_idx to (*region)->entry->index.
33905
33906         PR other/58712
33907         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
33908         For REGs set ORIGINAL_REGNO.
33909
33910 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
33911
33912         * doc/md.texi: Mention that a target shouldn't implement
33913         vec_widen_(s|u)mul_even/odd pair if it is less efficient
33914         than hi/lo pair.
33915
33916 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
33917
33918         PR tree-optimization/59594
33919         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
33920         a copy of the datarefs vector rather than the vector itself.
33921
33922 2014-01-28  Jason Merrill  <jason@redhat.com>
33923
33924         PR c++/53756
33925         * dwarf2out.c (auto_die): New static.
33926         (gen_type_die_with_usage): Handle C++1y 'auto'.
33927         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
33928         on definition.
33929
33930 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
33931
33932         PR target/59672
33933         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
33934         (SPEC_X32): Likewise.
33935         (SPEC_64): Likewise.
33936         * config/i386/i386.c (ix86_option_override_internal): Turn off
33937         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
33938         for TARGET_16BIT.
33939         (x86_file_start): Output .code16gcc for TARGET_16BIT.
33940         * config/i386/i386.h (TARGET_16BIT): New macro.
33941         (TARGET_16BIT_P): Likewise.
33942         * config/i386/i386.opt: Add m16.
33943         * doc/invoke.texi: Document -m16.
33944
33945 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
33946
33947         PR preprocessor/59935
33948         * input.c (location_get_source_line): Bail out on when line number
33949         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
33950
33951 2014-01-28  Richard Biener  <rguenther@suse.de>
33952
33953         PR tree-optimization/58742
33954         * tree-ssa-forwprop.c (associate_plusminus): Handle
33955         pointer subtraction of the form (T)(P + A) - (T)P.
33956
33957 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33958
33959         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
33960         at const_int_cost.
33961
33962 2014-01-28  Richard Biener  <rguenther@suse.de>
33963
33964         Revert
33965         2014-01-28  Richard Biener  <rguenther@suse.de>
33966
33967         PR rtl-optimization/45364
33968         PR rtl-optimization/59890
33969         * var-tracking.c (local_get_addr_clear_given_value): Handle
33970         already cleared slot.
33971         (val_reset): Handle not allocated local_get_addr_cache.
33972         (vt_find_locations): Use post-order on the inverted CFG.
33973
33974 2014-01-28  Richard Biener  <rguenther@suse.de>
33975
33976         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
33977
33978 2014-01-28  Richard Biener  <rguenther@suse.de>
33979
33980         PR rtl-optimization/45364
33981         PR rtl-optimization/59890
33982         * var-tracking.c (local_get_addr_clear_given_value): Handle
33983         already cleared slot.
33984         (val_reset): Handle not allocated local_get_addr_cache.
33985         (vt_find_locations): Use post-order on the inverted CFG.
33986
33987 2014-01-28  Alan Modra  <amodra@gmail.com>
33988
33989         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
33990         * configure.ac <recursive call for build != host>: Define
33991         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
33992         and LD_FOR_BUILD too.
33993         * configure: Regenerate.
33994
33995 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
33996
33997         * config/i386/i386.c (get_builtin_code_for_version): Separate
33998         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
33999         Broadwell from Haswell.
34000
34001 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34002
34003         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34004         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34005         * config/mips/mips.c (mips_option_override): Change setting
34006         of TARGET_DSP.
34007         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34008         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34009         Change from Mask to Var.
34010
34011 2014-01-27  Jeff Law  <law@redhat.com>
34012
34013         * ipa-inline.c (inline_small_functions): Fix typo.
34014
34015 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34016
34017         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34018         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34019         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34020         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34021         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34022         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34023         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34024         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34025         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34026         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34027         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34028         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34029         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34030         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34031         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34032         (_mm512_storeu_epi64): Ditto.
34033         (_mm512_cmpge_epi32_mask): Ditto.
34034         (_mm512_cmpge_epu32_mask): Ditto.
34035         (_mm512_cmpge_epi64_mask): Ditto.
34036         (_mm512_cmpge_epu64_mask): Ditto.
34037         (_mm512_cmple_epi32_mask): Ditto.
34038         (_mm512_cmple_epu32_mask): Ditto.
34039         (_mm512_cmple_epi64_mask): Ditto.
34040         (_mm512_cmple_epu64_mask): Ditto.
34041         (_mm512_cmplt_epi32_mask): Ditto.
34042         (_mm512_cmplt_epu32_mask): Ditto.
34043         (_mm512_cmplt_epi64_mask): Ditto.
34044         (_mm512_cmplt_epu64_mask): Ditto.
34045         (_mm512_cmpneq_epi32_mask): Ditto.
34046         (_mm512_cmpneq_epu32_mask): Ditto.
34047         (_mm512_cmpneq_epi64_mask): Ditto.
34048         (_mm512_cmpneq_epu64_mask): Ditto.
34049         (_mm512_expand_pd): Ditto.
34050         (_mm512_expand_ps): Ditto.
34051         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34052         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34053         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34054         * config/i386/i386.c (ix86_builtins): Add
34055         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34056         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34057         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34058         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34059         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34060         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34061         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34062         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34063         IX86_BUILTIN_PMOVUSQW512_MEM.
34064         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34065         __builtin_ia32_pmovsqd512mem_mask,
34066         __builtin_ia32_pmovqd512mem_mask,
34067         __builtin_ia32_pmovusqw512mem_mask,
34068         __builtin_ia32_pmovsqw512mem_mask,
34069         __builtin_ia32_pmovqw512mem_mask,
34070         __builtin_ia32_pmovusdw512mem_mask,
34071         __builtin_ia32_pmovsdw512mem_mask,
34072         __builtin_ia32_pmovdw512mem_mask,
34073         __builtin_ia32_pmovqb512mem_mask,
34074         __builtin_ia32_pmovusqb512mem_mask,
34075         __builtin_ia32_pmovsqb512mem_mask,
34076         __builtin_ia32_pmovusdb512mem_mask,
34077         __builtin_ia32_pmovsdb512mem_mask,
34078         __builtin_ia32_pmovdb512mem_mask.
34079         (bdesc_args): Add __builtin_ia32_expanddf512,
34080         __builtin_ia32_expandsf512.
34081         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34082         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34083         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34084         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34085         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34086         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34087         (avx512f_<code>v8div16qi2_mask_store): This.
34088         (avx512f_expand<mode>): New.
34089
34090 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34091
34092         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34093         New.
34094         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34095         (_mm512_prefetch_i32scatter_pd): Ditto.
34096         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34097         (_mm512_prefetch_i64scatter_pd): Ditto.
34098         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34099         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34100         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34101         (_mm512_prefetch_i32scatter_ps): Ditto.
34102         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34103         (_mm512_prefetch_i64scatter_ps): Ditto.
34104         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34105         * config/i386/i386-builtin-types.def: Define
34106         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34107         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34108         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34109         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34110         IX86_BUILTIN_SCATTERPFQPD.
34111         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34112         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34113         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34114         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34115         __builtin_ia32_scatterpfqps.
34116         (ix86_expand_builtin): Expand new built-ins.
34117         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34118         fix memory access data type.
34119         (*avx512pf_gatherpf<mode>_mask): Ditto.
34120         (*avx512pf_gatherpf<mode>): Ditto.
34121         (avx512pf_scatterpf<mode>): Ditto.
34122         (*avx512pf_scatterpf<mode>_mask): Ditto.
34123         (*avx512pf_scatterpf<mode>): Ditto.
34124         (GATHER_SCATTER_SF_MEM_MODE): New.
34125         (avx512pf_gatherpf<mode>df): Ditto.
34126         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34127         (*avx512pf_scatterpf<mode>df): Ditto.
34128
34129 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34130
34131         PR bootstrap/59934
34132         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34133         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34134         reached.
34135
34136 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34137
34138         * common/config/arm/arm-common.c
34139         (arm_rewrite_mcpu): Handle multiple names.
34140         * config/arm/arm.h
34141         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34142
34143 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34144
34145         * gimple-builder.h (create_gimple_tmp): Delete.
34146
34147 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34148
34149         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34150         words comparisons.
34151
34152 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34153
34154         * config/pa/pa.md (call): Generate indirect long calls to non-local
34155         functions when outputing 32-bit code.
34156         (call_value): Likewise except for special call to buggy powf function.
34157
34158         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34159         portable runtime and PIC indirect calls.
34160         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34161         and PIC call sequences.  Use ldo instead of blr to set return register
34162         in PIC call sequence.
34163
34164 2014-01-25  Walter Lee  <walt@tilera.com>
34165
34166         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34167         avoid clobbering a live register.
34168
34169 2014-01-25  Walter Lee  <walt@tilera.com>
34170
34171         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34172         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34173         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34174         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34175
34176 2014-01-25  Walter Lee  <walt@tilera.com>
34177
34178         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34179         arguments on even registers.
34180         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34181         STACK_BOUNDARY.
34182         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34183         (BIGGEST_ALIGNMENT): Ditto.
34184         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34185
34186 2014-01-25  Walter Lee  <walt@tilera.com>
34187
34188         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34189         insns before bundling.
34190         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34191
34192 2014-01-25  Walter Lee  <walt@tilera.com>
34193
34194         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34195         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34196         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34197
34198 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34199
34200         * config/mips/constraints.md (kl): Delete.
34201         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34202         define expands, using...
34203         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34204         instructions for MIPS16.
34205         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34206         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34207
34208 2014-01-25  Walter Lee  <walt@tilera.com>
34209
34210         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34211         (clzdi2): Ditto.
34212         (ffsdi2): Ditto.
34213
34214 2014-01-25  Walter Lee  <walt@tilera.com>
34215
34216         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34217         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34218
34219 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34220
34221         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34222         Handle XOR.
34223
34224 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34225
34226         * print-rtl.c (in_call_function_usage): New var.
34227         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34228         EXPR_LIST mode as mode and not as reg note name.
34229
34230         PR middle-end/59561
34231         * cfgloopmanip.c (copy_loop_info): If
34232         loop->warned_aggressive_loop_optimizations, make sure
34233         the flag is set in target loop too.
34234
34235 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34236
34237         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34238         flag_cilkplus.
34239         * builtins.def: Likewise.
34240         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34241         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34242         * ira.c (ira_setup_eliminable_regset): Likewise.
34243         * omp-low.c (gate_expand_omp): Likewise.
34244         (execute_lower_omp): Likewise.
34245         (diagnose_sb_0): Likewise.
34246         (gate_diagnose_omp_blocks): Likewise.
34247         (simd_clone_clauses_extract): Likewise.
34248         (gate): Likewise.
34249
34250 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34251
34252         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34253         correction for little endian...
34254         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34255         here.
34256
34257 2014-01-24  Jeff Law  <law@redhat.com>
34258
34259         PR tree-optimization/59919
34260         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34261         for non-returning calls.
34262
34263 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34264
34265         * common/config/aarch64/aarch64-common.c
34266         (aarch64_rewrite_mcpu): Handle multiple names.
34267         * config/aarch64/aarch64.h
34268         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34269
34270 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34271
34272         * input.c (add_file_to_cache_tab): Handle the case where fopen
34273         returns NULL.
34274
34275 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34276
34277         PR target/59929
34278         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34279         from push operand if code of push isn't PRE_DEC.
34280
34281 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34282
34283         PR target/59909
34284         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34285         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34286         it is only used for non-atomic loads/stores.
34287
34288         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34289         -mquad-memory or -mquad-memory-atomic switches.
34290
34291         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34292         -mquad-memory-atomic to ISA 2.07 support.
34293
34294         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34295         to separate support of normal quad word memory operations (ldq, stq)
34296         from the atomic quad word memory operations.
34297
34298         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34299         support to separate non-atomic quad word operations from atomic
34300         quad word operations.  Disable non-atomic quad word operations in
34301         little endian mode so that we don't have to swap words after the
34302         load and before the store.
34303         (quad_load_store_p): Add comment about atomic quad word support.
34304         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34305         options printed with -mdebug=reg.
34306
34307         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34308         -mquad-memory-atomic as the test for whether we have quad word
34309         atomic instructions.
34310         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34311         or -mp8-vector are used, allow byte/half-word atomic operations.
34312
34313         * config/rs6000/sync.md (load_lockedti): Insure that the address
34314         is a proper indexed or indirect address for the lqarx instruction.
34315         On little endian systems, swap the hi/lo registers after the lqarx
34316         instruction.
34317         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34318         insure the address is valid for the lqarx instruction.
34319         (store_conditionalti): Insure that the address is a proper indexed
34320         or indirect address for the stqcrx. instruction.  On little endian
34321         systems, swap the hi/lo registers before doing the stqcrx.
34322         instruction.
34323         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34324         insure the address is valid for the stqcrx. instruction.
34325
34326         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34327         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34328         type of quad memory support is available.
34329
34330 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34331
34332         PR regression/59915
34333         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34334         there is a danger of looping.
34335
34336 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34337
34338         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34339         force flag_ira_loop_pressure if set via command line.
34340
34341 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34342
34343         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34344         (ashr_simd): New builtin handling DI mode.
34345         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34346         (aarch64_sshr_simddi): New match pattern.
34347         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34348         (vshrd_n_s64): Likewise.
34349         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34350
34351 2014-01-23  Nick Clifton  <nickc@redhat.com>
34352
34353         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34354         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34355         favour of mcu specific scripts.
34356         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34357         430x multilibs.
34358
34359 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34360             Alex Velenko  <Alex.Velenko@arm.com>
34361
34362         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34363         (vaddv_s16): Likewise.
34364         (vaddv_s32): Likewise.
34365         (vaddv_u8): Likewise.
34366         (vaddv_u16): Likewise.
34367         (vaddv_u32): Likewise.
34368         (vaddvq_s8): Likewise.
34369         (vaddvq_s16): Likewise.
34370         (vaddvq_s32): Likewise.
34371         (vaddvq_s64): Likewise.
34372         (vaddvq_u8): Likewise.
34373         (vaddvq_u16): Likewise.
34374         (vaddvq_u32): Likewise.
34375         (vaddvq_u64): Likewise.
34376         (vaddv_f32): Likewise.
34377         (vaddvq_f32): Likewise.
34378         (vaddvq_f64): Likewise.
34379         (vmaxv_f32): Likewise.
34380         (vmaxv_s8): Likewise.
34381         (vmaxv_s16): Likewise.
34382         (vmaxv_s32): Likewise.
34383         (vmaxv_u8): Likewise.
34384         (vmaxv_u16): Likewise.
34385         (vmaxv_u32): Likewise.
34386         (vmaxvq_f32): Likewise.
34387         (vmaxvq_f64): Likewise.
34388         (vmaxvq_s8): Likewise.
34389         (vmaxvq_s16): Likewise.
34390         (vmaxvq_s32): Likewise.
34391         (vmaxvq_u8): Likewise.
34392         (vmaxvq_u16): Likewise.
34393         (vmaxvq_u32): Likewise.
34394         (vmaxnmv_f32): Likewise.
34395         (vmaxnmvq_f32): Likewise.
34396         (vmaxnmvq_f64): Likewise.
34397         (vminv_f32): Likewise.
34398         (vminv_s8): Likewise.
34399         (vminv_s16): Likewise.
34400         (vminv_s32): Likewise.
34401         (vminv_u8): Likewise.
34402         (vminv_u16): Likewise.
34403         (vminv_u32): Likewise.
34404         (vminvq_f32): Likewise.
34405         (vminvq_f64): Likewise.
34406         (vminvq_s8): Likewise.
34407         (vminvq_s16): Likewise.
34408         (vminvq_s32): Likewise.
34409         (vminvq_u8): Likewise.
34410         (vminvq_u16): Likewise.
34411         (vminvq_u32): Likewise.
34412         (vminnmv_f32): Likewise.
34413         (vminnmvq_f32): Likewise.
34414         (vminnmvq_f64): Likewise.
34415
34416 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34417
34418         * config/aarch64/aarch64-simd.md
34419         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
34420         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
34421         (*aarch64_mul3_elt<mode>): Likewise.
34422         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
34423         (*aarch64_mul3_elt_to_64v2df): Likewise.
34424         (*aarch64_mla_elt<mode>): Likewise.
34425         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34426         (*aarch64_mls_elt<mode>): Likewise.
34427         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34428         (*aarch64_fma4_elt<mode>): Likewise.
34429         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34430         (*aarch64_fma4_elt_to_64v2df): Likewise.
34431         (*aarch64_fnma4_elt<mode>): Likewise.
34432         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34433         (*aarch64_fnma4_elt_to_64v2df): Likewise.
34434         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
34435         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
34436         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34437         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34438         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
34439         (aarch64_sqdmull_lane<mode>_internal): Likewise.
34440         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
34441
34442 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34443
34444         * config/aarch64/aarch64-simd.md
34445         (aarch64_be_checked_get_lane<mode>): New define_expand.
34446         * config/aarch64/aarch64-simd-builtins.def
34447         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
34448         New builtin definition.
34449         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
34450         Use new safe be builtin.
34451
34452 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34453
34454         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
34455         New define_insn.
34456         (aarch64_be_st1<mode>): Likewise.
34457         (aarch_ld1<VALL:mode>): Define_expand modified.
34458         (aarch_st1<VALL:mode>): Likewise.
34459         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
34460         (UNSPEC_ST1): Likewise.
34461
34462 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
34463
34464         * config/microblaze/microblaze.md: Add trap insn and attribute
34465
34466 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
34467
34468         PR preprocessor/58580
34469         * input.h (location_get_source_line): Take an additional line_size
34470         parameter.
34471         (void diagnostics_file_cache_fini): Declare new function.
34472         * input.c (struct fcache): New type.
34473         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
34474         New static constants.
34475         (diagnostic_file_cache_init, total_lines_num)
34476         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
34477         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
34478         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
34479         (get_next_line, read_next_line, goto_next_line, read_line_num):
34480         New static function definitions.
34481         (diagnostic_file_cache_fini): New function.
34482         (location_get_source_line): Take an additional output line_len
34483         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
34484         read_line_num.
34485         * diagnostic.c (diagnostic_finish): Call
34486         diagnostic_file_cache_fini.
34487         (adjust_line): Take an additional input parameter for the length
34488         of the line, rather than calculating it with strlen.
34489         (diagnostic_show_locus): Adjust the use of
34490         location_get_source_line and adjust_line with respect to their new
34491         signature.  While displaying a line now, do not stop at the first
34492         null byte.  Rather, display the zero byte as a space and keep
34493         going until we reach the size of the line.
34494         * Makefile.in: Add vec.o to OBJS-libcommon
34495
34496 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34497             Ilya Tocar  <ilya.tocar@intel.com>
34498
34499         * config/i386/avx512fintrin.h (_mm512_kmov): New.
34500         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
34501         (__builtin_ia32_kmov16): Ditto.
34502         * config/i386/i386.md (UNSPEC_KMOV): New.
34503         (kmovw): Ditto.
34504
34505 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
34506
34507         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
34508         (_mm512_storeu_si512): Ditto.
34509
34510 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
34511
34512         PR target/52125
34513         * rtl.h (get_referenced_operands): Declare.
34514         * recog.c (get_referenced_operands): New function.
34515         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
34516         operands have been referenced when recording LO_SUM references.
34517
34518 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
34519
34520         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
34521
34522 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34523
34524         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
34525         Enable for generic and recent AMD targets.
34526
34527 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
34528
34529         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
34530         ARG_SIZE note when adjustment was eliminated.
34531
34532 2014-01-22  Jeff Law  <law@redhat.com>
34533
34534         PR tree-optimization/59597
34535         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
34536         in file.  Accept new argument REGISTERING and use it to modify
34537         dump output appropriately.
34538         (register_jump_thread): Corresponding changes.
34539         (mark_threaded_blocks): Reinstate code to cancel unprofitable
34540         thread paths involving joiner blocks.  Add code to dump cancelled
34541         jump threading paths.
34542
34543 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
34544
34545         PR rtl-optimization/59477
34546         * lra-constraints.c (inherit_in_ebb): Process call for living hard
34547         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
34548
34549 2014-01-22  Tom Tromey  <tromey@redhat.com>
34550
34551         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
34552         PARAMS.
34553         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
34554
34555 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34556
34557         PR rtl-optimization/59896
34558         * lra-constraints.c (process_alt_operands): Check unused note for
34559         matched operands of insn with no output reloads.
34560
34561 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
34562
34563         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
34564         (mips_move_from_gpr_cost): Likewise.
34565
34566 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
34567
34568         PR rtl-optimization/59858
34569         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
34570         ira_class_hard_regs_num.
34571         (process_alt_operands): Increase reject for dying matched operand.
34572
34573 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
34574
34575         PR target/59003
34576         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
34577         smaller than size, perform several stores or loads and stores
34578         at dst + count - size to store or copy all of size bytes, rather
34579         than just last modesize bytes.
34580
34581 2014-01-20  DJ Delorie  <dj@redhat.com>
34582
34583         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
34584         that CLOBBERs are REGs before propogating their values.
34585
34586 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
34587
34588         PR middle-end/59789
34589         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
34590         (cgraph_inline_failed_type): New function.
34591         * cgraph.h (DEFCIFCODE): Add type.
34592         (cgraph_inline_failed_type_t): New enum.
34593         (cgraph_inline_failed_type): New prototype.
34594         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
34595         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
34596         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
34597         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
34598         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
34599         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
34600         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
34601         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
34602         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
34603         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
34604         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
34605         OPTIMIZATION_MISMATCH.
34606         * tree-inline.c (expand_call_inline): Emit errors during
34607         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
34608
34609 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34610
34611         PR target/59685
34612         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
34613         mode attribute in insn output.
34614
34615 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
34616
34617         * output.h (output_constant): Delete.
34618         * varasm.c (output_constant): Make private.
34619
34620 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
34621
34622         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
34623
34624 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34625
34626         PR middle-end/59860
34627         * tree.h (fold_builtin_strcat): New prototype.
34628         * builtins.c (fold_builtin_strcat): No longer static.  Add len
34629         argument, if non-NULL, don't call c_strlen.  Optimize
34630         directly into __builtin_memcpy instead of __builtin_strcpy.
34631         (fold_builtin_2): Adjust fold_builtin_strcat caller.
34632         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
34633
34634 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
34635
34636         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34637         for SImode_address_operand operands, having only a REG argument.
34638
34639 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34640
34641         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
34642         loader name using mbig-endian.
34643         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
34644
34645 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34646
34647         * doc/invoke.texi (-march): Clarify documentation for AArch64.
34648         (-mtune): Likewise.
34649         (-mcpu): Likewise.
34650
34651 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
34652
34653         * config/aarch64/aarch64-protos.h
34654         (aarch64_cannot_change_mode_class_ptr): Declare.
34655         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
34656         aarch64_cannot_change_mode_class_ptr): New.
34657         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
34658         backend hook aarch64_cannot_change_mode_class.
34659
34660 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
34661
34662         * common/config/aarch64/aarch64-common.c
34663         (aarch64_handle_option): Don't handle any option order logic here.
34664         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
34665         selected_cpu, warn on architecture version mismatch.
34666         (aarch64_override_options): Fix parsing order for option strings.
34667
34668 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34669             Iain Sandoe  <iain@codesourcery.com>
34670
34671         PR bootstrap/59496
34672         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
34673         warning.  Amend comment to reflect current functionality.
34674
34675 2014-01-20  Richard Biener  <rguenther@suse.de>
34676
34677         PR middle-end/59860
34678         * builtins.c (fold_builtin_strcat): Remove case better handled
34679         by tree-ssa-strlen.c.
34680
34681 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
34682
34683         * config/aarch64/aarch64.opt
34684         (mcpu, march, mtune): Make case-insensitive.
34685
34686 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
34687
34688         PR target/59880
34689         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
34690         if operands[1] is a REG or ZERO_EXTEND of a REG.
34691
34692 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
34693
34694         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
34695
34696 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
34697
34698         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
34699         long non-pic millicode calls.
34700
34701 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34702
34703         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
34704
34705 2014-01-19  Kito Cheng  <kito@0xlab.org>
34706
34707         * builtins.c (expand_movstr): Check movstr expand done or fail.
34708
34709 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34710             H.J. Lu  <hongjiu.lu@intel.com>
34711
34712         PR target/59379
34713         * config/i386/i386.md (*lea<mode>): Zero-extend return register
34714         to DImode for zero-extended addresses.
34715
34716 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
34717
34718         PR rtl-optimization/57763
34719         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
34720         on the new indirect jump_insn and increment LABEL_NUSES (label).
34721
34722 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
34723
34724         PR bootstrap/59580
34725         PR bootstrap/59583
34726         * config.gcc (x86_archs): New variable.
34727         (x86_64_archs): Likewise.
34728         (x86_cpus): Likewise.
34729         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
34730         --with-arch/--with-cpu= options.
34731         Support --with-arch=/--with-cpu={nehalem,westmere,
34732         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
34733
34734 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34735
34736         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
34737         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
34738
34739 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
34740
34741         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
34742
34743 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
34744
34745         PR target/58944
34746         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
34747         clear cpp_get_options (parse_in)->warn_unused_macros for
34748         ix86_target_macros_internal with cpp_define.
34749
34750 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
34751
34752         * jump.c (delete_related_insns): Keep (use (insn))s.
34753         * reorg.c (redundant_insn): Check for barriers too.
34754
34755 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34756
34757         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
34758
34759 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
34760
34761         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
34762         call to $$dyncall when TARGET_LONG_CALLS is true.
34763
34764 2014-01-17  Jeff Law  <law@redhat.com>
34765
34766         * ree.c (combine_set_extension): Temporarily disable test for
34767         changing number of hard registers.
34768
34769 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34770
34771         PR middle-end/58125
34772         * ipa-inline-analysis.c (inline_free_summary):
34773         Do not free summary of aliases.
34774
34775 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34776
34777         PR middle-end/59706
34778         * gimplify.c (gimplify_expr): Use create_tmp_var
34779         instead of create_tmp_var_raw.  If cond doesn't have
34780         integral type, don't add the IFN_ANNOTATE builtin at all.
34781
34782 2014-01-17  Martin Jambor  <mjambor@suse.cz>
34783
34784         PR ipa/59736
34785         * ipa-cp.c (prev_edge_clone): New variable.
34786         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
34787         Also resize prev_edge_clone vector.
34788         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
34789         (ipcp_edge_removal_hook): New function.
34790         (ipcp_driver): Register ipcp_edge_removal_hook.
34791
34792 2014-01-17  Andrew Pinski  <apinski@cavium.com>
34793             Steve Ellcey  <sellcey@mips.com>
34794
34795         PR target/59462
34796         * config/mips/mips.c (mips_print_operand): Check operand mode instead
34797         of operator mode.
34798
34799 2014-01-17  Jeff Law  <law@redhat.com>
34800
34801         PR middle-end/57904
34802         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
34803         so that pass_ccp runs first.
34804
34805 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34806
34807         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
34808         (ix86_adjust_cost): Use !TARGET_XXX.
34809         (do_reorder_for_imul): Likewise.
34810         (swap_top_of_ready_list): Likewise.
34811         (ix86_sched_reorder): Likewise.
34812
34813 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
34814
34815         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
34816         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
34817         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
34818         (intel_memset): New.  Duplicate slm_memset.
34819         (intel_cost): New.  Duplicate slm_cost.
34820         (m_INTEL): New macro.
34821         (processor_target_table): Add "intel".
34822         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
34823         with PROCESSOR_INTEL for "intel".
34824         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
34825         PROCESSOR_SILVERMONT.
34826         (ix86_issue_rate): Likewise.
34827         (ix86_adjust_cost): Likewise.
34828         (ia32_multipass_dfa_lookahead): Likewise.
34829         (swap_top_of_ready_list): Likewise.
34830         (ix86_sched_reorder): Likewise.
34831         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
34832         instead of TARGET_OPT_AGU.
34833         * config/i386/i386.h (TARGET_INTEL): New.
34834         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
34835         (processor_type): Add PROCESSOR_INTEL.
34836         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
34837         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
34838
34839 2014-01-17  Marek Polacek  <polacek@redhat.com>
34840
34841         PR c/58346
34842         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
34843         size is zero.
34844
34845 2014-01-17  Richard Biener  <rguenther@suse.de>
34846
34847         PR tree-optimization/46590
34848         * opts.c (default_options_table): Add entries for
34849         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
34850         all enabled at -O1 but not for -Og.
34851         * common.opt (fbranch-count-reg): Remove Init(1).
34852         (fmove-loop-invariants): Likewise.
34853         (ftree-pta): Likewise.
34854
34855 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
34856
34857         * config/i386/i386.c (ix86_data_alignment): For compatibility with
34858         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
34859         decls to at least the GCC 4.8 used alignments.
34860
34861         PR fortran/59440
34862         * tree-nested.c (convert_nonlocal_reference_stmt,
34863         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
34864         of GIMPLE_BIND stmts, adjust associated decls.
34865
34866 2014-01-17  Richard Biener  <rguenther@suse.de>
34867
34868         PR tree-optimization/46590
34869         * vec.h (vec<>::bseach): New member function implementing
34870         binary search according to C89 bsearch.
34871         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
34872         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
34873         bitmap pointer again.  Make accesses_in_loop a flat array.
34874         (mem_ref_obstack): New global.
34875         (outermost_indep_loop): Adjust for mem_ref->stored changes.
34876         (mark_ref_stored): Likewise.
34877         (ref_indep_loop_p_2): Likewise.
34878         (set_ref_stored_in_loop): New helper function.
34879         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
34880         (memref_free): Adjust.
34881         (record_mem_ref_loc): Simplify.
34882         (gather_mem_refs_stmt): Adjust.
34883         (sort_locs_in_loop_postorder_cmp): New function.
34884         (analyze_memory_references): Sort accesses_in_loop after
34885         loop postorder number.
34886         (find_ref_loc_in_loop_cmp): New function.
34887         (for_all_locs_in_loop): Find relevant cluster of locs in
34888         accesses_in_loop and iterate without recursion.
34889         (execute_sm): Avoid uninit warning.
34890         (struct ref_always_accessed): Simplify.
34891         (ref_always_accessed::operator ()): Likewise.
34892         (ref_always_accessed_p): Likewise.
34893         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
34894         loop postorder numbers here.
34895         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
34896         numbers.
34897
34898 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
34899
34900         PR c++/57945
34901         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
34902         on decls for which assemble_alias has been called.
34903
34904 2014-01-17  Nick Clifton  <nickc@redhat.com>
34905
34906         * config/msp430/msp430.opt: (mcpu): New option.
34907         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
34908         (msp430_option_override): Parse target_cpu.  If the MCU name
34909         matches a generic string, clear target_mcu.
34910         (msp430_attr): Allow numeric interrupt values up to 63.
34911         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
34912         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
34913         option.
34914         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
34915         Add mcpu matches.
34916         * config/msp430/msp430.md (popm): Use %J rather than %I.
34917         (addsi3): Use msp430_nonimmediate_operand for operand 2.
34918         (addhi_cy_i): Use immediate_operand for operand 2.
34919         * doc/invoke.texi: Document -mcpu option.
34920
34921 2014-01-17  Richard Biener  <rguenther@suse.de>
34922
34923         PR rtl-optimization/38518
34924         * df.h (df_analyze_loop): Declare.
34925         * df-core.c: Include cfgloop.h.
34926         (df_analyze_1): Split out main part of df_analyze.
34927         (df_analyze): Adjust.
34928         (loop_inverted_post_order_compute): New function.
34929         (loop_post_order_compute): Likewise.
34930         (df_analyze_loop): New function avoiding whole-function
34931         postorder computes.
34932         * loop-invariant.c (find_defs): Use df_analyze_loop.
34933         (find_invariants): Adjust.
34934         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
34935
34936 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
34937
34938         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
34939         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
34940
34941 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
34942
34943         * ipa-ref.c (ipa_remove_stmt_references): Fix references
34944         traversal when removing references.
34945
34946 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
34947
34948         PR ipa/59775
34949         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
34950
34951 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
34952
34953         PR middle-end/56791
34954         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
34955         pushing a reload for an autoinc when we had previously reloaded an
34956         inner part of the address.
34957
34958 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
34959
34960         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
34961         field.
34962         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
34963         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
34964         when not giving up or versioning for alias only because of
34965         loop->safelen.
34966         (vect_analyze_data_ref_dependences): Set to true.
34967         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
34968         is a GIMPLE_PHI.
34969         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
34970         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
34971         to the condition.
34972
34973         PR middle-end/58344
34974         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
34975
34976         PR target/59839
34977         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
34978         operand 0 predicate for gathers, use a new pseudo as subtarget.
34979
34980 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
34981
34982         PR middle-end/59609
34983         * lra-constraints.c (process_alt_operands): Add printing debug info.
34984         Check absence of input/output reloads for matched operands too.
34985
34986 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
34987
34988         PR rtl-optimization/59835
34989         * ira.c (ira_init_register_move_cost): Increase cost for
34990         impossible modes.
34991
34992 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
34993
34994         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
34995
34996 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
34997
34998         PR target/59780
34999         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35000         non-register objects.  Use gen_(high/low)part more consistently.
35001         Fix assertions.
35002
35003 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35004
35005         PR target/59844
35006         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35007         endian support, remove tests for WORDS_BIG_ENDIAN.
35008         (p8_mfvsrd_3_<mode>): Likewise.
35009         (reload_gpr_from_vsx<mode>): Likewise.
35010         (reload_gpr_from_vsxsf): Likewise.
35011         (p8_mfvsrd_4_disf): Likewise.
35012
35013 2014-01-16  Richard Biener  <rguenther@suse.de>
35014
35015         PR rtl-optimization/46590
35016         * lcm.c (compute_antinout_edge): Use postorder iteration.
35017         (compute_laterin): Use inverted postorder iteration.
35018
35019 2014-01-16  Nick Clifton  <nickc@redhat.com>
35020
35021         PR middle-end/28865
35022         * varasm.c (output_constant): Return the number of bytes actually
35023         emitted.
35024         (output_constructor_array_range): Update the field size with the
35025         number of bytes emitted by output_constant.
35026         (output_constructor_regular_field): Likewise.  Also do not
35027         complain if the total number of bytes emitted is now greater
35028         than the expected fieldpos.
35029         * output.h (output_constant): Update prototype and descriptive comment.
35030
35031 2014-01-16  Marek Polacek  <polacek@redhat.com>
35032
35033         PR middle-end/59827
35034         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35035         it is error_mark_node.
35036
35037 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35038
35039         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35040         VALID_AVX256_REG_OR_OI_MODE.
35041
35042 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35043
35044         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35045         current procedure should be profiled.
35046
35047 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35048
35049         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35050         of moving from/to the STACK_REG register class.
35051
35052 2014-01-15  Richard Henderson  <rth@redhat.com>
35053
35054         PR debug/54694
35055         * reginfo.c (global_regs_decl): Globalize.
35056         * rtl.h (global_regs_decl): Declare.
35057         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35058         reserved via global_regs.
35059
35060 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35061
35062         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35063
35064 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35065
35066         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35067         and vmulosh rather than call gen_vec_widen_smult_*.
35068         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35069         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35070         (vec_widen_smult_even_v16qi): Likewise.
35071         (vec_widen_umult_even_v8hi): Likewise.
35072         (vec_widen_smult_even_v8hi): Likewise.
35073         (vec_widen_umult_odd_v16qi): Likewise.
35074         (vec_widen_smult_odd_v16qi): Likewise.
35075         (vec_widen_umult_odd_v8hi): Likewise.
35076         (vec_widen_smult_odd_v8hi): Likewise.
35077         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35078         vmuloub rather than call gen_vec_widen_umult_*.
35079         (vec_widen_umult_lo_v16qi): Likewise.
35080         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35081         vmulosb rather than call gen_vec_widen_smult_*.
35082         (vec_widen_smult_lo_v16qi): Likewise.
35083         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35084         rather than call gen_vec_widen_umult_*.
35085         (vec_widen_umult_lo_v8hi): Likewise.
35086         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35087         rather than call gen_vec_widen_smult_*.
35088         (vec_widen_smult_lo_v8hi): Likewise.
35089
35090 2014-01-15  Jeff Law  <law@redhat.com>
35091
35092         PR tree-optimization/59747
35093         * ree.c (find_and_remove_re): Properly handle case where a second
35094         eliminated extension requires widening a copy created for elimination
35095         of a prior extension.
35096         (combine_set_extension): Ensure that the number of hard regs needed
35097         for a destination register does not change when we widen it.
35098
35099 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35100
35101         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35102         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35103         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35104         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35105         (avr-*-rtems*): Likewise.
35106         (bfin*-rtems*): Likewise.
35107         (moxie-*-rtems*): Likewise.
35108         (h8300-*-rtems*): Likewise.
35109         (i[34567]86-*-rtems*): Likewise.
35110         (lm32-*-rtems*): Likewise.
35111         (m32r-*-rtems*): Likewise.
35112         (m68k-*-rtems*): Likewise.
35113         (microblaze*-*-rtems*): Likewise.
35114         (mips*-*-rtems*): Likewise.
35115         (powerpc-*-rtems*): Likewise.
35116         (sh-*-rtems*): Likewise.
35117         (sparc-*-rtems*): Likewise.
35118         (sparc64-*-rtems*): Likewise.
35119         (v850-*-rtems*): Likewise.
35120         (m32c-*-rtems*): Likewise.
35121
35122 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35123
35124         PR rtl-optimization/59511
35125         * ira.c (ira_init_register_move_cost): Use memory costs for some
35126         cases of register move cost calculations.
35127         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35128         instead of BB frequency.
35129         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35130         * lra-assigns.c (find_hard_regno_for): Ditto.
35131
35132 2014-01-15  Richard Biener  <rguenther@suse.de>
35133
35134         PR tree-optimization/59822
35135         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35136         (vectorizable_load): Use it to hoist defs of uses of invariant
35137         loads out of the loop.
35138
35139 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35140             Kugan Vivekanandarajah  <kuganv@linaro.org>
35141
35142         PR target/59695
35143         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35144         truncation.
35145
35146 2014-01-15  Richard Biener  <rguenther@suse.de>
35147
35148         PR rtl-optimization/59802
35149         * lcm.c (compute_available): Use inverted postorder to seed
35150         the initial worklist.
35151
35152 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35153
35154         PR target/59803
35155         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35156         ADDR_REGS for invalid symrefs in non-PIC code.
35157
35158 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35159
35160         PR other/58712
35161         * builtins.c (determine_block_size): Initialize *probable_max_size
35162         even if len_rtx is CONST_INT.
35163
35164 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35165
35166         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35167         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35168         (cortexa53_tunings): Likewise.
35169         (aarch64_sched_issue_rate): New function.
35170         (TARGET_SCHED_ISSUE_RATE): Define.
35171
35172 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35173
35174         * ira-costs.c (find_costs_and_classes): Add missed
35175         ira_init_register_move_cost_if_necessary.
35176
35177 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35178
35179         PR target/59787
35180         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35181
35182 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35183
35184         PR target/59794
35185         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35186         to indicate if type is used for function return value.  Warn ABI
35187         change if the vector mode isn't available for function return value.
35188         (ix86_function_arg_advance): Pass false to type_natural_mode.
35189         (ix86_function_arg): Likewise.
35190         (ix86_gimplify_va_arg): Likewise.
35191         (function_arg_32): Don't warn ABI change.
35192         (ix86_function_value): Pass true to type_natural_mode.
35193         (ix86_return_in_memory): Likewise.
35194         (ix86_struct_value_rtx): Removed.
35195         (TARGET_STRUCT_VALUE_RTX): Likewise.
35196
35197 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35198
35199         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35200         converting a conditional jump into a conditional return.
35201
35202 2014-01-14  Richard Biener  <rguenther@suse.de>
35203
35204         PR tree-optimization/58921
35205         PR tree-optimization/59006
35206         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35207         hoisting invariant stmts.
35208         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35209         invariant loads on the preheader edge if possible.
35210
35211 2014-01-14  Joey Ye  <joey.ye@arm.com>
35212
35213         * doc/plugin.texi (Building GCC plugins): Update to C++.
35214
35215 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35216
35217         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35218         (_mm_rcp28_round_ss): Ditto.
35219         (_mm_rsqrt28_round_sd): Ditto.
35220         (_mm_rsqrt28_round_ss): Ditto.
35221         (_mm_rcp28_sd): Ditto.
35222         (_mm_rcp28_ss): Ditto.
35223         (_mm_rsqrt28_sd): Ditto.
35224         (_mm_rsqrt28_ss): Ditto.
35225         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35226         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35227         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35228         (IX86_BUILTIN_RCP28SD): Ditto.
35229         (IX86_BUILTIN_RCP28SS): Ditto.
35230         (IX86_BUILTIN_RSQRT28SD): Ditto.
35231         (IX86_BUILTIN_RSQRT28SS): Ditto.
35232         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35233         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35234         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35235         (ix86_expand_special_args_builtin): Expand new FTYPE.
35236         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35237         (srcp14<mode>): Make insn unary.
35238         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35239         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35240         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35241         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35242         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35243         Fix rounding: make it SAE only.
35244         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35245         Ditto.
35246         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35247         Ditto.
35248         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35249         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35250         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35251         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35252         (round_saeonly_mask_scalar_operand4): Ditto.
35253         (round_saeonly_mask_scalar_op3): Ditto.
35254         (round_saeonly_mask_scalar_op4): Ditto.
35255
35256 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35257
35258         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35259         Implement -maltivec=be for vec_insert and vec_extract.
35260
35261 2014-01-10  DJ Delorie  <dj@redhat.com>
35262
35263         * config/msp430/msp430.md (call_internal): Don't allow memory
35264         references with SP as the base register.
35265         (call_value_internal): Likewise.
35266         * config/msp430/constraints.md (Yc): New.  For memory references
35267         that don't use SP as a base register.
35268
35269         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35270         "an integer without a # prefix"
35271         * config/msp430/msp430.md (epilogue_helper): Use it.
35272
35273 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35274
35275         PR target/59617
35276         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35277         AVX512F gather builtins.
35278         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35279         on gather decls with INTEGER_TYPE masktype.
35280         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35281         directly into the builtin rather than hoisting it before loop.
35282
35283         PR tree-optimization/59387
35284         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35285         (scev_const_prop): If folded_casts and type has undefined overflow,
35286         use force_gimple_operand instead of force_gimple_operand_gsi and
35287         for each added stmt if it is assign with
35288         arith_code_with_undefined_signed_overflow, call
35289         rewrite_to_defined_overflow.
35290         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35291         gimple-fold.h instead.
35292         (arith_code_with_undefined_signed_overflow,
35293         rewrite_to_defined_overflow): Moved to ...
35294         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35295         rewrite_to_defined_overflow): ... here.  No longer static.
35296         Include gimplify-me.h.
35297         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35298         rewrite_to_defined_overflow): New prototypes.
35299
35300 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35301
35302         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35303
35304 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35305
35306         * builtins.c (get_object_alignment_2): Minor tweak.
35307         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35308
35309 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35310
35311         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35312         optimized non constant lengths.
35313
35314 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35315
35316         PR libgomp/59194
35317         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35318         load as __atomic_load_N if possible.
35319
35320 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35321
35322         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35323         target parameter.
35324         (rs6000_expand_builtin): Adjust call.
35325
35326 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35327
35328         PR target/58115
35329         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35330         * config/rs6000/rs6000.c: Include target-globals.h.
35331         (rs6000_set_current_function): Instead of doing target_reinit
35332         unconditionally, use save_target_globals_default_opts and
35333         restore_target_globals.
35334
35335         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35336         FPSCR.
35337         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35338         (rs6000_expand_builtin): Handle mffs and mtfsf.
35339         (rs6000_init_builtins): Define mffs and mtfsf.
35340         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35341         (rs6000_mffs): New pattern.
35342         (rs6000_mtfsf): New pattern.
35343
35344 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
35345
35346         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35347         Start narrowing with START.  Apply candidate-use pair
35348         and check overall cost in narrowing.
35349         (iv_ca_prune): Pass new argument.
35350
35351 2014-01-10  Jeff Law  <law@redhat.com>
35352
35353         PR middle-end/59743
35354         * ree.c (combine_reaching_defs): Ensure the defining statement
35355         occurs before the extension when optimizing extensions with
35356         different source and destination hard registers.
35357
35358 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35359
35360         PR ipa/58585
35361         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35362         vtables into the type inheritance graph.
35363
35364 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35365
35366         PR rtl-optimization/59754
35367         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35368         modes in the REGNO != REGNO case.
35369
35370 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35371
35372         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35373
35374 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35375
35376         PR tree-optimization/59745
35377         * tree-predcom.c (tree_predictive_commoning_loop): Call
35378         free_affine_expand_cache if giving up because components is NULL.
35379
35380         * target-globals.c (save_target_globals): Allocate < 4KB structs using
35381         GC in payload of target_globals struct instead of allocating them on
35382         the heap and the larger structs separately using GC.
35383         * target-globals.h (struct target_globals): Make regs, hard_regs,
35384         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35385         of GTY((skip)) and change type to void *.
35386         (reset_target_globals): Cast loads from those fields to corresponding
35387         types.
35388
35389 2014-01-10  Steve Ellcey  <sellcey@mips.com>
35390
35391         PR plugins/59335
35392         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
35393         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
35394         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
35395
35396 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
35397
35398         PR target/59744
35399         * aarch64-modes.def (CC_Zmode): New flags mode.
35400         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
35401         represents an equality.
35402         (aarch64_get_condition_code): Handle CC_Zmode.
35403         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
35404
35405 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35406
35407         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
35408         extraction in good case.
35409
35410 2014-01-10  Richard Biener  <rguenther@suse.de>
35411
35412         PR tree-optimization/59374
35413         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
35414         checking after SLP discovery.  Mark stmts not participating
35415         in any SLP instance properly.
35416
35417 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35418
35419         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
35420         when handling a SET rtx.
35421
35422 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35423
35424         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
35425         (cortex-a57): Likewise.
35426         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
35427
35428 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35429
35430         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
35431         non-iwmmxt builtins.
35432
35433 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35434
35435         PR ipa/58252
35436         PR ipa/59226
35437         * ipa-devirt.c record_target_from_binfo): Take as argument
35438         stack of binfos and lookup matching one for virtual inheritance.
35439         (possible_polymorphic_call_targets_1): Update.
35440
35441 2014-01-10  Huacai Chen  <chenhc@lemote.com>
35442
35443         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
35444         kernel strings for Loongson-2E/2F/3A.
35445
35446 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35447
35448         PR middle-end/59670
35449         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
35450         is_gimple_call before calling gimple_call_internal_p.
35451
35452 2014-01-09  Steve Ellcey  <sellcey@mips.com>
35453
35454         * Makefile.in (TREE_FLOW_H): Remove.
35455         (TREE_SSA_H): Add file names from tree-flow.h.
35456         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
35457         * tree.h: Remove tree-flow.h reference.
35458         * hash-table.h: Remove tree-flow.h reference.
35459         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
35460         reference with tree-ssa-loop.h.
35461
35462 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35463
35464         * doc/invoke.texi: Add -maltivec={be,le} options, and document
35465         default element-order behavior for -maltivec.
35466         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
35467         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
35468         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
35469         when targeting big endian, at least for now.
35470         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
35471
35472 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35473
35474         PR middle-end/47735
35475         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
35476         var satisfies use_register_for_decl, just take into account type
35477         alignment, rather than decl alignment.
35478
35479         PR tree-optimization/59622
35480         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
35481         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
35482         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
35483         Don't devirtualize for inplace at all.  For targets.length () == 1,
35484         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
35485
35486 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35487
35488         * config/i386/i386.md (cpu): Remove the unused btver1.
35489
35490 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
35491
35492         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
35493
35494 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35495
35496         PR target/58115
35497         * tree-core.h (struct target_globals): New forward declaration.
35498         (struct tree_target_option): Add globals field.
35499         * tree.h (TREE_TARGET_GLOBALS): Define.
35500         (prepare_target_option_nodes_for_pch): New prototype.
35501         * target-globals.h (struct target_globals): Define even if
35502         !SWITCHABLE_TARGET.
35503         * tree.c (prepare_target_option_node_for_pch,
35504         prepare_target_option_nodes_for_pch): New functions.
35505         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
35506         * config/i386/i386.c: Include target-globals.h.
35507         (ix86_set_current_function): Instead of doing target_reinit
35508         unconditionally, use save_target_globals_default_opts and
35509         restore_target_globals.
35510
35511 2014-01-09  Richard Biener  <rguenther@suse.de>
35512
35513         PR tree-optimization/59715
35514         * tree-cfg.h (split_critical_edges): Declare.
35515         * tree-cfg.c (split_critical_edges): Export.
35516         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
35517
35518 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
35519
35520         * cfgexpand.c (expand_stack_vars): Optionally disable
35521         asan stack protection.
35522         (expand_used_vars): Likewise.
35523         (partition_stack_vars): Likewise.
35524         * asan.c (asan_emit_stack_protection): Optionally disable
35525         after return stack usage.
35526         (instrument_derefs): Optionally disable memory access instrumentation.
35527         (instrument_builtin_call): Likewise.
35528         (instrument_strlen_call): Likewise.
35529         (asan_protect_global): Optionally disable global variables protection.
35530         * doc/invoke.texi: Added doc for new options.
35531         * params.def: Added new options.
35532         * params.h: Likewise.
35533
35534 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35535
35536         PR rtl-optimization/59724
35537         * ifcvt.c (cond_exec_process_if_block): Don't call
35538         flow_find_head_matching_sequence with 0 longest_match.
35539         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
35540         non-active insns if !stop_after.
35541         (try_head_merge_bb): Revert 2014-01-07 changes.
35542
35543 2014-01-08  Jeff Law  <law@redhat.com>
35544
35545         * ree.c (get_sub_rtx): New function, extracted from...
35546         (merge_def_and_ext): Here.
35547         (combine_reaching_defs): Use get_sub_rtx.
35548
35549 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
35550
35551         * cgraph.h (varpool_variable_node): Do not choke on null node.
35552
35553 2014-01-08  Catherine Moore  <clm@codesourcery.com>
35554
35555         * config/mips/mips.md (simple_return): Attempt to use JRC
35556         for microMIPS.
35557         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
35558
35559 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35560
35561         PR rtl-optimization/59137
35562         * reorg.c (steal_delay_list_from_target): Call update_block for
35563         elided insns.
35564         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
35565
35566 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35567
35568         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
35569         two duplicate entries.
35570
35571 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
35572
35573         Revert:
35574         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
35575
35576         * config/mips/mips.c (mips_truncated_op_cost): New function.
35577         (mips_rtx_costs): Adjust test for BADDU.
35578         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
35579
35580         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
35581
35582         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
35583         (*baddu_si): ...this new pattern.
35584
35585 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35586
35587         PR ipa/59722
35588         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
35589
35590 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35591
35592         PR middle-end/57748
35593         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
35594         inner_reference_p.
35595         (expand_expr, expand_normal): Adjust.
35596         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
35597         inner_reference_p. Use inner_reference_p to expand inner references.
35598         (store_expr): Adjust.
35599         * cfgexpand.c (expand_call_stmt): Adjust.
35600
35601 2014-01-08  Rong Xu  <xur@google.com>
35602
35603         * gcov-io.c (gcov_var): Move from gcov-io.h.
35604         (gcov_position): Ditto.
35605         (gcov_is_error): Ditto.
35606         (gcov_rewrite): Ditto.
35607         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
35608         only part to libgcc/libgcov.h.
35609
35610 2014-01-08  Marek Polacek  <polacek@redhat.com>
35611
35612         PR middle-end/59669
35613         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
35614
35615 2014-01-08  Marek Polacek  <polacek@redhat.com>
35616
35617         PR sanitizer/59667
35618         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
35619
35620 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
35621
35622         PR rtl-optimization/59649
35623         * stor-layout.c (get_mode_bounds): For BImode return
35624         0 and STORE_FLAG_VALUE.
35625
35626 2014-01-08  Richard Biener  <rguenther@suse.de>
35627
35628         PR middle-end/59630
35629         * gimple.h (is_gimple_builtin_call): Remove.
35630         (gimple_builtin_call_types_compatible_p): New.
35631         (gimple_call_builtin_p): New overload.
35632         * gimple.c (is_gimple_builtin_call): Remove.
35633         (validate_call): Rename to ...
35634         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
35635         check return types.
35636         (validate_type): New static function.
35637         (gimple_call_builtin_p): New overload and adjust.
35638         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
35639         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
35640         (gimple_fold_stmt_to_constant_1): Likewise.
35641         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
35642
35643 2014-01-08  Richard Biener  <rguenther@suse.de>
35644
35645         PR middle-end/59471
35646         * gimplify.c (gimplify_expr): Gimplify register-register type
35647         VIEW_CONVERT_EXPRs to separate stmts.
35648
35649 2014-01-07  Jeff Law  <law@redhat.com>
35650
35651         PR middle-end/53623
35652         * ree.c (combine_set_extension): Handle case where source
35653         and destination registers in an extension insn are different.
35654         (combine_reaching_defs): Allow source and destination registers
35655         in extension to be different under limited circumstances.
35656         (add_removable_extension): Remove restriction that the
35657         source and destination registers in the extension are the same.
35658         (find_and_remove_re): Emit a copy from the extension's
35659         destination to its source after the defining insn if
35660         the source and destination registers are different.
35661
35662         PR middle-end/59285
35663         * ifcvt.c (merge_if_block): If we are merging a block with more than
35664         one successor with a block with no successors, remove any BARRIER
35665         after the second block.
35666
35667 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
35668
35669         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
35670
35671 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
35672
35673         PR target/59652
35674         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
35675         for 14-bit register offsets when INT14_OK_STRICT is false.
35676
35677 2014-01-07  Roland Stigge  <stigge@antcom.de>
35678             Michael Meissner  <meissner@linux.vnet.ibm.com>
35679
35680         PR 57386/target
35681         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
35682         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
35683
35684 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
35685
35686         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
35687         -mcpu.
35688
35689 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
35690
35691         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
35692         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
35693         rtx is const0_rtx or not.
35694
35695 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
35696
35697         PR target/58115
35698         * target-globals.c (save_target_globals): Remove this_fn_optab
35699         handling.
35700         * toplev.c: Include optabs.h.
35701         (target_reinit): Temporarily restore the global options if another
35702         set of options are in force.
35703
35704 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
35705
35706         PR rtl-optimization/58668
35707         * cfgcleanup.c (flow_find_cross_jump): Don't count
35708         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
35709         to determine what is counted.
35710         (flow_find_head_matching_sequence): Use active_insn_p to determine
35711         what is counted.
35712         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
35713         counting change.
35714         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
35715         determine what is counted.
35716
35717         PR tree-optimization/59643
35718         * tree-predcom.c (split_data_refs_to_components): If one dr is
35719         read and one write, determine_offset fails and the write isn't
35720         in the bad component, just put the read into the bad component.
35721
35722 2014-01-07  Mike Stump  <mikestump@comcast.net>
35723             Jakub Jelinek  <jakub@redhat.com>
35724
35725         PR pch/59436
35726         * tree-core.h (struct tree_optimization_option): Change optabs
35727         type from unsigned char * to void *.
35728         * optabs.c (init_tree_optimization_optabs): Adjust
35729         TREE_OPTIMIZATION_OPTABS initialization.
35730
35731 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
35732
35733         PR target/59644
35734         * config/i386/i386.h (struct machine_function): Add
35735         no_drap_save_restore field.
35736         * config/i386/i386.c (ix86_save_reg): Use
35737         !cfun->machine->no_drap_save_restore instead of
35738         crtl->stack_realign_needed.
35739         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
35740         this function clears frame_pointer_needed.  Set
35741         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
35742         and DRAP reg is needed.
35743
35744 2014-01-06  Marek Polacek  <polacek@redhat.com>
35745
35746         PR c/57773
35747         * doc/implement-c.texi: Mention that other integer types are
35748         permitted as bit-field types in strictly conforming mode.
35749
35750 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
35751
35752         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
35753         is newly allocated.
35754
35755 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
35756
35757         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
35758
35759 2014-01-06  Martin Jambor  <mjambor@suse.cz>
35760
35761         PR ipa/59008
35762         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
35763         to int.
35764         * ipa-prop.c (ipa_print_node_params): Fix indentation.
35765
35766 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
35767
35768         PR debug/59350
35769         PR debug/59510
35770         * var-tracking.c (add_stores): Preserve the value of the source even if
35771         we don't record the store.
35772
35773 2014-01-06  Terry Guo  <terry.guo@arm.com>
35774
35775         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
35776
35777 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
35778
35779         PR bootstrap/59541
35780         * config/darwin.c (darwin_function_section): Adjust return values to
35781         correspond to optimisation changes made in r206070.
35782
35783 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
35784
35785         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
35786         from prefetch_block tune setting.
35787         (nocona_cost): Correct size of prefetch block to 64.
35788
35789 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
35790
35791         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
35792         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
35793         used to save the static chain register in the computation of the offset
35794         from which the FP registers need to be restored.
35795
35796 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
35797
35798         PR tree-optimization/59519
35799         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
35800         ICE if get_current_def (current_new_name) is already non-NULL, as long
35801         as it is a phi result of some other phi in *new_exit_bb that has
35802         the same argument.
35803
35804         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
35805         or vmovdqu* for misaligned_operand.
35806         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
35807         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
35808         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
35809         aligned_mem for AVX512F masked aligned load and store builtins and for
35810         non-temporal moves.
35811
35812 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
35813
35814         PR tree-optimization/59651
35815         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
35816         Address range for negative step should be added by TYPE_SIZE_UNIT.
35817
35818 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
35819
35820         * config/m68k/m68k.c (handle_move_double): Handle pushes with
35821         overlapping registers also for registers other than the stack pointer.
35822
35823 2014-01-03  Marek Polacek  <polacek@redhat.com>
35824
35825         PR other/59661
35826         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
35827         __builtin_FILE.
35828
35829 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
35830
35831         PR target/59625
35832         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
35833         asm goto as jump.
35834
35835         * config/i386/i386.md (MODE_SIZE): New mode attribute.
35836         (push splitter): Use <P:MODE_SIZE> instead of
35837         GET_MODE_SIZE (<P:MODE>mode).
35838         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
35839         (mov -1, reg peephole2): Likewise.
35840         * config/i386/sse.md (*mov<mode>_internal,
35841         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
35842         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
35843         *<code><mode>3, *andnot<mode>3<mask_name>,
35844         <mask_codefor><code><mode>3<mask_name>): Likewise.
35845         * config/i386/subst.md (mask_mode512bit_condition,
35846         sd_mask_mode512bit_condition): Likewise.
35847
35848 2014-01-02  Xinliang David Li  <davidxl@google.com>
35849
35850         PR tree-optimization/59303
35851         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
35852         (dump_predicates): Better output format.
35853         (pred_equal_p): New function.
35854         (is_neq_relop_p): Ditto.
35855         (is_neq_zero_form_p): Ditto.
35856         (pred_expr_equal_p): Ditto.
35857         (pred_neg_p): Ditto.
35858         (simplify_pred): Ditto.
35859         (simplify_preds_2): Ditto.
35860         (simplify_preds_3): Ditto.
35861         (simplify_preds_4): Ditto.
35862         (simplify_preds): Ditto.
35863         (push_pred): Ditto.
35864         (push_to_worklist): Ditto.
35865         (get_pred_info_from_cmp): Ditto.
35866         (is_degenerated_phi): Ditto.
35867         (normalize_one_pred_1): Ditto.
35868         (normalize_one_pred): Ditto.
35869         (normalize_one_pred_chain): Ditto.
35870         (normalize_preds): Ditto.
35871         (normalize_cond_1): Remove function.
35872         (normalize_cond): Ditto.
35873         (is_gcond_subset_of): Ditto.
35874         (is_subset_of_any): Ditto.
35875         (is_or_set_subset_of): Ditto.
35876         (is_and_set_subset_of): Ditto.
35877         (is_norm_cond_subset_of): Ditto.
35878         (pred_chain_length_cmp): Ditto.
35879         (convert_control_dep_chain_into_preds): Type change.
35880         (find_predicates): Ditto.
35881         (find_def_preds): Ditto.
35882         (destroy_predicates_vecs): Ditto.
35883         (find_matching_predicates_in_rest_chains): Ditto.
35884         (use_pred_not_overlap_with_undef_path_pred): Ditto.
35885         (is_pred_expr_subset): Ditto.
35886         (is_pred_chain_subset_of): Ditto.
35887         (is_included_in): Ditto.
35888         (is_superset_of): Ditto.
35889
35890 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35891
35892         Update copyright years.
35893
35894 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35895
35896         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
35897         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
35898         config/arc/arc.md, config/arc/arc.opt,
35899         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
35900         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
35901         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
35902         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
35903         config/linux-protos.h, config/linux.c, config/winnt-c.c,
35904         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
35905         vtable-verify.c, vtable-verify.h: Use the standard form for the
35906         copyright notice.
35907
35908 2014-01-02  Tobias Burnus  <burnus@net-b.de>
35909
35910         * gcc.c (process_command): Update copyright notice dates.
35911         * gcov-dump.c: Ditto.
35912         * gcov.c: Ditto.
35913         * doc/cpp.texi: Bump @copying's copyright year.
35914         * doc/cppinternals.texi: Ditto.
35915         * doc/gcc.texi: Ditto.
35916         * doc/gccint.texi: Ditto.
35917         * doc/gcov.texi: Ditto.
35918         * doc/install.texi: Ditto.
35919         * doc/invoke.texi: Ditto.
35920
35921 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35922
35923         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
35924
35925 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
35926
35927         * config/i386/sse.md (*mov<mode>_internal): Guard
35928         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
35929
35930         PR rtl-optimization/59647
35931         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
35932         new_rtx into UNSIGNED_FLOAT rtxes.
35933 \f
35934 Copyright (C) 2014 Free Software Foundation, Inc.
35935
35936 Copying and distribution of this file, with or without modification,
35937 are permitted in any medium without royalty provided the copyright
35938 notice and this notice are preserved.