PR bootstrap/67363
[official-gcc.git] / gcc / ChangeLog
blob44e84a4a5f18e4a840563270c0678afa42affa4f
1 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
3         PR bootstrap/67363
4         * configure.ac: Check if setenv and unsetenv are declared.
5         * configure: Rebuild.
6         * config.in: Rebuild.
7         * system.h: Declare setenv and unsetenv if not declared.
9 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
12         commentary to simplify permute mask adjustment equation.
13         (special_handling_values): Add SH_VPERM.
14         (const_load_sequence_p): New function.
15         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
16         the mask loaded from the constant pool.
17         (adjust_vperm): New function.
18         (handle_special_swappables): Call adjust_vperm.
19         (dump_swap_insn_table): Handle SH_VPERM.
21 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
23         * shrink-wrap.c (requires_stack_frame_p): Remove static.
24         * shrink-wrap.h (requires_stack_frame_p): Put back.
26 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
28         * reload1.c (elimination_costs_in_insn): Locally turn
29         -Wmaybe-uninitialized into a warning.
31 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
33         * shrink-wrap.c (requires_stack_frame_p): Make static.
34         (prepare_shrink_wrap): Likewise.
35         (dup_block_and_redirect): Likewise.
36         * shrink-wrap.h: Remove declarations of those functions.
38 2015-09-10  Mark Wielaard  <mjw@redhat.com>
40         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
42 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
44         PR target/67506
45         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
46         missing simplify_gen_subreg.
48 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
50         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
51         the vector element is bigger than 64 bit.
53 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
55         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
56         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
58 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
60         * config/s390/s390.c: Add V1TImode to constant pool modes.
62 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
64         PR target/67439
65         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
66         predicate.  Set predicable_short_it attr to "no".
68 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
70         PR rtl-optimization/67421
71         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
72         left wide shift tranformation.
74 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
76         * common/config/arc/arc-common.c: Remove references to A5.
77         * config/arc/arc-opts.h: Likewise.
78         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
79         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
80         * config/arc/t-arc-newlib: Likewise.
82 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
84         * config/arc/arc.md (length): Fix attribute length for conditional
85         executed instructions with long immediate.
87 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
89         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
90         type for second alternative.
92 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
94         * doc/invoke.texi (Downloading GCC): Mention
95         contrib/download_prerequisites script.
97 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
99         PR c++/67523
100         * gimplify.c (gimplify_omp_for): If inner stmt is not found
101         for combined loop, assert seen_error () and return GS_ERROR.
103         PR middle-end/67521
104         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
105         if decl is already in outer->variables.
107         PR middle-end/67517
108         * gimplify.c (gimplify_scan_omp_clauses): Instead of
109         asserting that decl is not specified in octx->variables,
110         break out of the loop if it is.
112         PR c++/67514
113         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
114         iterator is not explicitly determined, but is defined inside
115         of the combined workshare region, handle it like if it has
116         DECL_EXPR in OMP_FOR_PRE_BODY.
118 2015-09-09  Nathan Sidwell  <nathan@acm.org>
120         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
121         (*cmp<mode>): Add assembler spacing.
122         (setcc_int<mode>, set_cc_float<mode>): Likewise.
123         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
124         level.
125         (write_func_decl_from_insn): Refactor argument loops & comma emission.
126         (nvptx_expand_call): Likewise.
127         (nvptx_output_call_insn): Likewise.
128         (nvptx_reorg_subreg): Add spacing.
130 2015-09-09  Marek Polacek  <polacek@redhat.com>
132         PR middle-end/67512
133         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
134         for comparisons.
136 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
138         PR c++/53184
139         * doc/invoke.texi ([Wsubobject-linkage]): Document.
141 2015-09-09  Tom de Vries  <tom@codesourcery.com>
143         * params-list.h: Add missing copyright notice.
145 2015-09-09  Nathan Sidwell  <nathan@acm.org>
147         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
148         sel_truesi, not andsi.
150 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
152         * config/arm/arm.md (*subsi3_compare0): Rename to...
153         (subsi3_compare0): ... This.
154         (modsi3): New define_expand.
155         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
156         when operand is power of 2.
158 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
160         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
161         (*neg<mode>2_compare0): Rename to...
162         (neg<mode>2_compare0): ... This.
163         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
164         Move check for speed inside the if-then-elses.  Reflect
165         CSNEG sequence in MOD by power of 2 case.
167 2015-09-09  Alan Modra  <amodra@gmail.com>
169         PR target/67378
170         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
171         reload replacement for PRE_MODIFY address reg.
173 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
175         PR tree-optimization/53852
176         * config.in: Regenerate.
177         * configure: Regenerate.
178         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
179         * graphite-optimize-isl.c (optimize_isl): Stop computation when
180         PARAM_MAX_ISL_OPERATIONS is reached.
181         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
182         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
183         result equal to isl_stat_ok as the status now can be isl_error_quota.
184         (subtract_commutative_associative_deps): Same.
185         (compute_deps): Same.
187 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
188             Sebastian Pop  <s.pop@samsung.com>
190         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
191         Return the parameter if it was saved in corresponding
192         parameter_rename_map of the region.
193         (copy_def): Copy def from sese region to the newly created region.
194         (copy_internal_parameters): Copy all the internal parameters defined
195         within a region to the newly created region.
196         (graphite_regenerate_ast_isl): Copy parameters to the new region before
197         translating isl to gimple.
198         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
199         the loop-nest does not have any data-references.
200         (build_graphite_scops): Create a scop only when there is at least one
201         loop inside it.
202         (contains_only_close_phi_nodes): Deleted.
203         (print_graphite_scop_statistics): Deleted
204         (print_graphite_statistics): Deleted
205         (limit_scops): Deleted.
206         (build_scops): Removed call to limit_scops.
207         * sese.c (new_sese): Construct.
208         (free_sese): Destruct.
209         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
210         added.
211         (set_rename): Pass sese region so that parameters inside the region can
212         be added to its parameter_rename_map.
213         (rename_uses): Pass sese region.
214         (graphite_copy_stmts_from_block): Do not copy parameters that have been
215         generated in the header of the scop. For each SSA_NAME in the
216         parameter_rename_map rename its usage.
217         (invariant_in_sese_p_rec): Return false if tree t is defined outside
218         sese region.
219         (scalar_evolution_in_region): If the tree t is invariant just return t.
220         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
221         struct sese to keep track of all the parameters which need renaming.
222         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
223         any data-refs.
224         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
226 2015-09-08  Tom de Vries  <tom@codesourcery.com>
228         * Makefile.in (generated_files): Add params.list.
229         (params.list, s-params.list): Add rule.
230         * params.h (enum compiler_param): Include params-list.h.  Move define
231         DEFPARAM, include params.def and undef DEFPARAM ...
232         * params-list.h: ... here.  New file.
234 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
236         * pretty-print.h (printer_fn): Fix typo in comment.
238 2015-09-07  Jeff Law  <law@redhat.com>
240         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
242 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
244         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
245         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
246         (arm_neon_fp16_hw): New.
248 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
250         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
251         UNITS_PER_WORD >= 4.
253 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
255         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
256         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
257         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
258         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
259         (aarch64_float_extend_lo_v2df): Rename to...
260         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
262         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
263         (float_extend_lo): Add v4sf.
265         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
266         * config/aarch64/iterators.md (VQ_HSF): New iterator.
267         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
268         (Vwide): New mode_attr.
270 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
272         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
273         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
274         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
275         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
276         V4HF and V8HF variants to iterator.
278         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
280         * config/aarch64/iterators.md (VDQF_F16): New.
281         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
283 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
285         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
286         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
287         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
288         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
289         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
290         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
291         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
292         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
293         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
294         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
295         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
296         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
297         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
298         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
299         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
300         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
301         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
302         vld1q_dup_f16): New.
304 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
306         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
307         Reparameterize to...
308         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
309         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
310         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
312         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
313         v8hf variant.
314         (float_truncate_lo_): Use BUILTIN_VDF iterator.
316         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
318         * config/aarch64/iterators.md (VDF, Vdtype): New.
319         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
321 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
323         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
324         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
325         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
326         Add __builtin_aarch64_simd_hf.
327         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
328         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
329         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
330         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
331         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
332         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
333         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
334         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
335         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
337         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
338         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
339         (VDC, Vdbl): Add V4HF.
341 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
343         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
344         V4HFmode and V8HFmode.
345         (aarch64_split_simd_move): Add case for V8HFmode.
346         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
347         (aarch64_simd_builtin_std_type): Handle HFmode.
348         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
350         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
351         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
352         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
354         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
355         Float16x8_t.
357         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
358         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
359         New typedefs.
360         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
361         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
362         vst1q_lane_f16): New.
363         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
364         (VALLDI_F16, VALL_F16): New.
365         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
366         Add cases for V4HF and V8HF.
367         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
369 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
371         * config/arm/arm-builtins.c (VAR11, VAR12): New.
372         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
373         vld4_dup): Add v4hf variant.
374         (vget_high, vget_low): Add v8hf variant.
375         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
376         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
377         v4hf and v8hf variants.
379         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
380         (VDX): Add V4HF.
381         (V_DOUBLE): Add case for V4HF.
382         (VQX): Add V8HF.
383         (V_HALF): Add case for V8HF.
384         (VDQX): Add V4HF, V8HF.
385         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
386         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
388         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
389         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
390         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
391         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
392         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
393         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
394         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
395         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
396         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
398         (neon_vcreate, neon_vreinterpretv8qi<mode>,
399         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
400         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
401         Change VDX to VD_RE.
403         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
404         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
405         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
407         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
408         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
409         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
410         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
411         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
412         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
413         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
414         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
415         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
417 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
419         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
420         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
421         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
422         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
423         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
424         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
425         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
426         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
427         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
428         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
429         New.
431 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
433         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
435         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
437         * config/arm/arm-builtins.c (v8hf_UP): New.
438         (arm_init_simd_builtin_types): Initialise Float16x8_t.
440         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
442         * config/arm/arm_neon.h (float16x8_t): New typedef.
444 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
446         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
447         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
448         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
449         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
450         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
451         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
452         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
453         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
454         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
455         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
457 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
459         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
460         non-alphanumeric characters in the symbol name.
462 2015-09-07  Marek Polacek  <polacek@redhat.com>
464         PR inline-asm/67448
465         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
466         a memory input.
468 2015-09-07  Marek Polacek  <polacek@redhat.com>
470         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
472 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
474         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
475         not warn.
477 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
479         PR middle-end/67452
480         * tree-ssa-live.c: Include cfgloop.h.
481         (remove_unused_locals): Clear loop->simduid if simduid is about
482         to be removed from cfun->local_decls.
484 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
486         PR target/65210
487         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
488         attribute as well.
490 2015-09-04  Tom de Vries  <tom@codesourcery.com>
492         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
494 2015-09-04  Jeff Law  <law@redhat.com>
496         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
497         unnecessary constructor.  It's now trivial and implemented inside...
498         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
499         constructor.  Add comments to various methods.  Remove unused
500         private fields.
501         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
502         * tree-vrp.c (identify_jump_threads): Likewise.
503         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
504         indentation issues.
505         (thread_across_edge): Similarly.
506         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
507         arguments in constructor call.
509 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
511         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
512         temp path contains a '-'.
514 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
515             Petr Murzin  <petr.murzin@intel.com>
516             Kirill Yukhin <kirill.yukhin@intel.com>
518         * config/i386/i386-builtin-types.def
519         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
520         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
521         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
522         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
523         * config/i386/i386.c
524         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
525         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
526         IX86_BUILTIN_SCATTERALTDIV16SI.
527         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
528         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
529         __builtin_ia32_scatteraltdiv8si.
530         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
531         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
532         IX86_BUILTIN_SCATTERALTDIV16SI.
533         (ix86_vectorize_builtin_scatter): New.
534         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
535         ix86_vectorize_builtin_scatter.
537 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
538             Petr Murzin  <petr.murzin@intel.com>
539             Kirill Yukhin <kirill.yukhin@intel.com>
541         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
542         * doc/tm.texi: Regenerate.
543         * target.def: Add scatter builtin.
544         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
545         for loads/stores in case of gather/scatter accordingly.
546         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of STMT_VINFO_GATHER_P(S).
547         (vect_check_gather): Rename to ...
548         (vect_check_gather_scatter): this.
549         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
550         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
551         (vect_check_gather_scatter): Use it instead of vect_check_gather.
552         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter variable
553         and new checkings for it accordingly.
554         * tree-vect-stmts.c
555         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of STMT_VINFO_GATHER_P(S).
556         (vect_check_gather_scatter): Use it instead of vect_check_gather.
557         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
559 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
561         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
562         define_insn.
563         (mulv16qi3): New define_expand.
565 2015-09-03  Martin Sebor  <msebor@redhat.com>
567         PR c/66516
568         * doc/extend.texi (Other Builtins): Document when the address
569         of a built-in function can be taken.
571 2015-09-03  Richard Biener  <rguenther@suse.de>
573         * dwarf2out.c (flush_limbo_die_list): Split out from ...
574         (dwarf2out_early_finish): ... here.
575         (dwarf2out_finish): Do not call dwarf2out_early_finish but
576         flush_limbo_die_list.  Assert we have no deferred asm names.
578 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
580         * optabs.c (expand_binop): Don't create a broadcast vector with a
581         source element wider than the inner mode.
583 2015-09-03  Richard Biener  <rguenther@suse.de>
585         * varasm.c (output_constant): Use fold_convert instead of
586         wide_int_to_tree.
588 2015-09-03  Tom de Vries  <tom@codesourcery.com>
590         PR tree-optimization/65637
591         * omp-low.c (expand_omp_for_static_chunk): Handle case that fin_bb has 2
592         predecessors.
594 2015-09-03  Tom de Vries  <tom@codesourcery.com>
596         PR tree-optimization/65637
597         * omp-low.c (find_phi_with_arg_on_edge): New function.
598         (expand_omp_for_static_chunk): Fix inner loop phi.
600 2015-09-03  Tom de Vries  <tom@codesourcery.com>
602         PR tree-optimization/65637
603         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
604         that head is NULL.
606 2015-09-03  Tom de Vries  <tom@codesourcery.com>
608         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
610 2015-09-03  Tom de Vries  <tom@codesourcery.com>
612         * doc/invoke.texi (parloops-chunk-size): Add item.
613         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
614         * tree-parloops.c: Include params.h.
615         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
616         param parloops-chunk-size is used.
618 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
620         PR middle-end/67351
621         * fold-const.c (fold_binary_loc) : Move 
622         Transform (x >> c) << c into x & (-1<<c) or
623         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
624         types using simplify and match.
625         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
626         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
628 2015-09-03  Richard Biener  <rguenther@suse.de>
630         PR ipa/66705
631         * tree-ssa-structalias.c (ctor_for_analysis): New function.
632         (create_variable_info_for_1): Use ctor_for_analysis instead
633         of get_constructor.
634         (create_variable_info_for): Likewise.
636 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
638         PR ipa/67280
639         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
640         in new callgraph edge.
642 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
644         PR target/59810
645         PR target/63652
646         PR target/63653
647         * config/aarch64/aarch64-simd.md
648         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
649         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
650         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
651         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
653 2015-09-02  Alan Modra  <amodra@gmail.com>
655         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
656         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
657         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
659 2015-09-02  Alan Modra  <amodra@gmail.com>
661         PR target/67417
662         * config/rs6000/predicates.md (current_file_function_operand): Don't
663         return true for weak symbols.
664         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
666 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
667             Andrew Bennett  <andrew.bennett@imgtec.com>
669         * config/mips/mips-opts.h (mips_cb_setting): New enum.
670         * config/mips/mips-protos.h: Add definitions for
671         mips_output_jump and mips_output_equal_conditional_branch
672         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
673         JIC instruction.
674         (mips_emit_compare): Add support for the MIPS R6 conditional
675         compact branches.
676         (mips_process_sync_loop): Likewise.
677         (mips_output_order_conditional_branch): Likewise.
678         (mips16_build_call_stub): Change MIPS_CALL to
679         mips_output_jump.
680         (mips_print_operand_punctuation): Update 's' case to only
681         apply to micromips r2.
682         (mips_adjust_insn_length): Add support for forbidden slot
683         hazards.
684         (mips_avoid_hazard): Likewise.
685         (mips_reorg_process_insns): Likewise.
686         (mips_output_jump): New function.
687         (mips_output_equal_conditional_branch): Likewise.
688         (mips_output_conditional_branch): Use jrc/bc if compact
689         branch support is enabled.  Ensure the forbidden slots
690         between the two branch instructions is filled with a nop.
691         (mips_option_override): Add support to process the compact
692         branch option and set the correct defaults.  Prevent
693         non-explict relocs being using for MIPS R6.
694         (mips_trampoline_init): Add compact branch support.
695         (mips_mult_zero_zero_cost): Allow zero initialisation of
696         accumulators with TARGET_DSP.
697         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
698         (TARGET_CB_MAYBE): New define.
699         (TARGET_CB_ALWAYS): New define.
700         (ISA_HAS_DELAY_SLOTS): New define.
701         (ISA_HAS_COMPACT_BRANCHES): New define.
702         (ISA_HAS_JRC): New define.
703         (MIPS_BRANCH_C): New define.
704         (MIPS_CALL): Removed.
705         (MICROMIPS_J): Removed.
706         * config/mips/mips.md (compact_form): New attr.
707         (hazard): Add support for forbidden slots.
708         (define_delay): Add support for compact branches.
709         (*branch_order<mode>): Likewise.
710         (*branch_order<mode>_inverted): Likewise.
711         (*branch_equality<mode>): Likewise.
712         (*branch_equality<mode>_inverted): Likewise.
713         (*jump_absolute): Likewise.
714         (*jump_pic): Likewise.
715         (indirect_jump): Use mips_output_jump to produce assembly output.
716         (tablejump_<mode>"): Likewise.
717         (*<optab>"): Likewise.
718         (<optab>_internal): Likewise.
719         (sibcall_internal): Likewise.
720         (sibcall_value_internal): Likewise.
721         (sibcall_value_multiple_internal): Likewise.
722         (call_internal): Likewise.
723         (call_split): Likewise.
724         (call_internal_direct): Likewise.
725         (call_direct_split): Likewise.
726         (call_value_internal): Likewise.
727         (call_value_split): Likewise.
728         (call_value_internal_direct): Likewise.
729         (call_value_direct_split): Likewise.
730         (call_value_multiple_internal): Likewise.
731         (call_value_multiple_split): Likewise.
732         (mips_get_fcsr_mips16_<mode>): Likewise.
733         (mips_set_fcsr_mips16_<mode>): Likewise.
734         (tls_get_tp_mips16_<mode>): Likewise.
735         * config/mips/mips.opt: Add -mcompact-branches option.
736         * config/mips/predicates.md (order_operator): Ensure the
737         conditional compact branches are only used if the ISA them.
738         * doc/invoke.texi: Document -mcompact-branches option.
740 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
742         PR target/61578
743         * lra-lives.c (process_bb_lives): Process move pseudos with the
744         same value for copies and preferences
745         * lra-constraints.c (match_reload): Create match reload pseudo
746         with the same value from single dying input pseudo.
748 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
750         PR target/67405
751         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
753 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
755         * trans-mem.c: Add contributed-by.
756         * trans-mem.h: Same.
758 2015-09-01  Richard Biener  <rguenther@suse.de>
760         * expr.c (expand_expr_real_1): For expanding TERed defs
761         set the current location to that of the def if not UNKNOWN.
763 2015-09-01  David Sherwood  <david.sherwood@arm.com>
765         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
767 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
769         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
770         then_cost, else_cost fields.  Change branch_cost field to unsigned
771         int.
772         (end_ifcvt_sequence): Call set_used_flags on each insn in the
773         sequence.
774         Include rtl-iter.h.
775         (noce_simple_bbs): New function.
776         (noce_try_move): Bail if basic blocks are not simple.
777         (noce_try_store_flag): Likewise.
778         (noce_try_store_flag_constants): Likewise.
779         (noce_try_addcc): Likewise.
780         (noce_try_store_flag_mask): Likewise.
781         (noce_try_cmove): Likewise.
782         (noce_try_minmax): Likewise.
783         (noce_try_abs): Likewise.
784         (noce_try_sign_mask): Likewise.
785         (noce_try_bitop): Likewise.
786         (bbs_ok_for_cmove_arith): New function.
787         (noce_emit_all_but_last): Likewise.
788         (noce_emit_insn): Likewise.
789         (noce_emit_bb): Likewise.
790         (noce_try_cmove_arith): Handle non-simple basic blocks.
791         (insn_valid_noce_process_p): New function.
792         (contains_mem_rtx_p): Likewise.
793         (bb_valid_for_noce_process_p): Likewise.
794         (noce_process_if_block): Allow non-simple basic blocks
795         where appropriate.
797 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
799         * tree-ssa-dom.c (record_equivalences_from_phis,
800         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
801         (lookup_avail_expr): Likewise, and remove comment and unused temp.
803 2015-09-01  Nick Clifton  <nickc@redhat.com>
805         * config/msp430/msp430.opt (mcpu): Fix typo.
807 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
809         * config/aarch64/aarch64.c (aarch64_set_current_function):
810         Re-layout any vector parameters have non-simd layout.
811         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
812         Delete.
813         (aarch64_simd_expand_args): Delete call to the above.
815 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
817         * doc/invoke.texi (asan-stack): Add space before option.
819 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
821         * tree.h (zerop): New function.
822         * tree.c (zerop): Likewise.
823         (element_precision): Handle expressions.
824         * match.pd (define_predicates): Add zerop.
825         (x <= +Inf): Fix comment.
826         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
827         * fold-const.c (fold_binary_loc): ... here. Remove.
829 2015-08-31  Richard Biener  <rguenther@suse.de>
831         PR middle-end/67381
832         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
834 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
836         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
837         (CEXPI): New operator list.
838         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
839         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
840         Converted from ...
841         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
843 2015-08-31  Tom de Vries  <tom@codesourcery.com>
845         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
846         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
847         parameter.
848         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
849         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
850         (rewrite_into_loop_closed_ssa): ... here.
851         (replace_uses_in_dominated_bbs): Remove function.
852         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
853         rewrite_into_loop_closed_ssa_1.
855 2015-08-31  Michael Matz  <matz@suse.de>
857         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
858         enter entry and exit blocks for reverse post order.
860 2015-08-31  Richard Biener  <rguenther@suse.de>
862         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
863         (lto_location_cache::current_sysp): Likewise.
864         (output_block::current_sysp): Likewise.
865         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
866         (lto_location_cache::apply_location_cache): Properly record
867         system header locations.
868         (lto_location_cache::input_location): Input whether a file
869         is a system header.
870         * lto-streamer-out.c (lto_output_location): Stream whether a file
871         is a system header.
873 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
875         PR bootstrap/67363
876         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
878 2015-08-31  Tom de Vries  <tom@codesourcery.com>
880         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
881         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
882         Improve function header comments.
884 2015-08-30  Michael Collison  <michael.collison@linaro.org>
886         PR other/67320
887         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
888         standard names
890 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
892         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
893         special_handling bitfield.
894         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
895         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
896         that represents a general xxpermdi.
897         (insn_is_swappable_p): Add handling for vec_concat of two
898         doublewords, which maps to a specific xxpermdi.
899         (adjust_xxpermdi): New function.
900         (adjust_concat): Likewise.
901         (handle_special_swappables): Call adjust_xxpermdi and
902         adjust_concat.
903         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
905 2015-08-30  Rich Felker <dalias@libc.org>
907         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
908         case instead of sh[123456ble]-*-*.
910 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
912         * ira.c (print_unform_and_important_classes,
913         print_translated_classes): Remove reg_class_names static array.
914         (print_unform_and_important_classes): Rename to ...
915         (print_uniform_and_important_classes): ... this.
916         (ira_debug_allocno_classes): Update accordingly.
918 2015-08-29  Tom de Vries  <tom@codesourcery.com>
920         PR tree-optimization/46193
921         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
922         clause.
924 2015-08-28  Jeff Law  <law@redhat.com>
926         PR lto/66752
927         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
928         unable to find X NE 0 in the tables, return X as the simplified
929         condition.
930         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
931         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
932         to VISISTED_BBS.
933         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
934         after removing the control flow statement and unnecessary edges.
936 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
938         Revert:
939         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
940                 PR tree-optimization/67283
941                 * tree-sra.c (type_consists_of_records_p): Rename to...
942                 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
944                 (completely_scalarize_record): Rename to...
945                 (completely_scalarize): ...this, add ARRAY_TYPE case, move some
946                  code to:
947                 (scalarize_elem): New.
949 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
951         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
952         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
953         (aarch64_symbol_type): Likewise.
954         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
955         Likewise.
956         (aarch64_expand_mov_immediate): Likewise.
957         (aarch64_print_operand): Likewise.
958         (aarch64_classify_tls_symbol): Likewise.
960 2015-08-28  Richard Biener  <rguenther@suse.de>
962         * cgraphunit.c (symbol_table::compile): Move early debug generation
963         and finish...
964         (symbol_table::finalize_compilation_unit): ... back here and
965         add a !seen_error () guard.
967 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
969         * toplev.c (process_options): Do not use flag_loop_block,
970         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
971         flag_loop_optimize_isl.
973 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
975         * Makefile.in (OBJS): Remove graphite-blocking.o and
976         graphite-interchange.o.
977         * common.opt (floop-strip-mine, floop-interchange, floop-block):
978         Alias of floop-nest-optimize.
979         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
980         Document as alias of -floop-nest-optimize.
981         * graphite-blocking.c: Remove.
982         * graphite-interchange.c: Remove.
983         * graphite-optimize-isl.c: Include dumpfile.h.
984         (getScheduleForBand): Add dump for tiled loops.  Use
985         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
986         * graphite-poly.c (scop_max_loop_depth): Remove.
987         (print_scattering_function_1): Remove.
988         (print_scattering_function): Remove.
989         (print_scattering_functions): Remove.
990         (debug_scattering_function): Remove.
991         (debug_scattering_functions): Remove.
992         (apply_poly_transforms): Remove use of flag_loop_block,
993         flag_loop_strip_mine, and flag_loop_interchange.
994         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
995         PBB_ORIGINAL.
996         (print_pdr_access_layout): Remove.
997         (print_pdr): Print ISL representation.
998         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
999         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
1000         (free_scop): Same.
1001         (openscop_print_pbb_domain): Remove.
1002         (print_pbb): Remove call to print_scattering_function.
1003         (openscop_print_scop_context): Remove.
1004         (print_scop_context): Do not print matrices anymore.
1005         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
1006         SCOP_TRANSFORMED_SCHEDULE.
1007         (print_isl_set): Add printing of a new line.
1008         (print_isl_map): Same.
1009         (print_isl_aff): Same.
1010         (print_isl_constraint): Same.
1011         (loop_to_lst): Remove.
1012         (scop_to_lst): Remove.
1013         (lst_indent_to): Remove.
1014         (print_lst): Remove.
1015         (debug_lst): Remove.
1016         (dot_lst_1): Remove.
1017         (dot_lst): Remove.
1018         (reverse_loop_at_level): Remove.
1019         (reverse_loop_for_pbbs): Remove.
1020         * graphite-poly.h (pdr_dim_iter_domain): Remove.
1021         (pdr_nb_params): Remove.
1022         (pdr_alias_set_dim): Remove.
1023         (pdr_subscript_dim): Remove.
1024         (pdr_iterator_dim): Remove.
1025         (pdr_parameter_dim): Remove.
1026         (same_pdr_p): Remove.
1027         (struct poly_scattering): Remove.
1028         (struct poly_bb): Remove _original, _transformed, _saved.
1029         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
1030         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
1031         (PBB_NB_LOCAL_VARIABLES): Remove.
1032         (PBB_NB_SCATTERING_TRANSFORM): Remove.
1033         (schedule_to_scattering): Remove.
1034         (number_of_write_pdrs): Remove.
1035         (pbb_dim_iter_domain): Remove.
1036         (pbb_nb_params): Remove.
1037         (pbb_nb_scattering_orig): Remove.
1038         (pbb_nb_scattering_transform): Remove.
1039         (pbb_nb_dynamic_scattering_transform): Remove.
1040         (pbb_nb_local_vars): Remove.
1041         (pbb_iterator_dim): Remove.
1042         (pbb_parameter_dim): Remove.
1043         (psco_scattering_dim): Remove.
1044         (psct_scattering_dim): Remove.
1045         (psct_local_var_dim): Remove.
1046         (psco_iterator_dim): Remove.
1047         (psct_iterator_dim): Remove.
1048         (psco_parameter_dim): Remove.
1049         (psct_parameter_dim): Remove.
1050         (psct_dynamic_dim): Remove.
1051         (psct_static_dim): Remove.
1052         (psct_add_local_variable): Remove.
1053         (new_lst_loop): Remove.
1054         (new_lst_stmt): Remove.
1055         (free_lst): Remove.
1056         (copy_lst): Remove.
1057         (lst_add_loop_under_loop): Remove.
1058         (lst_depth): Remove.
1059         (lst_dewey_number): Remove.
1060         (lst_dewey_number_at_depth): Remove.
1061         (lst_pred): Remove.
1062         (lst_succ): Remove.
1063         (lst_find_pbb): Remove.
1064         (find_lst_loop): Remove.
1065         (lst_find_first_pbb): Remove.
1066         (lst_empty_p): Remove.
1067         (lst_find_last_pbb): Remove.
1068         (lst_contains_p): Remove.
1069         (lst_contains_pbb): Remove.
1070         (lst_create_nest): Remove.
1071         (lst_remove_from_sequence): Remove.
1072         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
1073         (lst_niter_for_loop): Remove.
1074         (pbb_update_scattering): Remove.
1075         (lst_update_scattering_under): Remove.
1076         (lst_update_scattering): Remove.
1077         (lst_insert_in_sequence): Remove.
1078         (lst_replace): Remove.
1079         (lst_substitute_3): Remove.
1080         (lst_distribute_lst): Remove.
1081         (lst_remove_all_before_including_pbb): Remove.
1082         (lst_remove_all_before_excluding_pbb): Remove.
1083         (struct scop): Remove original_schedule, transformed_schedule, and
1084         saved_schedule.
1085         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
1086         (SCOP_SAVED_SCHEDULE): Remove.
1087         (poly_scattering_new): Remove.
1088         (poly_scattering_free): Remove.
1089         (poly_scattering_copy): Remove.
1090         (store_scattering_pbb): Remove.
1091         (store_lst_schedule): Remove.
1092         (restore_lst_schedule): Remove.
1093         (store_scattering): Remove.
1094         (restore_scattering_pbb): Remove.
1095         (restore_scattering): Remove.
1096         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
1097         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
1098         compute the scattering polyhedron dimension from the dimension of
1099         pbb->domain.
1100         (build_scop_scattering): Update call to
1101         build_pbb_scattering_polyhedrons.
1102         (build_poly_scop): Remove call to scop_to_lst.
1103         * graphite.c (graphite_transform_loops): Add call to print_scop.
1104         (gate_graphite_transforms): Remove use of flag_loop_block,
1105         flag_loop_interchange, and flag_loop_strip_mine.
1107 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
1109         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
1110         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
1111         -floop-nest-optimize.
1112         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
1113         (generate_luj_sepclass): Remove.
1114         (generate_luj_options): Remove.
1115         (set_options): Remove opt_luj.
1116         (scop_to_isl_ast): Remove opt_luj.
1117         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
1118         flag_loop_unroll_jam.
1119         (getPrevectorMap_full): Remove.
1120         (getScheduleForBandList): Remove map_sepcl.
1121         (getScheduleMap): Same.
1122         (apply_schedule_map_to_scop): Remove sepcl.
1123         (optimize_isl): Same.
1124         * graphite-poly.c (apply_poly_transforms): Remove check for
1125         flag_loop_unroll_jam.
1126         (new_poly_bb): Remove map_sepclass.
1127         * graphite-poly.h (struct poly_bb): Same.
1128         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
1129         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
1130         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
1131         * toplev.c (process_options): Remove flag_loop_unroll_jam.
1133 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
1135         PR target/67317
1136         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
1137         (addqi3_cc): Ditto.
1138         (UNSPEC_ADD_CARRY): Remove.
1139         (addqi3_cconly_overflow): New expander.
1140         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
1141         Adjust for changed add<mode>3_carry.
1142         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
1143         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
1144         (<plusminus_insn><mode>3_carry): Remove expander.
1145         (*<plusminus_insn><mode>3_carry): Split insn pattern to
1146         add<mode>3_carry and sub<mode>3_carry.
1147         (plusminus_carry_mnemonic): Remove code attribute.
1148         (add<mode>3_carry): Canonicalize insn pattern.
1149         (*addsi3_carry_zext): Ditto.
1150         (sub<mode>3_carry): Ditto.
1151         (*subsi3_carry_zext): Ditto.
1152         (adcx<mode>3): Remove insn pattern.
1153         (addcarry<mode>): New insn pattern.
1154         (subborrow<mode>): Ditto.
1155         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
1156         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
1157         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
1158         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
1159         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
1160         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
1161         Rewrite expander to not clobber carry flag chains.
1163 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
1165         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
1166         instead of a rotate.
1168 2015-08-27  Marek Polacek  <polacek@redhat.com>
1170         PR middle-end/67005
1171         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
1172         an entry into an irreducible region.
1174 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1176         * configure: Regenerate.
1178 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
1180         PR tree-optimization/67283
1181         * tree-sra.c (type_consists_of_records_p): Rename to...
1182         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
1184         (completely_scalarize_record): Rename to...
1185         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
1186         (scalarize_elem): New.
1188 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
1190         * tree-sra.c (completely_scalarize_var): Rename to...
1191         (create_total_scalarization_access): ... Here. Drop call to
1192         completely_scalarize_record.
1194         (analyze_all_variable_accesses): Replace completely_scalarize_var
1195         with create_total_scalarization_access and completely_scalarize_record.
1197 2015-08-27  Alan Modra  <amodra@gmail.com>
1199         PR target/67356
1200         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
1201         for operand 1.
1203 2015-08-27  Richard Biener  <rguenther@suse.de>
1205         * passes.c (rest_of_decl_compilation): Guard early_global_decl
1206         call with !seen_error ().
1207         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
1208         early debug generation and finish...
1209         (symbol_table::compile): ... here to put it after a !seen_error ()
1210         guard.
1212 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1214         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
1215         Solaris 12+.
1217 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1218             Andre Vieira  <andre.simoesdiasvieira@arm.com>
1220         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
1221         (*cb<optab><mode>1): Likewise.
1222         (*tb<optab><mode>1): Likewise.
1223         (*cb<optab><mode>1): Likewise.
1224         * config/aarch64/iterators.md (inv_cb): New code attribute.
1225         (inv_tb): Likewise.
1226         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
1227         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
1229 2015-08-27  Richard Biener  <rguenther@suse.de>
1231         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
1233 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1235         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
1236         trap to fix ICE.
1238 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
1240         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
1241         Add declaration.
1243         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
1244         comment.
1245         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
1246         floating point in VSX registers.
1247         (rs6000_output_move_128bit): Always print out the set insn if we
1248         can't generate an appropriate 128-bit move.
1249         (rs6000_generate_compare): Add support for IEEE 128-bit floating
1250         point in VSX registers comparisons.
1251         (rs6000_expand_float128_convert): Likewise.
1253         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
1254         predicate for only GPR hard registers.
1256         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
1257         modes to iterators. Add new iterators for moving 128-bit values in
1258         scalar FPR registers and VSX registers.
1259         (FMOVE128): Likewise.
1260         (FMOVE128_FPR): Likewise.
1261         (FMOVE128_GPR): Likewise.
1262         (FMOVE128_VSX): Likewise.
1263         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
1264         in VSX registers.
1265         (IFKF): Likewise.
1266         (IBM128): Likewise.
1267         (TFIFKF): Likewise.
1268         (RELOAD): Add IEEE 128-bit floating point modes.
1269         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
1270         floating point in VSX registers modes.
1271         (signbit<mode>2, IBM128 iterator): Likewise.
1272         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
1273         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
1274         (negtf2): Likewise.
1275         (neg<mode>2, TFIFKF iterator): Likewise.
1276         (negtf2_internal): Likewise.
1277         (abstf2): Likewise.
1278         (abs<mode>2, TFIFKF iterator): Likewise.
1279         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
1280         VSX insn support for negate, absolute value, and negative absolute
1281         value.
1282         (ieee_128bit_vsx_neg<mode>2): Likewise.
1283         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
1284         (ieee_128bit_vsx_abs<mode>2): Likewise.
1285         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
1286         (ieee_128bit_vsx_nabs<mode>2): Likewise.
1287         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
1288         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
1289         floating point in VSX registers.
1290         (unpack<mode>_dm): Likewise.
1291         (unpack<mode>_nodm): Likewise.
1292         (pack<mode>): Likewise.
1293         (unpackv1ti): Likewise.
1294         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
1295         (packv1ti): Likewise.
1296         (pack<mode>, FMOVE128_VSX iterator): Likewise.
1297         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
1298         registers.
1299         (extenddftf2_internal): Likewise.
1300         (trunctfdf2): Likewise.
1301         (trunctfdf2_internal2): Likewise.
1302         (fix_trunc_helper): Likewise.
1303         (fix_trunctfdi2"): Likewise.
1304         (floatditf2): Likewise.
1305         (floatuns<mode>tf2): Likewise.
1306         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
1307         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
1308         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
1309         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
1310         (float<SDI:mode><IFKF:mode>2): Likewise.
1311         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
1313 2015-08-26  Renlin Li  <renlin.li@arm.com>
1315         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
1317 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1318             Jiong Wang  <jiong.wang@arm.com>
1320         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
1321         (tlsie_tiny_<mode>): New define_insn.
1322         (tlsie_tiny_sidi): Likewise.
1323         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
1324         SYMBOL_TINY_TLSIE.
1325         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
1326         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
1327         SYMBOL_TINY_TLSIE.
1328         (aarch64_expand_mov_immediate): Likewise.
1329         (aarch64_print_operand): Likewise.
1330         (arch64_classify_tls_symbol): Likewise.
1332 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
1334         * config/arm/arm-arches.def: Replace single value flags with
1335         an initializer built from ARM_FSET_MAKE_CPU1.
1336         * config/arm/arm-cores.def: Likewise.
1337         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
1338         derivation from the ARM_CORE macro definition, use the given value
1339         instead.
1340         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
1341         ARM_ARCH macro definition, use the given value instead.
1343 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
1345         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
1346         feature set.
1347         (struct builtin_description): Replace field mask with field
1348         features.
1349         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
1350         (IWMMXT2_BUILTIN): Likewise.
1351         (IWMMXT2_BUILTIN2): Likewise.
1352         (FP_BUILTIN): Likewise.
1353         (CRC32_BUILTIN): Likewise.
1354         (CRYPTO_BUILTIN): Likewise.
1355         (iwmmx_mbuiltin): Likewise.
1356         (iwmmx2_mbuiltin): Likewise.
1357         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
1358         struct builtin_description.
1360 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
1362         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
1363         (struct builtin_description): Change type of mask to unsigned
1364         long.
1365         * config/arm/arm-protos.h (insn_flags): Declare as type
1366         arm_feature_set.
1367         (tune_flags): Likewise.
1368         * config/arm/arm.c (feature_count): New.
1369         (insn_flags): Define as type arm_feature_set.
1370         (tune_flags): Likewise.
1371         (struct processors): Define field flags as type arm_feature_set.
1372         (all_cores): Update for change to struct processors.
1373         (all_architectures): Likewise.
1374         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
1375         macros.
1376         (arm_option_override_internal): Likewise.
1377         (arm_option_override): Likewise.
1379 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1380             Jiong Wang  <jiong.wang@arm.com>
1382         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
1383         tls size for tiny, small, large memory model.
1384         (aarch64_load_symref_appropriately): Support new symbol types.
1385         (aarch64_expand_mov_immediate): Likewise.
1386         (aarch64_print_operand): Likewise.
1387         (aarch64_classify_tls_symbol): Likewise.
1388         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
1389         (aarch64_symbol_type): Likewise.
1390         * config/aarch64/aarch64.md (tlsle): Deleted.
1391         (tlsle12_<mode>): New define_insn.
1392         (tlsle24_<mode>): Likewise.
1393         (tlsle32_<mode>): Likewise.
1394         (tlsle48_<mode>): Likewise.
1395         * doc/sourcebuild.texi (AArch64-specific attributes): Document
1396         "aarch64_tlsle32".
1398 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
1400         * config/arm/arm-protos.h (FL_NONE): New.
1401         (FL_ANY): New.
1402         (arm_feature_set): New.
1403         (ARM_FSET_MAKE): New.
1404         (ARM_FSET_MAKE_CPU1): New.
1405         (ARM_FSET_MAKE_CPU2): New.
1406         (ARM_FSET_CPU1): New.
1407         (ARM_FSET_CPU2): New.
1408         (ARM_FSET_EMPTY): New.
1409         (ARM_FSET_ANY): New.
1410         (ARM_FSET_HAS_CPU1): New.
1411         (ARM_FSET_HAS_CPU2): New.
1412         (ARM_FSET_HAS_CPU): New.
1413         (ARM_FSET_ADD_CPU1): New.
1414         (ARM_FSET_ADD_CPU2): New.
1415         (ARM_FSET_DEL_CPU1): New.
1416         (ARM_FSET_DEL_CPU2): New.
1417         (ARM_FSET_UNION): New.
1418         (ARM_FSET_INTER): New.
1419         (ARM_FSET_XOR): New.
1420         (ARM_FSET_EXCLUDE): New.
1421         (AFM_FSET_IS_EMPTY): New.
1422         (ARM_FSET_CPU_SUBSET): New.
1424 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
1426         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
1427         SYMBOL_TLSLE to SYMBOL_TLSLE24.
1428         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1429         Likewise.
1430         (aarch64_expand_mov_immediate): Likewise.
1431         (aarch64_print_operand): Likewise.
1432         (aarch64_classify_symbol): Likewise.
1434 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
1436         * config/aarch64/aarch64.opt (mtls-size): New entry.
1437         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
1438         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
1439         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
1441 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
1443         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
1444         ARM_CORE entry.  Fix some white-space.
1445         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
1446         ARM_CORE definition.
1448 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1450         * fold-const.c (fold_binary_loc) : Move Optimize 
1451         root(x)*root(y) as root(x*y) to match.pd.
1452         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
1453         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
1454         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
1455         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
1456         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
1457         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
1458         (mult (exps:s @0) (exps:s @1)) : New simplifier.
1459         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
1460         (rdiv @0 (exps:s @1)) : New simplifier.
1462 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
1464         * gcc.c (driver::finalize): Only assign to extra_specs if
1465         [EXTRA_SPECS].
1467 2015-08-25  Marek Polacek  <polacek@redhat.com>
1469         PR middle-end/67330
1470         * varasm.c (declare_weak): Return after giving an error.
1472 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
1474         * gcc-main.c (main): Add params to driver ctor.
1475         * gcc.c (class env_manager): New.
1476         (env): New global.
1477         (env_manager::init): New.
1478         (env_manager::get): New.
1479         (env_manager::xput): New.
1480         (env_manager::restore): New.
1481         Poison getenv and putenv.
1482         (DEFAULT_TARGET_SYSTEM_ROOT): New.
1483         (target_system_root): Update initialization to use
1484         DEFAULT_TARGET_SYSTEM_ROOT.
1485         (struct spec_list): Add field "default_ptr".
1486         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
1487         (init_spec): Likewise.
1488         (set_spec): Clear field "default_ptr".
1489         (read_specs): Free "spec" and "buffer".
1490         (xputenv): Reimplement in terms of env_manager.
1491         (process_command): Replace ::getenv calls with calls to the
1492         env_manager singleton.
1493         (process_brace_body): Free string in three places.
1494         (driver::driver): New.
1495         (driver::~driver): New.
1496         (used_arg): Convert from a function to...
1497         (class used_arg_t): ...this class, and...
1498         (used_arg): ...this new global instance.
1499         (used_arg_t::finalize): New function.
1500         (getenv_spec_function): Add "const" to local "value".  Replace
1501         ::getenv call with call to the env_manager singleton.
1502         (path_prefix_reset): New function.
1503         (driver::finalize): New function.
1504         * gcc.h (driver::driver): New.
1505         (driver::~driver): New.
1506         (driver::finalize): New.
1508 2015-08-25  Nathan Sidwell  <nathan@acm.org>
1510         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
1511         target doesn't have one.
1513 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
1515         PR target/67346
1516         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
1518 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
1520         PR target/67344
1521         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
1522         a define_insn, remove second alternative.
1524 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
1525             Joseph Myers  <joseph@codesourcery.com>
1527         * gcc.c (struct switchstr): Expand comment.
1529 2015-08-25  Nathan Sidwell  <nathan@acm.org>
1531         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
1532         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
1534 2015-08-25  Richard Biener  <rguenther@suse.de>
1536         PR middle-end/67306
1537         * genmatch.c (expr::gen_transform): Verify the result of
1538         builtin_decl_implicit.
1539         (dt_simplify::gen_1): Likewise.
1541 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1543         * config/arm/constraints.md: Also list Cs and US ARM-specific
1544         constraints as used.
1546 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1548         PR target/66609
1549         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
1550         UNSPEC_PCREL.
1551         (nonpic_symbol_mentioned_p): Likewise.
1552         (sh_delegitimize_address): Likewise.
1553         (sh_function_ok_for_sibcall): Take into account weak symbols.
1554         (sh_expand_sym_label2reg): New.
1555         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
1556         * config/sh/sh.md (UNSPEC_PCREL): New enum.
1557         (call_pcrel): Use sh_expand_sym_label2reg.
1558         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
1559         (symPCREL_label2reg) New expand.
1561 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
1563         * graphite-poly.c: Change type of region from void* to sese.
1564         * graphite-poly.h (struct scop): Changing the type of scop::region
1565         from void* to sese. Change accessor macro accordingly.
1566         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
1568 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
1570         * graphite-scop-detection.c (stmt_simple_for_scop_p):
1571         Constrain only on INTEGER_TYPE.
1573 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1575         PR target/67211
1576         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
1577         -mefficient-unaligned-vsx on ISA 2.7.
1579         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
1580         option to a masked option.
1582         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
1583         logic for -mefficient-unaligned-vsx so that it is set via an arch
1584         ISA option, instead of being set if -mtune=power8 is set. Move
1585         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
1586         near other default option handling.
1588 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1590         * genflags.c (gen_macro): Delete.
1591         (gen_proto): Don't create GEN.*CALL.* macros.
1592         * gensupport.h (get_file_location): Declare.
1593         * gensupport.c (rtx_locs): New variable.
1594         (read_md_rtx): Record rtx locations.
1595         (get_file_location): New function.
1596         * target-insns.def (call, call_pop, call_value, call_value_pop)
1597         (sibcall, sibcall_value): New patterns.
1598         * gentarget-def.c (parse_argument): New function.
1599         (def_target_insn): Use it.  Handle optional operands.  Raise an
1600         error if an .md pattern has the wrong number of operands for the
1601         pattern name.  Remove the names of unused operands from the prototype.
1602         * builtins.c (expand_builtin_apply): Use targetm functions
1603         instead of HAVE_call_value and GEN_CALL_VALUE.
1604         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
1605         and sibcall_value_pop.
1606         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
1607         of GEN_CALL.
1608         * config/alpha/alpha.md (untyped_call): Likewise.
1609         * config/iq2000/iq2000.md (untyped_call): Likewise.
1610         * config/m68k/m68k.md (untyped_call): Likewise.
1611         * config/mips/mips.md (untyped_call): Likewise.
1612         * config/pa/pa.md (untyped_call): Likewise.
1613         * config/rs6000/rs6000.md (untyped_call): Likewise.
1614         * config/sparc/sparc.md (untyped_call): Likewise.
1615         * config/tilegx/tilegx.md (untyped_call): Likewise.
1616         * config/tilepro/tilepro.md (untyped_call): Likewise.
1617         * config/visium/visium.md (untyped_call): Likewise.
1618         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
1619         gen_call_value instead of GEN_CALL_VALUE.
1620         * config/arm/arm.md (untyped_call): Likewise.
1621         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
1622         GEN_CALL.
1624 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1626         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
1627         (have_cbranchcc4): New variable.
1628         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
1629         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
1630         (if_convert): Initialize have_cbranchcc4.
1632 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1634         * builtins.c (expand_cmpstrn): Rename to...
1635         (expand_cmpstrn_or_cmpmem): ...this.
1636         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
1637         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
1638         Remove mode argument.
1639         (expand_builtin): Update accordingly.
1641 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1643         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
1644         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
1645         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
1646         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
1647         Add predicates for operands 0 and 3.
1648         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
1649         operand.
1650         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
1651         immediate_operand to nonmemory_operand.
1653 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1655         * df-scan.c (df_insn_info_init_fields): New function, split out
1656         from...
1657         (df_insn_create_insn_record): ...here.
1658         (df_insn_info_free_fields): New function, split out from...
1659         (df_insn_info_delete): ...here.
1660         (df_insn_rescan): Use the new functions instead of freeing and
1661         reallocating the df_insn_info.
1663 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1665         * doc/install.texi (Binaries): Remove links no longer valid.
1667 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1669         * config/nvptx/mkoffload.c (process): Replace
1670         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
1672 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
1674         PR target/67329
1675         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
1677 2015-08-24  Renlin Li  <renlin.li@arm.com>
1679         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
1680         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
1681         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
1682         * config/arm/constraints.md ("j"): Add check for high code.
1684 2015-08-24  Tom de Vries  <tom@codesourcery.com>
1686         PR tree-optimization/65468
1687         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
1688         chunk_size is one.
1690 2015-08-24  Nathan Sidwell  <nathan@acm.org>
1692         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
1693         change to nvptx_type_from_mode call. Use arg_promotion for both
1694         split and non-split args.
1696 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1698         * target-insns.def (movstr): New pattern.
1699         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
1700         (expand_movstr): Use targetm rather than HAVE_movstr/
1701         CODE_FOR_movstr.
1703 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
1705         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
1706         cast syntax.
1708 2015-08-24  Andrew Pinski  <apinski@cavium.com>
1710         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
1711         AARCH64_EXTRA_TUNING_OPTION.
1712         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
1713         (aarch64_extra_tuning_flags): Base the shifted value on the index instead
1714         of the argument to AARCH64_EXTRA_TUNING_OPTION.
1715         * config/aarch64/aarch64.c: Remove the last argument to
1716         AARCH64_EXTRA_TUNING_OPTION.
1718 2015-08-23  Nathan Sidwell  <nathan@acm.org>
1720         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
1721         decls.
1722         (nvptx_declare_function_name): Insert formatting tabs for
1723         consistency.
1725 2015-08-23  Tom de Vries  <tom@codesourcery.com>
1727         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
1728         parm_decl, rather than generating a dummy default def in cfun.
1729         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
1730         ssa_name from cfun and child_fn do not share a stmt as def stmt.
1731         (move_stmt_op): Handle PARM_DECl.
1732         (gather_ssa_name_hash_map_from): New function.
1733         (move_sese_region_to_fn): Add default defs for function params, and add
1734         them to vars_map.  Release copied ssa names.
1735         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
1737 2015-08-23  Tom de Vries  <tom@codesourcery.com>
1739         * doc/sourcebuild.texi: Rename vect_no_int_max with
1740         vect_no_int_min_max.  Update description.
1742 2015-08-22  Andrew Pinski  <apinski@cavium.com>
1744          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
1745         * config/aarch64/aarch64-protos.h
1746         (aarch64_fusion_pairs_index): New enum.
1747         (aarch64_fusion_pairs): Base the shifted value on the index instead
1748         Rewrite AARCH64_FUSE_ALL to be based on the end index.
1749         of the argument to AARCH64_FUSION_PAIR.
1750         * config/aarch64/aarch64.c: Remove the last argument to
1751         AARCH64_FUSION_PAIR.
1753 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
1755         * dominance.c (new_zero_array): Define.
1756         (dom_info): Redefine as class with proper encapsulation.
1757         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
1758         Add new members.
1759         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
1760         allocations/deallocations.  Pass function as parameter (instead of
1761         using cfun).
1762         (dom_info::get_idom): Define accessor method.
1763         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
1764         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
1765         (calculate_dominance_info): Adjust to use dom_info class.
1766         (verify_dominators): Likewise.
1768 2015-08-21  Alexandre Oliva <aoliva@redhat.com>
1770         * print-rtl.c (print_rtx): Check the correct range for
1771         flag_dump_unnumbered_links to behave as documented.
1773         PR rtl-optimization/67227
1774         PR rtl-optimization/64164
1775         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
1776         (nonoverlapping_memrefs_p): Test offsets and sizes when given
1777         identical gimple_reg exprs.
1779 2015-08-21  Nathan Sidwell  <nathan@acm.org>
1781         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
1782         expansion.
1783         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
1784         crtl->stack_alignment_needed to determine alignment.
1785         (nvptx_get_drap_rtx): New.
1786         (TARGET_GET_DRAP_RTX): Override.
1787         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
1789 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1791         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
1793 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1795         * configure.ac: Remove uwin* cases.
1796         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
1797         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
1798         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
1799         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
1800         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
1801         i[34567]86-*-uwin*, powerpc-*-beos*.
1803 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
1805         * gencodes.c (gencodes): Print the comma for the preceding
1806         enum value rather than the current one.  Use aliased enum values
1807         rather than #defines for compiled-out patterns.
1808         (main): Update accordingly.  Replace LAST_INSN_CODE with
1809         NUM_INSN_CODES.
1810         * lra.c (insn_code_data): Update accordingly.
1811         (finish_insn_code_data_once, get_static_insn_data): Likewise.
1812         * recog.h (target_recog): Likewise.
1813         (preprocess_insn_constraints): Change parameter to unsigned int.
1814         * recog.c (preprocess_insn_constraints): Likewise.
1815         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
1816         * tree-vect-stmts.c (vectorizable_operation): Simplify.
1818 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
1820         PR rtl-optimization/61657
1821         * loop-iv.c (iv_number_of_iterations): Declare up and down as
1822         unsigned.  Remove superflous uint64_t cast.
1824 2014-08-21  Felix Yang  <felix.yang@huawei.com>
1825             Jiji Jiang  <jiangjiji@huawei.com>
1827         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument
1828         and get builtin function code directly from CALL.
1829         (gimple_stringop_fixed_value): Modified accordingly.
1830         (gimple_stringops_transform, gimple_stringops_values_to_profile): Modified
1831         accordingly and only accept BUILT_IN_NORMAL string operations.
1833 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1835         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
1837 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1839         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
1840         to match.pd.
1841         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
1842         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
1843         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
1844         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
1845         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
1846         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
1847         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
1848         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
1849         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
1850         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
1852         * match.pd (SIN ) : New Operator.
1853         (TAN) : New Operator.
1854         (mult (SQRT@1 @0) @1) : New simplifier.
1855         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
1856         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
1857         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
1858         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
1859         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
1860         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
1861         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
1862         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
1863         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
1864         (rdiv @0 (POW:s @1 @2)) : New simplifier.
1866 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
1868         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
1869         loop if EXPR is simplified to const value.
1871 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
1873         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
1874         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
1876 2015-08-21  Richard Biener  <rguenther@suse.de>
1878         PR middle-end/67285
1879         * gimple-fold.c (replace_stmt_with_simplification): Assert
1880         seq is empty when replacing a call with itself but different
1881         arguments.
1882         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
1883         a call require that it is const.
1885 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1887         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
1888         * builtins.c (get_object_alignment_2): Adjust.
1889         * varasm.c (align_variable): Likewise.
1890         (get_variable_align): Likewise.
1891         (build_constant_desc): Likewise.
1892         (force_const_mem): Likewise.
1893         * doc/tm.texi.in: Likewise.
1894         * doc/tm.texi: Regenerate.
1896 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1898         * genconfig.c (main): Always define HAVE_cc0.
1899         * recog.c (rest_of_handle_peephole2): Adjust.
1901 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1903         * reorg.c (relax_delay_slots): Don't use #if to check value of
1904         HAVE_cc0.
1906 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1908         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
1909         * targhooks.c (default_have_conditional_execution): Adjust.
1911 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1913         * rtl.h (rtvec_all_equal_p): Declare.
1914         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
1915         * rtl.c (rtvec_all_equal_p): New function.
1916         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
1917         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
1918         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
1919         * config/arm/arm.c (neon_vdup_constant): Likewise.
1920         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
1921         * config/tilegx/constraints.md (W, Y): Likewise.
1922         * config/tilepro/constraints.md (W, Y): Likewise.
1923         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
1924         (classify_immediate): Use unwrap_const_vec_duplicate.
1925         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
1926         (reg_or_v2s8bit_operand): Likewise.
1927         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
1928         (reg_or_v4s8bit_operand): Likewise.
1930 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1932         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
1933         (vec_shasigma_be): New #define.
1934         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
1935         (VPMSUMH): Likewise.
1936         (VPMSUMW): Likewise.
1937         (VPMSUMD): Likewise.
1938         (VPMSUM): New BU_P8V_OVERLOAD_2.
1939         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
1940         entries for VEC_MADD and VEC_VPMSUM.
1942 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
1944         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
1945         Multiply argument avr_n_flash by 64 to match unit of "KiB".
1946         (avr_pgm_check_var_decl): Same.
1948 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
1950         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
1951         initialization of HFmode scalar type (float16_t) to...
1952         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
1953         code.
1955         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
1957         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
1958         having an -mfp16-format.
1960 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
1962         * config/i386/predicates.md (vector_all_ones_operand): Use
1963         CONSTM1_RTX to simplify definition.
1965 2015-08-20  Richard Biener  <rguenther@suse.de>
1967         * toplev.c (compile_file): Remove loop calling late_global_decl
1968         on all symbols.
1969         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
1970         on decls we assembled.
1972 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
1974         * common/config/aarch64/aarch64-common.c
1975         (AARCH64_CPU_NAME_LENGTH): Delete.
1976         (aarch64_option_extension): New.
1977         (all_extensions): Likewise.
1978         (processor_name_to_arch): Likewise.
1979         (arch_to_arch_name): Likewise.
1980         (all_cores): New.
1981         (all_architectures): Likewise.
1982         (aarch64_get_extension_string_for_isa_flags): Likewise.
1983         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
1984         architecture names.
1985         * config/aarch64/aarch64-protos.h
1986         (aarch64_get_extension_string_for_isa_flags): New.
1987         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
1988         (aarch64_option_print): Get the string to print from
1989         aarch64_get_extension_string_for_isa_flags.
1990         (aarch64_declare_function_name): Likewise.
1991         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
1992         (MCPU_TO_MARCH_SPEC): This.
1993         (ASM_CPU_SPEC): Use it.
1994         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
1995         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
1996         (EXTRA_SPEC_FUNCTIONS): Use it.
1998 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
2000         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
2001         expansion when !ISA_HAS_LWL_LWR.
2002         (mips_block_move_straight): Update the size of elements copied to
2003         account for alignment when !ISA_HAS_LWL_LWR.
2004         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
2006 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
2008         * expr.c (expand_expr_real_2): Check gimple statement during
2009         LSHIFT_EXPR expand.
2011 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
2013         * common.opt (fstack-protector): Initialize to -1.
2014         (fstack-protector-all): Likewise.
2015         (fstack-protector-strong): Likewise.
2016         (fstack-protector-explicit): Likewise.
2017         * configure.ac: Add --enable-default-ssp.
2018         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
2019         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
2020         -1.
2021         * doc/install.texi: Document --enable-default-ssp.
2022         * config.in: Regenerated.
2023         * configure: Likewise.
2025 2015-08-19  Alexandre Oliva <aoliva@redhat.com>
2027         PR rtl-optimization/64164
2028         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
2029         (parm_in_stack_slot_p): ... this.  Disregard mode, what
2030         matters is whether the parm will live in a pseudo or a stack
2031         slot.
2032         (expand_one_ssa_partition): Deal with params without a default
2033         def.  Disregard mode.
2034         * cfgexpand.h: Renamed function declaration.
2035         * tree-ssa-coalesce.c: Adjust.
2036         * function.c (split_complex_args): Allocate stack slot for
2037         unassigned parms before splitting.
2038         (parm_in_unassigned_mem_p): New.  Use it instead of
2039         parm_maybe_byref_p throughout this file.
2040         (assign_parm_setup_block): Use it.  Accept pseudos in the
2041         expand-assigned rtl.
2042         (assign_parm_setup_reg): Drop BLKmode requirement.
2043         (assign_parm_setup_stack): Allocate and fill in the address of
2044         unassigned MEM parms.
2046 2015-08-19  David Sherwood  <david.sherwood@arm.com>
2048         * genmodes.c (emit_mode_unit_size_inline): New function.
2049         (emit_mode_unit_precision_inline): New function.
2050         (emit_insn_modes_h): Emit new #define.  Emit new functions.
2051         (emit_mode_unit_size): New function.
2052         (emit_mode_unit_precision): New function.
2053         (emit_mode_adjustments): Add mode_unit_size adjustments.
2054         (emit_insn_modes_c): Emit new arrays.
2055         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
2056         use new inline methods.
2058 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2060         * config/aarch64/aarch64.c (bit_count): Delete prototype
2061         and definition.
2062         (aarch64_print_operand): Use popcount_hwi instead of the above.
2064 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2066         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
2067         comment.
2069 2015-08-19  Marek Polacek  <polacek@redhat.com>
2071         PR middle-end/67133
2072         * gimple-ssa-isolate-paths.c
2073         (insert_trap_and_remove_trailing_statements): Rename to ...
2074         (insert_trap): ... this.  Don't remove trailing statements; split
2075         block instead.
2076         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
2078 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
2080         PR other/67042
2081         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
2082         conditionalize the whole on __GNUC__.  Add fallback code
2083         depending neither on undefined nor implementation-defined behaviour.
2085 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
2087         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
2088         whitespaces with tab.
2090 2015-08-19  Florian Weimer  <fweimer@redhat.com>
2092         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
2093         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
2094         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
2095         Move Name_Ids instantiation to the Prj.Proc package, to avoid
2096         trampolines.
2098 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2100         * config/arm/arm.c (bounds_check): Use %wd print format
2101         for HOST_WIDE_INT arguments.
2103 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
2105         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
2106         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
2107         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
2108         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
2109         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
2110         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
2111         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
2112         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
2113         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
2114         typedefs.
2116 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
2118         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
2119         function.c, graphite-scop-detection.c, haifa-sched.c,
2120         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
2121         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
2122         varasm.c: Remove typedefs of structs.
2124 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
2126         * config/rs6000/altivec.h (vec_adde): New define.
2127         (vec_addec): Likewise.
2128         (vec_double): Likewise.
2129         (vec_bperm): Likewise.
2130         (vec_gb): Likewise.
2131         * config/rs6000/rs6000-builtin.def (ADDE): New
2132         BU_ALTIVEC_OVERLOAD_3.
2133         (ADDEC): Likewise.
2134         (DOUBLE): New BU_VSX_OVERLOAD_1.
2135         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
2136         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
2137         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
2138         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
2139         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
2140         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
2141         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
2142         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
2143         and P8V_BUILTIN_VEC_VBPERMQ.
2145 2015-08-18  Jason Merrill  <jason@redhat.com>
2147         * print-tree.c (print_node): Handle TREE_BINFO.
2149 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2151         PR middle-end/36757
2152         * builtins.c (expand_builtin_signbit): Add asserts to make sure
2153         we can expand BUILT_IN_SIGNBIT inline.
2154         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
2155         * doc/extend.texi: Document the type-generic __builtin_signbit.
2157 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
2159         PR rtl-optimization/67218
2160         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
2161         (simplify_unary_operation_1): Use it.
2163 2015-08-18  Marek Polacek  <polacek@redhat.com>
2165         PR middle-end/67222
2166         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
2167         if the call isn't valid.
2168         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
2169         gimple_call_builtin_p.
2170         (call_may_clobber_ref_p_1): Likewise.
2171         (stmt_kills_ref_p): Likewise.
2173 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
2175         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
2176         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
2177         (mips_hard_regno_scratch_ok): Likewise.
2178         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
2179         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
2181 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
2183         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
2184         (determine_value_range): Call refine_value_range_using_guard for
2185         each loop initial condition to improve value range.
2187 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
2189         * config/i386/i386.c: Remove include of fibheap.h.
2191 2015-08-17  Richard Biener  <rguenther@suse.de>
2193         PR tree-optimization/67221
2194         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
2195         (sccvn_dom_walker::before_dom_children): Mark backedges of
2196         non-executable blocks as not executable.
2198 2015-08-17  David Sherwood  <david.sherwood@arm.com>
2200         * config/arm/arm.c (neon_element_bits): Replace call to
2201         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
2202         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
2203         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
2204         (neon_vdup_lane<mode>): Likewise.
2205         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
2206         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
2207         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
2208         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
2209         * config/spu/spu.c (arith_immediate_p): Likewise.
2210         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
2211         * expr.c (expand_expr_real_2): Likewise.
2212         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
2213         * simplify-rtx.c (simplify_immed_subreg): Likewise.
2214         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
2215         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
2216         New variable.
2217         * fold-const.c (fold_binary_loc): Replace call to
2218         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
2219         GET_MODE_UNIT_PRECISION (m).
2221 2015-08-17  Mike Stump  <mikestump@comcast.net>
2223         * config/arm/arm.c (arm_block_move_unaligned_straight):
2224         Emit normal move instead of unaligned load when source or destination
2225         are appropriately aligned.
2227 2015-08-17  Richard Biener  <rguenther@suse.de>
2228             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2230         PR middle-end/16107
2231         * match.pd (div (coss (op @0) : New simplifier.
2233 2015-08-14  Alexandre Oliva <aoliva@redhat.com>
2235         PR rtl-optimization/64164
2236         PR bootstrap/66978
2237         PR middle-end/66983
2238         PR rtl-optimization/67000
2239         PR middle-end/67034
2240         PR middle-end/67035
2241         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
2242         * tree-ssa-copyrename.c: Removed.
2243         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
2244         -ftree-coalesce-vars.
2245         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
2246         * common.opt (ftree-copyrename): Ignore.
2247         (ftree-coalesce-inlined-vars): Likewise.
2248         * doc/invoke.texi: Remove the ignored options above.
2249         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
2250         * tree-ssa-coalesce.h: ... here.
2251         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
2252         headers required by it.
2253         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
2254         across variables when flag_tree_coalesce_vars.  Check register
2255         use and promoted modes to allow coalescing.  Do not coalesce
2256         maybe-byref parms with SSA_NAMEs of other variables, or
2257         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
2258         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
2259         with its member functions to tree-ssa-coalesce.c.
2260         (var_map_base_init): Likewise.  Renamed to
2261         compute_samebase_partition_bases.
2262         (partition_view_normal): Drop want_bases parameter.
2263         (partition_view_bitmap): Likewise.
2264         * tree-ssa-live.h: Adjust declarations.
2265         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
2266         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
2267         default defs at the entry point.
2268         (dump_part_var_map): New.
2269         (compute_optimized_partition_bases): New, called by...
2270         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
2271         of compute_samebase_partition_bases.  Adjust.
2272         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
2273         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
2274         (ssa_default_def_partition): New.
2275         (get_rtl_for_parm_ssa_default_def): New.
2276         (align_local_variable, add_stack_var): Support anonymous SSA
2277         names.
2278         (defer_stack_allocation): Likewise.  Declare earlier.
2279         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
2280         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
2281         Do no record deferred-allocation marker in
2282         SA.partition_to_pseudo.
2283         (expand_stack_vars): Adjust check for the marker in it.
2284         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
2285         redundant MEM attr setting.
2286         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
2287         from...
2288         (expand_one_stack_var): ... this.  New wrapper to check and
2289         skip already expanded SSA partitions.
2290         (record_alignment_for_reg_var): New, factored out of...
2291         (expand_one_var): ... this.
2292         (expand_one_ssa_partition): New.
2293         (adjust_one_expanded_partition_var): New.
2294         (expand_one_register_var): Check and skip already expanded SSA
2295         partitions.
2296         (expand_used_vars): Don't create DECLs for anonymous SSA
2297         names.  Expand all SSA partitions, then adjust all SSA names.
2298         (pass::execute): Replace the loops that set
2299         SA.partition_to_pseudo from partition leaders and cleared
2300         DECL_RTL for multi-location variables, and that which used to
2301         rename vars and set attrs, with one that clears DECL_RTL and
2302         checks that PARMs and RESULTs default_defs match DECL_RTL.
2303         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
2304         * emit-rtl.c: Include stor-layout.h.
2305         (set_reg_attrs_for_parm): Handle NULL decl.
2306         (set_reg_attrs_for_decl_rtl): Take mode from expression if
2307         it's not a DECL.
2308         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
2309         rather than its possibly-NULL DECL.
2310         * explow.c (promote_ssa_mode): New.
2311         * explow.h (promote_ssa_mode): Declare.
2312         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
2313         (read_complex_part): Export.
2314         * expr.h (read_complex_part): Declare.
2315         * cfgexpand.h (parm_maybe_byref_p): Declare.
2316         * function.c: Include cfgexpand.h.
2317         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
2318         (use_register_for_parm_decl): Wrapper for the above to
2319         special-case the result_ptr.
2320         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
2321         (split_complex_args): Take assign_parm_data_all argument.
2322         Pass it to rtl_for_parm.  Set up rtl and context for split
2323         args.  Reset complex parm before fetching its default decl
2324         rtl.
2325         (assign_parms_unsplit_complex): Use the default-def complex
2326         parm rtl if it matches the components.
2327         (assign_parms_augmented_arg_list): Adjust.
2328         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
2329         multiple locations.  Recognize split complex args.
2330         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
2331         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
2332         (assign_parm_setup_block): Prefer SSA-assigned location, and
2333         fill in its address if the memory location of a maybe-byref
2334         parm was not assigned by cfgexpand.
2335         (assign_parm_setup_reg): Likewise.  Adjust its mode as
2336         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
2337         sure passed_pointer parms don't need conversion.  Copy address
2338         or value as needed.
2339         (assign_parm_setup_stack): Prefer SSA-assigned location.
2340         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
2341         rtl before testing for pointer bounds.  Special-case result_ptr.
2342         (expand_function_start): Maybe reset DECL_RTL of result.
2343         Prefer SSA-assigned location for result and static chain.
2344         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
2345         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
2346         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
2347         anonymous SSA names.  Use promote_ssa_mode.
2348         (get_temp_reg): Likewise.
2349         (remove_ssa_form): Adjust.
2350         * stor-layout.c (layout_decl): Don't set mem attributes of
2351         non-MEMs.
2352         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
2353         and get its reg_usage for reg invalidation.
2354         (compute_bb_dataflow): Pass it insn.
2355         (emit_notes_in_bb): Likewise.
2357 2015-08-14  Marek Polacek  <polacek@redhat.com>
2359         * tree-core.h (tree_base): Fix typo.
2361 2015-08-14  Marek Polacek  <polacek@redhat.com>
2363         PR middle-end/67133
2364         * gimple.c (infer_nonnull_range_by_attribute): Check that the
2365         nonnull argument position is not outside function arguments.
2367 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
2369         PR target/67143
2370         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
2371         'lconst_atomic' with 'const_atomic'.
2372         (atomic_fetch_<optab><mode>): Likewise.
2373         (atomic_<optab>_fetch<mode>): Likewise.
2374         * config/aarch64/iterators.md (lconst-atomic): Move below
2375         'const_atomic'.
2376         (const_atomic): New.
2378 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
2379             Bernd Schmidt  <bernds@codesourcery.com>
2381         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
2382         debug options.
2383         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
2384         (DWARF2_DEBUGGING_INFO): Don't define.
2385         * debug.h (dwarf2_lineno_debug_hooks): Declare.
2386         * toplev.c (process_options): Add a case for it.
2387         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
2388         (dwarf2out_init): Skip most initializations if
2389         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
2390         case.
2391         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
2392         DWARF2_LINENO_DEBUGGING_INFO.
2393         * opts.c (set_debug_level): Likewise.
2395 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
2397         * config/arm/types.md (is_neon_type): Add missing types.
2399 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
2401         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
2402         for skylake.
2403         * config/i386/i386.c (PTA_SKYLAKE): New macros.
2404         (processor_alias_table): Add skylake description.
2405         (enum processor_model): Add skylake processor.
2406         (arch_names_table): Add skylake record.
2407         * doc/invoke.texi: Add skylake item.
2409 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
2411         * ira-int.h: Include recog.h.
2412         * ira-build.c: Don't include recog.h.
2413         * ira-color.c: Likewise.
2414         * ira-conflicts.c: Likewise.
2415         * ira-costs.c: Likewise.
2416         * ira-emit.c: Likewise.
2417         * ira-lives.c: Likewise.
2418         * ira.c: Likewise.
2419         * sched-deps.c: Likewise.
2420         * sel-sched.c: Likewise.
2421         * target-globals.c: Likewise.
2423 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
2425         PR bootstrap/55035
2426         * reload1.c (elimination_costs_in_insn): Make it obvious to the
2427         compiler that the n_dups and n_operands loop bounds are invariant.
2429 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2431         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
2432         expressions in A and B.
2434 2015-08-13  Richard Biener  <rguenther@suse.de>
2436         * tree.c (nonnull_arg_p): Move from ...
2437         * tree-vrp.c (nonnull_arg_p): ... here.
2438         * tree.h (nonnull_arg_p): Declare.
2439         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
2440         here, register ptr != 0 for nonnull_arg_p pointer arguments.
2441         Properly initialize static chain and by-reference result pointer.
2442         (run_scc_vn): Adjust.
2444 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
2446         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
2447         TUNE_I6400.
2449 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
2451         * config/aarch64/aarch64-protos.h
2452         (aarch64_gen_atomic_cas): Declare.
2453         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
2454         Choose appropriate instruction pattern for the target.
2455         (aarch64_gen_atomic_cas): New.
2456         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
2457         (atomic_compare_and_swap<mode>_1): Rename to
2458         aarch64_compare_and_swap<mode>.  Fix some indentation.
2459         (aarch64_compare_and_swap<mode>_lse): New.
2460         (aarch64_atomic_cas<mode>): New.
2462 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
2464         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
2465         (TARGET_LSE): New.
2467 2015-08-13  Richard Biener  <rguenther@suse.de>
2469         PR tree-optimization/67191
2470         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
2471         assert we value-numbered last stmts operand because it can validly
2472         trigger for unreachable code.
2474 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2476         PR rtl-optimization/67103
2477         * ifcvt.c (noce_try_store_flag_constants): Move
2478         x = (-(test != 0) & (b - a)) + a transformation to...
2479         (noce_try_cmove): ... Here.  Try it if normal conditional
2480         move fails.
2482 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
2484         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
2485         pseudo-processors.
2486         * config/mips/mips.md (processor): Remove w32 and w64.
2488 2015-08-13  Richard Biener  <rguenther@suse.de>
2490         PR tree-optimization/66502
2491         PR tree-optimization/67167
2492         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
2493         backedge arguments.
2494         (vn_phi_lookup): Adjust.
2495         (vn_phi_insert): Likewise.
2496         (visit_phi): Prefer to value-number to another PHI node
2497         over value-numbering to a PHI argument.
2498         (init_scc_vn): Mark DFS back edges.
2500 2015-08-13  Richard Biener  <rguenther@suse.de>
2502         * gimple.h (gcall::code_): New constant static member.
2503         (gcond::code_): Likewise.
2504         * gimple.c (gcall::code_): Define.
2505         (gcond::code_): Likewise.
2506         (is_a_helper <const gcond *>): Add.
2507         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
2508         and forward to a new gcall overload with less checking and a
2509         cheaper way to access the operand.
2510         (gimple_call_lhs_ptr): Likewise.
2511         (gimple_call_set_lhs): Likewise.
2512         (gimple_call_internal_p): Likewise.
2513         (gimple_call_with_bounds_p): Likewise.
2514         (gimple_call_set_with_bounds): Likewise.
2515         (gimple_call_internal_fn): Likewise.
2516         (gimple_call_set_ctrl_altering): Likewise.
2517         (gimple_call_ctrl_altering_p): Likewise.
2518         (gimple_call_fntype): Likewise.
2519         (gimple_call_fn): Likewise.
2520         (gimple_call_fn_ptr): Likewise.
2521         (gimple_call_set_fndecl): Likewise.
2522         (gimple_call_fndecl): Likewise.
2523         (gimple_call_chain): Likewise.
2524         (gimple_call_num_args): Likewise.
2525         (gimple_call_arg): Likewise.
2526         (gimple_call_arg_ptr): Likewise.
2527         (gimple_call_set_arg): Likewise.
2528         (gimple_call_noreturn_p): Likewise.
2529         (gimple_cond_code): Likewise.
2530         (gimple_cond_lhs): Likewise.
2531         (gimple_cond_rhs): Likewise.
2532         (gimple_has_lhs): Reduce checking.
2534 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2536         PR middle-end/25529
2537         * match.pd (div (mult @0 @1) @1) : New simplifier.
2539 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2541         PR target/67071
2542         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
2543         predicate to allow construction of vector constants using the
2544         VSLDOI vector shift instruction.
2546         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
2547         declaration.
2549         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
2550         the number of bytes to be shifted left and filled in with either
2551         all zero or all one bits.
2552         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
2553         methods exist.
2554         (output_vec_const_move): On power8, generate XXLORC to generate
2555         a vector constant with all 1's. Do a split if we need to use a
2556         VSLDOI instruction.
2558         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
2559         properly test for the MSB.
2561         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
2562         vector constants that can be created with VSLDOI.
2564 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
2566         revert:
2567         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
2568         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
2569         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
2570         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
2571         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
2572         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
2573         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
2574         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
2575         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
2577 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
2579         * config/xtensa/constraints.md (define_constraint "Y"): New
2580         constraint.
2581         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
2582         * config/xtensa/linux.h (ASM_SPEC): Likewise.
2583         * config/xtensa/predicates.md (move_operand): Match constants
2584         and symbols in the presence of TARGET_AUTO_LITPOOLS.
2585         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
2586         immediate references to TLS data.
2587         (xtensa_emit_move_sequence): Don't force constants to memory in
2588         the presence of TARGET_AUTO_LITPOOLS.
2589         (print_operand): Add 'y' format, same as default, but capable of
2590         printing SF mode constants as well.
2591         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
2592         (movsf_internal): Add movi pattern that loads literal.
2593         (movsf, movdf): Don't force constants to memory in the presence
2594         of TARGET_AUTO_LITPOOLS.
2595         (movdf_internal): Add 'Y' constraint.
2596         * config/xtensa/xtensa.opt (mauto-litpools): New option.
2597         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
2599 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
2601         * config/arm/arm-fpus.def: Replace booleans with feature flags.
2602         Update comment.
2603         * config/arm/arm.c (ARM_FPU): Update macro.
2604         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
2605         (TARGET_FP16): Likewise.
2606         (TARGET_CRYPTO): Likewise.
2607         (TARGET_NEON): Likewise.
2608         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
2609         field features.
2611 2015-08-12  Tom de Vries  <tom@codesourcery.com>
2613         PR other/67092
2614         PR other/67098
2615         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
2616         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
2617         accordingly.  Mention default for --with-stage1-ldflags.
2619 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
2621         * config/arm/arm.h (arm_fpu_feature_set): New.
2622         (ARM_FPU_FSET_HAS): New.
2623         (FPU_FL_NONE): New.
2624         (FPU_FL_NEON): New.
2625         (FPU_FL_FP16): New.
2626         (FPU_FL_CRYPTO): New.
2628 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2630         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
2631         after -mcmodel=large -fPIC sorry.
2633 2015-08-12  Richard Biener  <rguenther@suse.de>
2635         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
2636         comparison operand order and commutative ternary op operand order.
2637         (sccvn_dom_walker::cond_stack): New state to track temporary
2638         expressions.
2639         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
2640         no longer valid.
2641         (sccvn_dom_walker::record_cond): Add a single temporary conditional
2642         expression.
2643         (sccvn_dom_walker::record_conds): Add a temporary conditional
2644         expressions and all related expressions also true/false.
2645         (sccvn_dom_walker::before_dom_children): Record temporary
2646         expressions based on the controlling condition of a single
2647         predecessor.  When trying to simplify a conditional statement
2648         lookup expressions we might have inserted earlier.
2650 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
2652         PR target/67127
2653         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
2654         to ARM core registers.
2656 2015-08-12  Nathan Sidwell  <nathan@acm.org>
2658         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
2659         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
2661 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
2663         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
2664         line with comments.
2665         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
2667 2015-08-12  Richard Biener  <rguenther@suse.de>
2669         * gimple.h (remove_pointer): New trait.
2670         (GIMPLE_CHECK2): New inline template function.
2671         (gassign::code_): New constant static member.
2672         (is_a_helper<const gassign *>): Add.
2673         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
2674         and forward to a new gassign overload with less checking and a
2675         cheaper way to access the operand.
2676         (gimple_assign_lhs_ptr): Likewise.
2677         (gimple_assign_set_lhs): Likewise.
2678         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
2679         Likewise.
2680         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
2681         Likewise.
2682         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
2683         Likewise.
2684         (gimple_assign_rhs_code): Likewise.
2685         * gimple.c (gassign::code_): Define.
2687 2015-08-12  Richard Biener  <rguenther@suse.de>
2689         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2690         Eliminate edges marked as not executable by SCCVN.
2691         * tree-ssa-sccvn.c: Include gimple-iterator.h.
2692         (cond_dom_walker): Rename to sccvn_dom_walker.
2693         (sccvn_dom_walker::before_dom_children): Value-number defs
2694         of all stmts.
2695         (run_scc_vn): Remove loop value-numbering all SSA names.
2696         Drop not visited SSA names to varying.
2698 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
2700         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
2701         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
2702         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
2703         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
2704         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
2705         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
2706         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
2707         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
2708         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
2710 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
2712         PR target/66954
2713         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
2714         to enum feature_priority and feature_list.
2715         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
2716         and isa_names_table.
2718 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
2720         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
2721         vect_induction_def.
2723 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2725         PR c/66098
2726         PR c/66711
2727         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
2728         account when deciding what was the command-line status.
2730 2015-08-11  Nathan Sidwell  <nathan@acm.org>
2732         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
2734         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
2735         we're not the only contributor to target phi.
2737 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
2739         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
2740         FIXED_REG0.
2742 2015-08-11  Tom de Vries  <tom@codesourcery.com>
2744         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
2746 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
2748         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
2749         with CPU_SLM.
2750         * config/i386/i386.md (cpu): Remove knl.
2752 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
2754         PR libgomp/65742
2755         PR middle-end/66332
2756         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
2757         open-coded sequence.
2758         * omp-low.c (oacc_process_reduction_data): Remove handline of
2759         GOMP_DEVICE_HOST_NONSHM.
2761         * lto-streamer-in.c (lto_input_mode_table): Adjust to
2762         GET_MODE_INNER changes.
2764 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
2765             Ilya Verbin  <ilya.verbin@intel.com>
2767         * lto-streamer-in.c (lto_input_mode_table): Correctly advance
2768         iterator.
2770 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2772         * doc/options.texi (EnabledBy): Document that the argument must be
2773         a Common option.
2774         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
2775         Not enabled by -Wall.
2776         * optc-gen.awk: Give nicer error messages. Detect if the argument
2777         of EnabledBy is not a Common option.
2778         * common.opt (Wnull-dereference): Not enabled by -Wall.
2779         * opt-functions.awk (lang_enabled_by): Nicer error messages.
2781 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
2783         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
2784         model == 0x4f as Broadwell.
2786 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
2788         PR rtl-optimization/67028
2789         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
2790         Add test to see if a const_int fits in the new mode.
2792 2015-08-07  DJ Delorie  <dj@redhat.com>
2794         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
2795         
2796 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2798         PR rtl-optimization/67029
2799         * ira-color.c: Include "recog.h" before including "ira-int.h".
2800         * target-globals.c: Likewise.
2801         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
2802         adds an alternative_mask argument and use it instead of
2803         preferred_alternatives.
2804         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
2805         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
2806         * sched-deps.c: Include "ira-int.h" after including "ira.h".
2807         (sched_analyze_insn): Update call to
2808         ira_implicitly_set_insn_hard_regs.
2809         * sel-sched.c: Include "ira-int.h" after including "ira.h".
2810         (implicit_clobber_conflict_p): Update call to
2811         ira_implicitly_set_insn_hard_regs.
2813 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
2815         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
2817 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2819         PR target/67002
2820         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
2821         currently_expanding_to_rtl is set.
2823 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
2825         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
2826         * configure: Regenerate.
2828 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2829             Jiong Wang  <jiong.wang@arm.com>
2831         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
2832         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
2833         (REG_CLASS_NAMES): Likewise.
2834         (REG_CLASS_CONTENTS): Likewise.
2835         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
2836         (aarch64_register_move_cost): Likewise.
2837         (aarch64_load_symref_appropriately): Invoke the new added pattern if
2838         possible.
2839         * config/aarch64/constraints.md (Uc0): New constraint.
2841 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
2843         * config/aarch64/constraints.md (Usf): Add the test of
2844         aarch64_is_noplt_call_p.
2846 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
2848         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
2849         declaration.
2850         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
2851         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
2852         (call_symbol): Likewise.
2854 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
2856         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
2857         for vectorizing multiplication patterns.
2858         * tree-vectorizer.h: Adjust the number of patterns.
2860 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
2862         * config/i386/sse.md (*vec_concatv2df): Declare added
2863         alternatives as sselog type.
2865 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2867         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
2868         all GPRs.
2870 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2872         * config/s390/s390.c (s390_expand_tbegin): Expand either
2873         tbegin_1_z13 or tbegin_1 depending on VX flag.
2874         * config/s390/s390.md ("tbegin_1_z13"): New expander.
2876 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2878         * config/s390/s390.opt: Clarify description for -mzvector
2879         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
2880         -mzvector.
2882 2015-08-06  Richard Biener  <rguenther@suse.de>
2884         * gimple.h (gimple_call_set_fn): Access op member directly.
2885         (gimple_call_chain_ptr): Likewise.
2886         (gimple_call_set_chain): Likewise.
2887         (gimple_cond_lhs_ptr): Likewise.
2888         (gimple_cond_set_lhs): Likewise.
2889         (gimple_cond_rhs_ptr): Likewise.
2890         (gimple_cond_set_rhs): Likewise.
2891         (gimple_cond_true_label): Likewise.
2892         (gimple_cond_set_true_label): Likewise.
2893         (gimple_cond_set_false_label): Likewise.
2894         (gimple_cond_false_label): Likewise.
2895         (gimple_label_label): Likewise.
2896         (gimple_label_set_label): Likewise.
2897         (gimple_goto_set_dest): Likewise.
2898         (gimple_asm_input_op): Likewise.
2899         (gimple_asm_input_op_ptr): Likewise.
2900         (gimple_asm_set_input_op): Likewise.
2901         (gimple_asm_output_op): Likewise.
2902         (gimple_asm_output_op_ptr): Likewise.
2903         (gimple_asm_set_output_op): Likewise.
2904         (gimple_asm_clobber_op): Likewise.
2905         (gimple_asm_set_clobber_op): Likewise.
2906         (gimple_asm_label_op): Likewise.
2907         (gimple_asm_set_label_op): Likewise.
2908         (gimple_switch_index): Likewise.
2909         (gimple_switch_index_ptr): Likewise.
2910         (gimple_return_retval_ptr): Likewise.
2911         (gimple_return_retval): Likewise.
2912         (gimple_return_set_retval): Likewise.
2913         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
2914         (gimple_switch_label): Likewise.
2915         (gimple_switch_set_label): Likewise.
2917 2015-08-06  Richard Biener  <rguenther@suse.de>
2919         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
2920         bool comparison canonicalization and restrict to integers.
2922 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
2924         * coretypes.h (enum symbol_visibility): Relocate here.
2925         * flag-types.h (enum symbol_visibility): Remove.
2926         * tree-core.h (enum symbol_visibility): Remove.
2928 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
2930         PR target/66870
2931         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
2932         for no_split_stack function attribute along with
2933         flag_split_stack.
2934         (rs6000_expand_split_stack_prologue): Likewise.
2936 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2937             Jeff Law  <law@redhat.com>
2939         PR c/16351
2940         * doc/invoke.texi (Wnull-dereference): New.
2941         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
2942         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
2943         Warn for potential NULL dereferences.
2944         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
2945         * ubsan.c (instrument_nonnull_arg): Call
2946         infer_nonnull_range_by_attribute.
2947         (instrument_nonnull_return): Likewise.
2948         * common.opt (Wnull-dereference); New.
2949         * gimple.c (infer_nonnull_range): Remove bool arguments.
2950         (infer_nonnull_range_by_dereference): New.
2951         (infer_nonnull_range_by_attribute): New.
2952         * gimple.h: Update declarations.
2954 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2956         * gensupport.c (sequence_num): Replace with...
2957         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
2958         ...these new variables.
2959         (init_rtx_reader_args_cb): Update accordingly.
2960         (get_num_code_insns): Likewise.
2961         (read_md_rtx): Rework to use a while loop and get_c_test.
2962         Use the new counters.  Remove redundant DEFINE_SUBST case.
2963         * genoutput.c (gen_split): Delete.
2964         (main): Don't call it.
2966 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2968         * gensupport.h (get_c_test): Declare.
2969         * gensupport.c (get_c_test): New function.
2970         * genconditions.c (main): Use it.
2971         * genrecog.c (validate_pattern): Likewise.
2972         (match_pattern_1): Likewise.  Remove c_test argument.
2973         (match_pattern): Update accordingly and remove c_test argument.
2974         (main): Update accordingly.
2976 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2978         * gensupport.h (get_num_insn_codes): Declare.
2979         * gensupport.c (get_num_insn_codes): New function.
2980         * genattrtab.c (optimize_attrs): Rename max_insn_code to
2981         num_insn_codes.
2982         (main): Likewise.  Use get_num_insn_codes.
2983         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
2985 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2987         PR middle-end/66311
2988         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
2989         is zero- rather than sign-extended.
2991 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
2993         * target-insns.def (can_extend): Delete.
2995 2015-08-05  Richard Biener  <rguenther@suse.de>
2997         PR tree-optimization/67121
2998         * tree-if-conv.c (combine_blocks): Clear range-info produced
2999         by stmts no longer executed conditionally.
3001 2015-08-05  Nick Clifton  <nickc@redhat.com>
3003         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
3004         to allow identical far pointers to remain.
3006 2015-08-05  Richard Biener  <rguenther@suse.de>
3008         PR middle-end/67120
3009         * match.pd: Compare address bases with == if they are decls
3010         or SSA names, not operand_equal_p.  Otherwise fail.
3012 2015-08-05  Richard Biener  <rguenther@suse.de>
3014         PR tree-optimization/67055
3015         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
3016         NULL gimple_block.
3018         * g++.dg/torture/pr67055.C: New testcase.
3020 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
3022         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
3023         noavx512vl.
3024         (define_attr "enabled"): Handle avx521vl and noavx512vl.
3025         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
3026         AVX-512 alternative out of SSE.
3027         (define_insn "*vec_concatv2df"): Ditto.
3029 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
3031         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
3032         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
3033         CODE_FOR_avx_ptestv4di.
3034         * config/i386/sse.md (define_mode_iterator V_AVX): New.
3035         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
3036         (define_insn "avx_ptest256"): Merge this ...
3037         (define_insn "sse4_1_ptest"): And this ...
3038         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
3040 2015-08-05  Richard Biener  <rguenther@suse.de>
3042         PR tree-optimization/67109
3043         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
3044         against too big groups.  Print whether this is a load or store
3045         group.  Rename from ...
3046         (vect_analyze_group_access): ... this which is now a wrapper
3047         dissolving an invalid group.
3048         (vect_analyze_data_ref_accesses): Print whether this is a load
3049         or store group.
3051 2015-08-05  Richard Biener  <rguenther@suse.de>
3053         PR middle-end/67107
3054         * match.pd: Guard const_binop result checking against NULL_TREE
3055         result.
3057 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
3059         * cse.c (cse_insn): Restoring old behaviour for src_eqv
3060          when dest and value in the REG_EQUAL are same and dest
3061          is STRICT_LOW_PART.
3063 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
3065         * config/moxie/moxie.h (PRINT_OPERAND,
3066           PRINT_OPERAND_ADDRESS): Remove macros.
3067         * config/moxie/moxie-protos.h (moxie_print_operand,
3068           moxie_print_operand_address): Remove declaration.
3069         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
3070           TARGET_PRINT_OPERAND_ADDRESS): Define.
3071           (moxie_print_operand, moxie_print_operand_address): Make static.
3073 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3075         PR target/66731
3076         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
3077         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
3079 2015-08-04  Richard Biener  <rguenther@suse.de>
3081         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
3082         generated code.
3083         (dt_operand::gen_gimple_expr): Adjust.
3085 2015-08-04  Richard Biener  <rguenther@suse.de>
3087         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
3088         bool compares on RHS.
3089         * match.pd: Add X ==/!= !X is false/true pattern.
3091 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
3093         * config/aarch64/aarch64.c: Change inner loop statement cost
3094         to be consistent with other targets.
3096 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
3098         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
3099         targets.
3101 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3103         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
3104         (machine_function): Remove pseudos field.
3106 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3108         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
3109         Exit early and use target_option_current_node if processing current
3110         pragma.
3112 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3114         * doc/extend.texi (AArch64 Function Attributes): New node.
3115         (AArch64 Pragmas): Likewise.
3117 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3119         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
3120         Initialize simd builtins if TARGET_SIMD.
3121         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
3122         Make sure that the builtins are initialized only once no matter how
3123         many times the function is called.
3124         (aarch64_init_builtins): Unconditionally initialize crc builtins.
3125         (aarch64_relayout_simd_param): New function.
3126         (aarch64_simd_expand_args): Use above during argument expansion.
3127         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
3128         simd builtins if TARGET_SIMD.
3129         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
3130         prototype.
3131         (aarch64_relayout_simd_types): Likewise.
3133 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3135         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
3136         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
3137         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
3138         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
3139         static keyword.
3140         (aarch64_reset_previous_fndecl): New function.
3141         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
3142         the string.
3143         * config/aarch64/aarch64-c.c: New file.
3144         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
3145         Push and pop options at beginning and end.  Remove ifdef
3146         __ARM_FEATURE_CRC32.
3147         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
3148         Add pragma +nothing+simd and +nothing+crypto where appropriate.
3149         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
3150         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
3151         Define prototype.
3152         (aarch64_register_pragmas): Likewise.
3153         (aarch64_reset_previous_fndecl): Likewise.
3154         (aarch64_process_target_attr): Likewise.
3155         (aarch64_override_options_internal): Likewise.
3157 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3159         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
3160         New function.
3161         (aarch64_can_inline_p): Likewise.
3162         (TARGET_CAN_INLINE_P): Define.
3164 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3166         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
3167         Remove static.  Handle OPT_mgeneral_regs_only,
3168         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
3169         OPT_momit_leaf_frame_pointer.
3170         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
3171         (aarch64_attr_opt_type): New enum.
3172         (aarch64_attribute_info): New struct.
3173         (aarch64_handle_attr_arch): New function.
3174         (aarch64_handle_attr_cpu): Likewise.
3175         (aarch64_handle_attr_tune): Likewise.
3176         (aarch64_handle_attr_isa_flags): Likewise.
3177         (aarch64_attributes): New table.
3178         (aarch64_process_one_target_attr): New function.
3179         (num_occurences_in_str): Likewise.
3180         (aarch64_process_target_attr): Likewise.
3181         (aarch64_option_valid_attribute_p): Likewise.
3182         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
3183         * config/aarch64/aarch64-protos.h: Include input.h
3184         (aarch64_handle_option): Declare prototype.
3186 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3188         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
3189         * config/aarch64/aarch64.c: Include target-globals.h
3190         (aarch64_previous_fndecl): New variable.
3191         (aarch64_set_current_function): New function.
3192         (TARGET_SET_CURRENT_FUNCTION): Define.
3194 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3196         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
3197         (explicit_arch): Likewise.
3198         (x_aarch64_isa_flags): Likewise.
3199         (mgeneral-regs-only): Mark as Save.
3200         (mfix-cortex-a53-835769): Likewise.
3201         (mcmodel=): Likewise.
3202         (mstrict-align): Likewise.
3203         (momit-leaf-frame-pointer): Likewise.
3204         (mtls-dialect): Likewise.
3205         (master=): Likewise.
3206         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
3207         (aarch64_isa_flags): Remove extern declaration.
3208         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
3209         to indicate success or failure.
3210         (aarch64_validate_march): Likewise.
3211         (aarch64_validate_mtune): Likewise.
3212         (aarch64_isa_flags): Delete.
3213         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
3214         instead of aarch64_isa_flags.
3215         (aarch64_get_tune_cpu): New function.
3216         (aarch64_get_arch): Likewise.
3217         (aarch64_override_options): Use above and set up explicit_tune_core
3218         and explicit_arch.
3219         (aarch64_print_extension): Move earlier in file.  Add isa_flags
3220         argument and use that instead of the global aarch64_isa_flags.
3221         (aarch64_option_save): New function.
3222         (aarch64_option_restore): Likewise.
3223         (aarch64_option_print): Likewise.
3224         (aarch64_declare_function_name): Likewise.
3225         (aarch64_start_file): Delete.
3226         (TARGET_ASM_FILE_START): Do not define.
3227         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
3228         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
3229         Declare prototype.
3231 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3233         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
3234         flag_omit_leaf_frame_pointer to 2.
3236 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3238         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
3239         define to 0 or 1.
3240         (TARGET_FIX_ERR_A53_835769): New macro.
3241         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
3242         handling of opts->x_aarch64_fix_a53_err835769.
3243         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
3244         than aarch64_fix_a53_err835769.
3245         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
3246         * config/aarch64/aarch64-linux.h: Likewise.
3248 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
3250         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
3251         ix86_expand_int_movcc as boolean.
3253 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3255         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
3256         (aarch64_cpu_string): Likewise.
3257         (aarch64_tune_string): Likewise.
3258         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
3259         (aarch64_parse_extension): Return aarch64_parse_opt_result.
3260         Add extra argument to put result into.
3261         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
3262         (aarch64_parse_cpu): Add arguments to put results into. Return
3263         aarch64_parse_opt_result.
3264         (aarch64_parse_tune): Likewise.
3265         (aarch64_override_options_after_change_1): New function.
3266         (aarch64_override_options_internal): New function.
3267         (aarch64_validate_mcpu): Likewise.
3268         (aarch64_validate_march): Likewise.
3269         (aarch64_validate_mtune): Likewise.
3270         (aarch64_override_options): Update to reflect above changes.
3271         Move some logic into aarch64_override_options_internal.
3272         Initialize target_option_default_node and target_option_current_node.
3273         (aarch64_override_options_after_change): Move logic into
3274         aarch64_override_options_after_change_1 and call it with global_options.
3275         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
3276         flag values from that.
3278 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3280         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
3281         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
3282         * config/aarch64/aarch64.c (struct processor): Add arch field.
3283         (all_architectures): Handle above, move above all_cores.
3284         (all_cores): Handle above.
3285         (aarch64_parse_arch): Handle above changes.
3286         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
3287         above.  Update comments.
3288         (armv8.1-a): Likewise.
3289         * config/aarch64/aarch64-cores.def: Update according to above.
3290         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
3291         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
3292         aarch64_arch_driver_info.
3294 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3296         * config/aarch64/aarch64.c (struct processor): Add ident field.
3297         Rename core sched_core.
3298         (all_cores): Handle above changes.
3299         (all_architectures): Likewise.
3300         (aarch64_parse_arch): Likewise.
3301         (aarch64_override_options): Likewise.
3303 2015-08-04  Richard Biener  <rguenther@suse.de>
3305         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
3306         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
3307         comparisons embedded in [VEC_]COND_EXPRs.
3309 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
3311         * tree-if-conv.c: Fix various typos in comments.
3312         * tree-vect-stmts.c: Likewise.
3314 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3316         PR tree-optimization/67043
3317         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
3318         preheader after hoisting invariant in it.
3319         (find_defs): Force recomputation of all luids.
3321 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
3323         * config/rs6000/htm.md (tabort.): Restrict the source operand to
3324         using a base register.
3326 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
3328         * main.c (main): Pass in NULL for toplev's external_timer.
3329         * timevar.c: Include coretypes.h.
3330         (class timer::named_items): New.
3331         (timer::named_items::named_items): New.
3332         (timer::named_items::~named_items): New.
3333         (timer::named_items::push): New.
3334         (timer::named_items::pop): New.
3335         (timer::named_items::print): New.
3336         (timer::timer): Initialize field "m_jit_client_items".
3337         (timer::~timer): New.
3338         (timer::push): Move bulk of implementation to...
3339         (timer::push_internal): ...here.  New function.
3340         (timer::pop): Move bulk of implementation to...
3341         (timer::pop_internal): ...here.  New function.
3342         (timer::push_client_item): New.
3343         (timer::pop_client_item): New.
3344         (timer::print_row): New function, taken from timer::print.
3345         (timer::print): Print "GCC items" header if we also have client
3346         items.  Move row-printing to timer::print_row.  Print any client
3347         items.
3348         (timer::get_topmost_item_name): New method.
3349         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
3350         (TV_JIT_CLIENT_CODE): New.
3351         * timevar.h (timer::push_client_item): New declaration.
3352         (timer::pop_client_item): New declaration.
3353         (timer::get_topmost_item_name): New method.
3354         (timer::push_internal): New declaration.
3355         (timer::pop_internal): New declaration.
3356         (timer::print_row): New declaration.
3357         (timer::named_items): New declaration.
3358         (timer::m_jit_client_items): New field.
3359         (timer): Add friend class named_items.
3360         (auto_timevar::auto_timevar): Add timer param.
3361         (auto_timevar::~auto_timevar): Use field "m_timer".
3362         (auto_timevar::m_timer): New field.
3363         * toplev.c (initialize_rtl): Add g_timer as param when
3364         constructing auto_timevar instance.
3365         (toplev::toplev): Add "external_timer" param, and use it to
3366         initialize the "g_timer" global if non-NULL.
3367         (toplev::~toplev): If this created "g_timer", delete it.
3368         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
3369         with "external_timer" timer *.
3371 2015-08-03  Alexander Basov <coohpt@gmail.com>
3373         PR middle-end/64744
3374         PR middle-end/48470
3375         PR middle-end/43404
3376         * cfgexpand.c (expand_one_var): Add check if stack is going to
3377         be used in naked function.
3378         * expr.c (expand_expr_addr_expr_1): Remove excess checking
3379         whether expression should not reside in MEM.
3380         * function.c (use_register_for_decl): Do not use registers for
3381         non-register things (volatile, float, BLKMode) in naked functions.
3383 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
3385         PR target/67060
3386         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
3387         Adjust splits to match new pattern.
3389 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3391         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
3392         (VEC_M): Likewise.
3393         (VEC_N): Likewise.
3394         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
3395         point in VSX registers.
3397         * config/rs6000/constraints.md (wb constraint): Document unused
3398         w<x> constraint.
3399         (we constraint): Likewise.
3400         (wo constraint): Likewise.
3401         (wp constraint): New constraint for IEEE 128-bit floating point in
3402         VSX registers.
3403         (wq constraint): Likewise.
3405         * config/rs6000/predicates.md (easy_fp_constant): Add support for
3406         IEEE 128-bit floating point in VSX registers.
3407         (easy_scalar_constant): Likewise.
3409         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
3410         constraints (wp, wq) for IEEE 128-bit floating point in VSX
3411         registers.
3412         (rs6000_init_hard_regno_mode_ok): Likewise.
3414         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
3415         floating point in VSX registers.
3416         (VSX_L): Likewise.
3417         (VSX_M): Likewise.
3418         (VSX_M2): Likewise.
3419         (VSm): Likewise.
3420         (VSs): Likewise.
3421         (VSr): Likewise.
3422         (VSa): Likewise.
3423         (VSv): Likewise.
3424         (vsx_le_permute_<mode>): Add support to properly swap bytes for
3425         IEEE 128-bit floating point in VSX registers on little endian.
3426         (vsx_le_undo_permute_<mode>): Likewise.
3427         (vsx_le_perm_load_<mode>): Likewise.
3428         (vsx_le_perm_store_<mode>): Likewise.
3429         (splitters for IEEE 128-bit fp moves): Likewise.
3431         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
3432         wq constraints.
3434         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
3435         floating point in VSX registers.
3436         (VM2): Likewise.
3438         * doc/md.text (Machine Constraints): Document wp and wq
3439         constraints on PowerPC.
3441 2015-08-03  Jeff Law  <law@redhat.com>
3443         PR middle-end/66314
3444         PR gcov-profile/66899
3445         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
3446         iterate over the jump threading paths when an element in the
3447         jump threading paths array is eliminated.
3449 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
3451         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
3453 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
3455         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
3456         is_use_properly_guarded the variable def_preds.  Free its
3457         contents before returning.
3458         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
3459         (is_use_properly_guarded): Replace local variable def_preds with
3460         a parameter.  Adjust accordingly.  Only update *def_preds if it's
3461         the empty vector.
3463 2015-08-03  Richard Biener  <rguenther@suse.de>
3465         * genmatch.c (simplify::for_subst_vec): New member.
3466         (binary_ok): New helper for for lowering.
3467         (lower_for): Delay substituting operators into result expressions
3468         if we can merge the results eventually again.
3469         (capture_info::walk_result): Adjust for user_id appearing as
3470         result expression operator.
3471         (expr::gen_transform): Likewise.
3472         (dt_simplify::gen_1): Likewise.
3473         (dt_simplify::gen): Pass not substituted operators to tail
3474         functions or initialize local variable with it.
3475         (decision_tree::gen): Adjust function signature.
3476         * match.pd: Fix tests against global code and add default
3477         cases to switch stmts.
3479 2015-08-03  Richard Biener  <rguenther@suse.de>
3481         * genmatch.c (dt_simplify::gen): Create captures array
3482         with an initializer.
3484 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3486         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
3487         the host compiler is affected by placement new aliasing bug.
3488         * configure: Regenerate.
3489         * Makefile.in (ALIASING_FLAGS): New variable.
3490         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
3492 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3494         PR target/66731
3495         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
3496         (negmulsf3_vfp): Likewise.
3497         (muldf3negdf_vfp): Disable for -frounding-math.
3498         (mulsf3negsf_vfp): Likewise.
3499         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
3500         fix MULT cost with -frounding-math.
3502 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3504         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
3505         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
3506         explicit.  Prefer to add the flag whenever possible.
3507         (noce_process_if_block): Try noce_try_store_flag_constants before
3508         noce_try_cmove.
3510 2015-08-03  Richard Biener  <rguenther@suse.de>
3512         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
3513         New hash-map to record equivalent transforms.
3514         (dt_node::analyze): Populate the equivalent transforms hash-map.
3515         (dt_simplify::info): Add reference to hash-map entry.
3516         (dt_simplify::gen): If we have split out a function for the
3517         transform, generate a call to it.
3518         (sinfo_hashmap_traits::hash): New function.
3519         (compare_op): New helper function for ...
3520         (sinfo_hashmap_traits::equal_keys): ... this new function.
3521         (decision_tree::gen): Split out common equivalent transforms
3522         into functions.
3524 2015-08-03  Richard Biener  <rguenther@suse.de>
3526         * gimple-fold.c (fold_gimple_assign): Remove folding of
3527         the comparison in COND_EXPRs.
3529 2015-08-03  Richard Biener  <rguenther@suse.de>
3531         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
3532         on the rhs of assignments first simplify the embedded
3533         GENERIC condition.
3535 2015-08-03  Richard Biener  <rguenther@suse.de>
3537         PR tree-optimization/66917
3538         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
3539         field.
3540         (DR_VECT_AUX): New macro.
3541         (set_dr_misalignment): Adjust.
3542         (dr_misalignment): Likewise.
3543         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3544         Compute whether the base is at least element aligned.
3545         * tree-vect-stmts.c (ensure_base_align): Adjust.
3546         (vectorizable_store): If the base is not element aligned
3547         preserve alignment of the original access if misalignment is unknown.
3548         (vectorizable_load): Likewise.
3550 2015-08-02  Martin Sebor  <msebor@redhat.com>
3552         * c-family/c.opt (-Wframe-address): New warning option.
3553         * doc/invoke.texi (Wframe-address): Document it.
3554         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
3555         Clarify possible effects of calling the functions with non-zero
3556         arguments and mention -Wframe-address.
3557         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
3559 2015-08-01  Michael Collison  <michael.collison@linaro.org
3560             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3562         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
3563         (*arm_umin_cmp): Likewise.
3565 2015-08-01  Caroline Tice  <cmtice@google.com>
3567         PR 66521
3568         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
3569         global variables.
3570         (vtbl_find_mangled_name):  New function.
3571         (vtbl_register_mangled_name):  New function.
3572         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
3573         mangled name in mangled name vectors.
3574         (find_or_create_vtbl_map_node):  Ditto.
3575         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
3576         update recursion_depth on function entry; pass it to every recursive
3577         call; automatically exit if depth > 25 (give up looking at that point).
3578         (verify_bb_vtables):  Initialize recursion_depth and pass it to
3579         var_is_used_for_virtual_call_p.
3580         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
3581         global variable decls.
3582         (vtbl_register_mangled_name): New extern function decl.
3584 2015-08-01  Tom de Vries  <tom@codesourcery.com>
3586         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
3587         function.
3588         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
3589         Declare.
3590         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
3591         operation_no_trapping_overflow.  Allow non-overflow operations.
3592         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
3593         operations.
3595 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3597         PR target/67049
3598         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
3600 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3602         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
3603         Enable for TARGET_32BIT.
3604         (*if_move_neg): Likewise.
3606 2015-07-31  Nick Clifton  <nickc@redhat.com>
3608         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
3609         Returns true for __model__.
3610         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3612 2015-07-31  Alan Modra  <amodra@gmail.com>
3614         PR target/66870
3615         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
3616         (rs6000_emit_prologue): Set it.
3617         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
3619 2015-07-31  Richard Biener  <rguenther@suse.de>
3621         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
3622         -> X == (C1 ^ C2) which is already implemented in match.pd.
3623         Remove redundant dispatching to fold_relational_const.
3624         Move unordered self and NaN compares ...
3625         * match.pd: ... as patterns here.  Remove some stray captures
3626         and add a comment.
3628 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
3630         * config/i386/i386.c
3631         (bdesc_special_args): Convert mask type from signed to unsigned for
3632         masked builtins.
3633         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
3634         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
3635         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
3636         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
3637         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
3638         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
3639         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
3640         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
3641         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
3642         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
3643         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
3644         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
3645         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
3646         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
3647         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
3648         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
3649         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
3650         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
3651         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
3652         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
3653         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
3654         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
3655         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
3656         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
3657         * config/i386/i386-builtin-types.def
3658         (V16QI_FTYPE_V16SI): Remove.
3659         (V8DF_FTYPE_V8SI): Ditto.
3660         (V8HI_FTYPE_V8DI): Ditto.
3661         (V8SI_FTYPE_V8DI): Ditto.
3662         (V8SF_FTYPE_V8DF): Ditto.
3663         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
3664         (V16HI_FTYPE_V16SI): Ditto.
3665         (V16SF_FTYPE_V16HI): Ditto.
3666         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
3667         (V16SF_FTYPE_V16SI): Ditto.
3668         (V4DI_FTYPE_V4DI): Ditto.
3669         (V16SI_FTYPE_V16SF): Ditto.
3670         (V16SF_FTYPE_FLOAT): Ditto.
3671         (V8DF_FTYPE_DOUBLE): Ditto.
3672         (V8DI_FTYPE_INT64): Ditto.
3673         (V8DI_FTYPE_V4DI): Ditto.
3674         (V16QI_FTYPE_V8DI): Ditto.
3675         (UINT_FTYPE_V4SF): Ditto.
3676         (UINT64_FTYPE_V4SF): Ditto.
3677         (UINT_FTYPE_V2DF): Ditto.
3678         (UINT64_FTYPE_V2DF): Ditto.
3679         (V16SI_FTYPE_V16SI): Ditto.
3680         (V8DI_FTYPE_V8DI): Ditto.
3681         (V16SI_FTYPE_PV4SI): Ditto.
3682         (V16SF_FTYPE_PV4SF): Ditto.
3683         (V8DI_FTYPE_PV2DI): Ditto.
3684         (V8DF_FTYPE_PV2DF): Ditto.
3685         (V4DI_FTYPE_PV2DI): Ditto.
3686         (V4DF_FTYPE_PV2DF): Ditto.
3687         (V16SI_FTYPE_PV2SI): Ditto.
3688         (V16SF_FTYPE_PV2SF): Ditto.
3689         (V8DI_FTYPE_PV4DI): Ditto.
3690         (V8DF_FTYPE_PV4DF): Ditto.
3691         (V8SF_FTYPE_FLOAT): Ditto.
3692         (V4SF_FTYPE_FLOAT): Ditto.
3693         (V4DF_FTYPE_DOUBLE): Ditto.
3694         (V8SF_FTYPE_PV4SF): Ditto.
3695         (V8SI_FTYPE_PV4SI): Ditto.
3696         (V4SI_FTYPE_PV2SI): Ditto.
3697         (V8SF_FTYPE_PV2SF): Ditto.
3698         (V8SI_FTYPE_PV2SI): Ditto.
3699         (V16SF_FTYPE_PV8SF): Ditto.
3700         (V16SI_FTYPE_PV8SI): Ditto.
3701         (V8DI_FTYPE_V8SF): Ditto.
3702         (V4DI_FTYPE_V4SF): Ditto.
3703         (V2DI_FTYPE_V4SF): Ditto.
3704         (V64QI_FTYPE_QI): Ditto.
3705         (V32HI_FTYPE_HI): Ditto.
3706         (V8UHI_FTYPE_V8UHI): Ditto.
3707         (V16UHI_FTYPE_V16UHI): Ditto.
3708         (V32UHI_FTYPE_V32UHI): Ditto.
3709         (V2UDI_FTYPE_V2UDI): Ditto.
3710         (V4UDI_FTYPE_V4UDI): Ditto.
3711         (V8UDI_FTYPE_V8UDI): Ditto.
3712         (V4USI_FTYPE_V4USI): Ditto.
3713         (V8USI_FTYPE_V8USI): Ditto.
3714         (V16USI_FTYPE_V16USI): Ditto.
3715         (V2DF_FTYPE_V2DF_UINT64): Ditto.
3716         (V2DI_FTYPE_V2DF_V2DF): Ditto.
3717         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
3718         (V8DF_FTYPE_V8DF_V8DI): Ditto.
3719         (V4SF_FTYPE_V4SF_UINT64): Ditto.
3720         (V4SI_FTYPE_V4SF_V4SF): Ditto.
3721         (V16SF_FTYPE_V16SF_V16SI): Ditto.
3722         (V64QI_FTYPE_V32HI_V32HI): Ditto.
3723         (V32HI_FTYPE_V16SI_V16SI): Ditto.
3724         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
3725         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
3726         (V32HI_FTYPE_V64QI_V64QI): Ditto.
3727         (V32HI_FTYPE_V32HI_V32HI): Ditto.
3728         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
3729         (V16SI_FTYPE_V16SI_V4SI): Ditto.
3730         (V16SI_FTYPE_V16SI_V16SI): Ditto.
3731         (V16SI_FTYPE_V32HI_V32HI): Ditto.
3732         (V16SI_FTYPE_V16SI_SI): Ditto.
3733         (V8DI_FTYPE_V8DI_V8DI): Ditto.
3734         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
3735         (V8DI_FTYPE_V16SI_V16SI): Ditto.
3736         (V8DI_FTYPE_V8DI_V2DI): Ditto.
3737         (QI_FTYPE_QI): Ditto.
3738         (SI_FTYPE_SI): Ditto.
3739         (DI_FTYPE_DI): Ditto.
3740         (QI_FTYPE_QI_QI): Ditto.
3741         (QI_FTYPE_QI_INT): Ditto.
3742         (HI_FTYPE_HI_INT): Ditto.
3743         (SI_FTYPE_SI_INT): Ditto.
3744         (DI_FTYPE_DI_INT): Ditto.
3745         (HI_FTYPE_V16QI_V16QI): Ditto.
3746         (SI_FTYPE_V32QI_V32QI): Ditto.
3747         (DI_FTYPE_V64QI_V64QI): Ditto.
3748         (QI_FTYPE_V8HI_V8HI): Ditto.
3749         (HI_FTYPE_V16HI_V16HI): Ditto.
3750         (SI_FTYPE_V32HI_V32HI): Ditto.
3751         (QI_FTYPE_V4SI_V4SI): Ditto.
3752         (QI_FTYPE_V8SI_V8SI): Ditto.
3753         (QI_FTYPE_V2DI_V2DI): Ditto.
3754         (QI_FTYPE_V4DI_V4DI): Ditto.
3755         (QI_FTYPE_V8DI_V8DI): Ditto.
3756         (HI_FTYPE_V16SI_V16SI): Ditto.
3757         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
3758         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
3759         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
3760         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
3761         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
3762         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
3763         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
3764         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
3765         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
3766         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
3767         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
3768         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
3769         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
3770         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
3771         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
3772         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
3773         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
3774         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
3775         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
3776         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
3777         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
3778         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
3779         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
3780         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
3781         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
3782         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
3783         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
3784         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
3785         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
3786         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
3787         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
3788         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
3789         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
3790         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
3791         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
3792         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
3793         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
3794         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
3795         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
3796         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
3797         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
3798         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
3799         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
3800         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
3801         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
3802         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
3803         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
3804         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
3805         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
3806         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
3807         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
3808         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
3809         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
3810         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
3811         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
3812         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
3813         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
3814         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
3815         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
3816         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
3817         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
3818         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
3819         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
3820         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
3821         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
3822         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
3823         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
3824         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
3825         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
3826         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
3827         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
3828         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
3829         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
3830         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
3831         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
3832         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
3833         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
3834         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
3835         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
3836         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
3837         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
3838         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
3839         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
3840         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
3841         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
3842         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
3843         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
3844         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
3845         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
3846         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
3847         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
3848         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
3849         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
3850         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
3851         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
3852         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
3853         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
3854         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
3855         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
3856         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
3857         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
3858         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
3859         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
3860         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
3861         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
3862         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
3863         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
3864         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
3865         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
3866         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
3867         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
3868         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
3869         (HI_FTYPE_HI): Ditto.
3870         (HI_FTYPE_V16QI): Ditto.
3871         (SI_FTYPE_V32QI): Ditto.
3872         (DI_FTYPE_V64QI): Ditto.
3873         (QI_FTYPE_V8HI): Ditto.
3874         (HI_FTYPE_V16HI): Ditto.
3875         (SI_FTYPE_V32HI): Ditto.
3876         (QI_FTYPE_V4SI): Ditto.
3877         (QI_FTYPE_V8SI): Ditto.
3878         (HI_FTYPE_V16SI): Ditto.
3879         (QI_FTYPE_V2DI): Ditto.
3880         (QI_FTYPE_V4DI): Ditto.
3881         (QI_FTYPE_V8DI): Ditto.
3882         (V16QI_FTYPE_HI): Ditto.
3883         (V32QI_FTYPE_SI): Ditto.
3884         (V64QI_FTYPE_DI): Ditto.
3885         (V8HI_FTYPE_QI): Ditto.
3886         (V16HI_FTYPE_HI): Ditto.
3887         (V32HI_FTYPE_SI): Ditto.
3888         (V4SI_FTYPE_QI): Ditto.
3889         (V4SI_FTYPE_HI): Ditto.
3890         (V8SI_FTYPE_QI): Ditto.
3891         (V8SI_FTYPE_HI): Ditto.
3892         (V2DI_FTYPE_QI): Ditto.
3893         (V4DI_FTYPE_QI): Ditto.
3894         (HI_FTYPE_HI_HI): Ditto.
3895         (SI_FTYPE_SI_SI): Ditto.
3896         (DI_FTYPE_DI_DI): Ditto.
3897         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
3898         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
3899         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
3900         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
3901         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
3902         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
3903         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
3904         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
3905         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
3906         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
3907         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
3908         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
3909         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
3910         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
3911         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
3912         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
3913         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
3914         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
3915         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
3916         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
3917         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
3918         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
3919         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
3920         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
3921         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
3922         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
3923         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
3924         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
3925         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
3926         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
3927         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
3928         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
3929         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
3930         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
3931         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
3932         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
3933         (V16SI_FTYPE_HI): Ditto.
3934         (V8DI_FTYPE_QI): Ditto.
3935         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
3936         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
3937         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
3938         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
3939         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
3940         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
3941         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
3942         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
3943         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
3944         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
3945         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
3946         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
3947         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
3948         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
3949         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
3950         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
3951         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
3952         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
3953         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
3954         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
3955         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
3956         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
3957         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
3958         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
3959         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
3960         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
3961         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
3962         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
3963         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
3964         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
3965         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
3966         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
3967         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
3968         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
3969         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
3970         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
3971         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
3972         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
3973         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
3974         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
3975         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
3976         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
3977         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
3978         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
3979         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
3980         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
3981         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
3982         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
3983         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
3984         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
3985         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
3986         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
3987         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
3988         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
3989         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
3990         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
3991         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
3992         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
3993         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
3994         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
3995         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
3996         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
3997         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
3998         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
3999         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
4000         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
4001         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
4002         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
4003         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
4004         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
4005         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
4006         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
4007         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
4008         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
4009         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
4010         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
4011         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
4012         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
4013         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
4014         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
4015         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
4016         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
4017         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
4018         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
4019         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
4020         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
4021         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
4022         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
4023         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
4024         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
4025         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
4026         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
4027         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
4028         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
4029         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
4030         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
4031         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
4032         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
4033         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
4034         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
4035         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
4036         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
4037         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
4038         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
4039         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
4040         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
4041         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
4042         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
4043         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
4044         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
4045         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
4046         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
4047         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
4048         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
4049         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
4050         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
4051         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
4052         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
4053         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
4054         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
4055         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
4056         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
4057         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
4058         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
4059         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
4060         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
4061         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
4062         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
4063         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
4064         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
4065         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
4066         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
4067         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
4068         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
4069         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
4070         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
4071         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
4072         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
4073         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
4074         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
4075         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
4076         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
4077         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
4078         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
4079         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
4080         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
4081         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
4082         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
4083         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
4084         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
4085         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
4086         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
4087         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
4088         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
4089         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
4090         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
4091         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
4092         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
4093         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
4094         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
4095         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
4096         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
4097         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
4098         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
4099         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
4100         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
4101         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
4102         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
4103         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
4104         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
4105         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
4106         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
4107         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
4108         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
4109         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
4110         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
4111         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
4112         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
4113         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
4114         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
4115         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
4116         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
4117         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
4118         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
4119         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
4120         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
4121         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
4122         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
4123         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
4124         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
4125         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
4126         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
4127         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
4128         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
4129         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
4130         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
4131         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
4132         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
4133         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
4134         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
4135         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
4136         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
4137         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
4138         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
4139         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
4140         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
4141         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
4142         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
4143         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
4144         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
4145         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
4146         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
4147         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
4148         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
4149         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
4150         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
4151         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
4152         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
4153         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
4154         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
4155         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
4156         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
4157         (QI_FTYPE_V8DF_INT_QI): Ditto.
4158         (QI_FTYPE_V4DF_INT_QI): Ditto.
4159         (QI_FTYPE_V2DF_INT_QI): Ditto.
4160         (HI_FTYPE_V16SF_INT_HI): Ditto.
4161         (QI_FTYPE_V8SF_INT_QI): Ditto.
4162         (QI_FTYPE_V4SF_INT_QI): Ditto.
4163         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
4165 2015-07-31  Richard Biener  <rguenther@suse.de>
4167         * gimple-fold.c (fold_gimple_assign): Remove folding of
4168         GIMPLE_BINARY_RHS.
4170 2015-07-31  Tom de Vries  <tom@codesourcery.com>
4172         PR tree-optimization/66846
4173         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
4174         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
4175         (expand_omp_target) [ENABLE_CHECKING]: Same.
4176         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
4177         cfun if !LOOPS_NEED_FIXUP.
4178         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
4179         that omp_for already has its own loop struct.
4180         * tree-parloops.c (create_phi_for_local_result)
4181         (create_call_for_reduction): Handle simple latch bb.
4182         (create_parallel_loop): Add simple latch bb to preserve
4183         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
4184         (gen_parallel_loop): Remove call to cancel_loop_tree.
4185         (parallelize_loops): Skip loops that are inner loops of parallelized
4186         loops.
4187         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
4188         verify_loop_structure.
4190 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
4192         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
4193         * config/v850/v850.md (RV_REGNUM): New constants.
4194         * config/v850/v850.c (v850_libcall_value): New functions.
4195         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
4196         (TARGET_LIBCALL_VALUE): Define.
4198 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
4200         * rtl.h (lowpart_subreg): Move in file.
4201         * loop-iv.c (lowpart_subreg): Move to...
4202         * simplify-rtx.c (lowpart_subreg): ...here.
4203           (simplify_binary_operation_1): Use lowpart_subreg instead of
4204           simplify_gen_subreg.
4205         * expr.c (expand_expr_real_2): Ditto.
4206         * emit-rtl.c (gen_lowpart_common): Ditto.
4207         * combine.c (gen_lowpart_for_combine): Ditto.
4208         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
4209           expand_debug_source_expr): Ditto.
4211 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
4213         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
4214         (expand_builtin_atomic_clear): Remove support for atomic_clear
4215         pattern.
4217 2015-07-30  Richard Biener  <rguenther@suse.de>
4219         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
4220         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
4221         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
4222         redundant operand canonicalization.
4224 2015-07-30  David Sherwood  <david.sherwood@arm.com>
4226         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
4227         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
4228         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
4229         * config/arm/arm.c (neon_valid_immediate): Likewise.
4230         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
4231         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
4232         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
4233         (expand_vec_perm_vpshufb2_vpermq): Likewise.
4234         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
4235         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
4236         * config/i386/sse.md
4237         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
4238         (*ssse3_palignr<mode>_perm): Likewise.
4239         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
4240         * config/spu/spu.c (arith_immediate_p): Likewise.
4241         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4242         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
4244 2015-07-30  Richard Biener  <rguenther@suse.de>
4246         * genmatch.c (decision_tree::gen_gimple): Merge with ...
4247         (decision_tree::gen_generic): ... this into ...
4248         (decision_tree::gen): ... this.
4249         (main): Adjust callers.
4251 2015-07-30  Richard Biener  <rguenther@suse.de>
4253         * genmatch.c (verbose): New global.
4254         (warning_at): Add overload with source_location.
4255         (capture_info::capture_info): Add bool whether generating gimple
4256         or generic.  Add gimple member.
4257         (capture_info::cinfo): Add capture member.
4258         (capture_info::walk_match): Record capture.  Warn on
4259         non-captured leafs.
4260         (capture_info::walk_c_expr): Add more fragments captures cannot
4261         escape through.  Warn on escaped captures.
4262         (dt_simplify::gen_1): Warn on operands we force to have no
4263         side-effects.
4264         (main): Initialize verbose.
4265         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
4267 2015-07-30  Richard Biener  <rguenther@suse.de>
4269         PR middle-end/67053
4270         * match.pd: Allow both operands to independently have conversion
4271         when simplifying compares of addresses.
4273 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
4275         PR target/66217
4276         PR target/67045
4277         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
4278         around those cases that need one.
4280 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
4282         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
4284 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
4286         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
4287         New.  Copied from config/i386/gnu-user.h.
4288         (ASM_COMMENT_START): Likewise.
4289         (DBX_REGISTER_NUMBER): Likewise.
4291 2015-07-29  Richard Biener  <rguenther@suse.de>
4293         * gimple-fold.c (fold_gimple_cond): Remove.
4294         (fold_stmt_1): Do not call it.
4296 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
4298         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
4299         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
4301         * config/aarch64/aarch64-modes.def: Add HFmode.
4303         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
4304         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
4306         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
4307         aarch64_promoted_type): New.
4309         (aarch64_float_const_representable_p): Disable HFmode.
4310         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
4311         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
4312         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
4314         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
4315         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
4317         * config/aarch64/iterators.md (GPF_F16): New.
4319 2015-07-29  Richard Biener  <rguenther@suse.de>
4321         * match.pd: Merge address comparison patterns and make them
4322         handle some more cases.
4324 2015-07-29  Richard Biener  <rguenther@suse.de>
4326         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
4327         (parser::parse_capture): Add bool argument on whether to reject
4328         unknown captures.
4329         (parser::parse_expr): Adjust.
4330         (parser::parse_op): Likewise.
4331         (parser::parse_pattern): Likewise.
4333 2015-07-29  Richard Biener  <rguenther@suse.de>
4335         * gimple-fold.c (has_use_on_stmt): New function.
4336         (replace_stmt_with_simplification): Use it to allow
4337         abnormals originally referenced in the stmt.
4338         (fold_stmt_1): Canonicalize operand order.
4340 2015-07-28  David Sherwood  <david.sherwood@arm.com>
4342         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
4343         GET_MODE_INNER unconditionally.
4344         * config/spu/spu.c (arith_immediate_p): Likewise.
4345         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
4346         * expmed.c (synth_mult): Remove check for VOIDmode result from
4347         GET_MODE_INNER.
4348         (expand_mult_const): Likewise.
4349         * fold-const.c (fold_binary_loc): Replace call to element_precision
4350         with call to GET_MODE_PRECISION.
4351         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
4352         m->name.
4353         (emit_mode_inner): Likewise.
4354         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
4355         result check.
4356         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
4357         (GET_MODE_UNIT_PRECISION): Likewise.
4358         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
4359         * simplify-rtx.c (simplify_immed_subreg): Likewise.
4360         * stor-layout.c (bitwise_type_for_mode): Update assert.
4361         (element_precision): Remove.
4363 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4365         * target-insns.def (reload_load_address): New targetm instruction
4366         pattern.
4367         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
4369 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4371         * target-insns.def (atomic_test_and_set): New targetm instruction
4372         pattern.
4373         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
4374         HAVE_*/gen_* interface.
4376 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4378         * target-insns.def (can_extend, ptr_extend): New targetm instruction
4379         patterns.
4380         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
4381         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
4382         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
4383         * rtlanal.c (nonzero_bits1): Likewise.
4384         (num_sign_bit_copies1): Likewise.
4386 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4388         * target-insns.def (eh_return): New targetm instruction pattern.
4389         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
4390         interface.
4391         * function.c (thread_prologue_and_epilogue_insns): Remove
4392         preprocessor condition.
4394 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4396         * target-insns.def (indirect_jump): New targetm instruction pattern.
4397         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
4398         interface.
4400 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
4402         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
4403         instead of nonimmediate_operand.  Remove C condiition.
4405 2015-07-28  Richard Biener  <rguenther@suse.de>
4407         * match.pd: Add more simplification of address comparisons.
4409 2015-07-28  Richard Biener  <rguenther@suse.de>
4411         * match.pd: Re-order two cases in comparison with max/min
4412         value simplification to make it apply for bools.
4414 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4416         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
4417         Handle simple SIGN_EXTEND or ZERO_EXTEND.
4418         (aarch64_rtx_costs): Properly strip extend or extract before
4419         passing down to rtx costs again.
4421 2015-07-28  Nick Clifton  <nickc@redhat.com>
4423         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
4424         Optimizes the case where -mes0 is active and a constant symbolic
4425         address is used.
4426         * config/rl78/rl78-protos.h: Prototype the new function.
4427         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
4429 2015-07-28  Tom de Vries  <tom@codesourcery.com>
4431         * tree-parloops.c (reduc_stmt_res): New function.
4432         (initialize_reductions, add_field_for_reduction)
4433         (create_phi_for_local_result, create_loads_for_reductions)
4434         (create_stores_for_reduction, build_new_reduction): Handle case that
4435         reduc_stmt is a phi.
4436         (gather_scalar_reductions): Allow double_reduc reductions.
4438 2015-07-28  Richard Biener  <rguenther@suse.de>
4440         * fold-const.c (fold_comparison): Remove equality folding
4441         of decl addresses ...
4442         * match.pd: ... here and merge with existing pattern.
4444 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4446         PR tree-optimization/66828
4447         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
4448         from int64_t to uint64_t.
4450 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4452         * opts-common.c (read_cmdline_option): List DriverOnly enum values
4453         as valid only in the error message of the driver, not in the
4454         messages of the language compilers.
4456 2015-07-27  Tom de Vries  <tom@codesourcery.com>
4458         * tree-parloops.c (gather_scalar_reductions): Simplify function
4459         structure.
4461 2015-07-27  Marek Polacek  <polacek@redhat.com>
4463         * ipa-devirt.c (types_same_for_odr): Fix typo.
4465 2015-07-27  Jason Merrill  <jason@redhat.com>
4467         PR debug/66468
4468         * dwarf2out.c (gen_inlined_subroutine_die): Check
4469         cgraph_function_possibly_inlined_p.
4471 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
4473         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
4474         Place integer variant first.
4475         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4477 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
4479         PR/63870
4480         * config/arm/arm-builtins.c (enum arm_builtins):
4481         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
4482         (ARM_BUILTIN_NEON_BASE): Rename macro to....
4483         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
4484         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
4485         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
4487 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
4489         PR/63870
4490         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
4491         Add qualifier_lane_index.
4492         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
4493         (arm_getlane_qualifiers): Use qualifier_lane_index.
4494         (arm_lanemac_qualifiers): Rename to...
4495         (arm_mac_n_qualifiers): ...this.
4496         (LANEMAC_QUALIFIERS): Rename to...
4497         (MAC_N_QUALIFIERS): ...this.
4498         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
4499         (arm_setlane_qualifiers): Use qualifier_lane_index.
4500         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
4501         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
4502         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
4503         (arm_expand_neon_builtin): Handle qualifier_lane_index.
4505         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
4506         * config/arm/arm.c (bounds_check): Likewise, improve error message.
4507         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
4508         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
4509         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
4510         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
4511         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
4512         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
4513         qualifiers to TERNOP_IMM.
4514         (vdup_lane): Change qualifiers to GETLANE.
4515         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
4516         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
4517         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
4518         vqdmlsl_n): Change qualifiers to MAC_N.
4520         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
4521         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
4522         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
4523         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
4524         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
4525         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
4526         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
4527         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
4528         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
4529         Remove call to neon_lane_bounds.
4531 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
4533         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4534         Place integer variant first.
4536 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
4538         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
4539         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
4540         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
4541         for armv6kz targets.
4542         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
4543         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
4544         (FL_FOR_ARCH6ZK): Remove.
4545         (FL_FOR_ARCH6KZ): New.
4546         (arm_arch6zk): New declaration.
4547         * config/arm/arm-tables.opt: Regenerate.
4548         * config/arm/arm.c (arm_arch6kz): New.
4549         (arm_option_override): Set arm_arch6kz.
4550         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
4551         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
4552         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
4554 2015-07-27  Marek Polacek  <polacek@redhat.com>
4556         PR c++/66555
4557         PR c/54979
4558         * doc/invoke.texi: Document -Wtautological-compare.
4560 2015-07-27  Richard Biener  <rguenther@suse.de>
4562         * genmatch.c (decision_tree::gen_gimple): Split out large
4563         subtrees into separate functions.
4564         (decision_tree::gen_generic): Likewise.
4566 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
4568         * config/alpha/alpha.c: Use SUBREG_P predicate.
4569         * config/alpha/predicates.md: Ditto.
4571 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4573         * config.host (s390*-*-*): Include driver-native.c only when
4574         building with s390* as host *and* target.
4576 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
4578         PR target/66930
4579         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
4580         T bit register modified_between_p check.
4582 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
4584         * config/i386/i386.c: Use SUBREG_P predicate.
4585         * config/i386/i386.md: Ditto.
4586         * config/i386/sse.md: Ditto.
4587         * config/i386/predicates.md: Ditto.
4589 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
4591         PR target/67004
4592         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
4593         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
4595 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
4597         * Makefile.in: Remove use of TREEBROWSER.
4598         * config.in: Regenerated.
4599         * configure: Regenerated.
4600         * configure.ac: Remove definition of TREEBROWSER.
4601         * tree-browser.c: Removed.
4602         * tree-browser.def: Removed.
4604 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
4606         * graphite-scop-detection.c: Include gimple-pretty-print.h.
4607         (stmt_simple_for_scop_p): Print when a stmt is not handled in
4608         Graphite.
4609         (scopdet_basic_block_info): Print when a loop or bb cannot be
4610         represented in Graphite.
4612 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
4614         PR target/66648
4615         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
4616         execution guard when min_size is less than size_needed.
4618 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
4620         * doc/install.texi: Document supported versions of ISL.
4622 2015-07-25  Jeff Law  <law@redhat.com>
4624         Revert:
4625         PR lto/66752
4626         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
4627         unable to find X NE 0 in the tables, return X as the simplified
4628         condition.
4629         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
4630         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
4631         to VISISTED_BBS.  */
4632         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
4633         after removing the control flow statement and unnecessary edges.
4635 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
4637         Revert:
4638         2015-07-23  Alexandre Oliva <aoliva@redhat.com>
4640         PR rtl-optimization/64164
4641         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
4642         * tree-ssa-copyrename.c: Removed.
4643         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
4644         -ftree-coalesce-vars.
4645         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
4646         * common.opt (ftree-copyrename): Ignore.
4647         (ftree-coalesce-inlined-vars): Likewise.
4648         * doc/invoke.texi: Remove the ignored options above.
4649         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
4650         * tree-ssa-coalesce.h: ... here.
4651         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
4652         headers required by it.
4653         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
4654         across variables when flag_tree_coalesce_vars.  Check register
4655         use and promoted modes to allow coalescing.  Moved to
4656         tree-ssa-coalesce.c.
4657         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
4658         with its member functions to tree-ssa-coalesce.c.
4659         (var_map_base_init): Likewise.  Renamed to
4660         compute_samebase_partition_bases.
4661         (partition_view_normal): Drop want_bases parameter.
4662         (partition_view_bitmap): Likewise.
4663         * tree-ssa-live.h: Adjust declarations.
4664         * tree-ssa-coalesce.c: Include explow.h.
4665         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
4666         default defs at the entry point.
4667         (dump_part_var_map): New.
4668         (compute_optimized_partition_bases): New, called by...
4669         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
4670         of compute_samebase_partition_bases.  Adjust.
4671         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
4672         * cfgexpand.c (leader_merge): New.
4673         (get_rtl_for_parm_ssa_default_def): New.
4674         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
4675         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
4676         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
4677         redundant MEM attr setting.
4678         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
4679         from...
4680         (expand_one_stack_var): ... this.  New wrapper to check and
4681         skip already expanded SSA partitions.
4682         (record_alignment_for_reg_var): New, factored out of...
4683         (expand_one_var): ... this.
4684         (expand_one_ssa_partition): New.
4685         (adjust_one_expanded_partition_var): New.
4686         (expand_one_register_var): Check and skip already expanded SSA
4687         partitions.
4688         (expand_used_vars): Don't create DECLs for anonymous SSA
4689         names.  Expand all SSA partitions, then adjust all SSA names.
4690         (pass::execute): Replace the loops that set
4691         SA.partition_to_pseudo from partition leaders and cleared
4692         DECL_RTL for multi-location variables, and that which used to
4693         rename vars and set attrs, with one that clears DECL_RTL and
4694         checks that PARMs and RESULTs default_defs match DECL_RTL.
4695         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
4696         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
4697         * explow.c (promote_ssa_mode): New.
4698         * explow.h (promote_ssa_mode): Declare.
4699         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
4700         * function.c: Include cfgexpand.h.
4701         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
4702         (use_register_for_parm_decl): Wrapper for the above to
4703         special-case the result_ptr.
4704         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
4705         (split_complex_args): Take assign_parm_data_all argument.
4706         Pass it to rtl_for_parm.  Set up rtl and context for split
4707         args.
4708         (assign_parms_augmented_arg_list): Adjust.
4709         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
4710         multiple locations.  Recognize split complex args.
4711         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
4712         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
4713         (assign_parm_setup_block): Prefer SSA-assigned location.
4714         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
4715         if stack_parm is NULL.
4716         (assign_parm_setup_stack): Prefer SSA-assigned location.
4717         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
4718         rtl before testing for pointer bounds.  Special-case result_ptr.
4719         (expand_function_start): Maybe reset DECL_RTL of result.
4720         Prefer SSA-assigned location for result and static chain.
4721         Factor out DECL_RESULT and SET_DECL_RTL.
4722         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
4723         anonymous SSA names.  Use promote_ssa_mode.
4724         (get_temp_reg): Likewise.
4725         (remove_ssa_form): Adjust.
4726         * stor-layout.c (layout_decl): Don't set mem attributes of
4727         non-MEMs.
4728         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
4729         and get its reg_usage for reg invalidation.
4730         (compute_bb_dataflow): Pass it insn.
4731         (emit_notes_in_bb): Likewise.
4733 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
4735         * config/i386/i386.c (ix86_va_start): Remove
4736         unneeded !TARGET_64BIT check.
4737         (ix86_gimplify_va_arg): Ditto.
4739 2015-07-24  Tom de Vries  <tom@codesourcery.com>
4741         * graphite-sese-to-poly.c (build_poly_scop): Always call
4742         rewrite_commutative_reductions_out_of_ssa.
4744 2015-07-24  Tom de Vries  <tom@codesourcery.com>
4746         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
4747         flag_associative_math to FLOAT_TYPE_P.  Honour
4748         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
4750 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4752         PR c++/64079
4753         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
4754         and "%qD" in warning_at instead of "%q+D" in warning.
4756 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
4758         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
4759         (ix86_function_abi): Cleanup.
4761 2015-07-24  Michael Darling  <darlingm@gmail.com>
4763         PR other/66259
4764         * acinclude.m4: Reflects renaming of configure.in to configure.ac
4765         * configure: Likewise
4766         * configure.ac: Likewise
4767         * doc/install.texi: Likewise
4768         * doc/tm.texi: Likewise
4769         * doc/tm.texi.in: Likewise
4771 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4773         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
4774         manually swapping values.
4775         * cse.c (fold_rtx): Likewise.
4776         * lra-eliminations.c (form_sum): Likewise.
4778 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
4780         PR target/64003
4781         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
4782         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
4783         (*jcc_1, *jcc_2, jump, simple_return_internal)
4784         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
4785         Set length_nobnd attribute instead of length attribute.
4786         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
4787         (length_nobnd): Remove attribute.
4788         (length): Remove length_nobnd processing.
4790 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
4792         * gimplify.c (omp_default_clause): New function.  Reorganize flow
4793         for clarity. Broken out of ...
4794         (omp_notice_variable): ... here.
4796 2015-07-24  Gary Funck  <gary@intrepid.com>
4798         PR middle-end/66984
4799         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
4800         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
4802 2015-07-24  Tom de Vries  <tom@codesourcery.com>
4804         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
4805         exit-first loop transform.
4807 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
4809         PR 66714
4810         * tree-cfg.c (struct replace_decls_d): New struct.
4811         (replace_block_vars_by_duplicates_1): New function.
4812         (replace_block_vars_by_duplicates): Use it to replace the decls
4813         in the value exprs by duplicates.
4815 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4817         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
4818         -shared, -symbolic, -rdynamic.
4820 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4822         PR target/65711
4823         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
4824         -dynamic-linker within %{!static %{!shared, and -rdynamic within
4825         %{!static.
4827 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
4829         PR ipa/66566
4830         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
4831         edge summary is available.
4833 2015-07-24  Richard Biener  <rguenther@suse.de>
4835         * genmatch.c (struct dt_node): Add statistic fields.
4836         (dt_node::analyze): New method.
4837         (decision_tree::gen_gimple): Call analyze on the root node
4838         and print statistics to stderr.
4839         (decision_tree::gen_generic): Likewise.
4841 2015-07-24  Richard Biener  <rguenther@suse.de>
4843         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
4844         against the highest or lowest possible integer ...
4845         * match.pd: ... as patterns here.
4847 2015-07-24  Richard Biener  <rguenther@suse.de>
4849         * genmatch.c (struct capture_info): Add same_as field.
4850         (capture_info::capture_info): Initialize same_as.
4851         (capture_info::walk_match): Compute same_as.
4852         (capture_info::walk_result): Compute stuff for the leader.
4853         (capture_info::walk_c_expr): Likewise.
4854         (dt_simplify::gen_1): Only look at leaders when deciding
4855         to force no side-effects or emit side-effects of omitted operands.
4857 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4859         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
4860         reg note to the GPR -> FPR save instructions.
4862 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4864         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
4865         cheaper.
4866         (s390_expand_insv): Don't generate risbg pattern for constant zero
4867         sources.
4868         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
4869         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
4870         splitters.
4872 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4874         * config/s390/s390.c (s390_reorg): Clean up handling of processors
4875         with
4876         -mtune=
4877         (s390_issue_rate): Likewise.
4878         (s390_sched_reorder): Likewise.
4879         (s390_sched_variable_issue): Likewise.
4880         (s390_loop_unroll_adjust): Likewise.
4881         (s390_option_override):  Likewise.
4883 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4885         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
4886         processor capabilities with -march=native.
4887         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
4888         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
4889         (S390_TARGET_BITS_STRING): Macro to simplify specs.
4891 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4893         * config/s390/s390.c (s390_issue_rate): Handle
4894         PROCESSOR_2094_Z9_EC.
4895         (s390_option_override): Likewise.
4896         (s390_adjust_priority): Likewise.
4898 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4900         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
4901         when cross compiling.
4903 2015-07-24  Richard Biener  <rguenther@suse.de>
4905         * fold-const.c (maybe_canonicalize_comparison_1): Move
4906         A code CST canonicalization ...
4907         * match.pd: ... to a pattern here.
4909 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
4911         Revert:
4912         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
4913         PR target/63521
4914         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
4915         (HONOR_REG_ALLOC_ORDER): Define.
4917 2015-07-24  Richard Biener  <rguenther@suse.de>
4919         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
4920         * fold-const.c (fold_comparison): Move parameter does not
4921         alias &local simplification ...
4922         * match.pd: ... as a pattern here.
4924 2015-07-24  Richard Biener  <rguenther@suse.de>
4926         * gimple-fold.c (replace_stmt_with_simplification): Special-case
4927         valueizing call operands.
4928         * gimple-match-head.c (maybe_push_res_to_seq): Take
4929         number of call arguments from ops array.
4930         (do_valueize): New function.
4931         (gimple_simplify): Return true if valueization changed
4932         any operand even if the result didn't simplify further.
4934 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4936         PR middle-end/25530
4937         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
4939 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
4941         PR middle-end/25529
4942         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
4944 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
4946         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
4947         instruction.
4949 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
4951         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
4952         clean up.
4954 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
4956         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
4957         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
4958         targets here.
4959         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
4960         ms_va_list_type_node initialization.
4962 2015-07-23  Jeff Law  <law@redhat.com>
4964         PR lto/66752
4965         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
4966         unable to find X NE 0 in the tables, return X as the simplified
4967         condition.
4968         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
4969         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
4970         to VISISTED_BBS.  */
4971         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
4972         after removing the control flow statement and unnecessary edges.
4974 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4976         * tree-pass.h (get_current_pass_name): Removed.
4978 2015-07-23  Alexandre Oliva <aoliva@redhat.com>
4980         PR rtl-optimization/64164
4981         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
4982         * tree-ssa-copyrename.c: Removed.
4983         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
4984         -ftree-coalesce-vars.
4985         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
4986         * common.opt (ftree-copyrename): Ignore.
4987         (ftree-coalesce-inlined-vars): Likewise.
4988         * doc/invoke.texi: Remove the ignored options above.
4989         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
4990         * tree-ssa-coalesce.h: ... here.
4991         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
4992         headers required by it.
4993         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
4994         across variables when flag_tree_coalesce_vars.  Check register
4995         use and promoted modes to allow coalescing.  Moved to
4996         tree-ssa-coalesce.c.
4997         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
4998         with its member functions to tree-ssa-coalesce.c.
4999         (var_map_base_init): Likewise.  Renamed to
5000         compute_samebase_partition_bases.
5001         (partition_view_normal): Drop want_bases parameter.
5002         (partition_view_bitmap): Likewise.
5003         * tree-ssa-live.h: Adjust declarations.
5004         * tree-ssa-coalesce.c: Include explow.h.
5005         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
5006         default defs at the entry point.
5007         (dump_part_var_map): New.
5008         (compute_optimized_partition_bases): New, called by...
5009         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
5010         of compute_samebase_partition_bases.  Adjust.
5011         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
5012         * cfgexpand.c (leader_merge): New.
5013         (get_rtl_for_parm_ssa_default_def): New.
5014         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
5015         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
5016         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
5017         redundant MEM attr setting.
5018         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
5019         from...
5020         (expand_one_stack_var): ... this.  New wrapper to check and
5021         skip already expanded SSA partitions.
5022         (record_alignment_for_reg_var): New, factored out of...
5023         (expand_one_var): ... this.
5024         (expand_one_ssa_partition): New.
5025         (adjust_one_expanded_partition_var): New.
5026         (expand_one_register_var): Check and skip already expanded SSA
5027         partitions.
5028         (expand_used_vars): Don't create DECLs for anonymous SSA
5029         names.  Expand all SSA partitions, then adjust all SSA names.
5030         (pass::execute): Replace the loops that set
5031         SA.partition_to_pseudo from partition leaders and cleared
5032         DECL_RTL for multi-location variables, and that which used to
5033         rename vars and set attrs, with one that clears DECL_RTL and
5034         checks that PARMs and RESULTs default_defs match DECL_RTL.
5035         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
5036         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
5037         * explow.c (promote_ssa_mode): New.
5038         * explow.h (promote_ssa_mode): Declare.
5039         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
5040         * function.c: Include cfgexpand.h.
5041         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
5042         (use_register_for_parm_decl): Wrapper for the above to
5043         special-case the result_ptr.
5044         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
5045         (split_complex_args): Take assign_parm_data_all argument.
5046         Pass it to rtl_for_parm.  Set up rtl and context for split
5047         args.
5048         (assign_parms_augmented_arg_list): Adjust.
5049         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
5050         multiple locations.  Recognize split complex args.
5051         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
5052         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
5053         (assign_parm_setup_block): Prefer SSA-assigned location.
5054         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
5055         if stack_parm is NULL.
5056         (assign_parm_setup_stack): Prefer SSA-assigned location.
5057         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
5058         rtl before testing for pointer bounds.  Special-case result_ptr.
5059         (expand_function_start): Maybe reset DECL_RTL of result.
5060         Prefer SSA-assigned location for result and static chain.
5061         Factor out DECL_RESULT and SET_DECL_RTL.
5062         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
5063         anonymous SSA names.  Use promote_ssa_mode.
5064         (get_temp_reg): Likewise.
5065         (remove_ssa_form): Adjust.
5066         * stor-layout.c (layout_decl): Don't set mem attributes of
5067         non-MEMs.
5068         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
5069         and get its reg_usage for reg invalidation.
5070         (compute_bb_dataflow): Pass it insn.
5071         (emit_notes_in_bb): Likewise.
5073 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
5075         PR target/66217
5076         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
5077         prototype.
5078         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
5079         (rs6000_emit_2insn_and): Handle dot forms.
5080         * config/rs6000/rs6000.md (and<mode>3): Adjust.
5081         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
5082         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
5084 2015-07-23  Richard Biener  <rguenther@suse.de>
5086         * generic-match-head.c: Include cgraph.h.
5087         * gimple-match-head.c: Likewise.
5088         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
5089         SSA names.
5090         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
5091         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
5092         pattern.
5094 2015-07-23  Richard Biener  <rguenther@suse.de>
5096         * gimple-fold.c (fold_gimple_cond): Do not require folding
5097         results to pass valid_gimple_rhs_p.
5098         * tree-cfg.h (fold_cond_expr_cond): Remove.
5099         * tree-cfg.c (fold_cond_expr_cond): Likewise.
5100         (make_edges): Do not call it.
5101         * tree-inline.c (tree_function_versioning): Likewise.
5103 2015-07-23  Tom de Vries  <tom@codesourcery.com>
5105         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
5106         vect_force_simple_reduction.
5107         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
5108         (vect_is_simple_reduction_1): Add and handle
5109         need_wrapping_integral_overflow parameter.
5110         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
5111         need_wrapping_integral_overflow parameter.
5112         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
5113         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
5114         decl.
5116 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
5118         PR tree-optimization/66926,66951
5119         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
5120         INNER_LOOP and fix up condition for renaming virtual operands.
5122 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5124         * combine.c (try_combine): Use std::swap instead of manually
5125         swapping.
5127 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
5129         * config/mips/i6400.md: New file.
5130         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
5131         (mips64r6): Likewise.
5132         (i6400): Define.
5133         * config/mips/mips-tables.opt: Regenerate.
5134         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
5135         (mips_issue_rate): Add support for i6400.
5136         (mips_multipass_dfa_lookahead): Likewise.
5137         * config/mips/mips.h (TUNE_I6400): Define.
5138         * config/mips/mips.md: Include i6400.md.
5139         (processor): Add i6400.
5140         * doc/invoke.texi (-march=@var{arch}): Add i6400.
5142 2015-07-23  Richard Biener  <rguenther@suse.de>
5144         PR middle-end/66916
5145         * match.pd: Guard widen and sign-change comparison simplification
5146         with single_use.
5148 2015-07-23  Richard Biener  <rguenther@suse.de>
5150         PR tree-optimization/66945
5151         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
5152         ::before_dom_children): Force the propagators idea of
5153         non-executable edges to materialize, not what the folder
5154         chooses.
5156 2015-07-23  Richard Biener  <rguenther@suse.de>
5158         * gimple.h (gimple_cond_make_false): Use 0 != 0.
5159         (gimple_cond_make_true): Use 1 != 0.
5161 2015-07-22  DJ Delorie  <dj@redhat.com>
5163         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
5164         slashes.
5166         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
5167         (ashrhi3): Likewise.
5168         (lshrhi3): Likewise.
5169         (movhi): Take advantage of zero-extend to load small constants.
5170         (movpsi): Likewise.
5171         (and<mode>3): Likewise.
5172         (zero_extendqihi2): Likewise.
5173         (zero_extendqisi2): New.
5174         * config/msp430/constraints.md (N,O): New.
5175         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
5177 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
5179         PR target/66954
5180         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
5181         to enum feature_priority and feature_list.
5182         (fold_builtin_cpu): Add F_AES to enum processor_features
5183         and isa_names_table.
5185 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5187         PR driver/66737
5188         * config/i386/linux-common.h (MPX_SPEC): Use linker option
5189         for 64bit target only.
5191 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
5193         * config/nvptx/nvptx.c: Expand some comments.
5195 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
5197         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
5198         (cortex_a53_advsimd): ...This.
5200 2015-07-22  Richard Biener  <rguenther@suse.de>
5202         * genmatch.c (expr::gen_transform): Clarify error message
5203         and display location.
5205 2015-07-22  Richard Biener  <rguenther@suse.de>
5207         * genmatch.c (struct operand): Add location member.
5208         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
5209         constructors.
5210         (struct simplify): Remove match_location and result_location
5211         members.
5212         (elsehwere): Adjust.
5214 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
5216         * config/mips/m5100.md: New file.
5217         * config/mips/mips-cpus.def (m5100, m5101): Define.
5218         * config/mips/mips-tables.opt: Regenerate.
5219         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
5220         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
5221         -march=m5101 to -mips32r5.
5222         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
5223         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
5224         !-msoft-float.
5225         * config/mips/mips.md: Include m5100.md.
5226         (processor): Add m5100.
5227         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
5229 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
5231         * config/mips/mips-cpus.def (interaptiv): Define.
5232         * config/mips/mips-tables.opt: Regenerate.
5233         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
5234         -mips32r2.
5235         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
5236         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
5238 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
5240         PR target/63521
5241         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
5242         (HONOR_REG_ALLOC_ORDER): Define.
5244 2015-07-22  Richard Biener  <rguenther@suse.de>
5246         PR tree-optimization/66952
5247         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
5248         blocks we end up executing unconditionally reset all SSA
5249         info such as range and alignment.
5250         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
5251         * tree-ssanames.c (reset_flow_sensitive_info): New function.
5253 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
5255         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
5256         typo in attribute.
5258 2015-07-22  Richard Biener  <rguenther@suse.de>
5260         * genmatch.c (parser::parse_result): Properly handle
5261         match with result operands and conditions.
5263 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
5265         PR target/63870
5266         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
5267         Add qualifier_struct_load_store_lane_index.
5268         (aarch64_types_loadstruct_lane_qualifiers): Use
5269         qualifier_struct_load_store_lane_index for lane index argument for
5270         last argument.
5271         (aarch64_types_storestruct_lane_qualifiers): Ditto.
5272         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
5273         (aarch64_simd_expand_args): Add new argument describing mode of
5274         builtin. Check lane bounds for arguments with
5275         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
5276         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
5277         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
5278         (aarch64_simd_expand_builtin): Handle arguments with
5279         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
5280         aarch64_simd_expand_args.
5281         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
5282         vst[234]_lane with BUILTIN_VALLDIF.
5283         * config/aarch64/aarch64-simd.md:
5284         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
5285         endianness reversal on lane index.
5286         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
5287         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
5288         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
5289         (vec_store_lanesci_lane<mode>): Ditto.
5290         (vec_store_lanesxi_lane<mode>): Ditto.
5291         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
5292         reversal of lane index.
5293         (aarch64_ld3_lane<mode>): Ditto.
5294         (aarch64_ld4_lane<mode>): Ditto.
5295         (aarch64_st2_lane<mode>): Ditto.
5296         (aarch64_st3_lane<mode>): Ditto.
5297         (aarch64_st4_lane<mode>): Ditto.
5298         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
5299         to qmode. Add new mode parameter. Update uses.
5300         (__LD3_LANE_FUNC): Ditto.
5301         (__LD4_LANE_FUNC): Ditto.
5302         (__ST2_LANE_FUNC): Ditto.
5303         (__ST3_LANE_FUNC): Ditto.
5304         (__ST4_LANE_FUNC): Ditto.
5306 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
5308         * doc/invoke.texi (Language Independent Options): Rename node to
5309         Diagnostic Message Formatting Options.
5311 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
5313         PR ipa/66424.
5314         * lra-remat.c (operand_to_remat): Prevent using insns with input
5315         subregs processed separately by IRA.
5317 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
5319         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
5320         straight loops.
5321         (single_imm_use): Check for iterator node.
5322         (num_imm_uses): Likewise.
5323         * tree-ssa-operands.c (has_zero_uses_1): Delete.
5324         (single_imm_use_1): Check for iterator node.
5326 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
5327             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5329         * configure.ac: Add check for new options in isl-0.15.
5330         * config.in, configure: Rebuilt.
5331         * graphite-blocking.c: Include <isl/constraint.h>
5332         * graphite-interchange.c,  graphite-poly.c: Likewise.
5333         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
5334         * graphite.c: Likewise.
5335         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
5336         <isl/union_set.h>.
5337         * graphite-dependences.c: Include <isl/constraint.h>.
5338         (max_number_of_out_dimensions): Returns isl_stat.
5339         (extend_schedule_1): Likewise
5340         (extend_schedule): Corresponding changes.
5341         * graphite-optimize-isl.c: Include <isl/constraint.h> and
5342         <isl/union_set.h>.
5343         (getSingleMap): Change return type of isl_stat.
5344         (optimize_isl): Conditionally use
5345         isl_options_set_schedule_serialize_sccs.
5346         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
5347         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
5349 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
5351         PR target/66956
5352         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
5353         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
5355 2015-07-21  Richard Biener  <rguenther@suse.de>
5357         PR tree-optimization/66948
5358         * genmatch.c (capture_info::walk_match): Also recurse to
5359         captures.  Properly compute expr state from captures of
5360         captures.
5361         * match.pd: Add single-use guards to
5362         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
5364 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
5366         * config/nvptx/mkoffload.c (process): Add static destructor call.
5368 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5370         PR middle-end/66915
5371         * match.pd (A - B -> A + (-B)): Don't allow folding
5372         when type if a fixed-point type.
5374 2015-07-20  DJ Delorie  <dj@redhat.com>
5376         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
5377         (iorqi3_real): Likewise for set1.
5379 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
5381         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
5382         for !TARGET_64BIT.
5384 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
5386         * graphite-isl-ast-to-gimple.c:
5387         Refactor so that each function can access 'region'. This will help
5388         maintain a parameter rename_map within a region.
5390 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
5392         * config/rs6000/rs6000.md (*lt0_disi): New.
5394 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
5396         PR target/66217
5397         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
5398         "available letters" comment.
5399         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
5400         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
5401         and_2rld_operand):  Delete.
5402         (and_operand): Adjust.
5403         (rotate_mask_operator): New.
5404         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
5405         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
5406         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
5407         extract_ME): Delete.
5408         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
5409         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
5410         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
5411         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
5412         rs6000_emit_2insn_and): New.
5413         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
5414         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
5415         includes_rldic_lshift_p, includes_rldicr_lshift_p,
5416         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
5417         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
5418         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
5419         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
5420         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
5421         rs6000_emit_2insn_and): New.
5422         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
5423         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
5424         handling.
5425         <NOT>: Don't fall through to next case.
5426         <AND>: Handle the various rotate-and-mask cases directly.
5427         <IOR>: Always cost as one insn.
5428         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
5429         (and<mode>3): Adjust expander for the new patterns.
5430         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
5431         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
5432         (*and<mode>3_imm_dot_shifted): New.
5433         (*and<mode>3_mask): Delete, rewrite as ...
5434         (and<mode>3_mask): ... New.
5435         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
5436         (andsi3_internal0_nomc): Delete.
5437         (*andsi3_internal6): Delete.
5438         (*and<mode>3_2insn): New.
5439         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
5440         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
5441         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
5442         *insvdi_internal3): Delete.
5443         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
5444         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
5445         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
5446         *ior<mode>_mask): New.
5447         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
5448         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
5449         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
5450         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
5451         Delete.
5452         (ashr<mode>3): Delete expander.
5453         (*ashr<mode>3): Rename to ...
5454         (ashr<mode>3): ... This.
5455         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
5456         (*rotldi3_internal4, *rotldi3_internal5 and split,
5457         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
5458         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
5459         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
5460         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
5461         (splitter for loading a mask): Adjust.
5462         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
5464 2015-07-20  Marek Polacek  <polacek@redhat.com>
5466         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
5467         output_add_clobbers, output_added_clobbers_hard_reg_p,
5468         gen_rtx_scratch): Remove declarations.
5470 2015-07-20  Marek Polacek  <polacek@redhat.com>
5472         PR c++/55095
5473         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
5475 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5477         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
5478         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
5480 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5482         * combine.c (combine_simplify_rtx): Move simplification step
5483         before various transformations/substitutions.
5485 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
5487         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
5488         (struct int_traits): Likewise.
5490 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5492         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
5493         function to vmsdbgout_function_decl.
5495 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
5497         PR target/66922
5498         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
5499         from misaligned positions.
5500         (ix86_expand_pinsr): Reject insertions to misaligned positions.
5502 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
5504         PR middle-end/46851
5505         PR middle-end/60340
5506         * Makefile.in: Removed omega.o.
5507         * common.opt: Document flag fcheck-data-deps as deprecated.
5508         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
5509         its associated params: omega-max-vars, omega-max-geqs,
5510         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
5511         omega-max-keys, omega-eliminate-redundant-constraints.
5512         * doc/loop.texi: Remove all the section on Omega.
5513         * graphite-blocking.c: Include missing params.h: it used to be
5514         included through tree-data-ref.h and omega.h.
5515         * graphite-isl-ast-to-gimple.c: Same.
5516         * graphite-optimize-isl.c: Same.
5517         * graphite-sese-to-poly.c: Same.
5518         * graphite.c: Same.
5519         * omega.c: Remove.
5520         * omega.h: Remove.
5521         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
5522         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
5523         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
5524         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
5525         * passes.def: Remove pass_check_data_deps.
5526         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
5527         (dump_conflict_function): Same.
5528         (dump_subscript): Same.
5529         (print_direction_vector): Same.
5530         (print_dir_vectors): Same.
5531         (print_lambda_vector): Same.
5532         (print_dist_vectors): Same.
5533         (dump_data_dependence_relation): Same.
5534         (dump_data_dependence_relations): Same.
5535         (dump_dist_dir_vectors): Same.
5536         (dump_ddrs): Same.
5537         (init_omega_eq_with_af): Removed.
5538         (omega_extract_distance_vectors): Removed.
5539         (omega_setup_subscript): Removed.
5540         (init_omega_for_ddr_1): Removed.
5541         (init_omega_for_ddr): Removed.
5542         (ddr_consistent_p): Removed.
5543         (compute_affine_dependence): Do not use omega to check data
5544         dependences.
5545         (compute_data_dependences_for_bb): Removed.
5546         (analyze_all_data_dependences): Removed.
5547         (tree_check_data_deps): Removed.
5548         * tree-data-ref.h: Do not include omega.h.
5549         (compute_data_dependences_for_bb): Removed.
5550         (tree_check_data_deps): Removed.
5551         * tree-ssa-loop.c (pass_check_data_deps): Removed.
5552         (make_pass_check_data_deps): Removed.
5553         * tree-ssa-phiopt.c: Include params.h.
5554         * tree-vect-data-refs.c: Same.
5555         * tree-vect-slp.c: Same.
5557 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
5559         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
5560         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
5561         (mem->fpreg splitters): Ditto.
5562         (general_operand->nonimmediate_operand splitter): Use explicit modes.
5563         Disable DFmode for TARGET_64BIT.
5565 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
5567         PR target/66906
5568         * config/i386/i386.c (ix86_expand_prologue): Replicate static
5569         chain on the stack.
5571 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
5573         * config/nvptx/mkoffload.c (process): Constify host data.
5574         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
5575         Constify host data.
5576         (generate_host_descr_file): Likewise.
5578 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
5579             Sebastian Pop  <s.pop@samsung.com>
5581         PR middle-end/61929
5582         * graphite-dependences.c (add_pdr_constraints): Renamed
5583         pdr->extent to pdr->subscript_sizes.
5584         * graphite-interchange.c (build_linearized_memory_access): Add
5585         back all gcc_assert's that the "isl_int to isl_val conversion"
5586         patch has removed.  Refactored.
5587         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
5588         * graphite-poly.c (new_poly_dr): Same.
5589         (free_poly_dr): Same.
5590         * graphite-poly.h (struct poly_dr): Same.
5591         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
5592         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
5593         * graphite-scop-detection.h: Fix space.
5594         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
5595         back all gcc_assert's removed by a previous patch.
5596         (wrap): Remove the_isl_ctx global variable that the same patch has
5597         added.
5598         (build_loop_iteration_domains): Same.
5599         (add_param_constraints): Same.
5600         (pdr_add_data_dimensions): Same.  Refactored.
5601         (build_poly_dr): Renamed extent to subscript_sizes.
5603 2015-07-17  Marek Polacek  <polacek@redhat.com>
5605         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
5606         * match.pd: ... here.
5608 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
5610         * config/nvptx/mkoffload.c (process): Constify target data.
5611         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
5612         Constify target data.
5613         (generate_target_offloadend_file): Likewise.
5615 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
5617         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
5618         to allow renaming of PHI arguments on edges incoming from outer
5619         loop header, add corresponding check before start PHI iterator.
5620         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
5621         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
5622         with true force_vectorize.  Set-up dominator for outer loop too.
5623         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
5624         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
5625         was marked with force_vectorize and has restricted cfg.
5626         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
5627         inner loop.
5628         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
5629         do peeling for outer loops.
5631 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
5632             Matthias Klose  <doko@ubuntu.com>
5634         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
5635         build-sysroot, sysroot from the `Miscenalleous configure options' to
5636         the `Directories' section and strip trailing `/' from with_sysroot.
5637         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
5638         * configure: Regenerated.
5640 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
5642         PR target/66824
5643         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
5644         (TARGET_HARD_DF_REGS): Ditto.
5645         (TARGET_HARD_XF_REGS): Ditto.
5646         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
5647         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
5648         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
5649         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
5650         (*movsf_internal): Add alternatives 16 and 17. Enable
5651         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
5653 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
5655         PR rtl-optimization/66891
5656         * calls.c (expand_call): Wrap precompute_register_parameters with
5657         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
5659 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
5661         * config/nvptx/mkoffload.c (process): Constify mapping variables.
5662         Define target data struct and initialize it.
5664 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
5666         PR rtl-optimization/66626
5667         * ira.h (emit-rtl.h): Include.
5668         (non_spilled_static_chain_regno_p): New.
5669         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
5670         unless it is non spilled static chain pseudo.
5671         (assign_hard_rego): Spill memory profitable allocno unless it is
5672         non spilled static chain pseudo.
5673         (allocno_spill_priority_compare): Put non spilled static chain
5674         pseudo at the end of sorted array.
5675         (improve_allocation): Do nothing if we have static chain and
5676         non-local goto.
5677         (allocno__priority_compare_func): Put non spilled static chain
5678         pseudo at the beginning of sorted array.
5679         (move_spill_restore): Ignore non spilled static chain pseudo.
5680         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
5681         to non spilled static chain pseudo.
5682         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
5683         pseudo at the beginning of sorted array.
5684         (spill_for): Spill non spilled static chain pseudo last.
5685         * lra-constraints.c (lra_constraints): Remove static chain pseudo
5686         check for equivalence.
5688 2015-07-16  Martin Liska  <mliska@suse.cz>
5690         PR ipa/66896.
5691         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
5692         dst_ctx if it does not exist.
5694 2015-07-16  Martin Liska  <mliska@suse.cz>
5696         * hash-set.h (remove): New function.
5697         (iterator): New iteration class for hash_set.
5699 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5701         * genattrtab.c (make_canonical): Add a file_location parameter.
5702         Use fatal_at rather than fatal.
5703         (get_attr_value): Likewise.  Update call to make_canonical.
5704         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
5705         (make_internal_attr): Update calls accordingly.
5707 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5709         * read-md.h (message_with_line, error_with_line): Delete.
5710         * read-md.c (message_with_line, error_with_line): Delete.
5711         * gensupport.h: Include read-md.h.
5712         (md_rtx_info): New structure.
5713         (read_md_rtx): Use it.  Return a bool success value.
5714         * gensupport.c (read_md_rtx): Likewise.
5715         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
5716         (main): Update after interface changes.
5717         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
5718         (main): Update after interface changes.
5719         * genattrtab.c (insn_code_number): Delete.
5720         (optimize_attrs): Add a max_insn_code parameter and use it instead
5721         of insn_code_number.
5722         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
5723         Use *_at rather than *_with_line functions.
5724         (gen_insn): Likewise.
5725         (gen_delay): Likewise.
5726         (gen_insn_reserv): Likewise.
5727         (gen_bypass): Take an md_rtx_info rather than an rtx.
5728         (main): Update after interface changes.  Use a local max_insn_code
5729         variable instead of insn_code_number.
5730         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
5731         an rtx.  Use fatal_at rather than fatal.
5732         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
5733         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
5734         (gen_absence_set, gen_final_absence_set, gen_automaton)
5735         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
5736         (main): Update after interface changes.
5737         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
5738         and code number.
5739         (main): Update after interface changes.
5740         * genconditions.c (main): Use new read_md_rtx interface.
5741         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
5742         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
5743         (main): Update after interface changes.
5744         * genemit.c (insn_code_number, insn_index_number): Delete.
5745         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
5746         Use fatal_at rather than fatal.
5747         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
5748         rather than fatal.
5749         (gen_split): Likewise.
5750         (main): Update after interface changes.
5751         * genextract.c (line_no): Delete.
5752         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
5753         Update call to walk_rtx.
5754         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
5755         rather than message_with_line.
5756         (walk_rtx): Add an md_rtx_info argument.  Update call to
5757         VEC_safe_set_locstr.
5758         (main): Update after interface changes.
5759         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
5760         and lineno.  Use error_at rather than separate message_with_line
5761         calls and have_error assignments.
5762         (main): Update after interface changes.
5763         * genmddump.c (main): Use new read_md_rtx interface.
5764         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
5765         (main): Update after interface changes.
5766         * genoutput.c (next_code_number): Delete.
5767         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
5768         (gen_peephole, gen_expand, gen_split): Likewise.
5769         (note_constraint): Likewise.  Use *_at rather than *_with_line
5770         functions.
5771         (main): Update after interface changes.
5772         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
5773         rtx and lineno.
5774         (main): Update after interface changes.
5775         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
5776         than an rtx and lineno.
5777         (process_define_constraint): Likewise.
5778         (process_define_register_constraint): Likewise.
5779         (main): Update after interface changes.
5780         * genrecog.c (next_insn_code, pattern_lineno): Delete.
5781         (validate_pattern): Replace top-level rtx with an md_rtx_info.
5782         Use *_at rather than *_with_line functions.
5783         (match_pattern_2): Likewise.
5784         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
5785         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
5786         Use *_at rather than *_with_line functions.
5787         * gentarget-def.c (add_insn): New function.
5788         (main): Use it.  Use new read_md_rtx interface.
5790 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5792         * gensupport.h (compute_test_codes): Take a file_location rather
5793         than a line number.
5794         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
5795         rather than *_with_line functions.
5796         (process_define_predicate): Update call to compute_test_codes.
5797         * genpreds.c (validate_exp): Take a file_location rather than a
5798         line number.  Use *_at functions rather than *_with_line functions.
5799         (process_define_predicate): Update call to validate_exp.
5800         (constraint_data): Replace lineno field with a file_location.
5801         (add_constraint): Take a file_location rather than a line number.
5802         Use *_at functions rather than *_with_line functions.  Fix error
5803         message for address constraints.  Update after changes to
5804         validate_exp, constraint_data and compute_test_codes.
5805         (process_define_constraint): Update accordingly.
5806         (process_define_register_constraint): Likewise.
5808 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5810         * genoutput.c (data): Use a file_location to record the source
5811         position.
5812         (nothing): Delete.
5813         (idata, idata_end): Remove initialization.
5814         (constraint_data): Replace lineno with a file_location.
5815         (output_insn_data): Update after changes to data.
5816         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
5817         (scan_operands): Likewise, using *_at rather than *_with_line
5818         functions.
5819         (process_template): Likewise.
5820         (validate_insn_alternatives): Likewise.
5821         (validate_insn_operands): Likewise.
5822         (validate_optab_operands): Likewise.
5823         (init_insn_for_nothing): Initialize idata and idata_end.
5824         (note_constraint): Update after changes to constraint_data,
5825         using at rather than with_line functions.
5826         (mdep_constraint_len): Take a file_location rather than a
5827         line number.  Use at rather than with_line functions.
5829 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5831         * read-md.h (fatal_at): Declare.
5832         * read-md.c (fatal_at): New function.
5833         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
5834         to record the source position.
5835         (check_attr_test): Take a file_location instead of a line number.
5836         Use fatal_at instead of fatal.
5837         (check_attr_value): Update after above changes, using "at"
5838         rather than "with_line" reporting functions.
5839         (convert_set_attr_alternative): Likewise.
5840         (gen_attr): Likewise.
5841         (check_defs): Likewise.  Don't assign to read_md_filename.
5842         (gen_insn): Update initialization after above changes.
5843         (gen_delay): Likewise.
5844         (write_insn_cases): Print the filename for a define_peephole.
5845         (gen_insn_reserv): Take a line number as argument and update
5846         the call to check_attr_test.
5847         (main): Pass a line number to gen_insn_reserv.
5849 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5851         * read-md.h (file_location): New structure.
5852         (directive_handler_t): Take a file_location rather than a line number.
5853         (message_at, error_at): Declare.
5854         (read_skip_construct): Delete.
5855         * read-md.c (message_with_line_1): Replace with...
5856         (message_at_1): ...this new function.
5857         (message_at, error_at): New functions.
5858         (message_with_line, error_with_line): Update to use message_at_1.
5859         (handle_enum): Take a file_location rather than a line number
5860         and use error_at for error reporting.
5861         (handle_include): Likewise.
5862         (read_skip_construct): Likewise.  Make static.
5863         (handle_file): Update after above changes.  Pass a file_location
5864         rather than a line number to handle_directive.
5865         * gensupport.c (queue_elem): Replace separate filename and lineno
5866         with a file_location.
5867         (queue_pattern): Replace filename and lineno arguments with a
5868         file_location.  Update after change to queue_elem.
5869         (process_define_predicate): Replace lineno argument with a
5870         file_location and use error_at for error reporting.  Update
5871         after above changes.
5872         (process_rtx): Likewise.
5873         (subst_pattern_match): Likewise.
5874         (get_alternatives_number): Likewise.
5875         (alter_predicate_for_insn): Likewise.
5876         (rtx_handle_directive): Likewise.
5877         (is_predicable): Update after above changes, using error_at rather
5878         than error_with_line.
5879         (has_subst_attribute): Likewise.
5880         (identify_predicable_attribute): Likewise.
5881         (alter_attrs_for_subst_insn): Likewise.
5882         (process_one_cond_exec): Likewise.
5883         (process_substs_on_one_elem): Likewise.
5884         (process_define_subst): Likewise.
5885         (check_define_attr_duplicates): Likewise.
5886         (read_md_rtx): Update after change to queue_elem.
5888 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5890         * genoutput.c (next_index_number): Delete.
5891         (data): Remove index_number.
5892         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
5893         (main): Remove manipulation of next_index_number.
5895 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
5897         * genattrtab.c (check_attr_value): Remove handling of null attrs.
5898         (make_canonical): Likewise.
5900 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
5902         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
5903         instead of adjust_address_nv.
5904         (restore_stack_nonlocal): Likewise.
5905         (nonlocal_goto): Likewise.
5907 2015-07-16  Tom de Vries  <tom@codesourcery.com>
5909         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
5910         not have a corresponding loop header phi.
5912 2015-07-16  Tom de Vries  <tom@codesourcery.com>
5914         * tree-parloops.c (create_loads_for_reductions): Handle case that
5915         reduction is unused.
5917 2015-07-16  Richard Biener  <rguenther@suse.de>
5919         PR tree-optimization/66894
5920         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
5921         about deriving NE_EXPR from truncated values.
5923 2015-07-16  Martin Liska  <mliska@suse.cz>
5925         * alloc-pool.h
5926         (object_allocator): Add new class.
5927         (pool_allocator::initialize): Use the underlying class.
5928         (pool_allocator::allocate): Likewise.
5929         (pool_allocator::remove): Likewise.
5930         (operator new): A new generic allocator.
5931         * asan.c (struct asan_mem_ref): Remove unused members.
5932         (asan_mem_ref_new): Replace new operator with
5933         object_allocator::allocate.
5934         (free_mem_ref_resources): Change deallocation.
5935         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
5936         with object_allocator.
5937         * config/sh/sh.c (add_constant): Replace new operator with
5938         object_allocator::allocate.
5939         (sh_reorg): Change call to a release method.
5940         * cselib.c (struct elt_list): Remove unused members.
5941         (new_elt_list): Replace new operator with
5942         object_allocator::allocate.
5943         (new_elt_loc_list): Likewise.
5944         (new_cselib_val): Likewise.
5945         (unchain_one_elt_list): Change delete operator with remove method.
5946         (unchain_one_elt_loc_list): Likewise.
5947         (unchain_one_value): Likewise.
5948         (cselib_finish): Release newly added static allocators.
5949         * cselib.h (struct cselib_val): Remove unused members.
5950         (struct elt_loc_list): Likewise.
5951         * df-problems.c (df_chain_alloc): Replace pool_allocator with
5952         object_allocator.
5953         * df-scan.c (struct df_scan_problem_data): Likewise.
5954         (df_scan_alloc): Likewise.
5955         * df.h (struct dataflow): Likewise.
5956         * dse.c (struct read_info_type): Likewise.
5957         (struct insn_info_type): Likewise.
5958         (struct dse_bb_info_type): Likewise.
5959         (struct group_info): Likewise.
5960         (struct deferred_change): Likewise.
5961         (get_group_info): Likewise.
5962         (delete_dead_store_insn): Likewise.
5963         (free_read_records): Likewise.
5964         (replace_read): Likewise.
5965         (check_mem_read_rtx): Likewise.
5966         (scan_insn): Likewise.
5967         (dse_step1): Likewise.
5968         (dse_step7): Likewise.
5969         * et-forest.c (struct et_occ): Remove unused members.
5970         (et_new_occ): Use allocate instead of new operator.
5971         (et_new_tree): Likewise.
5972         (et_free_tree): Call release method explicitly.
5973         (et_free_tree_force): Likewise.
5974         (et_free_pools): Likewise.
5975         (et_split): Use remove instead of delete operator.
5976         * et-forest.h (struct et_node): Remove unused members.
5977         * ipa-cp.c: Change pool_allocator to object_allocator.
5978         * ipa-inline-analysis.c: Likewise.
5979         * ipa-profile.c: Likewise.
5980         * ipa-prop.c: Likewise.
5981         * ipa-prop.h: Likewise.
5982         * ira-build.c (initiate_cost_vectors): Cast return value.
5983         (ira_allocate_cost_vector): Likewise.
5984         * ira-color.c (struct update_cost_record): Remove unused members.
5985         * lra-int.h (struct lra_live_range): Likewise.
5986         (struct lra_copy): Likewise.
5987         (struct lra_insn_reg): Likewise.
5988         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
5989         * lra.c (new_insn_reg): Replace new operator with allocate method.
5990         (free_insn_regs): Same for operator delete.
5991         (finish_insn_regs): Release new static allocator.
5992         (finish_insn_recog_data): Likewise.
5993         (lra_free_copies): Replace delete operator with remove method.
5994         (lra_create_copy): Replace operator new with allocate method.
5995         (invalidate_insn_data_regno_info): Same for remove method.
5996         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
5997         (free_debug_insn_changes): Replace delete operator with remove method.
5998         (replace_oldest_value_reg): Replace operator new with allocate method.
5999         (pass_cprop_hardreg::execute): Release new static variable.
6000         * sched-deps.c (sched_deps_init): Change pool_allocator to
6001         object_allocator.
6002         * sel-sched-ir.c: Likewise.
6003         * sel-sched-ir.h: Likewise.
6004         * stmt.c (expand_case): Likewise.
6005         (expand_sjlj_dispatch_table): Likewise.
6006         * tree-sra.c (struct access): Remove unused members.
6007         (struct assign_link): Likewise.
6008         (sra_deinitialize): Release newly added static pools.
6009         (create_access_1):Replace operator new with allocate method.
6010         (build_accesses_from_assign): Likewise.
6011         (create_artificial_child_access): Likewise.
6012         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
6013         pool_allocator to object_allocator.
6014         * tree-ssa-pre.c: Likewise.
6015         * tree-ssa-reassoc.c: Likewise.
6016         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
6017         * tree-ssa-strlen.c: Likewise.
6018         * tree-ssa-structalias.c: Likewise.
6019         * var-tracking.c (onepart_pool_allocate): New function.
6020         (unshare_variable): Use the newly added function.
6021         (variable_merge_over_cur): Likewise.
6022         (variable_from_dropped): Likewise.
6023         (variable_was_changed): Likewise.
6024         (set_slot_part): Likewise.
6025         (emit_notes_for_differences_1): Likewise.
6026         (vt_finalize): Release newly added static pools.
6028 2015-07-16  Martin Jambor  <mjambor@suse.cz>
6030         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
6031         all uses.  Fix two typos in its general comment.
6032         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
6034 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
6036         * config/i386/linux-common.h (LINK_MPX): New.
6037         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
6038         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
6039         indicating '-z bndplt' support by linker.
6040         * configure: Regenerate.
6041         * config.in: Regenerate.
6043 2015-07-16  Richard Biener  <rguenther@suse.de>
6045         * fold-const.c (fold_widened_comparison): Remove.
6046         (fold_sign_changed_comparison): Likewise.
6047         (fold_comparison): Move widened and sign-changed comparison
6048         simplification ...
6049         * match.pd: ... to patterns here.
6050         * generic-match-head.c: Include target.h.
6051         * gimple-match-head.c: Likewise.
6053 2015-07-16  Richard Biener  <rguenther@suse.de>
6055         * tree-ssa-dom.c (dom_valueize): New function.
6056         (record_temporary_equivalences): Also record equivalences
6057         for dominating stmts that have uses of equivalences we are
6058         about to record.
6060 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
6062         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
6063         add_autoinc_candidates.
6064         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
6065         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
6066         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
6067         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
6068         Call new function.
6069         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
6070         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
6071         Remove parameter struct iv*.  Call add_autoinc_candidates here.
6072         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
6073         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
6074         Call new function.
6075         (find_iv_candidates): Call new functions.
6077 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
6079         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
6080         uninitialized-variable warning.
6082 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
6084         PR target/65249
6085         * config/sh/sh.md (movdi): Split simple reg move to two movsi
6086         when the destination is R0.
6088 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
6090         PR target/66866
6091         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
6092         * config/i386/i386.c (ix86_expand_pextr): New function.
6093         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
6094         for non-lowpart subregs.
6095         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
6096         (insv<mode>): Use SWI248 mode iterator.
6097         (insv<mode>_1): Ditto.
6099 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
6100             Sebastian Pop  <s.pop@samsung.com>
6102         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
6103         iterator to use_stmt.
6105 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
6106             Sebastian Pop <s.pop@samsung.com>
6108         * graphite-scop-detection.c (build_scops_1): Discard scops for
6109         which entry==exit.
6111 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
6112             Sebastian Pop <s.pop@samsung.com>
6114         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
6115         case of a return statement in scop.
6117 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
6118             Sebastian Pop <s.pop@samsung.com>
6120         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
6121         INTEGER_TYPE parameters.
6122         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
6123         VECTOR_CST in scan_tree_for_params.
6124         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
6126 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
6128         * gimple-pretty-print.h: Don't include pretty-print.h.
6129         * tree-streamer.h: Don't include lto-streamer.h.
6130         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
6131         * gimple-streamer-in.c: Remove redundant includes.
6132         * gimple-streamer-out.c: Likewise.
6133         * ipa-devirt.c: Likewise.
6134         * ipa-icf.c: Likewise.
6135         * ipa-inline-analysis.c: Likewise.
6136         * ipa-polymorphic-call.c: Likewise.
6137         * ipa-profile.c: Likewise.
6138         * ipa-prop.c: Likewise.
6139         * ipa-pure-const.c: Likewise.
6140         * lto-cgraph.c: Likewise.
6141         * lto-streamer-in.c: Likewise.
6142         * lto-streamer-out.c: Likewise.
6143         * lto-streamer.c: Likewise.
6144         * tree-streamer-in.c: Likewise.
6145         * tree-streamer-out.c: Likewise.
6146         * tree-streamer.c: Likewise.
6148 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
6150         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
6151         include input.h.
6152         * opts.c: Remove multiline #include comment.
6154 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
6156         * config/nvptx/mkoffload.c (process): Add C++ protection to
6157         emitted code.
6159 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6161         PR target/66854
6162         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
6163         null before IEEE 128-bit floating point support patch.
6165 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6167         * simplify-rtx.c (simplify_ternary_operation): Add simplification
6168         for (!c) != {0,...,0} ? a : b for vector modes.
6170 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
6171             Martin Jambor  <mjambor@suse.cz>
6173         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
6174         struct func_body_info* instead of struct ipa_node_params*, expecting
6175         fbi->info to be filled in.  Replace throughout.  Adjust call to
6176         ipa_load_from_parm_agg.
6177         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
6178         instead of struct ipa_node_params*.  Adjust calls to other functions
6179         so that they pass either fbi or fbi->info.
6180         (set_switch_stmt_execution_predicate): Likewise.
6181         (will_be_nonconstant_predicate): Likewise.
6182         (compute_bb_predicates): Likewise.
6183         (estimate_function_body_sizes): Move asserts earlier.  Fill in
6184         struct func_body_info, replace parms_info with fbi.info.  Adjust
6185         calls to functions that now accept struct func_body_info.
6186         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
6187         (struct func_body_info): Likewise.
6188         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
6189         remove static.  Adjust callers.
6190         (ipa_load_from_parm_agg): Remove.
6191         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
6192         (func_body_info): Likewise.
6193         (ipa_load_from_parm_agg): Adjust prototype.
6195 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6197         * gensupport.c (rtx_handle_directive): Adjust.
6198         * read-rtl.c (apply_iterators): Take vector to add rtxs to
6199         instead of expr list rtx.
6200         (add_define_attr_for_define_subst): Likewise.
6201         (add_define_subst_attr): Likewise.
6202         (read_subst_mapping): Likewise.
6203         (read_rtx): Likewise.
6204         * rtl.h (read_rtx): Adjust.
6206 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6208         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
6210 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
6212         PR target/58066
6213         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
6214         (*tls_local_dynamic_base_64_<mode>): Ditto.
6215         (*tls_local_dynamic_base_64_largepic): Ditto.
6216         (tls_global_dynamic_64_<mode>): Update expander pattern.
6217         (tls_local_dynamic_base_64_<mode>): Ditto.
6219 2015-07-15  Richard Biener  <rguenther@suse.de>
6221         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
6222         and bool_var == 1 -> bool_var simplifications ...
6223         * match.pd: ... to patterns here.  Factor out negate_expr_p
6224         cases from the A - B -> A + (-B) patterns as negate_expr_p
6225         predicate and add a -(A + B) -> (-B) - A pattern.
6227 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
6229         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
6231 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
6232             Robert Suchanek  <robert.suchanek@imgtec.com>
6234         * config/mips/mips.c (mips_int_mask): New enum.
6235         (mips_shadow_set): Likewise.
6236         (int_mask): New variable.
6237         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
6238         (machine_function): Add int_mask and use_shadow_register_set.
6239         (mips_attribute_table): Add attribute handlers for interrupt and
6240         use_shadow_register_set.
6241         (mips_interrupt_mask): New static function.
6242         (mips_handle_interrupt_attr): Likewise.
6243         (mips_handle_use_shadow_register_set_attr): Likewise.
6244         (mips_use_shadow_register_set): Change return type to enum
6245         mips_shadow_set.  Add argument handling for use_shadow_register_set
6246         attribute.
6247         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
6248         compare with mips_shadow_set enum.
6249         (mips_compute_frame_info): Add interrupt mask and
6250         use_shadow_register_set to per-function information structure.
6251         Add a stack slot for EPC unconditionally.
6252         (mips_expand_prologue): Compare use_shadow_register_set value
6253         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
6254         masked interrupt register but in EIC mode use K0 and save Cause in K0.
6255         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
6256         copying the stack pointer from the shadow register set.
6257         * config/mips/mips.h (SR_IM0): New define.
6258         * config/mips/mips.md (mips_rdpgpr): Rename to...
6259         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
6260         * doc/extend.texi (Declaring Attributes of Functions): Document
6261         optional arguments for interrupt and use_shadow_register_set
6262         attributes.
6264 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
6266         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
6267         interrupt attribute.
6268         (mips_expand_prologue): Disable the floating point unit in an ISR.
6269         * config/mips/mips.h (SR_COP1): New define.
6271 2015-07-15  Richard Biener  <rguenther@suse.de>
6273         * genmatch.c (parser::peek, parser::peek_ident): Add argument
6274         to tell how many tokens to peek ahead (default 1).
6275         (parser::eat_token, parser::eat_ident): Return token consumed.
6276         (parser::parse_result): Parse new switch statement.
6277         * match.pd: Use case statements where appropriate.
6279 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
6281         PR rtl-optimization/58066
6282         * calls.c (expand_call): Precompute register parameters before stack
6283         alignment is performed.
6285 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
6287         PR rtl-optimization/66838
6288         * postreload.c (reload_cse_move2add): Also process
6289         CALL_INSN_FUNCTION_USAGE when resetting information of
6290         call-clobbered registers.
6292 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6293             Cesar Philippidis  <cesar@codesourcery.com>
6294             Chung-Lin Tang  <cltang@codesourcery.com>
6296         * config/nios2/constraints.md (U, v): New constraints.
6297         * config/nios2/predicates.md (rdprs_dcache_operand): New.
6298         (ldstex_memory_operand): New.
6299         * config/nios2/sync.md: New file.
6300         * config/nios2/nios2.md (unspecv): Add new builtin function
6301         UNSPECV codes.
6302         (rdprs, flushd, flushda, wrpie, eni): New patterns.
6303         (top-level): Include sync.md.
6304         * config/nios2/nios2.c (N2_FTYPES): Add function types for
6305         new builtins.
6306         (N2_BUILTINS): Add arch field setting, add new builtins.
6307         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
6308         for arch field.
6309         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
6310         Also handle ldex/stex/ldsex/stsex builtins.
6311         (nios2_expand_rdprs_builtin): New function.
6312         (nios2_expand_cache_builtin): New function.
6313         (nios2_expand_wrpie_builtin): New function.
6314         (nios2_expand_eni_builtin): New function.
6315         (nios2_expand_builtin): Add arch field handling and new builtin
6316         cases.
6317         * doc/extend.texi (Altera Nios II Built-in Functions): Document
6318         new builtins.
6319         * doc/md.texi (Machine Constraints): Document U and v constraints.
6321 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6322             Cesar Philippidis  <cesar@codesourcery.com>
6323             Chung-Lin Tang  <cltang@codesourcery.com>
6325         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
6326         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
6327         callee_save_reg_size and uses_anonymous_args fields.
6328         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
6329         (nios2_create_cfa_notes): New function.
6330         (nios2_adjust_stack): New function for adjusting stack.
6331         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
6332         Use nios2_adjust_stack.
6333         (nios2_expand_epilogue): Likewise.
6334         (nios2_expand_return): New function.
6335         (nios2_can_use_return_insn): Update for CDX pop.n usage.
6336         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
6337         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
6338         * config/nios2/nios2.md (return): Use nios2_expand_return.
6340 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6341             Cesar Philippidis  <cesar@codesourcery.com>
6342             Chung-Lin Tang  <cltang@codesourcery.com>
6344         * config/nios2/predicates.md (pop_operation): New.
6345         (ldwm_operation, stwm_operation): New.
6346         (nios2_hard_register_operand): New.
6347         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
6348         (ldstwm_operation_p): Declare.
6349         (gen_ldstwm_peep): Declare.
6350         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
6351         (base_reg_adjustment_p): New.
6352         (pop_operation_p): New.
6353         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
6354         (nios2_ldstwm_regset_p): New.
6355         (ldstwm_operation_p): New.
6356         (gen_ldst): New.
6357         (nios2_ldst_parallel): New.
6358         (struct ldswm_operand): Declare.
6359         (compare_ldstwm_operands): New.
6360         (can_use_cdx_ldstw): New.
6361         (gen_ldstwm_peep): New.
6362         * config/nios2/nios2-ldstwm.sml: New.
6363         * config/nios2/nios2.md: Include ldstwm.md.
6364         * config/nios2/ldstwm.md: Generated.
6366 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6367             Cesar Philippidis  <cesar@codesourcery.com>
6368             Chung-Lin Tang  <cltang@codesourcery.com>
6370         * config/nios2/nios2.h (LABEL_ALIGN): Define.
6371         (REG_ALLOC_ORDER): Define.
6372         (ADJUST_REG_ALLOC_ORDER): Define.
6373         (HONOR_REG_ALLOC_ORDER): Define.
6374         (CDX_REG_P): Define.
6375         (ANDCLEAR_INT): Define.
6376         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
6377         (nios2_label_align): Declare.
6378         (nios2_cdx_narrow_form_p): Declare.
6379         (nios2_adjust_reg_alloc_order): Declare.
6380         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
6381         operation.
6382         (nios2_large_unspec_reloc_p): New function, split from...
6383         (nios2_legitimate_pic_operand_p): ...here.
6384         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
6385         (nios2_print_operand_punct_valid_p): New.
6386         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
6387         (split_mem_address): New.
6388         (split_alu_insn): New.
6389         (cdxreg): New.
6390         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
6391         (enum nios2_add_insn_kind): New.
6392         (nios2_add_insn_names, nios2_add_insn_narrow): New.
6393         (nios2_add_insn_classify): New.
6394         (nios2_add_insn_asm): New.
6395         (nios2_cdx_narrow_form_p): New.
6396         (label_align, min_labelno, max_labelno): New.
6397         (nios2_reorg): New.
6398         (nios2_label_align): New.
6399         (nios2_adjust_reg_alloc_order): New.
6400         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6401         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6402         * config/nios2/constraints.md (P): New constraint.
6403         * config/nios2/predicates.md (const_and_operand): New.
6404         (and_operand): New.
6405         (stack_memory_operand): New.
6406         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
6407         (length): Update to use nios2_cdx_narrow_form_p().
6408         (type): Add new insn type values.
6409         (control, alu, st, ld, shift): Update insn reservations with
6410         new insn type values.
6411         (*high, *lo_sum): Define new insn patterns for constant generation.
6412         (movqi_internal, movhi_internal, movsi_internal): Reduce
6413         alternatives, update asm template to handle CDX variants, update
6414         type attributes.
6415         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
6416         template, update type attributes.
6417         (extendhisi2, extendqi<mode>2): Likewise.
6418         (addsi3): Change to use function for asm string.
6419         (subsi3): Add CDX notation to asm template, update type attributes.
6420         (negsi3, one_cmplsi3): Likewise.
6421         (andsi3): New pattern, specialized from logical patterns.
6422         (<code>si3): Remove and case, combine alternatives, update asm
6423         template.
6424         (<shift_op>si3): Add CDX notation, update type attributes.
6425         (rotrsi3): Update type attribute.
6426         (*merge, extzv, insv): New insn patterns.
6427         (return): Change to define_expand.
6428         (simple_return): Add CDX notation, update type attributes.
6429         (indirect_jump): Add CDX notation.
6430         (jump): Update asm cases, update length attribute expression.
6431         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
6432         (nios2_cbranch): Update asm cases and length attribute expression
6433         to handle CDX variants.
6434         (nios2_cmp<code>): Update asm template.
6435         (nop): Add CDX notation, update type attributes.
6436         (trap): Add CDX notation.
6437         (ctrapsi4): Update asm cases and length attribute expression to
6438         handle CDX variant.
6439         * doc/md.texi (Machine Constraints): Document P constraint.
6441 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6442             Cesar Philippidis  <cesar@codesourcery.com>
6443             Chung-Lin Tang  <cltang@codesourcery.com>
6445         * config/nios2/nios2.h (SMALL_INT12): New macro.
6446         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
6447         (nios2_valid_addr_expr_p): Use it.
6448         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
6449         with implicit "io" instructions on R2.
6450         * config/nios2/constraints.md (w): New constraint.
6451         * config/nios2/predicates.md (ldstio_memory_operand): New.
6452         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
6453         operand predicate and constraint.
6454         (ld<bh>io_signed, st<bhw>io>): Likewise.
6455         * doc/md.texi (Machine Constraints): Document w constraint.
6457 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6458             Cesar Philippidis  <cesar@codesourcery.com>
6459             Chung-Lin Tang  <cltang@codesourcery.com>
6461         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
6462         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
6463         Nios II architecture level.
6464         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
6465         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
6466         (OPTION_DEFAULT_SPECS): Define.
6467         (ASM_SPEC): Add -march= spec strings.
6468         * config/nios2/nios2.c (nios2_option_override): Check for
6469         conflicts involving new options.
6470         * config.gcc (nios2*-*-*): Support --with-arch=.
6471         * doc/invoke.texi (Option Summary, Nios II Options): Document
6472         -march=, -mbmx, and -mcdx.
6474 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
6476         PR rtl-optimization/66626
6477         * lra-constraints.c (lra_constraints): Prevent equivalence
6478         substitution for static chain pseudo in functions with nonlocal
6479         goto.
6481 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
6483         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
6484         (nios2_emit_stack_limit_check): Add size parameter.  Handle
6485         -fstack-limit-symbol as well as -fstack-limit-register.
6486         (nios2_expand_prologue): Emit only a single stack limit check,
6487         even if multiple stack adjustments are required.
6488         (nios2_option_override): Diagnose unsupported combination of -fpic
6489         and -stack-limit-symbol.
6491 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
6493         * Makefile.in (top_srcdir): New.
6494         * configure.ac: Use AM_ZLIB.
6495         * configure: Regeneated.
6497 2015-07-14  Matthias Klose  <doko@ubuntu.com>
6499         PR target/66840
6500         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
6502 2015-07-14  Richard Biener  <rguenther@suse.de>
6504         PR tree-optimization/66863
6505         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
6506         what we record for conversion use stmt lhs inequalities.
6508 2015-07-14  Richard Biener  <rguenther@suse.de>
6510         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
6511         (decision_tree::gen_gimple): Likewise.
6513 2015-07-14  Tom de Vries  <tom@codesourcery.com>
6515         * gcc.c (greater_than_spec_func): Declare forward.
6516         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
6517         -ftree-parallelize-loops={0,1}.
6518         (static_spec_functions): Add greater_than_spec_func function with name
6519         "gt".
6520         (greater_than_spec_func): New function.
6522 2015-07-14  Richard Biener  <rguenther@suse.de>
6524         * tree-ssa-dom.c (record_temporary_equivalences): Merge
6525         wideing type conversion case from record_equivalences_from_incoming_edge
6526         and use record_equality to record equivalences.
6527         (record_equivalences_from_incoming_edge): Call
6528         record_temporary_equivalences.
6530 2015-07-14  Richard Biener  <rguenther@suse.de>
6532         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
6533         (struct if_expr): New.
6534         (struct with_expr): Likewise.
6535         (is_a_helper): Add helpers for if_expr and with_expr.
6536         (struct simplify): Add simplify_kind enum and member.  Remove
6537         ifexpr_vec member.
6538         (simplify::simplify): Adjust.
6539         (lower_commutative): Adjust.
6540         (lower_opt_convert): Likewise.
6541         (lower_cond): Likewise.
6542         (replace_id): Handle with_expr and if_expr.
6543         (lower_for): Adjust.
6544         (dt_simplify::gen_1): New recursive worker, split out from ...
6545         (dt_simplify::gen): ... here.  Deal with if and with expansion
6546         recursively.
6547         (capture_info::capture_info): Take context argument
6548         (capture_info::walk_result): Only analyze specific result.
6549         (parser::parse_result): New function.
6550         (parser::parse_simplify): Adjust to parse ifs with then end
6551         else case.
6552         (parser::parse_if): Simplify.
6553         (parser::parse_pattern): Pass down simplify kind.
6554         * match.pd: Convert if structure to new syntax.
6556 2015-07-13  Marek Polacek  <polacek@redhat.com>
6558         * rtl.c (rtx_equal_p_cb): Fix typo.
6560 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
6562         * omega.h: Don't include config.h, don't include params.h again if
6563         omega.h has already been included.
6564         * graphite-poly.h: Include sese.h.
6565         * graphite.c: Don't include sese.h, remove needless includes and
6566         minimize includes outside #ifdef HAVE_isl block.
6567         * graphite-blocking.c: Don't include sese.h, remove needless includes,
6568         and wrap entire file in #ifdef HAVE_isl
6569         * graphite-dependences.c: Likewise.
6570         * graphite-interchange.c: Likewise.
6571         * graphite-isl-ast-to-gimple.c: Likewise.
6572         * graphite-optimize-isl.c: Likewise.
6573         * graphite-poly.c: Likewise.
6574         * graphite-scop-detection.c: Likewise.
6575         * graphite-sese-to-poly.c: Likewise.
6577 2015-07-13  Tom de Vries  <tom@codesourcery.com>
6579         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
6581 2015-07-13  Renlin Li  <renlin.li@arm.com>
6583         PR rtl/66556
6584         * simplify-rtx.c (simplify_const_relational_operation): Add
6585         side_effects_p checks.
6587 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
6589         * bitmap.h: Fix double word typos.
6590         * builtins.c: Same.
6591         * calls.c: Same.
6592         * cfgloopmanip.c: Same.
6593         * cgraph.c: Same.
6594         * cgraph.h: Same.
6595         * cgraphclones.c: Same.
6596         * combine.c: Same.
6597         * config/aarch64/aarch64-protos.h: Same.
6598         * config/aarch64/aarch64.c: Same.
6599         * config/aarch64/aarch64.md: Same.
6600         * config/arm/arm.md: Same.
6601         * config/arm/arm1020e.md: Same.
6602         * config/arm/arm1026ejs.md: Same.
6603         * config/arm/arm926ejs.md: Same.
6604         * config/arm/fa526.md: Same.
6605         * config/arm/fa606te.md: Same.
6606         * config/arm/fa626te.md: Same.
6607         * config/arm/fa726te.md: Same.
6608         * config/arm/fmp626.md: Same.
6609         * config/darwin.c: Same.
6610         * config/epiphany/epiphany.c: Same.
6611         * config/frv/frv.c: Same.
6612         * config/ft32/ft32.c: Same.
6613         * config/gnu-user.h: Same.
6614         * config/h8300/constraints.md: Same.
6615         * config/i386/i386.c: Same.
6616         * config/i386/i386.md: Same.
6617         * config/iq2000/iq2000.md: Same.
6618         * config/mips/mips.c: Same.
6619         * config/mmix/mmix.md: Same.
6620         * config/moxie/moxie.c: Same.
6621         * config/nds32/nds32.md: Same.
6622         * config/pa/pa.h: Same.
6623         * config/rs6000/aix.h: Same.
6624         * config/rs6000/rs6000.h: Same.
6625         * config/sh/sh.c: Same.
6626         * config/tilegx/tilegx.md: Same.
6627         * config/tilepro/gen-mul-tables.cc: Same.
6628         * cse.c: Same.
6629         * dbxout.c: Same.
6630         * doc/invoke.texi: Same.
6631         * dse.c: Same.
6632         * dwarf2out.c: Same.
6633         * final.c: Same.
6634         * gcc.c: Same.
6635         * genmatch.c: Same.
6636         * gimplify.c: Same.
6637         * hash-table.h: Same.
6638         * internal-fn.c: Same.
6639         * ipa-cp.c: Same.
6640         * ipa-devirt.c: Same.
6641         * ipa-icf.c: Same.
6642         * ipa-icf.h: Same.
6643         * ipa-profile.c: Same.
6644         * ipa-prop.c: Same.
6645         * ipa-prop.h: Same.
6646         * ira.c: Same.
6647         * omp-low.c: Same.
6648         * reg-stack.c: Same.
6649         * regcprop.c: Same.
6650         * reorg.c: Same.
6651         * rtl.h: Same.
6652         * sbitmap.h: Same.
6653         * tree-eh.c: Same.
6654         * tree-inline.c: Same.
6655         * tree-sra.c: Same.
6656         * tree-ssa-dom.c: Same.
6657         * tree-ssa-loop-ivopts.c: Same.
6658         * tree-ssa-structalias.c: Same.
6659         * tree-ssa-tail-merge.c: Same.
6660         * tree-ssa-ter.c: Same.
6661         * tree-ssa-threadupdate.c: Same.
6662         * tree-ssa-uninit.c: Same.
6663         * tree-ssanames.c: Same.
6664         * tree-vect-loop-manip.c: Same.
6665         * tree-vrp.c: Same.
6666         * tree.c: Same.
6667         * valtrack.c: Same.
6668         * vec.h: Same.
6670 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6672         PR middle-end/66726
6673         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
6674         tree_ssa_phiopt_worker): Call it.
6676 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
6678         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
6679         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
6680         REG_EQUAL note.
6682 2015-07-11  Marek Polacek  <polacek@redhat.com>
6684         PR middle-end/66353
6685         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
6686         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
6687         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
6688         rather than bb_has_abnormal_call_pred.
6689         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
6690         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
6691         rather than bb_has_abnormal_call_pred.
6693 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
6695         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6696         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
6697         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
6698         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
6699         v850_legitimate_address_p): New functions.
6700         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
6702 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
6704         PR target/66819
6705         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
6706         indirect sibcall with register arguments if register available
6707         for argument passing.
6708         (init_cumulative_args): Set cfun->machine->arg_reg_available
6709         to (cum->nregs > 0) or to true if function has a variable
6710         argument list.
6711         (function_arg_advance_32): Set cfun->machine->arg_reg_available
6712         to false if cum->nregs <= 0.
6713         * config/i386/i386.h (machine_function): Add arg_reg_available.
6715 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
6717         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
6718         and gen_higpart instead of gen_rtx_SUBREG.
6719         * config/i386/i386.md
6720         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
6721         (read-modify peephole2): Use gen_lowpart instead of
6722         gen_rtx_SUBREG for operand 5.
6724 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
6726         * config/tilepro/gen-mul-tables.cc (main): Change include list for
6727         generated files.
6728         * config/tilepro/mul-tables.c: Regenerate.
6729         * config/tilegx/mul-tables.c: Regenerate.
6731 2015-07-10  Richard Biener  <rguenther@suse.de>
6733         * fold-const.c (distribute_bit_expr): Remove.
6734         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
6735         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
6736         to A & (B | C) and simplifying A << C1 << C2 to ...
6737         * match.pd: ... patterns here.
6739 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
6741         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
6742         Mark mem as READONLY and NOTRAP for PIC symbol.
6744 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
6746         * gimple-predict.h: New file.
6747         (gimple_predict_predictor, gimple_predict_set_predictor,
6748         gimple_predict_outcome, gimple_predict_set_outcome,
6749         gimple_build_predict): Relocate here.
6750         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
6751         gimple_predict_outcome, gimple_predict_set_outcome): Move to
6752         gimple-predict.h.
6753         * gimple.c (gimple_build_predict): Move to gimple-predict.h
6754         * basic-block.h: Don't include cfghooks.h.
6755         * backend.h: Don't include predict.h.
6756         * cfghooks.h: Include predict.h.
6757         * gimple-pretty-print.c: Include gimple-predict.h.
6758         * gimplify.c: Likwise.
6759         * predict.c: Adjust includes.
6760         * tree-inline.c: Likewise.
6761         * asan.c: Likewise.
6762         * auto-inc-dec.c: Likewise.
6763         * auto-profile.c: Likewise.
6764         * bb-reorder.c: Likewise.
6765         * builtins.c: Likewise.
6766         * caller-save.c: Likewise.
6767         * calls.c: Likewise.
6768         * cfganal.c: Likewise.
6769         * cfgbuild.c: Likewise.
6770         * cfg.c: Likewise.
6771         * cfgcleanup.c: Likewise.
6772         * cfgexpand.c: Likewise.
6773         * cfghooks.c: Likewise.
6774         * cfgloopanal.c: Likewise.
6775         * cfgloop.c: Likewise.
6776         * cfgloopmanip.c: Likewise.
6777         * cfgrtl.c: Likewise.
6778         * cgraph.c: Likewise.
6779         * cgraphunit.c: Likewise.
6780         * combine.c: Likewise.
6781         * cprop.c: Likewise.
6782         * cse.c: Likewise.
6783         * dce.c: Likewise.
6784         * dojump.c: Likewise.
6785         * dse.c: Likewise.
6786         * except.c: Likewise.
6787         * expmed.c: Likewise.
6788         * expr.c: Likewise.
6789         * final.c: Likewise.
6790         * fold-const.c: Likewise.
6791         * function.c: Likewise.
6792         * fwprop.c: Likewise.
6793         * gcc-plugin.h: Likewise.
6794         * gcse.c: Likewise.
6795         * genattrtab.c: Likewise.
6796         * genemit.c: Likewise.
6797         * gengtype.c: Likewise.
6798         * genopinit.c: Likewise.
6799         * genoutput.c: Likewise.
6800         * genpreds.c: Likewise.
6801         * genrecog.c: Likewise.
6802         * gimple-fold.c: Likewise.
6803         * gimple-iterator.c: Likewise.
6804         * gimple-ssa-isolate-paths.c: Likewise.
6805         * gimple-ssa-strength-reduction.c: Likewise.
6806         * graph.c: Likewise.
6807         * graphite-blocking.c: Likewise.
6808         * graphite.c: Likewise.
6809         * graphite-dependences.c: Likewise.
6810         * graphite-interchange.c: Likewise.
6811         * graphite-isl-ast-to-gimple.c: Likewise.
6812         * graphite-optimize-isl.c: Likewise.
6813         * graphite-poly.c: Likewise.
6814         * graphite-scop-detection.c: Likewise.
6815         * graphite-sese-to-poly.c: Likewise.
6816         * haifa-sched.c: Likewise.
6817         * ifcvt.c: Likewise.
6818         * internal-fn.c: Likewise.
6819         * ipa-cp.c: Likewise.
6820         * ipa-profile.c: Likewise.
6821         * ipa-split.c: Likewise.
6822         * ipa-utils.c: Likewise.
6823         * ira-build.c: Likewise.
6824         * ira-color.c: Likewise.
6825         * ira-conflicts.c: Likewise.
6826         * ira-costs.c: Likewise.
6827         * ira-emit.c: Likewise.
6828         * ira-lives.c: Likewise.
6829         * jump.c: Likewise.
6830         * loop-doloop.c: Likewise.
6831         * loop-init.c: Likewise.
6832         * loop-invariant.c: Likewise.
6833         * loop-unroll.c: Likewise.
6834         * lower-subreg.c: Likewise.
6835         * lra-assigns.c: Likewise.
6836         * lra.c: Likewise.
6837         * lra-coalesce.c: Likewise.
6838         * lra-constraints.c: Likewise.
6839         * lra-lives.c: Likewise.
6840         * lto-cgraph.c: Likewise.
6841         * lto-streamer-in.c: Likewise.
6842         * mode-switching.c: Likewise.
6843         * modulo-sched.c: Likewise.
6844         * omp-low.c: Likewise.
6845         * optabs.c: Likewise.
6846         * passes.c: Likewise.
6847         * postreload.c: Likewise.
6848         * postreload-gcse.c: Likewise.
6849         * profile.c: Likewise.
6850         * recog.c: Likewise.
6851         * regstat.c: Likewise.
6852         * reload1.c: Likewise.
6853         * reorg.c: Likewise.
6854         * rtlanal.c: Likewise.
6855         * sched-ebb.c: Likewise.
6856         * sel-sched-ir.c: Likewise.
6857         * sese.c: Likewise.
6858         * shrink-wrap.c: Likewise.
6859         * simplify-rtx.c: Likewise.
6860         * stmt.c: Likewise.
6861         * store-motion.c: Likewise.
6862         * tracer.c: Likewise.
6863         * trans-mem.c: Likewise.
6864         * tree-call-cdce.c: Likewise.
6865         * tree-cfg.c: Likewise.
6866         * tree-cfgcleanup.c: Likewise.
6867         * tree-chkp.c: Likewise.
6868         * tree-complex.c: Likewise.
6869         * tree-eh.c: Likewise.
6870         * tree-if-conv.c: Likewise.
6871         * tree-loop-distribution.c: Likewise.
6872         * tree-outof-ssa.c: Likewise.
6873         * tree-parloops.c: Likewise.
6874         * tree-predcom.c: Likewise.
6875         * tree-pretty-print.c: Likewise.
6876         * tree-profile.c: Likewise.
6877         * tree-sra.c: Likewise.
6878         * tree-ssa.c: Likewise.
6879         * tree-ssa-coalesce.c: Likewise.
6880         * tree-ssa-dce.c: Likewise.
6881         * tree-ssa-dom.c: Likewise.
6882         * tree-ssa-forwprop.c: Likewise.
6883         * tree-ssa-ifcombine.c: Likewise.
6884         * tree-ssa-loop-ch.c: Likewise.
6885         * tree-ssa-loop-im.c: Likewise.
6886         * tree-ssa-loop-ivcanon.c: Likewise.
6887         * tree-ssa-loop-ivopts.c: Likewise.
6888         * tree-ssa-loop-manip.c: Likewise.
6889         * tree-ssa-loop-prefetch.c: Likewise.
6890         * tree-ssa-loop-unswitch.c: Likewise.
6891         * tree-ssa-math-opts.c: Likewise.
6892         * tree-ssa-phiopt.c: Likewise.
6893         * tree-ssa-pre.c: Likewise.
6894         * tree-ssa-reassoc.c: Likewise.
6895         * tree-ssa-sink.c: Likewise.
6896         * tree-ssa-tail-merge.c: Likewise.
6897         * tree-ssa-threadedge.c: Likewise.
6898         * tree-ssa-threadupdate.c: Likewise.
6899         * tree-switch-conversion.c: Likewise.
6900         * tree-tailcall.c: Likewise.
6901         * tree-vect-data-refs.c: Likewise.
6902         * tree-vect-loop.c: Likewise.
6903         * tree-vect-loop-manip.c: Likewise.
6904         * tree-vectorizer.c: Likewise.
6905         * tree-vrp.c: Likewise.
6906         * ubsan.c: Likewise.
6907         * value-prof.c: Likewise.
6908         * varasm.c: Likewise.
6909         * var-tracking.c: Likewise.
6910         * config/aarch64/aarch64-builtins.c: Likewise.
6911         * config/aarch64/aarch64.c: Likewise.
6912         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
6913         * config/alpha/alpha.c: Likewise.
6914         * config/arc/arc.c: Likewise.
6915         * config/arm/arm.c: Likewise.
6916         * config/avr/avr.c: Likewise.
6917         * config/bfin/bfin.c: Likewise.
6918         * config/c6x/c6x.c: Likewise.
6919         * config/cr16/cr16.c: Likewise.
6920         * config/cris/cris.c: Likewise.
6921         * config/darwin.c: Likewise.
6922         * config/darwin-c.c: Likewise.
6923         * config/epiphany/epiphany.c: Likewise.
6924         * config/epiphany/mode-switch-use.c: Likewise.
6925         * config/epiphany/resolve-sw-modes.c: Likewise.
6926         * config/fr30/fr30.c: Likewise.
6927         * config/frv/frv.c: Likewise.
6928         * config/ft32/ft32.c: Likewise.
6929         * config/h8300/h8300.c: Likewise.
6930         * config/i386/i386.c: Likewise.
6931         * config/i386/winnt.c: Likewise.
6932         * config/ia64/ia64.c: Likewise.
6933         * config/iq2000/iq2000.c: Likewise.
6934         * config/lm32/lm32.c: Likewise.
6935         * config/m32c/m32c.c: Likewise.
6936         * config/m32r/m32r.c: Likewise.
6937         * config/m68k/m68k.c: Likewise.
6938         * config/mcore/mcore.c: Likewise.
6939         * config/mep/mep.c: Likewise.
6940         * config/microblaze/microblaze.c: Likewise.
6941         * config/mips/mips.c: Likewise.
6942         * config/mmix/mmix.c: Likewise.
6943         * config/mn10300/mn10300.c: Likewise.
6944         * config/moxie/moxie.c: Likewise.
6945         * config/msp430/msp430.c: Likewise.
6946         * config/nds32/nds32.c: Likewise.
6947         * config/nds32/nds32-cost.c: Likewise.
6948         * config/nds32/nds32-fp-as-gp.c: Likewise.
6949         * config/nds32/nds32-intrinsic.c: Likewise.
6950         * config/nds32/nds32-isr.c: Likewise.
6951         * config/nds32/nds32-md-auxiliary.c: Likewise.
6952         * config/nds32/nds32-memory-manipulation.c: Likewise.
6953         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6954         * config/nds32/nds32-predicates.c: Likewise.
6955         * config/nios2/nios2.c: Likewise.
6956         * config/nvptx/nvptx.c: Likewise.
6957         * config/pa/pa.c: Likewise.
6958         * config/pdp11/pdp11.c: Likewise.
6959         * config/rl78/rl78.c: Likewise.
6960         * config/rs6000/rs6000.c: Likewise.
6961         * config/rx/rx.c: Likewise.
6962         * config/s390/s390.c: Likewise.
6963         * config/sh/sh.c: Likewise.
6964         * config/sh/sh-mem.cc: Likewise.
6965         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6966         * config/sh/sh_treg_combine.cc: Likewise.
6967         * config/sparc/sparc.c: Likewise.
6968         * config/spu/spu.c: Likewise.
6969         * config/stormy16/stormy16.c: Likewise.
6970         * config/tilegx/tilegx.c: Likewise.
6971         * config/tilepro/tilepro.c: Likewise.
6972         * config/v850/v850.c: Likewise.
6973         * config/vax/vax.c: Likewise.
6974         * config/visium/visium.c: Likewise.
6975         * config/xtensa/xtensa.c: Likewise.
6977 2015-07-10  Richard Biener  <rguenther@suse.de>
6979         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
6980         (decision_tree::gen_gimple): Likewise.
6981         (decision_tree::gen_generic): Likewise.
6983 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
6985         PR target/66813
6986         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
6987         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
6989 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
6991         PR middle-end/66820
6992         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
6993         or ORT_TASK contexts.
6994         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
6995         is non-zero.
6997 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6999         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
7000         above function.
7002 2015-07-10  Tom de Vries  <tom@codesourcery.com>
7004         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
7005         insert nit + 1 bound.
7007 2015-07-10  Richard Biener  <rguenther@suse.de>
7009         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
7010         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
7011         (if_convertible_loop_p_1): For this always compute bb predicates.
7012         (if_convertible_loop_p): And free them.
7014 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7016         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
7017         in dump message.
7019 2015-07-10  Richard Biener  <rguenther@suse.de>
7021         PR tree-optimization/66823
7022         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
7023         inverted predicate.
7025 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
7027         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
7028         to handle mips[32|64]r3 and mips[32|64]r5.
7030 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
7032         PR middle-end/66633
7033         * tree-nested.c (get_static_chain): Or in a flag into
7034         info->static_chain_added.
7035         (get_frame_field, get_nonlocal_debug_decl): Likewise.
7036         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
7037         2015-07-01 changes.
7038         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
7039         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
7040         add it to clauses.
7042         PR tree-optimization/66718
7043         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
7044         field.
7045         (vect_simd_lane_linear): New function.
7046         (vectorizable_simd_clone_call): Support using linear arguments for
7047         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
7049 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
7051         PR target/66821
7052         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
7054 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
7056         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
7057         Use machine mode, not enum machine_mode in the prototype.
7059         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
7060         classify 128-bit floating point support.
7061         (FLOAT128_IBM_P): Likewise.
7062         (FLOAT128_VECTOR_P): Likewise.
7063         (FLOAT128_2REG_P): Likewise.
7064         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
7065         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
7066         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
7067         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7069         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
7070         tests against TFmode/TDmode, since those modes do not use VSX
7071         addresses.
7072         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
7073         support.
7074         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
7075         tests against TFmode, etc.
7076         (invalid_e500_subreg): Add tests against IFmode/KFmode.
7077         (reg_offset_addressing_ok_p): Likewise.
7078         (rs6000_legitimate_offset_address_p): Likewise.
7079         (rs6000_legitimize_address): Likewise.
7080         (rs6000_legitimize_reload_address): Likewise.
7081         (rs6000_legitimate_address_p): Clean up tests against TFmode and
7082         TDmode to use the new helper macros, which will include IFmode and
7083         KFmode.
7084         (rs6000_emit_move): Likewise.
7085         (rs6000_darwin64_record_arg_recurse): Likewise.
7086         (print_operand): Likewise.
7087         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
7088         that uses a single vector register as a vector and not as a
7089         floating point register in terms of the calling sequence.
7090         (rs6000_discover_homogeneous_aggregate): Likewise.
7091         (rs6000_return_in_memory): Likewise.
7092         (init_cumulative_args): Likewise.
7093         (rs6000_function_arg_boundary): Likewise.
7094         (rs6000_function_arg_advance_1): Likewise.
7095         (rs6000_function_arg): Likewise.
7096         (rs6000_pass_by_reference): Likewise.
7097         (rs6000_gimplify_va_arg): Likewise.
7098         (rs6000_secondary_reload_memory): Use machine_mode not enum
7099         machine mode.
7100         (rs6000_split_multireg_move): Use new helper macros.
7101         (spe_func_has_64bit_regs_p): Likewise.
7102         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
7103         (output_toc): Use new helper macros.
7104         (rs6000_register_move_cost): Likewise.
7105         (rs6000_function_value): Add IEEE 128-bit floating point calling
7106         sequence support.
7107         (rs6000_libcall_value): Likewise.
7108         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
7109         floating point support.
7110         (rs6000_vector_mode_supported_p): Likewise.
7112 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
7114         PR rtl-optimization/66782
7115         * lra-int.h (struct lra_insn_recog_data): Add comment about
7116         clobbered hard regs for arg_hard_regs.
7117         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
7118         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
7119         Add condition for processing used hard regs.
7120         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
7121         Process clobbered hard regs.
7123 2015-07-09  Michael Matz  <matz@suse.de>
7125         * genmatch.c (fprintf_indent): New function.
7126         (operand::gen_transform): Add indent parameter.
7127         (expr::gen_transform, c_expr::gen_transform,
7128         capture::gen_transform): Ditto and use fprintf_indent.
7129         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
7130         (dt_operand::gen, dt_operand::gen_predicate,
7131         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
7132         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
7133         (decision_tree::gen_gimple): Adjust calls and indent generated
7134         code.
7135         (decision_tree::gen_generic): Ditto.
7136         (write_predicate): Ditto.
7138 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
7140         PR target/66814
7141         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
7142         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
7143         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
7144         {GENERAL,SSE,MMX}_REG_P where appropriate.
7146 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
7148         * lto-streamer.h: Don't include target.h and alloc-pool.h.
7149         * builtins.c: Adjust includes.
7150         * gimple.c: Likewise.
7151         * ipa-icf.c: Likewise.
7152         * lto-opts.c: Likewise.
7153         * ipa-reference.c: Likewise.
7154         * lto-section-out.c: Likewise.
7155         * lto-streamer-in.c: Likewise.
7156         * lto-streamer-out.c: Likewise.
7157         * opts-global.c: Likewise.
7158         * symtab.c: Likewise.
7159         * tree-chkp.c: Likewise.
7160         * tree-ssa-live.c: Likewise.
7161         * tree-streamer-in.c: Likewise.
7162         * tree-streamer-out.c: Likewise.
7163         * config/darwin.c: Likewise.
7164         * config/i386/winnt.c: Likewise.
7166 2015-07-09  Richard Biener  <rguenther@suse.de>
7168         * genmatch.c (struct expr): Add force_single_use flag.
7169         (expr::expr): Add copy constructor.
7170         (capture_info::walk_match): Gather force_single_use captures.
7171         (expr::gen_transform): Use possibly NULLified sequence.
7172         (dt_simplify::gen): Apply single-use restrictions by NULLifying
7173         seq if any constrained expr is not single-use.
7174         (parser::parse_expr): Refactor to allow multiple flags.  Handle
7175         's' flag to force an expression have a single-use if the pattern
7176         simplifies to more than one statement.
7177         * match.pd: Convert most single_use conditionals to :s flags.
7179 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
7181         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
7182         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
7183         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7185 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
7187         * flags.h: Don't include flag-types.h or options.h.
7188         * opts-common.c: Adjust includes.
7189         * opts-global.c: Likewise.
7190         * common/config/epiphany/epiphany-common.c: Likewise.
7192 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
7194         PR target/66818
7195         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
7196         for IA MCU.
7198 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
7200         PR target/66817
7201         * config/i386/i386.c (ix86_return_in_memory): Return true
7202         if int_size_in_bytes returns negative for IA MCU.
7204 2015-07-09  Marek Polacek  <polacek@redhat.com>
7206         PR tree-optimization/66718
7207         * Makefile.in (OBJS): Add gimple-laddress.o.
7208         * passes.def: Schedule pass_laddress.
7209         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
7210         * tree-pass.h (make_pass_laddress): Declare.
7211         * gimple-laddress.c: New file.
7213 2015-07-09  Richard Biener  <rguenther@suse.de>
7215         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
7217 2015-07-09  Richard Biener  <rguenther@suse.de>
7219         PR tree-optimization/66807
7220         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
7222 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
7224         * function.c (stack_protect_epilogue): Use if rather than switch for
7225         check targetm.have_stack_protect_test.
7227 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7229         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
7230         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
7231         * config/arc/arc.h: Likewise.
7232         * config/arm/arm.h: Likewise.
7233         * config/bfin/bfin.h: Likewise.
7234         * config/epiphany/epiphany.h: Likewise.
7235         * config/frv/frv.h: Likewise.
7236         * config/ia64/ia64.h: Likewise.
7237         * config/iq2000/iq2000.h: Likewise.
7238         * config/lm32/lm32.h: Likewise.
7239         * config/m32r/m32r.h: Likewise.
7240         * config/mcore/mcore.h: Likewise.
7241         * config/mep/mep.h: Likewise.
7242         * config/microblaze/microblaze.h: Likewise.
7243         * config/mips/mips.h: Likewise.
7244         * config/mmix/mmix.h: Likewise.
7245         * config/mn10300/mn10300.h: Likewise.
7246         * config/nds32/nds32.h: Likewise.
7247         * config/nios2/nios2.h: Likewise.
7248         * config/pa/pa.h: Likewise.
7249         * config/rl78/rl78.h: Likewise.
7250         * config/sh/sh.h: Likewise.
7251         * config/sparc/sparc.h: Likewise.
7252         * config/stormy16/stormy16.h: Likewise.
7253         * config/tilegx/tilegx.h: Likewise.
7254         * config/tilepro/tilepro.h: Likewise.
7255         * config/v850/v850.h: Likewise.
7256         * config/xtensa/xtensa.h: Likewise.
7257         * doc/tm.texi: Regenerate.
7258         * doc/tm.texi.in: Adjust.
7259         * combine.c (simplify_set): Likewise.
7260         (simplify_comparison): Likewise.
7261         * expr.c (store_constructor): Likewise.
7262         * internal-fn.c (expand_arith_overflow): Likewise.
7263         * reload.c (push_reload): Likewise.
7264         (find_reloads): Likewise.
7265         (find_reloads_subreg_address): Likewise.
7266         * reload1.c (eliminate_regs_1): Likewise.
7267         * rtlanal.c (nonzero_bits1): Likewise.
7268         (num_sign_bit_copies1): Likewise.
7269         * simplify-rtx.c (simplify_truncation): Likewise.
7271 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7273         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
7274         of AUTO_INC_DEC with the preprocessor.
7275         * combine.c (combine_instructions): Likewise.
7276         (can_combine_p): Likewise.
7277         (try_combine): Likewise.
7278         * emit-rtl.c (try_split): Likewise.
7279         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
7280         * lower-subreg.c (resolve_simple_move): Likewise.
7281         * lra.c (update_inc_notes): Likewise.
7282         * recog.c (asm_operand_ok): Likewise.
7283         (constrain_operands): Likewise.
7284         * regrename.c (scan_rtx_address): Likewise.
7285         * reload.c (update_auto_inc_notes): Likewise.
7286         (reg_inc_found_and_valid_p): Likewise.
7287         * reload1.c (reload): Likewise.
7288         (emit_input_reload_insns): Likewise.
7289         (delete_output_reload): Likewise.
7290         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
7291         * valtrack.c (cleanup_auto_inc_dec): Likewise.
7293 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7295         * rtl.h: Always define AUTO_INC_DEC.
7296         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
7297         * combine.c (combine_instructions): Likewise.
7298         (can_combine_p): Likewise.
7299         (try_combine): Likewise.
7300         * emit-rtl.c (try_split): Likewise.
7301         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
7302         * lower-subreg.c (resolve_simple_move): Likewise.
7303         * lra.c (update_inc_notes): Likewise.
7304         * recog.c (asm_operand_ok): Likewise.
7305         (constrain_operands): Likewise.
7306         * regrename.c (scan_rtx_address): Likewise.
7307         * reload.c (update_auto_inc_notes): Likewise.
7308         (find_equiv_reg): Likewise.
7309         * reload1.c (reload): Likewise.
7310         (reload_as_needed): Likewise.
7311         (choose_reload_regs): Likewise.
7312         (emit_input_reload_insns): Likewise.
7313         (delete_output_reload): Likewise.
7314         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
7315         * valtrack.c (cleanup_auto_inc_dec): Likewise.
7317 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7319         * combine.c (can_combine_def_p): Don't check the value of
7320         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
7321         (combinable_i3pat): Likewise.
7322         (mark_used_regs_combine): Likewise.
7323         * regrename.c (rename_chains): Likewise.
7324         * reload.c (find_reloads_address): Likewise.
7325         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
7327 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7329         * combine.c (update_rsp_from_reg_equal): Don't check if
7330         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
7331         (reg_nonzero_bits_for_combine): Likewise.
7332         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
7333         1.
7334         * config/frv/frv.h: Likewise.
7335         * config/lm32/lm32.h: Likewise.
7336         * config/mep/mep.h: Likewise.
7337         * config/mips/mips.h: Likewise.
7338         * config/rs6000/rs6000.h: Likewise.
7339         * config/sh/sh.h: Likewise.
7340         * config/tilegx/tilegx.h (enum reg_class): Likewise.
7341         * config/tilepro/tilepro.h: Likewise.
7342         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
7343         * doc/tm.texi: Regenerate.
7344         * doc/tm.texi.in: Adjust.
7345         * rtlanal.c (nonzero_bits1): Likewise.
7347 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7349         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
7350         with the preprocessor.
7351         (combine_instructions): Likewise.
7352         (try_combine): Likewise.
7353         (subst): Likewise.
7354         (distribute_notes): Likewise.
7356 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7358         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
7359         defined.
7360         (simplify_set): Likewise.
7361         * cse.c (cse_insn): Likewise.
7362         * fold-const.c (fold_single_bit_test): Likewise.
7363         (fold_unary_loc): Likewise.
7364         * postreload.c (reload_cse_simplify_set): Likewise.
7365         (reload_cse_simplify_operands): Likewise.
7367 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
7369         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
7370         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
7372 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
7374         PR target/66746
7375         * config/i386/x86intrin.h: Include <adxintrin.h> even if
7376         __iamcu__ is defined.
7378 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
7380         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
7382 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
7384         PR target/66523
7385         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
7386         names from preservation.
7388 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
7390         PR target/66806
7391         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
7392         change for IAMCU.
7393         (function_arg_advance_32): Don't pass vectors in registers for
7394         IAMCU.
7395         (function_arg_32): Likewise.
7396         (ix86_return_in_memory): Don't return vectors in registers for
7397         IAMCU.
7399 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
7401         PR middle-end/66334
7402         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
7403         hard regno live at the start of BB with incoming abnormal edges.
7404         * lra-lives.c (process_bb_lives): Ditto.
7406 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
7408         PR libgomp/65099
7409         * config/nvptx/mkoffload.c (main): Create an offload image only in
7410         64-bit configurations.
7412 2015-07-08  Martin Liska  <mliska@suse.cz>
7414         PR bootstrap/66744
7415         * tree-sra.c (create_access_1): Call ctor without brackets.
7416         (create_artificial_child_access): Likewise.
7418 2015-07-08  Richard Biener  <rguenther@suse.de>
7420         PR tree-optimization/66793
7421         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
7422         Properly split the block after stmts ending it.
7424 2015-07-08  Richard Biener  <rguenther@suse.de>
7426         PR tree-optimization/66794
7427         * passes.c (execute_function_todo): Assert that post-dominators
7428         are not computed.
7429         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
7430         Free post-dominators.
7432 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7434         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
7435         with early exit.
7437 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
7439         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
7440         more than or equal 8 and less than 32 when optimizing for size.
7442 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7444         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
7445         COSTS_N_INSNS (1) and increment it appropriately throughout the
7446         function.
7448 2015-07-08  Richard Biener  <rguenther@suse.de>
7450         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
7452 2015-07-08  Alan Modra  <amodra@gmail.com>
7454         * target.def (rtx_costs): Remove "code" param, add "mode".
7455         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
7456         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
7457         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
7458         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
7459         call.  Track mode when given in rtx.
7460         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
7461         (default_address_cost): Pass Pmode to rtx_cost.
7462         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
7463         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
7464         with NULL set.
7465         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
7466         (notreg_cost): Add mode param.  Use it.
7467         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
7468         mode param and pass to set_src_cost.  Update all calls.
7469         (hash_scan_set): Formatting.
7470         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
7471         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
7472         * hooks.h: Ditto.
7473         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
7474         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
7475         emit_store_flag): Update set_src_cost and rtx_cost calls.
7476         * auto-inc-dec.c (attempt_change): Likewise.
7477         * calls.c (precompute_register_parameters): Likewise.
7478         * combine.c (expand_compound_operation, make_extraction,
7479         force_to_mode, distribute_and_simplify_rtx): Likewise.
7480         * dojump.c (prefer_and_bit_test): Likewise.
7481         * dse.c (find_shift_sequence): Likewise.
7482         * expr.c (compress_float_constant): Likewise.
7483         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
7484         * ifcvt.c (noce_try_sign_mask): Likewise.
7485         * loop-doloop.c (doloop_optimize): Likewise.
7486         * loop-invariant.c (create_new_invariant): Likewise.
7487         * lower-subreg.c (shift_cost, compute_costs): Likewise.
7488         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
7489         lshift_cheap_p): Likewise.
7490         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
7491         try_replace_in_use, reload_cse_move2add): Likewise.
7492         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
7493         Likewise.
7494         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
7495         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
7496         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
7497         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
7498         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
7499         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
7500         to rtx_cost calls.
7501         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
7502         * config/arc/arc.c (arc_rtx_costs): Likewise.
7503         * config/arm/arm.c (arm_rtx_costs): Likewise.
7504         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
7505         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
7506         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
7507         * config/cris/cris.c (cris_rtx_costs): Likewise.
7508         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
7509         * config/frv/frv.c (frv_rtx_costs): Likewise.
7510         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
7511         * config/i386/i386.c (ix86_rtx_costs): Likewise.
7512         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
7513         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
7514         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
7515         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
7516         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
7517         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
7518         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
7519         * config/mep/mep.c (mep_rtx_cost): Likewise.
7520         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
7521         * config/mips/mips.c (mips_rtx_costs): Likewise.
7522         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
7523         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
7524         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
7525         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
7526         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
7527         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
7528         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
7529         * config/pa/pa.c (hppa_rtx_costs): Likewise.
7530         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
7531         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
7532         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
7533         * config/s390/s390.c (s390_rtx_costs): Likewise.
7534         * config/sh/sh.c (sh_rtx_costs): Likewise.
7535         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
7536         * config/spu/spu.c (spu_rtx_costs): Likewise.
7537         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
7538         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
7539         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
7540         * config/v850/v850.c (v850_rtx_costs): Likewise.
7541         * config/vax/vax.c (vax_rtx_costs): Likewise.
7542         * config/visium/visium.c (visium_rtx_costs): Likewise.
7543         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
7544         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
7545         "code" param, and pass as outer_code to first rtx_cost call.  Pass
7546         mode to rtx_cost calls.
7547         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
7548         calls.
7549         (aarch64_rtx_costs_wrapper): Update.
7550         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
7551         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
7552         rtx_cost calls.
7553         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
7554         and rtx_cost calls.
7555         (avr_operand_rtx_cost): Similarly.
7556         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
7557         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
7558         * config/mips/mips.c (mips_stack_address_p): Comment typo.
7559         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
7560         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
7561         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
7562         rtx_cost.
7563         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
7564         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
7565         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
7566         * doc/tm.texi: Regenerate.
7568 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
7570         * tree-core.h: Include symtab.h.
7571         * rtl.h: Include hard-reg-set.h but not flags.h.
7572         (HARD_CONST): Remove condition compilation involving HARD_CONST since
7573         hard-reg-set.h is always included.
7574         * regs.h: Don't include hard-reg-set.h or rtl.h.
7575         * cfg.h: Include dominance.h.
7576         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
7577         * backend.h: New.  Aggregate commonly used backend header files.
7578         * gimple-ssa.h: Don't include tree-hasher.h.
7579         * ssa.h: New.  Aggregate commonly used SSA header files.
7580         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
7581         * sel-sched-ir.h: Flatten includes.
7582         * lra-int.h: Flatten completely.
7583         * sel-sched-dump.h: Flatten includes.
7584         * ira-int.h: Flatten includes.
7585         * gimple-streamer.h: Remove all includes.
7586         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
7587         * resource.h: Flatten hard-reg-set.h and df.h.
7588         * sched-int.h: Flatten insn-arrt.h and df.h.
7589         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
7590         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
7591         * genattrtab.c (write_header): Adjust generated includes.
7592         * genautomata.c (main): Likewise.
7593         * genconditions.c (write-header): Likewise.
7594         * genemit.c (main): Likewise.
7595         * gengtype.c (open_base_files): Likewise.
7596         * genopinit.c (main): Likewise.
7597         * genoutput.c (output_prologue): Likewise.
7598         * genpeep.c (main): Likewise.
7599         * genpreds.c (write_insn_preds_c): Likewise.
7600         * genrecog.c (write_header): Likewise.
7601         * alias.c: Adjust includes.
7602         * asan.c: Likewise.
7603         * attribs.c: Likewise.
7604         * auto-inc-dec.c: Likewise.
7605         * auto-profile.c: Likewise.
7606         * bb-reorder.c: Likewise.
7607         * bt-load.c: Likewise.
7608         * builtins.c: Likewise.
7609         * caller-save.c: Likewise.
7610         * calls.c: Likewise.
7611         * ccmp.c: Likewise.
7612         * cfg.c: Likewise.
7613         * cfganal.c: Likewise.
7614         * cfgbuild.c: Likewise.
7615         * cfgcleanup.c: Likewise.
7616         * cfgexpand.c: Likewise.
7617         * cfghooks.c: Likewise.
7618         * cfgloop.c: Likewise.
7619         * cfgloopanal.c: Likewise.
7620         * cfgloopmanip.c: Likewise.
7621         * cfgrtl.c: Likewise.
7622         * cgraph.c: Likewise.
7623         * cgraphbuild.c: Likewise.
7624         * cgraphclones.c: Likewise.
7625         * cgraphunit.c: Likewise.
7626         * cilk-common.c: Likewise.
7627         * combine-stack-adj.c: Likewise.
7628         * combine.c: Likewise.
7629         * compare-elim.c: Likewise.
7630         * convert.c: Likewise.
7631         * coverage.c: Likewise.
7632         * cppbuiltin.c: Likewise.
7633         * cprop.c: Likewise.
7634         * cse.c: Likewise.
7635         * cselib.c: Likewise.
7636         * data-streamer-in.c: Likewise.
7637         * data-streamer-out.c: Likewise.
7638         * data-streamer.c: Likewise.
7639         * dbxout.c: Likewise.
7640         * dce.c: Likewise.
7641         * ddg.c: Likewise.
7642         * debug.c: Likewise.
7643         * df-core.c: Likewise.
7644         * df-problems.c: Likewise.
7645         * df-scan.c: Likewise.
7646         * dfp.c: Likewise.
7647         * dojump.c: Likewise.
7648         * dominance.c: Likewise.
7649         * domwalk.c: Likewise.
7650         * double-int.c: Likewise.
7651         * dse.c: Likewise.
7652         * dumpfile.c: Likewise.
7653         * dwarf2asm.c: Likewise.
7654         * dwarf2cfi.c: Likewise.
7655         * dwarf2out.c: Likewise.
7656         * emit-rtl.c: Likewise.
7657         * et-forest.c: Likewise.
7658         * except.c: Likewise.
7659         * explow.c: Likewise.
7660         * expmed.c: Likewise.
7661         * expr.c: Likewise.
7662         * final.c: Likewise.
7663         * fixed-value.c: Likewise.
7664         * fold-const.c: Likewise.
7665         * function.c: Likewise.
7666         * fwprop.c: Likewise.
7667         * gcc-plugin.h: Likewise.
7668         * gcse-common.c: Likewise.
7669         * gcse.c: Likewise.
7670         * generic-match-head.c: Likewise.
7671         * ggc-page.c: Likewise.
7672         * gimple-builder.c: Likewise.
7673         * gimple-expr.c: Likewise.
7674         * gimple-fold.c: Likewise.
7675         * gimple-iterator.c: Likewise.
7676         * gimple-low.c: Likewise.
7677         * gimple-match-head.c: Likewise.
7678         * gimple-pretty-print.c: Likewise.
7679         * gimple-ssa-isolate-paths.c: Likewise.
7680         * gimple-ssa-strength-reduction.c: Likewise.
7681         * gimple-streamer-in.c: Likewise.
7682         * gimple-streamer-out.c: Likewise.
7683         * gimple-walk.c: Likewise.
7684         * gimple.c: Likewise.
7685         * gimplify-me.c: Likewise.
7686         * gimplify.c: Likewise.
7687         * godump.c: Likewise.
7688         * graph.c: Likewise.
7689         * graphite-blocking.c: Likewise.
7690         * graphite-dependences.c: Likewise.
7691         * graphite-interchange.c: Likewise.
7692         * graphite-isl-ast-to-gimple.c: Likewise.
7693         * graphite-optimize-isl.c: Likewise.
7694         * graphite-poly.c: Likewise.
7695         * graphite-scop-detection.c: Likewise.
7696         * graphite-sese-to-poly.c: Likewise.
7697         * graphite.c: Likewise.
7698         * haifa-sched.c: Likewise.
7699         * hw-doloop.c: Likewise.
7700         * ifcvt.c: Likewise.
7701         * init-regs.c: Likewise.
7702         * internal-fn.c: Likewise.
7703         * ipa-chkp.c: Likewise.
7704         * ipa-comdats.c: Likewise.
7705         * ipa-cp.c: Likewise.
7706         * ipa-devirt.c: Likewise.
7707         * ipa-icf-gimple.c: Likewise.
7708         * ipa-icf.c: Likewise.
7709         * ipa-inline-analysis.c: Likewise.
7710         * ipa-inline-transform.c: Likewise.
7711         * ipa-inline.c: Likewise.
7712         * ipa-polymorphic-call.c: Likewise.
7713         * ipa-profile.c: Likewise.
7714         * ipa-prop.c: Likewise.
7715         * ipa-pure-const.c: Likewise.
7716         * ipa-ref.c: Likewise.
7717         * ipa-reference.c: Likewise.
7718         * ipa-split.c: Likewise.
7719         * ipa-utils.c: Likewise.
7720         * ipa-visibility.c: Likewise.
7721         * ipa.c: Likewise.
7722         * ira-build.c: Likewise.
7723         * ira-color.c: Likewise.
7724         * ira-conflicts.c: Likewise.
7725         * ira-costs.c: Likewise.
7726         * ira-emit.c: Likewise.
7727         * ira-lives.c: Likewise.
7728         * ira.c: Likewise.
7729         * jump.c: Likewise.
7730         * langhooks.c: Likewise.
7731         * lcm.c: Likewise.
7732         * loop-doloop.c: Likewise.
7733         * loop-init.c: Likewise.
7734         * loop-invariant.c: Likewise.
7735         * loop-iv.c: Likewise.
7736         * loop-unroll.c: Likewise.
7737         * lower-subreg.c: Likewise.
7738         * lra-assigns.c: Likewise.
7739         * lra-coalesce.c: Likewise.
7740         * lra-constraints.c: Likewise.
7741         * lra-eliminations.c: Likewise.
7742         * lra-lives.c: Likewise.
7743         * lra-remat.c: Likewise.
7744         * lra-spills.c: Likewise.
7745         * lra.c: Likewise.
7746         * lto-cgraph.c: Likewise.
7747         * lto-compress.c: Likewise.
7748         * lto-opts.c: Likewise.
7749         * lto-section-in.c: Likewise.
7750         * lto-section-out.c: Likewise.
7751         * lto-streamer-in.c: Likewise.
7752         * lto-streamer-out.c: Likewise.
7753         * lto-streamer.c: Likewise.
7754         * mcf.c: Likewise.
7755         * mode-switching.c: Likewise.
7756         * modulo-sched.c: Likewise.
7757         * omega.c: Likewise.
7758         * omp-low.c: Likewise.
7759         * optabs.c: Likewise.
7760         * opts-global.c: Likewise.
7761         * passes.c: Likewise.
7762         * plugin.c: Likewise.
7763         * postreload-gcse.c: Likewise.
7764         * postreload.c: Likewise.
7765         * predict.c: Likewise.
7766         * print-rtl.c: Likewise.
7767         * print-tree.c: Likewise.
7768         * profile.c: Likewise.
7769         * real.c: Likewise.
7770         * realmpfr.c: Likewise.
7771         * recog.c: Likewise.
7772         * ree.c: Likewise.
7773         * reg-stack.c: Likewise.
7774         * regcprop.c: Likewise.
7775         * reginfo.c: Likewise.
7776         * regrename.c: Likewise.
7777         * regstat.c: Likewise.
7778         * reload.c: Likewise.
7779         * reload1.c: Likewise.
7780         * reorg.c: Likewise.
7781         * resource.c: Likewise.
7782         * rtl-chkp.c: Likewise.
7783         * rtlanal.c: Likewise.
7784         * rtlhooks.c: Likewise.
7785         * sanopt.c: Likewise.
7786         * sched-deps.c: Likewise.
7787         * sched-ebb.c: Likewise.
7788         * sched-rgn.c: Likewise.
7789         * sched-vis.c: Likewise.
7790         * sdbout.c: Likewise.
7791         * sel-sched-dump.c: Likewise.
7792         * sel-sched-ir.c: Likewise.
7793         * sel-sched.c: Likewise.
7794         * sese.c: Likewise.
7795         * shrink-wrap.c: Likewise.
7796         * simplify-rtx.c: Likewise.
7797         * stack-ptr-mod.c: Likewise.
7798         * stmt.c: Likewise.
7799         * stor-layout.c: Likewise.
7800         * store-motion.c: Likewise.
7801         * stringpool.c: Likewise.
7802         * symtab.c: Likewise.
7803         * target-globals.c: Likewise.
7804         * targhooks.c: Likewise.
7805         * toplev.c: Likewise.
7806         * tracer.c: Likewise.
7807         * trans-mem.c: Likewise.
7808         * tree-affine.c: Likewise.
7809         * tree-browser.c: Likewise.
7810         * tree-call-cdce.c: Likewise.
7811         * tree-cfg.c: Likewise.
7812         * tree-cfgcleanup.c: Likewise.
7813         * tree-chkp-opt.c: Likewise.
7814         * tree-chkp.c: Likewise.
7815         * tree-chrec.c: Likewise.
7816         * tree-complex.c: Likewise.
7817         * tree-data-ref.c: Likewise.
7818         * tree-dfa.c: Likewise.
7819         * tree-diagnostic.c: Likewise.
7820         * tree-dump.c: Likewise.
7821         * tree-eh.c: Likewise.
7822         * tree-emutls.c: Likewise.
7823         * tree-if-conv.c: Likewise.
7824         * tree-inline.c: Likewise.
7825         * tree-into-ssa.c: Likewise.
7826         * tree-iterator.c: Likewise.
7827         * tree-loop-distribution.c: Likewise.
7828         * tree-nested.c: Likewise.
7829         * tree-nrv.c: Likewise.
7830         * tree-object-size.c: Likewise.
7831         * tree-outof-ssa.c: Likewise.
7832         * tree-parloops.c: Likewise.
7833         * tree-phinodes.c: Likewise.
7834         * tree-predcom.c: Likewise.
7835         * tree-pretty-print.c: Likewise.
7836         * tree-profile.c: Likewise.
7837         * tree-scalar-evolution.c: Likewise.
7838         * tree-sra.c: Likewise.
7839         * tree-ssa-address.c: Likewise.
7840         * tree-ssa-alias.c: Likewise.
7841         * tree-ssa-ccp.c: Likewise.
7842         * tree-ssa-coalesce.c: Likewise.
7843         * tree-ssa-copy.c: Likewise.
7844         * tree-ssa-copyrename.c: Likewise.
7845         * tree-ssa-dce.c: Likewise.
7846         * tree-ssa-dom.c: Likewise.
7847         * tree-ssa-dse.c: Likewise.
7848         * tree-ssa-forwprop.c: Likewise.
7849         * tree-ssa-ifcombine.c: Likewise.
7850         * tree-ssa-live.c: Likewise.
7851         * tree-ssa-loop-ch.c: Likewise.
7852         * tree-ssa-loop-im.c: Likewise.
7853         * tree-ssa-loop-ivcanon.c: Likewise.
7854         * tree-ssa-loop-ivopts.c: Likewise.
7855         * tree-ssa-loop-manip.c: Likewise.
7856         * tree-ssa-loop-niter.c: Likewise.
7857         * tree-ssa-loop-prefetch.c: Likewise.
7858         * tree-ssa-loop-unswitch.c: Likewise.
7859         * tree-ssa-loop.c: Likewise.
7860         * tree-ssa-math-opts.c: Likewise.
7861         * tree-ssa-operands.c: Likewise.
7862         * tree-ssa-phiopt.c: Likewise.
7863         * tree-ssa-phiprop.c: Likewise.
7864         * tree-ssa-pre.c: Likewise.
7865         * tree-ssa-propagate.c: Likewise.
7866         * tree-ssa-reassoc.c: Likewise.
7867         * tree-ssa-sccvn.c: Likewise.
7868         * tree-ssa-scopedtables.c: Likewise.
7869         * tree-ssa-sink.c: Likewise.
7870         * tree-ssa-strlen.c: Likewise.
7871         * tree-ssa-structalias.c: Likewise.
7872         * tree-ssa-tail-merge.c: Likewise.
7873         * tree-ssa-ter.c: Likewise.
7874         * tree-ssa-threadedge.c: Likewise.
7875         * tree-ssa-threadupdate.c: Likewise.
7876         * tree-ssa-uncprop.c: Likewise.
7877         * tree-ssa-uninit.c: Likewise.
7878         * tree-ssa.c: Likewise.
7879         * tree-ssanames.c: Likewise.
7880         * tree-stdarg.c: Likewise.
7881         * tree-streamer-in.c: Likewise.
7882         * tree-streamer-out.c: Likewise.
7883         * tree-streamer.c: Likewise.
7884         * tree-switch-conversion.c: Likewise.
7885         * tree-tailcall.c: Likewise.
7886         * tree-vect-data-refs.c: Likewise.
7887         * tree-vect-generic.c: Likewise.
7888         * tree-vect-loop-manip.c: Likewise.
7889         * tree-vect-loop.c: Likewise.
7890         * tree-vect-patterns.c: Likewise.
7891         * tree-vect-slp.c: Likewise.
7892         * tree-vect-stmts.c: Likewise.
7893         * tree-vectorizer.c: Likewise.
7894         * tree-vrp.c: Likewise.
7895         * tree.c: Likewise.
7896         * tsan.c: Likewise.
7897         * ubsan.c: Likewise.
7898         * valtrack.c: Likewise.
7899         * value-prof.c: Likewise.
7900         * var-tracking.c: Likewise.
7901         * varasm.c: Likewise.
7902         * varpool.c: Likewise.
7903         * vmsdbgout.c: Likewise.
7904         * vtable-verify.c: Likewise.
7905         * web.c: Likewise.
7906         * wide-int.cc: Likewise.
7907         * xcoffout.c: Likewise.
7908         * config/aarch64/aarch64-builtins.c: Likewise.
7909         * config/aarch64/aarch64.c: Likewise.
7910         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7911         * config/alpha/alpha.c: Likewise.
7912         * config/arc/arc.c: Likewise.
7913         * config/arm/aarch-common.c: Likewise.
7914         * config/arm/arm-builtins.c: Likewise.
7915         * config/arm/arm-c.c: Likewise.
7916         * config/arm/arm.c: Likewise.
7917         * config/avr/avr-c.c: Likewise.
7918         * config/avr/avr-log.c: Likewise.
7919         * config/avr/avr.c: Likewise.
7920         * config/bfin/bfin.c: Likewise.
7921         * config/c6x/c6x.c: Likewise.
7922         * config/cr16/cr16.c: Likewise.
7923         * config/cris/cris.c: Likewise.
7924         * config/darwin-c.c: Likewise.
7925         * config/darwin.c: Likewise.
7926         * config/epiphany/epiphany.c: Likewise.
7927         * config/epiphany/mode-switch-use.c: Likewise.
7928         * config/epiphany/resolve-sw-modes.c: Likewise.
7929         * config/fr30/fr30.c: Likewise.
7930         * config/frv/frv.c: Likewise.
7931         * config/ft32/ft32.c: Likewise.
7932         * config/h8300/h8300.c: Likewise.
7933         * config/i386/i386-c.c: Likewise.
7934         * config/i386/i386.c: Likewise.
7935         * config/i386/msformat-c.c: Likewise.
7936         * config/i386/winnt-cxx.c: Likewise.
7937         * config/i386/winnt-stubs.c: Likewise.
7938         * config/i386/winnt.c: Likewise.
7939         * config/ia64/ia64-c.c: Likewise.
7940         * config/ia64/ia64.c: Likewise.
7941         * config/iq2000/iq2000.c: Likewise.
7942         * config/lm32/lm32.c: Likewise.
7943         * config/m32c/m32c-pragma.c: Likewise.
7944         * config/m32c/m32c.c: Likewise.
7945         * config/m32r/m32r.c: Likewise.
7946         * config/m68k/m68k.c: Likewise.
7947         * config/mcore/mcore.c: Likewise.
7948         * config/mep/mep-pragma.c: Likewise.
7949         * config/mep/mep.c: Likewise.
7950         * config/microblaze/microblaze-c.c: Likewise.
7951         * config/microblaze/microblaze.c: Likewise.
7952         * config/mips/mips.c: Likewise.
7953         * config/mmix/mmix.c: Likewise.
7954         * config/mn10300/mn10300.c: Likewise.
7955         * config/moxie/moxie.c: Likewise.
7956         * config/msp430/msp430-c.c: Likewise.
7957         * config/msp430/msp430.c: Likewise.
7958         * config/nds32/nds32-cost.c: Likewise.
7959         * config/nds32/nds32-fp-as-gp.c: Likewise.
7960         * config/nds32/nds32-intrinsic.c: Likewise.
7961         * config/nds32/nds32-isr.c: Likewise.
7962         * config/nds32/nds32-md-auxiliary.c: Likewise.
7963         * config/nds32/nds32-memory-manipulation.c: Likewise.
7964         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7965         * config/nds32/nds32-predicates.c: Likewise.
7966         * config/nds32/nds32.c: Likewise.
7967         * config/nios2/nios2.c: Likewise.
7968         * config/nvptx/nvptx.c: Likewise.
7969         * config/pa/pa.c: Likewise.
7970         * config/pdp11/pdp11.c: Likewise.
7971         * config/rl78/rl78-c.c: Likewise.
7972         * config/rl78/rl78.c: Likewise.
7973         * config/rs6000/rs6000-c.c: Likewise.
7974         * config/rs6000/rs6000.c: Likewise.
7975         * config/rx/rx.c: Likewise.
7976         * config/s390/s390-c.c: Likewise.
7977         * config/s390/s390.c: Likewise.
7978         * config/sh/sh-c.c: Likewise.
7979         * config/sh/sh-mem.cc: Likewise.
7980         * config/sh/sh.c: Likewise.
7981         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7982         * config/sh/sh_treg_combine.cc: Likewise.
7983         * config/sol2-c.c: Likewise.
7984         * config/sol2-cxx.c: Likewise.
7985         * config/sol2-stubs.c: Likewise.
7986         * config/sol2.c: Likewise.
7987         * config/sparc/sparc-c.c: Likewise.
7988         * config/sparc/sparc.c: Likewise.
7989         * config/spu/spu-c.c: Likewise.
7990         * config/spu/spu.c: Likewise.
7991         * config/stormy16/stormy16.c: Likewise.
7992         * config/tilegx/mul-tables.c: Likewise.
7993         * config/tilegx/tilegx-c.c: Likewise.
7994         * config/tilegx/tilegx.c: Likewise.
7995         * config/tilepro/mul-tables.c: Likewise.
7996         * config/tilepro/tilepro-c.c: Likewise.
7997         * config/tilepro/tilepro.c: Likewise.
7998         * config/v850/v850-c.c: Likewise.
7999         * config/v850/v850.c: Likewise.
8000         * config/vax/vax.c: Likewise.
8001         * config/visium/visium.c: Likewise.
8002         * config/vms/vms-c.c: Likewise.
8003         * config/vms/vms.c: Likewise.
8004         * config/vxworks.c: Likewise.
8005         * config/xtensa/xtensa.c: Likewise.
8007 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
8009         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
8010         Remove operand constraints.  Change operand 2 predicate to
8011         nonmemory operand.  Limit const_int values to mode bitsize.  Only
8012         allow const_int values less than 32 when optimizing for size.
8013         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
8014         Remove operand constraints.
8015         (*bt<mode>): Use SImode for const_int values less than 32.
8016         (regmode): Remove mode attribute.
8018 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
8020         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
8021         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
8022           moxie_legitimate_address_p): New functions.
8023           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
8025 2015-07-07  Tom de Vries  <tom@codesourcery.com>
8027         PR tree-optimization/66642
8028         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
8029         header comment.  Rename split_edge variable to edge_at_split.  Split
8030         exit edge to create new loop exit bb.  Insert loop exit phis in new
8031         loop exit bb.
8033 2015-07-07  Tom de Vries  <tom@codesourcery.com>
8035         * tree-cfg.c (get_virtual_phi): New function.
8036         * tree-cfg.h (get_virtual_phi): Declare.
8037         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
8038         (rewrite_virtuals_into_loop_closed_ssa): New function.
8039         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
8040         Declare.
8041         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
8042         (transform_to_exit_first_loop_alt): Use
8043         rewrite_virtuals_into_loop_closed_ssa.
8045 2015-07-07  Richard Biener  <rguenther@suse.de>
8047         * fold-const.c (fold_binary_loc): Move
8048         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
8049         * match.pd: ... here.
8050         Add (X * C1) % C2 -> 0 simplification pattern derived from
8051         extract_muldiv_1.
8053 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
8055         PR target/66780
8056         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
8057         change for target/65249.
8059 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
8061         * symtab.c (address_matters_1): Fix typo in comment above.
8062         (can_increase_alignment_p): Likewise.
8064 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8066         * function.c (free_after_compilation): Clear PROP_cfg in
8067         f->curr_properties.
8069 2015-07-07  Richard Biener  <rguenther@suse.de>
8071         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
8072         add which use to.
8073         (add_control_edge): Remove excessive vertical space in dumping.
8074         (process_ssa_edge_worklist): Simulate at most one statement and
8075         return whether we did.  Do not simulate PHIs if they are in a
8076         BB not yet simulated.
8077         (ssa_propagate): Adjust to always drain the BB worklist whenever
8078         a BB is available there, likewise the VARYING edges list before
8079         the interesting edge list.
8081 2015-07-07  Christian Bruel  <christian.bruel@st.com>
8083         PR target/52144
8084         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
8086 2015-07-07  Richard Biener  <rguenther@suse.de>
8088         PR middle-end/66739
8089         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
8090         A - B.
8092 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
8094         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
8095         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
8096         Copy operand 0 to a temporary if !ext_register_operand.  Remove
8097         ancient extract_bit_field workaround.
8098         (insv<mode>_1): Rename from mov<mode>_insv_1.
8099         (*insvqi): Rename from *movqi_insv_2.
8100         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
8101         for renamed insvsi_1.
8102         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
8104 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
8106         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
8107         call to nvptx_reorg_subreg.
8109 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
8111         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
8112         * graphite-dependencies.c, graphite-interchange.c,
8113         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
8114         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
8115         Likewise.
8117 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
8119         * match.pd: Remove element_mode inside HONOR_*.
8120         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
8121         (~X | X -> -1, ~X ^ X -> -1): Merge.
8122         * tree.c (build_each_one_cst): New function.
8123         * tree.h (build_each_one_cst): Likewise.
8125 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8127         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8128         PROCESSOR_IAMCU.
8130 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
8132         * config.gcc <mips*-*-*>: Add fused-madd.opt.
8133         * config/mips/mips.opt (mfused-madd): Remove.
8134         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
8135         * config/mips/mips.h (TARGET_MIPS8000): New.
8136         (ISA_HAS_FP_MADD4_MSUB4): Remove.
8137         (ISA_HAS_FP_MADDF_MSUBF): Remove.
8138         (ISA_HAS_FP_MADD3_MSUB3): Remove.
8139         (ISA_HAS_NMADD4_NMSUB4): Remove.
8140         (ISA_HAS_NMADD3_NMSUB3): Remove.
8141         (ISA_HAS_FUSED_MADD4): New.
8142         (ISA_HAS_UNFUSED_MADD4): New.
8143         (ISA_HAS_FUSED_MADDF): New.
8144         (ISA_HAS_FUSED_MADD3): New.
8145         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
8146         (*fma<mode>4_madd3) New.
8147         (*fma<mode>4_madd4) New.
8148         (*fma<mode>4_maddf) New.
8149         (fms<mode>4) New.
8150         (*fms<mode>4_msub3) New.
8151         (*fms<mode>4_msub4) New.
8152         (fnma<mode>4) New.
8153         (*fnma<mode>4_nmadd3) New.
8154         (*fnma<mode>4_nmadd4) New.
8155         (fnms<mode>4) New.
8156         (*fnms<mode>4_nmsub3) New.
8157         (*fnms<mode>4_nmsub4) New.
8158         (*madd4<mode>) Modify to be unfused only.
8159         (*msub4<mode>) Modify to be unfused only.
8160         (*nmadd4<mode>) Modify to be unfused only.
8161         (*nmsub4<mode>) Modify to be unfused only.
8162         (*madd3<mode>) Remove.
8163         (*msub3<mode>) Remove.
8164         (*nmadd3<mode>) Remove.
8165         (*nmsub3<mode>) Remove.
8166         (*nmadd3<mode>_fastmath) Remove.
8167         (*nmsub3<mode>_fastmath) Remove.
8168         (*nmadd4<mode>_fastmath) Update condition.
8169         (*nmsub4<mode>_fastmath) Update condition.
8171 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
8173         PR target/65956
8174         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
8175         alignment attribute, exploring one level down for records and arrays.
8177 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
8179         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
8180         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
8181         Copy operand 1 to a temporary if !ext_register_operand.  Remove
8182         ancient extract_bit_field workaround.
8183         (*extv<mode>): Rename from *mov<mode>_extv_1.
8184         (*extvqi): Rename from *movqi_extv_1.
8185         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
8186         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
8187         to a temporary if !ext_register_operand.  Remove ancient
8188         extract_bit_field workaround.
8189         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
8190         (*extzvqi): Rename from *movqi_extzv_2.
8191         (*testqi_ext_3): Remove modes from const_int_operand predicated
8192         operands.  Add "n" constraint.
8193         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
8194         operand.  Add "J" constraint.
8195         (*btsq, *btrq, *btcq peephole2s): Remove mode from
8196         const_0_to_63 predicated operand.
8197         (regmode): New insn attribute.
8198         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
8199         to nonmemory_operand.  Use regmode insn attribute.
8200         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
8201         (*jcc_bt<mode>_mask): Remove mode from operand 3.
8202         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
8203         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
8204         operands.  Use "N" constraint instead of "n".
8206 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
8208         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
8210 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8212         PR target/66749
8213         * config/i386/i386.c (iamcu_cost): New.
8214         (m_IAMCU): Likewise.
8215         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
8216         (processor_target_table): Add an entry for "iamcu".
8217         (processor_alias_table): Likewise.
8218         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
8219         (ix86_adjust_cost): Likewise.
8220         (ia32_multipass_dfa_lookahead): Likewise.
8221         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
8222         * config/i386/x86-tune.def: Updated for m_IAMCU.
8224 2015-07-06  Richard Biener  <rguenther@suse.de>
8226         PR tree-optimization/66772
8227         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
8228         values are available in the PHI node BB when there are
8229         still unexecutable edges.
8231 2015-07-06  Richard Biener  <rguenther@suse.de>
8233         PR tree-optimization/66767
8234         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
8235         Make sure to build the alignment test on a SSA name without
8236         final alignment info valid only if the alignment test
8237         evaluates to true.
8239 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
8241         PR target/66620
8242         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
8243         loop start when inserting LSETUP.
8245 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8247         PR target/53383
8248         * config/i386/i386.c (ix86_option_override_internal): Allow
8249         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
8251 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8253         * read-md.c (decimal_string): Rename to ...
8254         (md_decimal_string): ... this.
8255         (handle_enum): Reflect this.
8257 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8259         PR target/66731
8260         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
8262 2015-07-06  Richard Biener  <rguenther@suse.de>
8264         PR middle-end/66759
8265         * match.pd: Add missing constraint of y to REAL_CST in
8266         REAL_CST - x CMP y to y - CST CMP x simplification.
8268 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
8270         PR tree-optimization/66757
8271         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
8273 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
8274             Sandra Loosemore <sandra@codesourcery.com>
8276         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
8277         Delete extern declaration.
8278         (gprel_constant_p): Add extern declaration.
8279         * config/nios2/constraints.md ("S"): Use gprel_constant_p
8280         instead of nios2_symbol_ref_in_small_data_p.
8281         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
8282         (nios2_symbol_ref_in_small_data_p): Make static.
8283         (gprel_constant_p): Make non-static.
8285 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
8287         * doc/fragments.texi (Target Fragment): Convert debian.org
8288         link to use https.
8289         * doc/install.texi (Configuration): Ditto.
8291 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
8293         PR tree-optimization/66718
8294         * tree-vect-stmts.c (vectorizable_call): Replace uses of
8295         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
8297         PR tree-optimization/66718
8298         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
8299         vectorizable_load, vectorizable_condition): Move vectype,
8300         nunits, ncopies computation after checking what kind of statement
8301         stmt is.
8303 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8305         * target-insns.def (extv, extzv, insv): New targetm instruction
8306         patterns.
8307         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
8308         interface.
8309         * recog.c (simplify_while_replacing): Likewise.
8311 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8313         * target-insns.def (doloop_begin, doloop_end): New targetm
8314         instruction patterns.
8315         * loop-init.c: Include target.h.
8316         (pass_loop2::gate): Use the new targetm patterns instead of
8317         HAVE_*/gen_* interface.
8318         (pass_rtl_doloop::gate): Likewise.
8319         (pass_rtl_doloop::execute): Remove preprocessor condition.
8320         * hw-doloop.c: Build unconditionally.
8321         * loop-doloop.c: Likewise.
8322         (doloop_optimize): Use the new targetm patterns instead of
8323         HAVE_*/gen_* interface.
8324         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
8325         * modulo-sched.c (doloop_register_get): Likewise.
8327 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8329         * target-insns.def (clear_cache): New targetm instruction pattern.
8330         * builtins.c (expand_builtin___clear_cache): Use it instead of
8331         HAVE_*/gen_* interface.
8333 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8335         * target-insns.def (allocate_stack, check_stack, probe_stack)
8336         (probe_stack_address, split_stack_prologue, split_stack_space_check):
8337         New targetm instruction patterns.
8338         * explow.c (allocate_dynamic_stack_space): Use them instead of
8339         HAVE_*/gen_* interface.
8340         (emit_stack_probe): Likewise.
8341         (probe_stack_range): Likewise.
8342         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8344 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8346         * target-insns.def (stack_protect_set, stack_protect_test): New
8347         targetm instruction patterns.
8348         * cfgexpand.c (stack_protect_prologue): Use them instead of
8349         HAVE_*/gen_* interface.
8350         * function.c (stack_protect_epilogue): Likewise.
8352 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8354         * expr.h (gen_move_insn_uncast): Delete.
8355         * expr.c (gen_move_insn_uncast): Delete.
8357 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8359         * target-insns.def (restore_stack_block, restore_stack_function)
8360         (restore_stack_nonlocal, save_stack_block, save_stack_function)
8361         (save_stack_nonlocal): New targetm instruction patterns.
8362         * builtins.c (expand_builtin_apply): Use them instead of
8363         HAVE_*/gen_* interface.
8364         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
8366 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8368         * target-insns.def (trap): New targetm instruction pattern.
8369         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
8370         interface.
8371         * explow.c (allocate_dynamic_stack_space): Likewise.
8372         * ifcvt.c (find_if_header): Likewise.
8374 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8376         * target-insns.def (prefetch): New targetm instruction pattern.
8377         * tree-ssa-loop-prefetch.c: Include targeth.
8378         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
8379         of HAVE_*/gen_* interface.
8380         * builtins.c (expand_builtin_prefetch): Likewise.
8381         * toplev.c (process_options): Likewise.
8383 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8385         * target-insns.def (untyped_call, untyped_return): New targetm
8386         instruction patterns.
8387         * builtins.c (expand_builtin_apply): Use them instead of
8388         HAVE_*/gen_* interface.
8389         (result_vector): Define unconditionally.
8391 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8393         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
8394         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
8395         (nonlocal_goto_receiver): New targetm instruction patterns.
8396         * builtins.c (expand_builtin_setjmp_setup): Use them instead
8397         of HAVE_*/gen_* interface.
8398         (expand_builtin_setjmp_receiver): Likewise.
8399         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
8400         * except.c (expand_dw2_landing_pad_for_region): Likewise.
8402 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
8404         * target.def: Add code_for_* hooks.
8405         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
8406         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
8407         * target-insns.def (casesi, tablejump): New targetm instruction
8408         patterns.
8409         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
8410         (do_tablejump): Likewise.
8411         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
8412         (expand_sjlj_dispatch_table): Likewise.
8413         * targhooks.c (default_case_values_threshold): Likewise.
8415 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
8417         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
8418         Use rtx_insn * instead of rtx.
8419         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
8420         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
8421         (nios2_call_tls_get_addr): Likewise.
8422         (nios2_emit_expensive_div): Likewise.
8423         (nios2_emit_move_sequence): Change return type to bool.
8424         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
8425         Change return type to bool.
8427 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8429         PR target/66747
8430         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
8432 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
8434         PR target/66114
8435         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
8436         of register_operand.  Remove constraint.
8438 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
8440         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
8441         the first argument.
8443 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
8445         * attribs.c (decl_attributes): Guard inform with the return value
8446         of the preceding warning.
8448 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
8450         * doc/invoke.texi (moverride): Move to correct section.
8452 2015-07-03  Richard Biener  <rguenther@suse.de>
8454         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
8455         Copy from tree.c
8456         (dt_operand::gen_gimple_expr): After valueizing operands
8457         re-canonicalize operand order for commutative tree codes.
8459 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
8461         PR target/66746.
8462         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
8463         is defined.
8464         (__crc32w): Likewise.
8465         (__crc32d): Likewise.
8466         (__rdpmc): Likewise.
8467         (__rdtscp): Likewise.
8468         (_rdpmc): Likewise.
8469         (_rdtscp): Likewise.
8470         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
8471         is defined.
8473 2015-07-03  Richard Biener  <rguenther@suse.de>
8475         * fold-const.c (fold_mathfn_compare): Remove.
8476         (fold_inf_compare): Likewise.
8477         (fold_comparison): Move floating point comparison simplifications...
8478         * match.pd: ... to patterns here.  Introduce simple_comparisons
8479         operator list and use it for patterns formerly in fold_comparison.
8481 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
8483         PR tree-optimization/66119
8484         * toplev.c (process_options): Don't set up default values for
8485         the sra_max_scalarization_size_{speed,size} parameters.
8486         * tree-sra (analyze_all_variable_accesses): If no values
8487         have been set for the sra_max_scalarization_size_{speed,size}
8488         parameters, call get_move_ratio to get target defaults.
8490 2015-07-03  Richard Biener  <rguenther@suse.de>
8492         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
8493         * match.pd: ... here.
8495 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
8497         PR target/37072
8498         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
8499         is not actually the default on FreeBSD.
8501 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8503         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
8504         definition.
8505         (CMPGE_8HI): Likewise.
8506         (CMPGE_4SI): Likewise.
8507         (CMPGE_2DI): Likewise.
8508         (CMPGE_U16QI): Likewise.
8509         (CMPGE_U8HI): Likewise.
8510         (CMPGE_U4SI): Likewise.
8511         (CMPGE_U2DI): Likewise.
8512         (CMPLE_16QI): Likewise.
8513         (CMPLE_8HI): Likewise.
8514         (CMPLE_4SI): Likewise.
8515         (CMPLE_2DI): Likewise.
8516         (CMPLE_U16QI): Likewise.
8517         (CMPLE_U8HI): Likewise.
8518         (CMPLE_U4SI): Likewise.
8519         (CMPLE_U2DI): Likewise.
8520         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8521         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
8522         ALTIVEC_BUILTIN_VEC_CMPLE.
8523         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
8524         floating-point vector modes.
8525         (vector_nlt<mode>): New define_expand.
8526         (vector_nltu<mode>): Likewise.
8527         (vector_ngt<mode>): Likewise.
8528         (vector_ngtu<mode>): Likewise.
8530 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
8532         PR rtl-optimization/66706
8533         * combine.c (make_compound_operation): If an AND of SUBREG of
8534         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
8536 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
8538         * tree-pass.h (make_pass_ch_vect): New.
8539         * passes.def: Add pass_ch_vect just before pass_if_conversion.
8541         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
8542         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
8543         make_pass_ch_vect): New.
8544         (pass_ch): Extend ch_base.
8546         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
8547         (ch_base::copy_headers): ...here.
8549 2015-07-02  Richard Biener  <rguenther@suse.de>
8551         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
8552         * fold-const.c (get_pointer_modulus_and_residue): Remove.
8553         (fold_binary_loc): Implement (T)ptr & CST in terms of
8554         get_pointer_alignment_1.
8555         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
8556         Make sure to build the alignment test on a SSA name without
8557         final alignment info valid only after the prologue.
8559 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
8561         * config/cris/cris.md ("epilogue"): Remove condition.
8562         ("prologue"): Ditto.
8564 2015-07-02  Richard Biener  <rguenther@suse.de>
8566         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
8567         parameter to record a condition that is false.
8568         (record_conditions): When recording an extra NE_EXPR that is
8569         true also record a EQ_EXPR that is false.
8571 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
8573         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
8574         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
8575         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
8576         (set_iv, find_interesting_uses_address, add_candidate_1): New
8577         argument to alloc_iv.
8578         (find_interesting_uses_op, find_interesting_uses_cond): Don't
8579         duplicate struct iv.
8580         (free_loop_data): Don't free struct iv explicitly.
8581         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
8583 2015-07-01  DJ Delorie  <dj@redhat.com>
8585         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
8586         (LIB_SPEC): Add.
8587         (SUPPORTS_DISCRIMINATOR): Define.
8589 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8591         PR bootstrap/66685
8592         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
8593         there are no CALLs in the same pattern.
8595 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8597         PR rtl-optimization/61047
8598         * rtlanal.c (get_initial_register_offset): New function.
8599         (rtx_addr_can_trap_p_1): Check offsets of stack references.
8601 2015-07-01  Richard Biener  <rguenther@suse.de>
8603         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
8604         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
8605         ~X CMP C -> X CMP' ~C to ...
8606         * match.pd: ... patterns here.
8608 2015-07-01  Nick Clifton  <nickc@redhat.com>
8610         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
8611         a 16-bit value into a 20-bit memory slot.
8613 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
8615         * doc/sourcebuild.texi (AArch64-specific attributes): Document
8616         "aarch64_tiny", "aarch64_small", "aarch64_large",
8617         "aarch64_little_endian", "aarch64_big_endian".
8619 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
8621         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
8622         Document "aarch64_small_fpic".
8624 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
8626         * configure.ac: Add check for aarch64 assembler -fpic relocation
8627         modifier support.
8628         * configure: Regenerate.
8629         * config.in: Regenerate.
8630         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
8631         to -fPIC if not support of -fpic relocation modifier in assembler.
8633 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
8635         PR bootstrap/66685
8636         * rtl.c (classify_insn): Handle returns in PARALLELs.
8638 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
8640         PR middle-end/66633
8641         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
8642         to true if the function is nested and if not optimizing.
8643         (convert_local_omp_clauses): Initialize need_frame to true if the
8644         function contains nested functions and if not optimizing.
8646 2015-07-01  Richard Biener  <rguenther@suse.de>
8648         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
8649         (X & Y) ^ Y -> ~X & Y transforms to ...
8650         * match.pd: ... here.
8652 2015-07-01  Richard Biener <rguenther@suse.de>
8654         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
8655         of converts to avoid uninteresting noise from the conversion
8656         simplifying patterns.
8658 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
8660         * config/c6x/c6x.c (try_rename_operands): Do not depend on
8661         gcc_assert evaluating its argument for side-effect.
8663 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
8665         PR target/64833
8666         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
8667         flag_pic is set.
8669 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
8671         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
8672         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
8673         (hash_scc): Add this_ref_p and ref_p parameters and pass them
8674         to the inner DFS walk.
8676 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
8678         * target-insns.def (jump): New targetm instruction pattern.
8679         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
8680         instead of gen_jump.
8681         (fix_up_crossing_landing_pad): Likewise.
8682         (add_labels_and_missing_jumps): Likewise.
8683         (fix_crossing_conditional_branches): Likewise.
8684         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
8685         (force_nonfallthru_and_redirect): Likewise.
8686         * cse.c (cse_insn): Likewise.
8687         * expmed.c (expand_divmod): Likewise.
8688         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
8689         * haifa-sched.c (init_before_recovery): Likewise.
8690         (sched_create_recovery_edges): Likewise.
8691         * ifcvt.c (find_cond_trap): Likewise.
8692         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
8693         (expand_float, expand_fix): Likewise.
8694         * stmt.c (emit_jump): Likewise.
8696 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
8698         * defaults.h (HAVE_load_multiple, gen_load_multiple)
8699         (HAVE_store_multiple, gen_store_multiple): Delete.
8700         * target-insns.def (load_multiple, store_multiple): New targetm
8701         instruction patterns.
8702         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
8703         of HAVE_*/gen_* interface.
8705 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
8707         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
8708         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
8709         (gen_mem_signal_fence): Delete.
8710         * target-insns.def (mem_signal_fence, mem_thread_fence)
8711         (memory_barrier): New targetm instruction patterns.
8712         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
8713         interface.
8714         (expand_mem_signal_fence): Likewise.
8716 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
8718         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
8719         * target-insns.def (epilogue, prologue, sibcall_prologue): New
8720         targetm instruction patterns.
8721         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
8722         interface.
8723         * calls.c (expand_call): Likewise.
8724         * cfgrtl.c (cfg_layout_finalize): Likewise.
8725         * df-scan.c (df_get_entry_block_def_set): Likewise.
8726         (df_get_exit_block_use_set): Likewise.
8727         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
8728         * final.c (final_start_function): Likewise.
8729         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8730         (reposition_prologue_and_epilogue_notes): Likewise.
8731         * reorg.c (find_end_label): Likewise.
8732         * toplev.c (process_options): Likewise.
8734 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
8736         * typed-splay-tree.h: New file.
8738 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
8740         PR debug/66691
8741         * lra-int.h (lra_substitute_pseudo): Add a parameter.
8742         (lra_substitute_pseudo_within_insn): Ditto.
8743         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
8744         of constant.
8745         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
8746         to lra_substitute_pseudo.
8747         * lra-lives.c (process_bb_lives): Add an argument to
8748         lra_substitute_pseudo_within_insn call.
8749         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
8750         argument to lra_substitute_pseudo and
8751         lra_substitute_pseudo_within_insn calls.
8752         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
8754 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8756         * configure: Regenerated.
8758 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8760         * config.gcc: Support i[34567]86-*-elfiamcu target.
8761         * config/i386/iamcu.h: New.
8762         * config/i386/i386.opt: Add -miamcu.
8763         * doc/invoke.texi: Document -miamcu.
8764         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
8765         off x87/MMX/SSE/AVX codegen for -miamcu.
8766         * config/i386/i386-c.c (ix86_target_macros_internal): Define
8767         __iamcu/__iamcu__ for -miamcu.
8768         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
8769         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
8770         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
8771         * config/i386/i386.c (ix86_option_override_internal): Ignore and
8772         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
8773         MCU by default.  Default long double to 64-bit for Intel MCU.
8774         Turn on -freg-struct-return for Intel MCU.  Issue an error when
8775         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
8776         AVX is turned on.
8777         (function_arg_advance_32): Pass value whose size is no larger
8778         than 8 bytes in registers for Intel MCU.
8779         (function_arg_32): Likewise.
8780         (ix86_return_in_memory): Return value whose size is no larger
8781         than 8 bytes in registers for Intel MCU.
8782         (iamcu_alignment): New function.
8783         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
8784         true.
8785         (ix86_local_alignment): Don't increase alignment for Intel MCU.
8786         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
8787         true.
8789 2015-06-30  Marek Polacek  <polacek@redhat.com>
8791         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
8792         both operands of the resulting expression.
8794         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
8795         the final expression with the operand's type and then convert
8796         it to the type of the expression.
8798 2015-06-30  Richard Biener  <rguenther@suse.de>
8800         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
8801         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
8802         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
8803         * match.pd: ... to patterns here.
8805 2015-06-30  Richard Biener  <rguenther@suse.de>
8807         PR tree-optimization/66704
8808         * tree-vect-data-refs.c (vect_setup_realignment): Use
8809         make_ssa_name for non-SSA name source.
8811 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
8813         PR middle-end/66702
8814         * omp-low.c (simd_clone_adjust): Handle addressable linear
8815         or uniform parameters or non-gimple type uniform parameters.
8817 2015-06-30  Richard Biener  <rguenther@suse.de>
8819         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
8820         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
8821         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
8822         * match.pd: ... here.
8823         Add a few cases of A - B -> A + (-B) when B "easily" negates.
8824         Move (x & y) | x -> x and friends before
8825         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
8827 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
8829         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
8830         -mfix-ut699 is not specified.
8831         (leon3_load): Rename into...
8832         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
8833         is specified.
8835 2015-06-30  Marek Polacek  <polacek@redhat.com>
8837         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
8838         * match.pd: ... here.
8840 2015-06-30  Richard Biener  <rguenther@suse.de>
8842         * target-insns.def (canonicalize_funcptr_for_compare): Add.
8843         * fold-const.c (build_range_check): Replace uses of
8844         HAVE_canonicalize_funcptr_for_compare.
8845         (fold_widened_comparison): Likewise.
8846         (fold_sign_changed_comparison): Likewise.
8847         * dojump.c: Include "target.h".
8848         (do_compare_and_jump): Replace uses of
8849         HAVE_canonicalize_funcptr_for_compare and
8850         gen_canonicalize_funcptr_for_compare.
8851         * expr.c (do_store_flag): Likewise.
8853 2015-06-30  Tom de Vries  <tom@codesourcery.com>
8855         PR tree-optimization/66652
8856         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
8857         max_loop_iterations to determine if nit + 1 overflows.
8859 2015-06-30  Richard Biener  <rguenther@suse.de>
8861         * tree-vrp.c (register_edge_assert_for_2): Also register
8862         asserts for dominating conversion results.
8864 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
8866         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
8867         field in struct iv.
8869 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
8871         PR target/66509
8872         * configure.ac: Fix filds and fildq test for 64-bit.
8873         * configure: Regenerated.
8875 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
8877         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
8878         (nvptx_reorg): Here.  Keep the non-subreg pieces.
8880 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
8882         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
8883         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
8885 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
8887         * config/i386/i386.md (*jcc_1): Use %! in asm template.
8888         Set attribute "length_nobnd" instead of "length".
8889         (*jcc_2): Ditto.
8890         (jump): Ditto.
8891         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
8893 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
8895         * config/nios2/nios2.c (nios2_delegitimize_address): Make
8896         assert less restrictive.
8898 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8900         PR fortran/66605
8901         * cgraphunit.c (cgraph_node::finalize_function): Do not call
8902         do_warn_unused_parameter.
8903         * function.c (do_warn_unused_parameter): Move from here.
8904         * function.h (do_warn_unused_parameter): Do not declare.
8906 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
8908         PR target/65697
8909         * gcc.target/arm/armv-sync-comp-swap.c: New.
8910         * gcc.target/arm/armv-sync-op-acquire.c: New.
8911         * gcc.target/arm/armv-sync-op-full.c: New.
8912         * gcc.target/arm/armv-sync-op-release.c: New.
8914 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
8916         PR target/65697
8917         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
8918         initial acquire barrier with final barrier.
8920 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
8922         PR target/65697
8923         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
8924         initial acquire barrier with final barrier.
8926 2015-06-29  Richard Henderson  <rth@redhat.com>
8928         * config/i386/constraints.md (Bf): New constraint.
8929         * config/i386/i386-c.c (ix86_target_macros): Define
8930         __GCC_ASM_FLAG_OUTPUTS__.
8931         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
8932         as flags outputs.
8933         * doc/extend.texi (FlagOutputOperands): Document them.
8935 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
8937         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
8938         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
8939         unspec name.
8940         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
8941         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
8942         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
8943         (aarch64_symbol_context): Ditto.
8944         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
8945         and use new pattern name.
8946         (aarch64_expand_mov_immediate): Ditto.
8947         (aarch64_print_operand): Ditto.
8948         (aarch64_classify_tls_symbol): Ditto.
8950 2015-06-29  Marek Polacek  <polacek@redhat.com>
8951             Marc Glisse  <marc.glisse@inria.fr>
8953         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
8954         * match.pd: ... pattern here.
8956 2015-06-29  Tom de Vries  <tom@codesourcery.com>
8958         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
8959         function structure.
8961 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
8963         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
8964         feature description, split out the native option, add a link to
8965         the feature documentation, rearrange and slightly rewrite text.
8966         (Aarch64 options, -mcpu): Likewise.
8967         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
8968         +rdma implies Adv. SIMD.
8970 2015-06-29  Marek Polacek  <polacek@redhat.com>
8972         PR c/66322
8973         * function.c (stack_protect_epilogue): Remove a cast to int.
8974         * doc/invoke.texi: Update -Wswitch-bool description.
8976 2015-06-29  Richard Biener  <rguenther@suse.de>
8978         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
8979         * fold-const.c (fold_binary_loc): Move &A - &B simplification
8980         via ptr_difference_const ...
8981         * match.pd: ... here.
8982         When matching (X ^ Y) == Y also match with swapped operands.
8984 2015-06-29  Richard Biener  <rguenther@suse.de>
8986         * lto-streamer.h (LTO_major_version): Bump to 5.
8988 2015-06-29  Richard Biener  <rguenther@suse.de>
8990         PR tree-optimization/66677
8991         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
8992         STMT_VINFO_VEC_STMT clobbering less strict.
8994 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
8996         PR middle-end/64130
8997         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
8998         division, compute max and min when value ranges for dividend and
8999         divisor are available.
9001 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
9002             Sandra Loosemore <sandra@codesourcery.com>
9004         * regrename.h (regrename_do_replace): Change to return bool.
9005         * regrename.c (rename_chains): Check return value of
9006         regname_do_replace.
9007         (regrename_do_replace): Re-validate the modified insns and
9008         return bool status.
9009         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
9010         Update to match rename_chains changes.
9011         * config/c6x/c6x.c (try_rename_operands): Assert that
9012         regrename_do_replace returns true.
9014 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
9016         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
9017         operand 2 here.  Use copy_addr_to_reg to copy non-index
9018         register operand 2 to a temporary.
9019         (<mode>_stx): Ditto for operand 1.
9020         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
9021         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
9022         (ix86_store_bounds): Ditto.
9024 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
9026         * print-tree.c (print_node) [TREE_VEC]: Print its length.
9028 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
9030         * gimple.c (gimple_call_set_fndecl): Remove.
9031         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
9032         build1_loc directly instead of build_fold_addr_expr_loc.
9034 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
9036         * hash-map.h (hash_map::traverse): Use the definition of the
9037         Key typedef rather than the typedef itself.
9039 2015-06-26  Martin Jambor  <mjambor@suse.cz>
9041         PR debug/66301
9042         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
9043         NULL instead of calling dump_enabled_p.
9045 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
9047         * config/aarch64/aarch64.opt: (override): New.
9048         * doc/invoke.texi (override): Document.
9049         * config/aarch64/aarch64.c (aarch64_flag_desc): New
9050         (aarch64_fusible_pairs): Likewise.
9051         (aarch64_tuning_flags): Likewise.
9052         (aarch64_tuning_override_function): Likewise.
9053         (aarch64_tuning_override_functions): Likewise.
9054         (aarch64_parse_one_option_token): Likewise.
9055         (aarch64_parse_boolean_options): Likewise.
9056         (aarch64_parse_fuse_string): Likewise.
9057         (aarch64_parse_tune_string): Likewise.
9058         (aarch64_parse_one_override_token): Likewise.
9059         (aarch64_parse_override_string): Likewise.
9060         (aarch64_override_options): Parse the -override string if it
9061         is present.
9063 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
9065         * config/aarch64/aarch64-protos.h (tune_params): Remove
9066         const from members.
9067         (aarch64_tune_params): Remove const, change to no longer be
9068         a pointer.
9069         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
9070         change to no longer be a pointer, initialize to generic_tunings.
9071         (aarch64_min_divisions_for_recip_mul): Change dereference of
9072         aarch64_tune_params to member access.
9073         (aarch64_reassociation_width): Likewise.
9074         (aarch64_rtx_mult_cost): Likewise.
9075         (aarch64_address_cost): Likewise.
9076         (aarch64_branch_cost): Likewise.
9077         (aarch64_rtx_costs): Likewise.
9078         (aarch64_register_move_cost): Likewise.
9079         (aarch64_memory_move_cost): Likewise.
9080         (aarch64_sched_issue_rate): Likewise.
9081         (aarch64_builtin_vectorization_cost): Likewise.
9082         (aarch64_override_options): Take a copy of the selected tuning
9083         struct in to aarch64_tune_params, rather than just setting
9084         a pointer, change dereferences of aarch64_tune_params to member
9085         accesses.
9086         (aarch64_override_options_after_change): Change dereferences of
9087         aarch64_tune_params to member access.
9088         (aarch64_macro_fusion_p): Likewise.
9089         (aarch_macro_fusion_pair_p): Likewise.
9090         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
9092 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
9094         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
9095         (aarch64_tune_flags): Likewise.
9096         (AARCH64_TUNE_FMA_STEERING): Likewise.
9097         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
9098         to AARCH64_FL_USE_FMA_STEERING_PASS.
9099         (cortex-a57.cortex-a53): Likewise.
9100         (cortex-a72): Use cortexa72_tunings.
9101         (cortex-a72.cortex-a53): Likewise.
9102         (exynos-m1): Likewise.
9103         * config/aarch64/aarch64-protos.h (tune_params): Add
9104         a field: extra_tuning_flags.
9105         * config/aarch64/aarch64-tuning-flags.def: New.
9106         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
9107         (aarch64_extra_tuning_flags): Likewise.
9108         (aarch64_tune_params): Declare here.
9109         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
9110         (cortexa53_tunings): Likewise.
9111         (cortexa57_tunings): Likewise.
9112         (thunderx_tunings): Likewise.
9113         (xgene1_tunings): Likewise.
9114         (cortexa72_tunings): New.
9115         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
9116          (gate): Check against aarch64_tune_params.
9117         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
9118         aarch64-protos.h.
9120 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
9122         * config/aarch64/aarch64-fusion-pairs.def: New.
9123         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
9124         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
9125         aarch64_fusion_pairs.
9126         (AARCH64_FUSE_MOV_MOVK): Likewise.
9127         (AARCH64_FUSE_ADRP_ADD): Likewise.
9128         (AARCH64_FUSE_MOVK_MOVK): Likewise.
9129         (AARCH64_FUSE_ADRP_LDR): Likewise.
9130         (AARCH64_FUSE_CMP_BRANCH): Likewise.
9132 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
9134         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
9135         SYMBOL_SMALL_GOT_28K.
9136         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
9137         relocation modifiers.
9138         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
9139         (ldr_got_small_28k_<mode>): New.
9140         (ldr_got_small_28k_sidi): New.
9141         * config/aarch64/iterators.md (got_modifier): New mode iterator.
9142         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
9143         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
9144         SYMBOL_SMALL_GOT_28K.
9145         (aarch64_rtx_costs): Add costs for new instruction sequences.
9146         (initialize_aarch64_code_model): Initialize new model.
9147         (aarch64_classify_symbol): Recognize new model and new symbol classification.
9148         (aarch64_asm_preferred_eh_data_format): Support new model.
9149         (aarch64_load_symref_appropriately): Generate new instruction
9150         sequences for -fpic.
9151         (TARGET_USE_PSEUDO_PIC_REG): New definition.
9152         (aarch64_use_pseudo_pic_reg): New function.
9154 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
9156         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
9157         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
9158         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
9159         (aarch64_expand_mov_immediate): Ditto.
9160         (aarch64_print_operand): Ditto.
9161         (aarch64_classify_symbol): Ditto.
9163 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
9165         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
9167 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
9169         PR bootstrap/66638
9170         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
9171         assertion failed.  Remove assertion itself.
9173 2015-06-26  Richard Biener  <rguenther@suse.de>
9175         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
9176         and -A CMP CST -> A CMP -CST which is redundant with a pattern
9177         in match.pd.
9178         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
9179         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
9180         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
9181         * match.pd: ... patterns here.
9183 2015-06-26  Marek Polacek  <polacek@redhat.com>
9185         * match.pd ((x | y) & ~(x & y) -> x ^ y,
9186         (x | y) & (~x ^ y) -> x & y): New patterns.
9188 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
9190         * rtl.h (emit): Add an optional boolean parameter to control
9191         whether barriers are emitted.
9192         * emit-rtl.c (emit): Likewise.
9193         * gensupport.c (get_emit_function): Return null rather than "emit".
9194         * genemit.c (gen_emit_seq): Handle the null return value.
9195         Don't emit barriers after the final instruction in the sequence.
9196         * gentarget-def.c (main): Don't emit barriers after the instruction.
9198 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9200         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
9201         TARGET_UNIFIED_ASM.
9203 2015-06-26  Richard Biener  <rguenther@suse.de>
9205         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
9207 2015-06-26  Richard Biener  <rguenther@suse.de>
9209         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
9210         irrespective on whether the inner operation has a single use
9211         of both off are constant.
9213 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
9214             Segher Boessenkool  <segher@kernel.crashing.org>
9216         PR target/66412
9217         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
9218         before doing PUT_MODE or PUT_CODE on operands to avoid
9219         in-place RTX modification.
9221 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
9223         * gentarget-def.c (def_target_insn): Cast return of strtol to
9224         unsigned int.
9226 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9228         * gimple.h (gimple_call_set_fn): Move inline function.
9229         * gimple.c (gimple_call_set_fn): Relocate here.
9231 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
9233         PR target/65979
9234         PR target/66611
9235         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
9236         the replacement insn will work.
9238 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
9240         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
9241         by default.
9243 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9245         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
9246         * cgraph.h: Include ipa-ref.h and plugin-api.h.
9247         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
9248         (symtab_node::address_can_be_compared_p): Move function.
9249         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
9250         definition here.
9251         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
9252         * auto-profile.c: Likewise.
9253         * bb-reorder.c: Likewise.
9254         * builtins.c: Likewise.
9255         * calls.c: Likewise.
9256         * cfgexpand.c: Likewise.
9257         * cgraphbuild.c: Likewise.
9258         * cgraphclones.c: Likewise.
9259         * cgraphunit.c: Likewise.
9260         * combine.c: Likewise.
9261         * coverage.c: Likewise.
9262         * data-streamer-in.c: Likewise.
9263         * data-streamer-out.c: Likewise.
9264         * data-streamer.c: Likewise.
9265         * dbxout.c: Likewise.
9266         * dwarf2out.c: Likewise.
9267         * except.c: Likewise.
9268         * expr.c: Likewise.
9269         * final.c: Likewise.
9270         * fold-const.c: Likewise.
9271         * ggc-page.c: Likewise.
9272         * gimple-fold.c: Likewise.
9273         * gimple-iterator.c: Likewise.
9274         * gimple-pretty-print.c: Likewise.
9275         * gimple-streamer-in.c: Likewise.
9276         * gimple-streamer-out.c: Likewise.
9277         * gimple.c: Likewise.
9278         * gimplify.c: Likewise.
9279         * ipa-chkp.c: Likewise.
9280         * ipa-comdats.c: Likewise.
9281         * ipa-cp.c: Likewise.
9282         * ipa-devirt.c: Likewise.
9283         * ipa-icf-gimple.c: Likewise.
9284         * ipa-icf.c: Likewise.
9285         * ipa-inline-analysis.c: Likewise.
9286         * ipa-inline-transform.c: Likewise.
9287         * ipa-inline.c: Likewise.
9288         * ipa-polymorphic-call.c: Likewise.
9289         * ipa-profile.c: Likewise.
9290         * ipa-prop.c: Likewise.
9291         * ipa-pure-const.c: Likewise.
9292         * ipa-ref.c: Likewise.
9293         * ipa-reference.c: Likewise.
9294         * ipa-split.c: Likewise.
9295         * ipa-utils.c: Likewise.
9296         * ipa-visibility.c: Likewise.
9297         * ipa.c: Likewise.
9298         * langhooks.c: Likewise.
9299         * lto-cgraph.c: Likewise.
9300         * lto-compress.c: Likewise.
9301         * lto-opts.c: Likewise.
9302         * lto-section-in.c: Likewise.
9303         * lto-section-out.c: Likewise.
9304         * lto-streamer-in.c: Likewise.
9305         * lto-streamer-out.c: Likewise.
9306         * lto-streamer.c: Likewise.
9307         * omp-low.c: Likewise.
9308         * opts-global.c: Likewise.
9309         * passes.c: Likewise.
9310         * predict.c: Likewise.
9311         * print-tree.c: Likewise.
9312         * profile.c: Likewise.
9313         * ree.c: Likewise.
9314         * sanopt.c: Likewise.
9315         * stor-layout.c: Likewise.
9316         * symtab.c: Likewise.
9317         * toplev.c: Likewise.
9318         * trans-mem.c: Likewise.
9319         * tree-cfg.c: Likewise.
9320         * tree-chkp.c: Likewise.
9321         * tree-eh.c: Likewise.
9322         * tree-emutls.c: Likewise.
9323         * tree-inline.c: Likewise.
9324         * tree-nested.c: Likewise.
9325         * tree-parloops.c: Likewise.
9326         * tree-pretty-print.c: Likewise.
9327         * tree-profile.c: Likewise.
9328         * tree-sra.c: Likewise.
9329         * tree-ssa-alias.c: Likewise.
9330         * tree-ssa-live.c: Likewise.
9331         * tree-ssa-loop-ivcanon.c: Likewise.
9332         * tree-ssa-loop-ivopts.c: Likewise.
9333         * tree-ssa-pre.c: Likewise.
9334         * tree-ssa-sccvn.c: Likewise.
9335         * tree-ssa-strlen.c: Likewise.
9336         * tree-ssa-structalias.c: Likewise.
9337         * tree-streamer-in.c: Likewise.
9338         * tree-streamer-out.c: Likewise.
9339         * tree-streamer.c: Likewise.
9340         * tree-switch-conversion.c: Likewise.
9341         * tree-tailcall.c: Likewise.
9342         * tree-vect-data-refs.c: Likewise.
9343         * tree-vect-stmts.c: Likewise.
9344         * tree-vectorizer.c: Likewise.
9345         * tree.c: Likewise.
9346         * tsan.c: Likewise.
9347         * ubsan.c: Likewise.
9348         * value-prof.c: Likewise.
9349         * varasm.c: Likewise.
9350         * varpool.c: Likewise.
9351         * config/arm/arm.c: Likewise.
9352         * config/bfin/bfin.c: Likewise.
9353         * config/c6x/c6x.c: Likewise.
9354         * config/cris/cris.c: Likewise.
9355         * config/darwin-c.c: Likewise.
9356         * config/darwin.c: Likewise.
9357         * config/i386/i386.c: Likewise.
9358         * config/i386/winnt.c: Likewise.
9359         * config/microblaze/microblaze.c: Likewise.
9360         * config/mips/mips.c: Likewise.
9361         * config/rs6000/rs6000.c: Likewise.
9362         * config/rx/rx.c: Likewise.
9363         * config/s390/s390.c: Likewise.
9364         * config/tilegx/mul-tables.c: Likewise.
9366 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9368         * config/aarch64/aarch64.c, config/alpha/alpha.c,
9369         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
9370         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
9371         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
9372         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
9373         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
9374         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
9375         config/microblaze/microblaze.c, config/mips/mips.c,
9376         config/mmix/mmix.c, config/mn10300/mn10300.c,
9377         config/moxie/moxie.c, config/msp430/msp430.c,
9378         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
9379         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
9380         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
9381         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
9382         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
9383         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
9384         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
9385         target-def.h include.
9386         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
9388 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9390         * Makefile.in (TARGET_DEF): Add target-insns.def.
9391         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
9392         (build/gentarget-def.o): New rule.
9393         (genprogrtl): Add target-def.
9394         * target-insns.def, gentarget-def.c: New files.
9395         * target.def: Add targetm.have_* and targetm.gen_* hooks,
9396         based on the contents of target-insns.def.
9397         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
9398         (HAVE_return, gen_return): Delete.
9399         * target-def.h: Include insn-target-def.h.
9400         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
9401         instead of direct calls.  Rely on them to do the appropriate assertions.
9402         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
9403         (convert_jumps_to_returns): Use targetm interface instead of
9404         direct calls.
9405         (thread_prologue_and_epilogue_insns): Likewise.
9406         * reorg.c (find_end_label, dbr_schedule): Likewise.
9407         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
9408         * shrink-wrap.c (convert_to_simple_return): Likewise.
9409         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
9411 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9413         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
9414         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
9415         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
9416         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
9417         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
9418         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
9419         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
9420         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
9421         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
9422         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
9423         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
9424         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
9425         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
9426         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
9427         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
9428         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
9429         includes to end.
9431 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9433         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
9434         (unbounded_int_hashmap_traits::key_type): Likewise.
9435         * hash-map.h (hash_map): Get the key type from the traits.
9436         * hash-traits.h (default_hash_traits): By default, inherit from the
9437         template parameter.
9438         * alias.c (alias_set_traits): Delete.
9439         (alias_set_entry_d::children): Use alias_set_hash as the first
9440         template parameter.
9441         (record_alias_subset): Update accordingly.
9442         * except.c (tree_hash_traits): Delete.
9443         (type_to_runtime_map): Use tree_hash as the first template parameter.
9444         (init_eh): Update accordingly.
9445         * genmatch.c (capture_id_map_hasher): Delete.
9446         (cid_map_t): Use nofree_string_hash as first template parameter.
9447         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
9448         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
9449         Use symbol_compare_hash as the first template parameter in
9450         subdivide_hash_map.
9451         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
9452         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
9453         template parameter.
9454         * passes.c (pass_registry_hasher): Delete.
9455         (name_to_pass_map): Use nofree_string_hash as the first template
9456         parameter.
9457         (register_pass_name): Update accordingly.
9458         * sanopt.c (sanopt_tree_map_traits): Delete.
9459         (sanopt_tree_triplet_map_traits): Delete.
9460         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
9461         template parameter.
9462         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
9463         the first template parameter.
9464         * sese.c (rename_map_hasher): Delete.
9465         (rename_map_type): Use tree_ssa_name_hash as the first template
9466         parameter.
9467         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
9468         (function_summary::m_map): Use map_hash as the first template
9469         parameter.
9470         (function_summary::release): Update accordingly.
9471         * tree-if-conv.c (phi_args_hash_traits): Delete.
9472         (predicate_scalar_phi): Use tree_operand_hash as the first template
9473         parameter to phi_arg_map.
9474         * tree-inline.h (dependence_hasher): Delete.
9475         (copy_body_data::dependence_map): Use dependence_hash as the first
9476         template parameter.
9477         * tree-inline.c (remap_dependence_clique): Update accordingly.
9478         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
9479         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
9480         parameter.
9481         (addr_stridxptr): Update accordingly.
9482         * value-prof.c (profile_id_traits): Delete.
9483         (cgraph_node_map): Use profile_id_hash as the first template
9484         parameter.
9485         (init_node_map): Update accordingly.
9486         * config/alpha/alpha.c (string_traits): Delete.
9487         (machine_function::links): Use nofree_string_hash as the first
9488         template parameter.
9489         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
9490         * config/m32c/m32c.c (pragma_traits): Delete.
9491         (pragma_htab): Use nofree_string_hash as the first template parameter.
9492         (m32c_note_pragma_address): Update accordingly.
9493         * config/mep/mep.c (pragma_traits): Delete.
9494         (pragma_htab): Use nofree_string_hash as the first template parameter.
9495         (mep_note_pragma_flag): Update accordingly.
9496         * config/mips/mips.c (mips16_flip_traits): Delete.
9497         (mflip_mips16_htab): Use nofree_string_hash as the first template
9498         parameter.
9499         (mflip_mips16_use_mips16_p): Update accordingly.
9500         (local_alias_traits): Delete.
9501         (mips16_local_aliases): Use nofree_string_hash as the first template
9502         parameter.
9503         (mips16_local_alias): Update accordingly.
9505 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9507         * hash-map-traits.h (default_hashmap_traits): Delete.
9509 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9511         * hash-map-traits.h (unbounded_hashmap_traits): New class.
9512         (unbounded_int_hashmap_traits): Likewise.
9513         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
9515 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9517         * ipa-icf.h (symbol_compare_hash): New class.
9518         (symbol_compare_hashmap_traits): Use it.
9519         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
9520         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
9521         (mem_alloc_description::reverse_mem_map_t): Remove redundant
9522         default_hashmap_traits.
9523         * sanopt.c (sanopt_tree_triplet_hash): New class.
9524         (sanopt_tree_triplet_map_traits): Use it.
9526 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9528         * gengtype-parse.c (require_template_declaration): Allow '+' in
9529         template parameters.  Consolidate cases.
9530         * hash-traits.h (int_hash): New class.
9531         * alias.c (alias_set_hash): New structure.
9532         (alias_set_traits): Use it.
9533         * symbol-summary.h (function_summary::map_hash): New class.
9534         (function_summary::summary_hashmap_traits): Use it.
9535         * tree-inline.h (dependence_hash): New class.
9536         (dependence_hasher): Use it.
9537         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
9538         * value-prof.c (profile_id_hash): New class.
9539         (profile_id_traits): Use it.
9541 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9543         * config/mips/mips.c (mips16_flip_traits): Use it.
9544         (local_alias_traits, mips16_local_aliases): Convert from a map of
9545         rtxes to a map of symbol names.
9546         (mips16_local_alias): Update accordingly.
9548 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9550         * hash-traits.h (string_hash, nofree_string_hash): New classes.
9551         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
9552         * passes.c (pass_registry_hasher): Likewise.
9553         * config/alpha/alpha.c (string_traits): Likewise.
9554         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
9555         * config/m32c/m32c.c (pragma_traits): Likewise.
9556         * config/mep/mep.c (pragma_traits): Likewise.
9558 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9560         * tree-hash-traits.h (tree_hash): New class.
9561         * except.c: Include tree-hash-traits.h.
9562         (tree_hash_traits): Use tree_hash.
9564 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9566         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
9567         * sese.c: Include tree-hash-traits.h.
9568         (rename_map_hasher): Use tree_ssa_name_hasher.
9570 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9572         * tree-hash-traits.h (tree_decl_hash): New class.
9573         * tree-ssa-strlen.c: Include tree-hash-traits.h.
9574         (stridxlist_hash_traits): Use tree_decl_hash.
9576 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9578         * tree-hash-traits.h: New file.
9579         (tree_operand_hash): New class.
9580         * sanopt.c: Include tree-hash-traits.h.
9581         (sanopt_tree_map_traits): Use tree_operand_hash.
9582         * tree-if-conv.c: Include tree-hash-traits.h.
9583         (phi_args_hash_traits): Use tree_operand_hash.
9584         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
9585         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
9587 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9589         * hash-map-traits.h: Include hash-traits.h.
9590         (simple_hashmap_traits): New class.
9591         * mem-stats.h (hash_map): Change the default traits to
9592         simple_hashmap_traits<default_hash_traits<Key> >.
9594 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9596         * hash-table.h: Update comments.
9598 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9600         * hash-traits.h (default_hash_traits): New structure.
9601         * hash-set.h (default_hashset_traits): Delete.
9602         (hash_set): Use default_hash_traits<Key> instead of
9603         default_hashset_traits.  Delete hash_entry type and use Key directly.
9604         * ipa-devirt.c (pair_traits): Delete.
9605         (default_hash_traits <type_pair>): Override.
9606         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
9607         (odr_types_equivalent_p, add_type_duplicate): Likewise.
9609 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9611         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
9613 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9615         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
9616         (has_is_empty, is_empty_helper): Delete.
9617         (has_mark_deleted, mark_deleted_helper): Delete.
9618         (has_mark_empty, mark_empty_helper): Delete.
9619         (hash_table::is_deleted): Call the Descriptor unconditionally.
9620         (hash_table::is_empty): Likewise.
9621         (hash_table::mark_deleted): Likewise.
9622         (hash_table::mark_empty): Likewise.
9624 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9626         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
9627         redundant typedefs and members.
9628         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
9629         redundant typedefs.
9630         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
9631         * ipa-devirt.c (odr_name_hasher): Likewise.
9632         (polymorphic_call_target_hasher): Likewise.
9633         * ira-costs.c (cost_classes_hasher): Likewise.
9634         * statistics.c (stats_counter_hasher): Likewise.
9635         * trans-mem.c (log_entry_hasher): Likewise.
9636         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
9637         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
9638         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
9639         * var-tracking.c (variable_hasher): Likewise.
9640         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
9641         Remove redundant typedefs and members.
9643 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9645         * hash-traits.h (ggc_cache_hasher): Rename to...
9646         (ggc_cache_remove): ...this and remove typedefs.
9647         (ggc_cache_ptr_hash): New class.
9648         * hash-table.h: Update commentary.
9649         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
9650         rather than ggc_cache_hasher.
9651         (const_wide_int_hasher, reg_attr_hasher): Likewise.
9652         (const_double_hasher, const_fixed_hasher): Likewise.
9653         * function.c (insn_cache_hasher): Likewise.
9654         * trans-mem.c (tm_wrapper_hasher): Likewise.
9655         * tree.h (tree_decl_map_cache_hasher): Likewise.
9656         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
9657         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
9658         * ubsan.c (tree_type_map_cache_hasher): Likewise.
9659         * varasm.c (tm_clone_hasher): Likewise.
9660         * config/i386/i386.c (dllimport_hasher): Likewise.
9661         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
9662         (tree_hasher): Likewise.
9664 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9666         * hash-traits.h (ggc_hasher): Rename to...
9667         (ggc_remover): ...this and remove typedefs.
9668         (ggc_cache_hasher): Update accordingly.  Add typedefs.
9669         (ggc_ptr_hash): New class.
9670         * hash-table.h: Update comment.
9671         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
9672         ggc_hasher.
9673         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
9674         (tree_descriptor_hasher): Likewise.
9675         * cgraph.c (function_version_hasher): Likewise.
9676         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
9677         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
9678         (dw_loc_list_hasher, addr_hasher): Likewise.
9679         * function.h (used_type_hasher): Likewise.
9680         * function.c (temp_address_hasher): Likewise.
9681         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
9682         * libfuncs.h (libfunc_hasher): Likewise.
9683         * lto-streamer.h (decl_state_hasher): Likewise.
9684         * optabs.c (libfunc_decl_hasher): Likewise.
9685         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
9686         * varasm.c (section_hasher, object_block_hasher): Likewise.
9687         (const_rtx_desc_hasher): Likewise.
9688         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
9689         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
9691 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9693         * hash-traits.h (free_ptr_hash): New class.
9694         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
9695         rather than typed_free_remove.  Remove redudant typedefs.
9696         (external_ref_hasher): Likewise.
9697         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
9698         (ehspec_hasher): Likewise.
9699         * ggc-common.c (saving_hasher): Likewise.
9700         * gimplify.c (gimplify_hasher): Likewise.
9701         * haifa-sched.c (delay_i2_hasher): Likewise.
9702         * loop-invariant.c (invariant_expr_hasher): Likewise.
9703         * loop-iv.c (biv_entry_hasher): Likewise.
9704         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
9705         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
9706         * tree-cfg.c (locus_discrim_hasher): Likewise.
9707         * tree-eh.c (finally_tree_hasher): Likewise.
9708         * tree-into-ssa.c (var_info_hasher): Likewise.
9709         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
9710         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
9711         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
9712         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
9713         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
9714         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
9715         (shared_bitmap_hasher): Likewise.
9716         * tree-ssa-threadupdate.c (redirection_data): Likewise.
9717         * tree-vectorizer.h (peel_info_hasher): Likewise.
9718         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
9719         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
9721 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9723         * hash-table.h: Update comments.
9724         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
9725         (nofree_ptr_hash): New class.
9726         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
9727         than typed_noop_remove.  Remove redudant typedefs.
9728         * attribs.c (attribute_hasher): Likewise.
9729         * cfg.c (bb_copy_hasher): Likewise.
9730         * cselib.c (cselib_hasher): Likewise.
9731         * dse.c (invariant_group_base_hasher): Likewise.
9732         * dwarf2cfi.c (trace_info_hasher): Likewise.
9733         * dwarf2out.c (macinfo_entry_hasher): Likewise.
9734         (comdat_type_hasher, loc_list_hasher): Likewise.
9735         * gcse.c (pre_ldst_expr_hasher): Likewise.
9736         * genmatch.c (id_base): Likewise.
9737         * genrecog.c (test_pattern_hasher): Likewise.
9738         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
9739         * haifa-sched.c (delay_i1_hasher): Likewise.
9740         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
9741         * ipa-icf.h (congruence_class_group_hash): Likewise.
9742         * ipa-profile.c (histogram_hash): Likewise.
9743         * ira-color.c (allocno_hard_regs_hasher): Likewise.
9744         * lto-streamer.h (string_slot_hasher): Likewise.
9745         * lto-streamer.c (tree_entry_hasher): Likewise.
9746         * plugin.c (event_hasher): Likewise.
9747         * postreload-gcse.c (expr_hasher): Likewise.
9748         * store-motion.c (st_expr_hasher): Likewise.
9749         * tree-sra.c (uid_decl_hasher): Likewise.
9750         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
9751         (ssa_name_var_hash): Likewise.
9752         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
9753         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
9754         * tree-ssa-pre.c (pre_expr_d): Likewise.
9755         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
9756         * vtable-verify.h (registration_hasher): Likewise.
9757         * vtable-verify.c (vtbl_map_hasher): Likewise.
9758         * config/arm/arm.c (libcall_hasher): Likewise.
9759         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
9760         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
9761         * config/sol2.c (comdat_entry_hasher): Likewise.
9762         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
9763         (print_fold_checksum, fold_checksum_tree): Likewise.
9764         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
9765         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
9766         (fold_build_call_array_loc): Likewise.
9767         * tree-ssa-ccp.c (gimple_htab): Likewise.
9768         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
9769         rather than pointer_type.
9771 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9773         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
9774         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
9776 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9778         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
9779         (ggc_hasher::ggc_mx): Likewise.
9780         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
9781         that duplicate ggc_hasher ones.
9783 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9785         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
9786         (gt_cleare_cache): Check here for deleted and empty entries.
9787         Replace handle_cache_entry with a call to keep_cache_entry.
9788         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
9789         (ggc_cache_hasher::keep_cache_entry): New function.
9790         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
9791         (tm_wrapper_hasher::keep_cache_entry): New function.
9792         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
9793         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
9794         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
9795         (type_cache_hasher::keep_cache_entry): New function.
9796         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
9797         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
9798         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
9799         (tree_type_map_cache_hasher::keep_cache_entry): New function.
9800         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
9801         (tm_clone_hasher::keep_cache_entry): New function.
9802         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
9803         (dllimport_hasher::keep_cache_entry): New function.
9805 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9807         * hash-table.h: Include hash-traits.h.
9808         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
9809         (ggc_cache_hasher): Move to...
9810         * hash-traits.h: ...this new file.
9812 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9814         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
9815         struct cl_optimization.
9816         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
9817         * tree.c (make_node_stat): Allocate cl_optimization struct.
9818         (copy_node_stat): Allocate and copy cl_optimization struct.
9820 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9822         * function.h (struct incoming_args): Move struct.
9823         (pass_by_reference, reference_callee_copied): Remove prototypes.
9824         * emit-rtl.h (struct incoming_args): Relocate struct here.
9825         * calls.h (pass_by_reference, reference_callee_copied): Relocate
9826         prototypes here.
9827         * function.c (pass_by_reference, reference_callee_copied): Move.
9828         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
9829         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
9830         * ipa-chkp.c: Include calls.h.
9832 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
9834         * alias.h (alias_set_type): Move typedef.
9835         * coretypes.h (alias_set_type): Relocate typedef here.
9836         * rtl.h: Don't include alias.h.
9838 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
9840         * cgraph.h (cgraph_rtl_info): Move to rtl.h
9841         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
9842         and instance.
9843         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
9844         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
9845         doesn't exist.
9846         * calls.c: Include hard-reg-set.h before rtl.h.
9847         * ira.c: Likewise.
9849 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
9850             Vladimir Makarov  <vmakarov@redhat.com>
9852         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
9853         Add assert.
9855 2015-06-25  Richard Biener  <rguenther@suse.de>
9857         * fold-const.c (fold_binary_loc): Move simplification of
9858         (X <<>> C1) & C2 ...
9859         * match.pd: ... here.
9861 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
9863         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
9865 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
9867         * match.pd: Add patterns for vec_conds between 1 and 0.
9869 2015-06-25  Richard Biener  <rguenther@suse.de>
9871         * tree-vect-stmts.c (vectorizable_conversion): Do not set
9872         STMT_VINFO_VEC_STMT for SLP.
9873         (vectorizable_store): Likewise.
9874         (vectorizable_load): Likewise.
9875         (vect_transform_stmt): Catch SLP vectorization clobbering
9876         STMT_VINFO_VEC_STMT.
9878 2015-06-25  Richard Biener  <rguenther@suse.de>
9880         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
9881         dumping.
9882         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
9883         cleanup resulting dead code and parameters.
9884         (vect_transform_slp_perm_load): Adjust.
9886 2015-06-25  Nick Clifton  <nickc@redhat.com>
9888         * config/bfin/bfin.c (bfin_expand_prologue): Set
9889         current_function_static_stack_size if flag_stack_usage_info is set.
9890         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
9891         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
9892         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9893         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
9895 2015-06-25  Tom de Vries  <tom@codesourcery.com>
9897         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
9898         comment that the generated IV is unsigned.
9900 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9902         PR target/29693
9903         * config/arm/arm.c (arm_dbx_register_number): Return
9904         DWARF_FRAME_REGISTERS by default.
9906 2015-06-25  Tom de Vries  <tom@codesourcery.com>
9908         * dominance.c (calculate_dominance_info): Fix verify_dominators call
9909         argument.  Call verify_dominator when reusing dominator info.
9911 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
9913         PR target/66563
9914         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
9915         an additional element of the unspec vector.  Modify indices
9916         of operands.
9917         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
9918         * config/sh/sh.c (prepare_move_operands): Pass incremented
9919         const_int to gen_GOTaddr2picreg.
9920         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
9922 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
9924         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
9925         Condition on TARGET_FLOAT.
9927 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
9929         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
9930         and (no)crypto.
9932 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
9934         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
9936         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
9937         aarch64_err_no_fpadvsimd.
9939         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
9940         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
9941         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
9942         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
9943         Turn error into assert, test TARGET_FLOAT.
9944         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
9945         TARGET_FLOAT.
9947 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
9949         PR debug/66482
9950         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
9952 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
9954         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
9956 2015-06-24 Renlin Li <renlin.li@arm.com>
9958         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
9959         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
9961 2015-06-24  Richard Biener  <rguenther@suse.de>
9963         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
9964         (main): Likewise.
9965         (lower_opt_convert): Support lowering of conditional view_convert.
9966         (parser::parse_operation): Likewise.
9967         (parser::parse_for): Likewise.
9969 2015-06-24  Renlin Li  <renlin.li@arm.com>
9971         * varasm.c (emit_local): Use unsigned int for align variable.
9973 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9975         PR target/63408
9976         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
9977         for negative numbers.
9979 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9981         PR rtl-optimization/66306
9982         * reload.c (find_reloads): Swap the match_dup info for
9983         commutative operands.
9985 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9987         * config/s390/vx-builtins.md
9988         ("vec_scatter_element<mode>_<non_vec_int>")
9989         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
9990         attribute with bhfgq.
9992 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9994         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
9996 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9998         * config/s390/s390-builtin-types.def: Add flag to indicate the
9999         options under which the function type is needed.
10000         * config/s390/s390-builtins.def: Add flag to indicate the options
10001         under which the builtin is enabled.
10002         * config/s390/s390-builtins.h: Add flags parameter to macro
10003         definitions.
10004         (bflags_for_builtin): New function.
10005         (flags_for_builtin): Renamed to ...
10006         (opflags_for_builtin): ... this.
10007         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
10008         flags_for_builtin to bflags_for_builtin and
10009         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
10010         * config/s390/s390.c: Add initialization of bflags_builtin and
10011         opflags_builtin arrays.
10012         Remove code for flags_builtin.
10013         (s390_init_builtins): Only create builtin function types if one of
10014         their flags is active.
10015         Only create builtins if all of their flags are active.
10016         (s390_expand_builtin): Rename flags_for_builtin to
10017         opflags_for_builtin.
10019 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10021         * config/s390/vecintrin.h: Remove internal builtins.
10023 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10025         * config/s390/s390.c (s390_secondary_reload): Fix check for
10026         GENERAL_REGS register class.
10028 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10030         * config/s390/s390.c (s390_support_vector_misalignment): Call
10031         default implementation for !TARGET_VX.
10033 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10035         * config/s390/s390.c (s390_legitimate_constant_p): Add
10036         TARGET_VX check.
10038 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10040         * config/s390/s390.c (s390_vector_abi): New variable definition.
10041         (s390_check_type_for_vector_abi): New function.
10042         (TARGET_ASM_FILE_END): New macro definition.
10043         (s390_asm_file_end): New function.
10044         (s390_function_arg): Call s390_check_type_for_vector_abi.
10045         (s390_gimplify_va_arg): Likewise.
10046         * configure: Regenerate.
10047         * configure.ac: Check for .gnu_attribute Binutils feature.
10049 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
10051         PR target/65803
10052         * config/bfin/bfin.c (hwloop_optimize): Initialize
10053         JUMP_LABEL for newly created jump.
10055 2015-06-23  Tristan Gingold  <gingold@adacore.com>
10057         * collect-utils.c (collect_wait): Unlink the response file here
10058         instead of...
10059         (do_wait): ...here.
10060         (utils_cleanup): ...and here.
10062 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
10064         * df-scan.c: Don't include target-def.h.
10065         * targhooks.c: Likewise.
10066         * config/arm/arm-c.c: Likewise.
10067         * config/i386/i386-c.c: Likewise.
10068         * config/nds32/nds32-cost.c: Likewise.
10069         * config/nds32/nds32-fp-as-gp.c: Likewise.
10070         * config/nds32/nds32-intrinsic.c: Likewise.
10071         * config/nds32/nds32-isr.c: Likewise.
10072         * config/nds32/nds32-md-auxiliary.c: Likewise.
10073         * config/nds32/nds32-memory-manipulation.c: Likewise.
10074         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
10075         * config/nds32/nds32-predicates.c: Likewise.
10077 2015-06-23  Richard Biener  <rguenther@suse.de>
10079         PR tree-optimization/66636
10080         * tree-vect-stmts.c (vectorizable_store): Properly compute the
10081         def type for further defs for strided stores.
10083 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
10085         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
10086         conditional selects.
10087         (setcc_int<mode>, setcc_float<mode>): Reformat.
10089 2015-06-23  Marek Polacek  <polacek@redhat.com>
10091         * match.pd ((x + y) - (x | y) -> x & y,
10092         (x + y) - (x & y) -> x | y): New patterns.
10094 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
10096         PR 65711
10097         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
10098         '-dynamic-linker' within %{!shared: ...}.
10100 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
10102         PR target/66560
10103         * config/i386/predicates.md (addsub_vm_operator): New predicate.
10104         (addsub_vs_operator): Ditto.
10105         (addsub_vs_parallel): Ditto.
10106         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
10107         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
10108         Put minus RTX before plus and adjust vec_merge selector.
10109         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
10110         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
10111         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
10112         (addsub vec_merge splitters): New combiner splitters.
10113         (addsub vec_select/vec_concat splitters): Ditto.
10115 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
10117         PR tree-optimization/66449
10118         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
10119         POINTER_PLUS_EXPR for pointers.
10121 2015-06-23  Alan Modra  <amodra@gmail.com>
10123         * rtlanal.c (commutative_operand_precedence): Correct comments.
10124         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
10125         declaration.  Return an int.  Distinguish REG,REG return from
10126         others.
10127         (struct simplify_plus_minus_op_data): Make local to function.
10128         (simplify_plus_minus): Don't set canonicalized if merely sorting
10129         registers.  Avoid packing ops if nothing changes.  White space fixes.
10131 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
10133         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
10134         -fdump-ada-spec is passed but not if -fsyntax-only is.
10136 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
10138         PR bootstrap/63740
10139         * lra-lives.c (process_bb_lives): Check insn copying the same
10140         reload pseudo and don't create a copy for it.
10142 2015-06-22  Tom de Vries  <tom@codesourcery.com>
10144         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
10145         for cond_stmt.
10147 2015-06-22  Tom de Vries  <tom@codesourcery.com>
10149         * builtins.def (DEF_GOMP_BUILTIN): Test
10150         'flag_tree_parallelize_loops > 1' instead of
10151         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
10153 2015-06-22  Tom de Vries  <tom@codesourcery.com>
10155         * dominance.c (calculate_dominance_info): Verify dominators if
10156         early-out.
10158 2015-06-22  Marek Polacek  <polacek@redhat.com>
10160         * match.pd ((x ^ y) ^ (x | y) -> x & y,
10161         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
10162         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
10163         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
10165 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
10167         PR target/65871
10168         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
10169         cost of embedded comparison.
10171 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10173         PR target/65914
10174         * config/rs6000/predicates.md (altivec_register_operand): Permit
10175         virtual stack registers.
10176         (vsx_register_operand): Likewise.
10177         (vfloat_operand): Likewise.
10178         (vint_operand): Likewise.
10179         (vlogical_operand): Likewise.
10181 2015-06-22  Richard Biener  <rguenther@suse.de>
10183         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
10184         and single_scalar_iteration_cost members.
10185         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
10186         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
10187         (vect_get_single_scalar_iteration_cost): Remove.
10188         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
10189         Use LOOP_VINFO_SCALAR_ITERATION_COST.
10190         * tree-vect-loop.c (destroy_loop_vec_info): Free
10191         scalar_cost_vec.
10192         (vect_get_single_scalar_iteration_cost): Compute result into
10193         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
10194         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
10195         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
10196         (vect_estimate_min_profitable_iters): Use them.
10198 2015-06-22  Christian Bruel  <christian.bruel@st.com>
10200         PR target/52144
10201         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
10202         (TARGET_INSERT_ATTRIBUTES): Define.
10203         (thumb_flipper): New var.
10204         * config/arm/arm.opt (-mflip-thumb): New switch.
10206 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
10207             Martin Liska  <mliska@suse.cz>
10209         PR ipa/65908
10210         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
10211         construction of arg_types.
10212         (sem_function::sem_function): Likewise.
10213         (sem_function::~sem_function): Remove destruction of arg_types.
10214         (sem_function::compatible_parm_types_p): New function.
10215         (sem_function::equals_wpa): Reorg matching of return values
10216         and parameter types.
10217         (sem_function::equals_private): Reorg mathcing of argument types.
10218         (sem_function::parse_tree_args): Remove.
10219         * ipa-icf.h (init_wpa): Do not call it.
10220         (parse_tree_args): Remove.
10221         (compatible_parm_types_p): Declare.
10222         (result_type): Remove.
10223         (arg_types): Remove.
10225 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
10227         PR ipa/66351
10228         * ipa-polymorphic-call.c
10229         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
10230         initializing alias oracle; fix formating; set base_alias_set if it
10231         is known.
10233 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
10235         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
10236         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
10237         (find_inc): Likewise.
10238         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
10239         swapping.
10240         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
10241         * df-scan.c (df_swap_refs): Remove.
10242         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
10243         * dominance.c (link_roots): Use std::swap instead of manually swapping.
10244         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
10245         * fold-const.c (fold_relational_const): Likewise.
10246         * genattrtab.c (simplify_test_exp): Likewise.
10247         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
10248         gimple_simplify): Likewise.
10249         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
10250         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
10251         * ipa-devirt.c (add_type_duplicate): Likewise.
10252         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
10253         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
10254         * lra.c (lra_create_copy): Likewise.
10255         * lto-streamer-out.c (DFS::DFS): Likewise.
10256         * modulo-sched.c (get_sched_window): Likewise.
10257         * omega.c (omega_pretty_print_problem): Likewise.
10258         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
10259         * reload1.c (reloads_unique_chain_p): Likewise.
10260         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
10261         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
10262         use std::swap.
10263         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
10264         manually swapping.
10265         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
10266         predicate_mem_writes): Likewise.
10267         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
10268         * tree-predcom.c (combine_chains): Likewise.
10269         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
10270         refs_may_alias_p_1): Likewise.
10271         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
10272         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
10273         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
10274         number_of_iterations_cond): Likewise.
10275         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
10276         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
10277         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
10278         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
10279         * tree-vrp.c (extract_range_from_binary_expr_1,
10280         extract_range_from_unary_expr_1): Likewise.
10282 2015-06-20  Marek Polacek  <polacek@redhat.com>
10284         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
10286 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
10288         PR target/66591
10289         * config/sh/sh.c (prepare_move_operands): Replace subreg
10290         index term with R0 for base and index addressing.
10292 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
10294         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
10295         op1 is an fp zero.
10296         (movsf_aarch64): Change condition from register_operand to
10297         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
10298         load1.  Change type for alternative 7 to store1.
10299         (movdf_aarch64): Likewise.
10301 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
10303         * config/vax/vax.md: Adjust sign/zero extend patterns to
10304         handle SUBREGs in operands[1].
10306 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10308         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
10309         of manually swapping.
10310         (expand_vec_perm_interleave2): Likewise.
10312 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
10314         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
10315         reuse bounds created for abnormal ssa names.
10317 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
10319         * config/nvptx/nvptx.md (allocate_stack): Rename to...
10320         (allocate_stack_<mode>): ... this, and add :P on both
10321         match_operand and unspec.
10322         (allocate_stack): New expander.
10324 2015-06-19  Christian Bruel  <christian.bruel@st.com>
10326         PR target/66541
10327         PR target/52144
10328         * config/arm/arm.c (arm_set_current_function): Handle
10329         explicit default options.
10331 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
10333         * config/i386/i386.md (*movsicc_noc_zext): New insn.
10334         (zero-extended cmove with mem peephole2): New pattern.
10335         (cmove with mem peephole2): Merge patterns.
10337 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
10339         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
10341 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
10343         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
10344         * config/mips/mips.md (*madd4<mode>): Ditto.
10345         (*nmadd3<mode>) Ditto.
10346         (*nmadd4<mode>_fastmath): Ditto.
10347         (*nmadd3<mode>_fastmath): Ditto.
10348         (*nmsub4<mode>): Ditto.
10349         (*nmsub3<mode>): Ditto.
10350         (*nmsub4<mode>_fastmath): Ditto.
10351         (*nmsub3<mode>_fastmath): Ditto.
10353 2015-06-18  Michael Matz  <matz@suse.de>
10355         PR middle-end/66253
10356         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
10357         grouped strided stores.
10358         (vectorizable_load): Don't use the DR from first_stmt in
10359         the non-SLP grouped strided case.
10361 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10363         PR target/66569
10364         * function.c (assign_bounds): Add arguments assign_regs,
10365         assign_special, assign_bt.
10366         (assign_parms): For vararg functions handle bounds in BT
10367         and special slots after incoming vararg bounds.
10369 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10371         PR middle-end/66568
10372         * cfgexpand.c (expand_return): Handle missing bounds.
10373         (expand_gimple_stmt_1): Likewise.
10374         * tree-chkp.c (chkp_expand_zero_bounds): New.
10375         * tree-chkp.h (chkp_expand_zero_bounds): New.
10377 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10379         PR middle-end/66567
10380         * ipa-chkp.c (chkp_maybe_create_clone): Require
10381         functions to be instrumentable.
10382         * tree-chkp.c (chkp_replace_function_pointer): Use
10383         chkp_instrumentable_p instead of attribute check.
10385 2015-06-18  Richard Biener  <rguenther@suse.de>
10387         PR tree-optimization/66510
10388         * tree-vect-stmts.c (vectorizable_load): Properly compute the
10389         number of vector loads for SLP permuted loads.
10390         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
10391         check the stride for loop vectorization.
10392         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
10393         vectorization factor.
10394         (vect_analyze_group_access): If the group size is not a power
10395         of two require a epilogue loop.
10396         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
10397         compute and optimizing and alias test pruning after final
10398         vectorization factor computation.
10399         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
10400         vector alignment.
10401         (vect_transform_slp_perm_load): Properly compute the original
10402         number of vector load stmts.
10404 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
10406         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
10407         "unlikely character , in @var" warning.
10409 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
10411         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
10412         (ix86_function_arg_advance): Ditto.
10413         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
10415 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
10417         * function.h (struct rtl_data): Remove struct and accessor macros.
10418         * emit-rtl.h (struct rtl_data): Relocate to here.
10419         * Makefile.in (GTFILES): Add emit-rtl.h.
10420         * df-core.c: Include emit-rtl.h.
10421         * genattrtab.c: Likewise.
10422         * genconditions.c: Likewise.
10423         * genpreds.c: Likewise.
10424         * genrecog.c: Likewise.
10425         * regcprop.c: Likewise.
10426         * resource.c: Likewise.
10427         * sched-rgn.c: Likewise.
10428         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
10429         * config/i386/winnt.c: Likewise.
10431 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
10433         PR middle-end/66429
10434         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
10435         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
10436         and has_force_vectorize_loops flags from cfun into
10437         child_cfun.
10438         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
10439         if simduid is non-NULL.
10440         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
10441         * passes.def (pass_simduid_cleanup): Add new pass after loop
10442         passes.
10443         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
10444         indirection from htab argument's type.
10445         (shrink_simd_arrays): New function.
10446         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
10447         Don't call adjust_simduid_builtins if there are no loops.
10448         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
10449         (pass_simduid_cleanup::execute): New method.
10450         (make_pass_simduid_cleanup): New function.
10452 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
10454         * tree-core.h (tree_target_option): Make opts field a pointer to a
10455         cl_target_option instead of an instance of the struct.
10456         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
10457         the structure.
10458         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
10459         TARGET_OPTION_NODE.
10460         (copy_node_stat): Allocate and copy struct cl_target_option.
10462 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
10464         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
10465         Remove conditional exposure of prototypes.
10466         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
10467         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
10468         definitions in tree.h with functions.
10469         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
10470         anon_aggrname_p.
10471         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
10473 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
10475         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
10476         (*cmp<mode>_signed): ... this.
10477         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
10478         (*cmp<mode>_unsigned): ... this.  Remove %b.
10480 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
10482         * coretypes.h: Include input.h and as-a.h.
10483         * rtl.h: Include input.h and as-a.h for generator files.
10484         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
10485         * vec.c: Don't include diagnostic-core.h.
10486         * alias.c: Do not include input.h, line-map.h or is-a.h.
10487         * asan.c: Likewise.
10488         * attribs.c: Likewise.
10489         * auto-inc-dec.c: Likewise.
10490         * auto-profile.c: Likewise.
10491         * bb-reorder.c: Likewise.
10492         * bt-load.c: Likewise.
10493         * builtins.c: Likewise.
10494         * caller-save.c: Likewise.
10495         * calls.c: Likewise.
10496         * ccmp.c: Likewise.
10497         * cfg.c: Likewise.
10498         * cfganal.c: Likewise.
10499         * cfgbuild.c: Likewise.
10500         * cfgcleanup.c: Likewise.
10501         * cfgexpand.c: Likewise.
10502         * cfghooks.c: Likewise.
10503         * cfgloop.c: Likewise.
10504         * cfgloop.h: Likewise.
10505         * cfgloopanal.c: Likewise.
10506         * cfgloopmanip.c: Likewise.
10507         * cfgrtl.c: Likewise.
10508         * cgraph.c: Likewise.
10509         * cgraphbuild.c: Likewise.
10510         * cgraphclones.c: Likewise.
10511         * cgraphunit.c: Likewise.
10512         * cilk-common.c: Likewise.
10513         * combine-stack-adj.c: Likewise.
10514         * combine.c: Likewise.
10515         * compare-elim.c: Likewise.
10516         * convert.c: Likewise.
10517         * coverage.c: Likewise.
10518         * cppbuiltin.c: Likewise.
10519         * cprop.c: Likewise.
10520         * cse.c: Likewise.
10521         * cselib.c: Likewise.
10522         * data-streamer-in.c: Likewise.
10523         * data-streamer-out.c: Likewise.
10524         * data-streamer.c: Likewise.
10525         * dbxout.c: Likewise.
10526         * dce.c: Likewise.
10527         * ddg.c: Likewise.
10528         * debug.c: Likewise.
10529         * df-core.c: Likewise.
10530         * df-problems.c: Likewise.
10531         * df-scan.c: Likewise.
10532         * df.h: Likewise.
10533         * dfp.c: Likewise.
10534         * diagnostic-core.h: Likewise.
10535         * diagnostic.c: Likewise.
10536         * dojump.c: Likewise.
10537         * dominance.c: Likewise.
10538         * domwalk.c: Likewise.
10539         * double-int.c: Likewise.
10540         * dse.c: Likewise.
10541         * dumpfile.c: Likewise.
10542         * dumpfile.h: Likewise.
10543         * dwarf2asm.c: Likewise.
10544         * dwarf2cfi.c: Likewise.
10545         * dwarf2out.c: Likewise.
10546         * emit-rtl.c: Likewise.
10547         * et-forest.c: Likewise.
10548         * except.c: Likewise.
10549         * explow.c: Likewise.
10550         * expmed.c: Likewise.
10551         * expr.c: Likewise.
10552         * final.c: Likewise.
10553         * fixed-value.c: Likewise.
10554         * fold-const.c: Likewise.
10555         * function.c: Likewise.
10556         * fwprop.c: Likewise.
10557         * gcc-plugin.h: Likewise.
10558         * gcse.c: Likewise.
10559         * generic-match-head.c: Likewise.
10560         * ggc-page.c: Likewise.
10561         * gimple-builder.c: Likewise.
10562         * gimple-expr.c: Likewise.
10563         * gimple-fold.c: Likewise.
10564         * gimple-iterator.c: Likewise.
10565         * gimple-low.c: Likewise.
10566         * gimple-match-head.c: Likewise.
10567         * gimple-pretty-print.c: Likewise.
10568         * gimple-ssa-isolate-paths.c: Likewise.
10569         * gimple-ssa-strength-reduction.c: Likewise.
10570         * gimple-streamer-in.c: Likewise.
10571         * gimple-streamer-out.c: Likewise.
10572         * gimple-streamer.h: Likewise.
10573         * gimple-walk.c: Likewise.
10574         * gimple.c: Likewise.
10575         * gimplify-me.c: Likewise.
10576         * gimplify.c: Likewise.
10577         * godump.c: Likewise.
10578         * graph.c: Likewise.
10579         * graphite-blocking.c: Likewise.
10580         * graphite-dependences.c: Likewise.
10581         * graphite-interchange.c: Likewise.
10582         * graphite-isl-ast-to-gimple.c: Likewise.
10583         * graphite-optimize-isl.c: Likewise.
10584         * graphite-poly.c: Likewise.
10585         * graphite-scop-detection.c: Likewise.
10586         * graphite-sese-to-poly.c: Likewise.
10587         * graphite.c: Likewise.
10588         * haifa-sched.c: Likewise.
10589         * hw-doloop.c: Likewise.
10590         * ifcvt.c: Likewise.
10591         * init-regs.c: Likewise.
10592         * input.c: Likewise.
10593         * internal-fn.c: Likewise.
10594         * ipa-chkp.c: Likewise.
10595         * ipa-comdats.c: Likewise.
10596         * ipa-cp.c: Likewise.
10597         * ipa-devirt.c: Likewise.
10598         * ipa-icf-gimple.c: Likewise.
10599         * ipa-icf.c: Likewise.
10600         * ipa-inline-analysis.c: Likewise.
10601         * ipa-inline-transform.c: Likewise.
10602         * ipa-inline.c: Likewise.
10603         * ipa-polymorphic-call.c: Likewise.
10604         * ipa-profile.c: Likewise.
10605         * ipa-prop.c: Likewise.
10606         * ipa-pure-const.c: Likewise.
10607         * ipa-ref.c: Likewise.
10608         * ipa-reference.c: Likewise.
10609         * ipa-split.c: Likewise.
10610         * ipa-utils.c: Likewise.
10611         * ipa-visibility.c: Likewise.
10612         * ipa.c: Likewise.
10613         * ira-build.c: Likewise.
10614         * ira-color.c: Likewise.
10615         * ira-conflicts.c: Likewise.
10616         * ira-costs.c: Likewise.
10617         * ira-emit.c: Likewise.
10618         * ira-lives.c: Likewise.
10619         * ira.c: Likewise.
10620         * jump.c: Likewise.
10621         * langhooks.c: Likewise.
10622         * lcm.c: Likewise.
10623         * loop-doloop.c: Likewise.
10624         * loop-init.c: Likewise.
10625         * loop-invariant.c: Likewise.
10626         * loop-iv.c: Likewise.
10627         * loop-unroll.c: Likewise.
10628         * lower-subreg.c: Likewise.
10629         * lra-assigns.c: Likewise.
10630         * lra-coalesce.c: Likewise.
10631         * lra-constraints.c: Likewise.
10632         * lra-eliminations.c: Likewise.
10633         * lra-lives.c: Likewise.
10634         * lra-remat.c: Likewise.
10635         * lra-spills.c: Likewise.
10636         * lra.c: Likewise.
10637         * lto-cgraph.c: Likewise.
10638         * lto-compress.c: Likewise.
10639         * lto-opts.c: Likewise.
10640         * lto-section-in.c: Likewise.
10641         * lto-section-out.c: Likewise.
10642         * lto-streamer-in.c: Likewise.
10643         * lto-streamer-out.c: Likewise.
10644         * lto-streamer.c: Likewise.
10645         * mcf.c: Likewise.
10646         * mode-switching.c: Likewise.
10647         * modulo-sched.c: Likewise.
10648         * omega.c: Likewise.
10649         * omp-low.c: Likewise.
10650         * optabs.c: Likewise.
10651         * opts-global.c: Likewise.
10652         * opts.h: Likewise.
10653         * passes.c: Likewise.
10654         * plugin.c: Likewise.
10655         * postreload-gcse.c: Likewise.
10656         * postreload.c: Likewise.
10657         * predict.c: Likewise.
10658         * pretty-print.h: Likewise.
10659         * print-rtl.c: Likewise.
10660         * print-tree.c: Likewise.
10661         * profile.c: Likewise.
10662         * real.c: Likewise.
10663         * realmpfr.c: Likewise.
10664         * recog.c: Likewise.
10665         * ree.c: Likewise.
10666         * reg-stack.c: Likewise.
10667         * regcprop.c: Likewise.
10668         * reginfo.c: Likewise.
10669         * regrename.c: Likewise.
10670         * regstat.c: Likewise.
10671         * reload.c: Likewise.
10672         * reload1.c: Likewise.
10673         * reorg.c: Likewise.
10674         * resource.c: Likewise.
10675         * rtl-chkp.c: Likewise.
10676         * rtl-error.c: Likewise.
10677         * rtlanal.c: Likewise.
10678         * rtlhooks.c: Likewise.
10679         * sanopt.c: Likewise.
10680         * sched-deps.c: Likewise.
10681         * sched-ebb.c: Likewise.
10682         * sched-rgn.c: Likewise.
10683         * sched-vis.c: Likewise.
10684         * sdbout.c: Likewise.
10685         * sel-sched-dump.c: Likewise.
10686         * sel-sched-ir.c: Likewise.
10687         * sel-sched.c: Likewise.
10688         * sese.c: Likewise.
10689         * shrink-wrap.c: Likewise.
10690         * simplify-rtx.c: Likewise.
10691         * stack-ptr-mod.c: Likewise.
10692         * statistics.c: Likewise.
10693         * stmt.c: Likewise.
10694         * stor-layout.c: Likewise.
10695         * store-motion.c: Likewise.
10696         * streamer-hooks.c: Likewise.
10697         * stringpool.c: Likewise.
10698         * symtab.c: Likewise.
10699         * target-globals.c: Likewise.
10700         * targhooks.c: Likewise.
10701         * toplev.c: Likewise.
10702         * tracer.c: Likewise.
10703         * trans-mem.c: Likewise.
10704         * tree-affine.c: Likewise.
10705         * tree-browser.c: Likewise.
10706         * tree-call-cdce.c: Likewise.
10707         * tree-cfg.c: Likewise.
10708         * tree-cfgcleanup.c: Likewise.
10709         * tree-chkp-opt.c: Likewise.
10710         * tree-chkp.c: Likewise.
10711         * tree-chrec.c: Likewise.
10712         * tree-complex.c: Likewise.
10713         * tree-data-ref.c: Likewise.
10714         * tree-dfa.c: Likewise.
10715         * tree-diagnostic.c: Likewise.
10716         * tree-dump.c: Likewise.
10717         * tree-eh.c: Likewise.
10718         * tree-emutls.c: Likewise.
10719         * tree-if-conv.c: Likewise.
10720         * tree-inline.c: Likewise.
10721         * tree-into-ssa.c: Likewise.
10722         * tree-iterator.c: Likewise.
10723         * tree-loop-distribution.c: Likewise.
10724         * tree-nested.c: Likewise.
10725         * tree-nrv.c: Likewise.
10726         * tree-object-size.c: Likewise.
10727         * tree-outof-ssa.c: Likewise.
10728         * tree-parloops.c: Likewise.
10729         * tree-phinodes.c: Likewise.
10730         * tree-predcom.c: Likewise.
10731         * tree-pretty-print.c: Likewise.
10732         * tree-profile.c: Likewise.
10733         * tree-scalar-evolution.c: Likewise.
10734         * tree-sra.c: Likewise.
10735         * tree-ssa-address.c: Likewise.
10736         * tree-ssa-alias.c: Likewise.
10737         * tree-ssa-ccp.c: Likewise.
10738         * tree-ssa-coalesce.c: Likewise.
10739         * tree-ssa-copy.c: Likewise.
10740         * tree-ssa-copyrename.c: Likewise.
10741         * tree-ssa-dce.c: Likewise.
10742         * tree-ssa-dom.c: Likewise.
10743         * tree-ssa-dse.c: Likewise.
10744         * tree-ssa-forwprop.c: Likewise.
10745         * tree-ssa-ifcombine.c: Likewise.
10746         * tree-ssa-live.c: Likewise.
10747         * tree-ssa-loop-ch.c: Likewise.
10748         * tree-ssa-loop-im.c: Likewise.
10749         * tree-ssa-loop-ivcanon.c: Likewise.
10750         * tree-ssa-loop-ivopts.c: Likewise.
10751         * tree-ssa-loop-manip.c: Likewise.
10752         * tree-ssa-loop-niter.c: Likewise.
10753         * tree-ssa-loop-prefetch.c: Likewise.
10754         * tree-ssa-loop-unswitch.c: Likewise.
10755         * tree-ssa-loop.c: Likewise.
10756         * tree-ssa-math-opts.c: Likewise.
10757         * tree-ssa-operands.c: Likewise.
10758         * tree-ssa-phiopt.c: Likewise.
10759         * tree-ssa-phiprop.c: Likewise.
10760         * tree-ssa-pre.c: Likewise.
10761         * tree-ssa-propagate.c: Likewise.
10762         * tree-ssa-reassoc.c: Likewise.
10763         * tree-ssa-sccvn.c: Likewise.
10764         * tree-ssa-scopedtables.c: Likewise.
10765         * tree-ssa-sink.c: Likewise.
10766         * tree-ssa-strlen.c: Likewise.
10767         * tree-ssa-structalias.c: Likewise.
10768         * tree-ssa-tail-merge.c: Likewise.
10769         * tree-ssa-ter.c: Likewise.
10770         * tree-ssa-threadedge.c: Likewise.
10771         * tree-ssa-threadupdate.c: Likewise.
10772         * tree-ssa-uncprop.c: Likewise.
10773         * tree-ssa-uninit.c: Likewise.
10774         * tree-ssa.c: Likewise.
10775         * tree-ssanames.c: Likewise.
10776         * tree-stdarg.c: Likewise.
10777         * tree-streamer-in.c: Likewise.
10778         * tree-streamer-out.c: Likewise.
10779         * tree-streamer.c: Likewise.
10780         * tree-switch-conversion.c: Likewise.
10781         * tree-tailcall.c: Likewise.
10782         * tree-vect-data-refs.c: Likewise.
10783         * tree-vect-generic.c: Likewise.
10784         * tree-vect-loop-manip.c: Likewise.
10785         * tree-vect-loop.c: Likewise.
10786         * tree-vect-patterns.c: Likewise.
10787         * tree-vect-slp.c: Likewise.
10788         * tree-vect-stmts.c: Likewise.
10789         * tree-vectorizer.c: Likewise.
10790         * tree-vrp.c: Likewise.
10791         * tree.c: Likewise.
10792         * tsan.c: Likewise.
10793         * ubsan.c: Likewise.
10794         * valtrack.c: Likewise.
10795         * value-prof.c: Likewise.
10796         * var-tracking.c: Likewise.
10797         * varasm.c: Likewise.
10798         * varpool.c: Likewise.
10799         * vmsdbgout.c: Likewise.
10800         * vtable-verify.c: Likewise.
10801         * web.c: Likewise.
10802         * wide-int.cc: Likewise.
10803         * xcoffout.c: Likewise.
10804         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
10805         * common/common-targhooks.c: Likewise.
10806         * config/aarch64/aarch64-builtins.c: Likewise.
10807         * config/aarch64/aarch64.c: Likewise.
10808         * config/alpha/alpha.c: Likewise.
10809         * config/arc/arc.c: Likewise.
10810         * config/arm/aarch-common.c: Likewise.
10811         * config/arm/arm-builtins.c: Likewise.
10812         * config/arm/arm-c.c: Likewise.
10813         * config/arm/arm.c: Likewise.
10814         * config/avr/avr-c.c: Likewise.
10815         * config/avr/avr-log.c: Likewise.
10816         * config/avr/avr.c: Likewise.
10817         * config/bfin/bfin.c: Likewise.
10818         * config/c6x/c6x.c: Likewise.
10819         * config/cr16/cr16.c: Likewise.
10820         * config/cris/cris.c: Likewise.
10821         * config/darwin-c.c: Likewise.
10822         * config/darwin.c: Likewise.
10823         * config/default-c.c: Likewise.
10824         * config/epiphany/epiphany.c: Likewise.
10825         * config/epiphany/mode-switch-use.c: Likewise.
10826         * config/epiphany/resolve-sw-modes.c: Likewise.
10827         * config/fr30/fr30.c: Likewise.
10828         * config/frv/frv.c: Likewise.
10829         * config/ft32/ft32.c: Likewise.
10830         * config/glibc-c.c: Likewise.
10831         * config/h8300/h8300.c: Likewise.
10832         * config/i386/i386-c.c: Likewise.
10833         * config/i386/i386.c: Likewise.
10834         * config/i386/msformat-c.c: Likewise.
10835         * config/i386/winnt-cxx.c: Likewise.
10836         * config/i386/winnt-stubs.c: Likewise.
10837         * config/i386/winnt.c: Likewise.
10838         * config/ia64/ia64-c.c: Likewise.
10839         * config/ia64/ia64.c: Likewise.
10840         * config/iq2000/iq2000.c: Likewise.
10841         * config/lm32/lm32.c: Likewise.
10842         * config/m32c/m32c-pragma.c: Likewise.
10843         * config/m32c/m32c.c: Likewise.
10844         * config/m32r/m32r.c: Likewise.
10845         * config/m68k/m68k.c: Likewise.
10846         * config/mcore/mcore.c: Likewise.
10847         * config/mep/mep-pragma.c: Likewise.
10848         * config/mep/mep.c: Likewise.
10849         * config/microblaze/microblaze-c.c: Likewise.
10850         * config/microblaze/microblaze.c: Likewise.
10851         * config/mips/mips.c: Likewise.
10852         * config/mmix/mmix.c: Likewise.
10853         * config/mn10300/mn10300.c: Likewise.
10854         * config/moxie/moxie.c: Likewise.
10855         * config/msp430/msp430-c.c: Likewise.
10856         * config/msp430/msp430.c: Likewise.
10857         * config/nds32/nds32-cost.c: Likewise.
10858         * config/nds32/nds32-fp-as-gp.c: Likewise.
10859         * config/nds32/nds32-intrinsic.c: Likewise.
10860         * config/nds32/nds32-isr.c: Likewise.
10861         * config/nds32/nds32-md-auxiliary.c: Likewise.
10862         * config/nds32/nds32-memory-manipulation.c: Likewise.
10863         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
10864         * config/nds32/nds32-predicates.c: Likewise.
10865         * config/nds32/nds32.c: Likewise.
10866         * config/nios2/nios2.c: Likewise.
10867         * config/nvptx/nvptx.c: Likewise.
10868         * config/pa/pa.c: Likewise.
10869         * config/pdp11/pdp11.c: Likewise.
10870         * config/rl78/rl78-c.c: Likewise.
10871         * config/rl78/rl78.c: Likewise.
10872         * config/rs6000/rs6000-c.c: Likewise.
10873         * config/rs6000/rs6000.c: Likewise.
10874         * config/rx/rx.c: Likewise.
10875         * config/s390/s390-c.c: Likewise.
10876         * config/s390/s390.c: Likewise.
10877         * config/sh/sh-c.c: Likewise.
10878         * config/sh/sh-mem.cc: Likewise.
10879         * config/sh/sh.c: Likewise.
10880         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
10881         * config/sh/sh_treg_combine.cc: Likewise.
10882         * config/sol2-c.c: Likewise.
10883         * config/sol2-cxx.c: Likewise.
10884         * config/sol2-stubs.c: Likewise.
10885         * config/sol2.c: Likewise.
10886         * config/sparc/sparc-c.c: Likewise.
10887         * config/sparc/sparc.c: Likewise.
10888         * config/spu/spu-c.c: Likewise.
10889         * config/spu/spu.c: Likewise.
10890         * config/stormy16/stormy16.c: Likewise.
10891         * config/tilegx/mul-tables.c: Likewise.
10892         * config/tilegx/tilegx-c.c: Likewise.
10893         * config/tilegx/tilegx.c: Likewise.
10894         * config/tilepro/mul-tables.c: Likewise.
10895         * config/tilepro/tilepro-c.c: Likewise.
10896         * config/tilepro/tilepro.c: Likewise.
10897         * config/v850/v850-c.c: Likewise.
10898         * config/v850/v850.c: Likewise.
10899         * config/vax/vax.c: Likewise.
10900         * config/visium/visium.c: Likewise.
10901         * config/vms/vms-c.c: Likewise.
10902         * config/vms/vms.c: Likewise.
10903         * config/vxworks.c: Likewise.
10904         * config/winnt-c.c: Likewise.
10905         * config/xtensa/xtensa.c: Likewise.
10907 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
10909         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
10910         function.
10911         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
10913 2015-06-17  Richard Biener  <rguenther@suse.de>
10915         PR tree-optimization/66251
10916         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
10917         stmts for SLP strided stores.
10919         Revert
10920         2015-05-22  Richard Biener  <rguenther@suse.de>
10922         PR tree-optimization/66251
10923         * tree-vect-stmts.c (vectorizable_conversion): Properly
10924         set STMT_VINFO_VEC_STMT even for the SLP case.
10926         2015-05-26  Michael Matz  <matz@suse.de>
10928         PR middle-end/66251
10929         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
10930         STMT_VINFO_VEC_STMT, also with SLP.
10932 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
10934         PR target/56766
10935         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
10936         (*avx_addsubv4df3_1s): Ditto.
10937         (*sse3_addsubv2df3_1): Ditto.
10938         (*sse3_addsubv2df3_1s): Ditto.
10939         (*avx_addsubv8sf3_1): Ditto.
10940         (*avx_addsubv8sf3_1s): Ditto.
10941         (*sse3_addsubv4sf3_1): Ditto.
10942         (*sse3_addsubv4sf3_1s): Ditto.
10944 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
10946         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
10947         (SYSROOT_SUFFIX_SPEC): Update.
10948         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
10949         (STARTFILE_PREFIX_SPEC): Update.
10950         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
10951         (MULTILIB_REQUIRED): New.
10952         (MULTILIB_OSDIRNAMES): New.
10953         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
10954         (MULTILIB_REQUIRED): New.
10955         (MULTILIB_OSDIRNAMES): New.
10957 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
10959         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
10960         * config/aarch64/aarch64-options-extensions.def: Update "fP",
10961         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
10962         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
10963         (AARCH64_FL_PAN): New.
10964         (AARCH64_FL_LOR): New.
10965         (AARCH64_FL_RDMA): New.
10966         (AARCH64_FL_FOR_ARCH8_1): New.
10967         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
10968         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
10970 2015-06-16  Martin Liska  <mliska@suse.cz>
10972         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
10973         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
10974         guard.
10976 2015-06-16  Richard Biener  <rguenther@suse.de>
10978         * tree-vect-stmts.c (vectorizable_store): Adjust.
10979         (vectorizable_load): Likewise.
10980         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10981         Simplify.
10982         (vect_create_data_ref_ptr): Likewise.
10983         (bump_vector_ptr): Adjust.
10985 2015-06-16  Richard Biener  <rguenther@suse.de>
10987         * tree-vect-stmts.c (vectorizable_load): Properly start loads
10988         with the first element if this is grouped loads.
10990 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
10992         * config/arm/arm-protos.h (struct tune_params): Rename
10993         log_op_non_sc to log_op_non_short_circuit, and rename enum
10994         values to expand SC to SHORT_CIRCUIT.
10995         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
10996         to LOG_OP_NON_SHORT_CIRCUIT.
10997         (arm_fastmul_tune):Likewise
10998         (arm_strongarm_tune): Likewise.
10999         (arm_xscale_tune): Likewise.
11000         (arm_9e_tune): Likewise.
11001         (arm_marvell_pj4_tune): Likewise.
11002         (arm_v6t2_tune): Likewise.
11003         (arm_cortex_tune): Likewise.
11004         (arm_cortex_a8_tune): Likewise.
11005         (arm_cortex_a7_tune): Likewise.
11006         (arm_cortex_a15_tune): Likewise.
11007         (arm_cortex_a53_tune): Likewise.
11008         (arm_cortex_a57_tune): Likewise.
11009         (arm_xgene1_tune): Likewise.
11010         (arm_cortex_a5_tune): Likewise.
11011         (arm_cortex_a9_tune): Likewise.
11012         (arm_cortex_a12_tune): Likewise.
11013         (arm_v7m_tune): Likewise.
11014         (arm_cortex_m7_tune): Likewise.
11015         (arm_v6m_tune): Likewise.
11016         (arm_fa726te_tune): Likewise.
11018 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
11020         * altivec.md: Delete UNSPEC_VMLADDUHM.
11021         (mulv4si3_p8): New pattern.
11022         (mulv4si3): Use it for POWER8.
11023         (mulv8hi3): Use vmladduhm with zero addend.
11024         (altivec_vmladduhm): Descriptive RTL.
11026 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
11028         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
11029         to use neon_move instead of mov_imm.
11030         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
11031         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
11033         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
11034         aarch64_float_const_zero_rtx_p check before TFmode check.
11035         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
11036         an fp zero.
11037         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
11038         code and attributes to match.  Change condition from register_operand
11039         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
11040         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
11041         to store2.
11043 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
11045         PR debug/66535
11046         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
11047         there is no parent.
11049 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
11051         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
11052         HOST_WIDE_INT parameter.
11054 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
11056         PR ipa/66181
11057         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
11058         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
11059         TYPE_NO_FORCE_BLK.
11060         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
11062 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
11064         * rtl.h (classify_insn): Declare.
11065         * emit-rtl.c (classify_insn): Move to...
11066         * rtl.c: ...here and add generator support.
11067         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
11068         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
11069         * genemit.c (gen_emit_seq): New function.
11070         (gen_expand, gen_split): Use it.
11072 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
11074         * tree.c (make_vector_stat): Fix comment to state that the
11075         function returns a VECTOR_CST.
11077 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
11079         * gensupport.h (add_implicit_parallel): Declare.
11080         * genrecog.c (add_implicit_parallel): Move to...
11081         * gensupport.c (add_implicit_parallel): ...here.
11082         (process_one_cond_exec): Use it.
11083         * genemit.c (gen_insn): Likewise.
11085 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
11087         PR bootstrap/66448
11088         * passes.c (rest_of_decl_compilation): Do not register globals for
11089         early debug if they are declared in built-ins.
11091 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
11093         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
11095 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11097         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
11098         manually swapping.
11099         (noce_try_cmove_arith): Likewise.
11100         (noce_get_alt_condition): Likewise.
11102 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
11104         * common/config/i386/i386-common.c
11105         (OPTION_MASK_ISA_MWAITX_SET): New.
11106         (ix86_handle_option): Handle mwaitx.
11107         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
11108         (x86_64-*-*): Likewise.
11109         * config/i386/mwaitxintrin.h: New header.
11110         * config/i386/cpuid.h (bit_MWAITX):  Define.
11111         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
11112         MWAITX support.
11113         * config/i386/i386.opt (mwaitx): New.
11114         * config/i386/i386-builtin-types.def
11115         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
11116         * config/i386/i386-c.c: Define __MWAITX__ if needed.
11117         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
11118         (PTA_MWAITX): New.
11119         (ix86_option_override_internal): Handle new option.
11120         (processor_alias_table): Added PTA_MWAITX.
11121         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
11122         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
11123         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
11124         IX86_BUILTIN_MONITORX  built-ins.
11125         * config/i386/i386.h (TARGET_MWAITX): New.
11126         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
11127         UNSPEC_MONITORX.
11128         (mwaitx):  New pattern.
11129         (monitorx_<mode>): New pattern.
11130         * config/i386/x86intrin.h: Include mwaitxintrin.h.
11131         * doc/extend.texi: Document monitorx and mwaitx builtins.
11132         * doc/invoke.texi: Document -mmwaitx option.
11134 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
11136         * emit-rtl.c (need_atomic_barrier_p): Mask model with
11137         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
11139 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
11141         * dbxout.c (xcoff_debug_hooks): Provide a function for
11142         register_main_translation_unit hook.
11144 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
11146         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
11147         variants cases from switch.
11148         (rs6000_post_atomic_barrier): Same.
11149         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
11150         (rs6000_expand_atomic_exchange): Same.
11151         (rs6000_expand_atomic_op): Same.
11152         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
11153         SYNC variants cases from switch.
11154         (atomic_load): Same.
11155         (atomic_store): Same.
11157 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
11159         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
11160         CONST_INT for goto.
11162 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
11164         PR bootstrap/66448
11165         * dwarf2out.c (check_die): Check for common duplicate attributes.
11166         (add_location_or_const_value_attribute): Do not add duplicate
11167         attributes.
11168         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
11169         time around.
11170         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
11171         (gen_type_die_with_usage): Call check_die.
11172         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
11174 2015-06-11  Jason Merrill  <jason@redhat.com>
11176         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
11177         dies.
11179 2015-06-11  Marek Polacek  <polacek@redhat.com>
11181         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
11183 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
11185         PR bootstrap/66252
11186         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
11187         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
11188         (*addx_extend_sp32): Fix pasto.
11189         (*subx_extend): Rename into...
11190         (*subx_extend_sp32): ...this.
11191         (*adddi3_extend_sp32): Add earlyclobber.
11192         (*subdi3_insn_sp32): Likewise.
11193         (*subdi3_extend_sp32): Likewise.
11194         (*and_not_di_sp32): Likewise.
11195         (*or_not_di_sp32): Likewise.
11196         (*xor_not_di_sp32): Likewise.
11197         (*negdi2_sp32): Likewise.
11198         (*one_cmpldi2_sp32): Likewise.
11200 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
11202         * debug.h (struct gcc_debug_hooks): Add a
11203         register_main_translation_unit hook.
11204         * debug.c (do_nothing_debug_hooks): Provide a function for this
11205         new hook.
11206         * dbxout.c (dbx_debug_hooks): Likewise.
11207         * sdbout.c (sdb_debug_hooks): Likewise.
11208         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11209         * dwarf2out.c (main_translation_unit): New global variable.
11210         (dwarf2out_register_main_translation_unit): New function
11211         implementing the new hook.
11212         (dwarf2_debug_hooks): Assign
11213         dwarf2out_register_main_translation_unit to this new hook.
11214         (dwarf2out_init): Associate any main translation unit to
11215         comp_unit_die ().
11217 2015-06-11  Marek Polacek  <polacek@redhat.com>
11219         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
11221 2015-06-11  Marek Polacek  <polacek@redhat.com>
11223         * match.pd: Use single_use throughout.
11225 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11227         * config/arm/arm.c (arm_option_params_internal): When optimising
11228         for speed set max_insns_skipped when arm_restrict_it.
11230 2015-06-11  Christian Bruel  <christian.bruel@st.com>
11232         PR target/52144
11233         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
11234          macros in ...
11235         (arm_cpu_builtins): New function.
11236         (arm_pragma_target_parse): Call arm_cpu_builtins.
11237         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
11238         (arm_register_target_pragmas): Likewise.
11239         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
11240          Call arm_register_target_pragmas.
11241         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
11242         (arm_pragma_target_parse): Likewise.
11244 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
11246         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
11247         of the second operand.
11249 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
11251         PR target/66473
11252         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
11253         to prepare mask operand for AVX512 modes.
11255 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
11257         PR target/66474
11258         * doc/md.texi (Machine Constraints): Document that on the PowerPC
11259         if you use a constraint that targets a VSX register, you must use
11260         %x<n> in the template.
11262 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
11264         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
11265         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
11266         (define_insn "trap"): New definition.
11268 2015-06-10  Richard Biener  <rguenther@suse.de>
11270         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
11271         out from ...
11272         (vect_supported_load_permutation_p): ... here.  Handle
11273         supportable permutations in reductions.
11274         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
11275         for vectorizing strided group loads.
11277 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
11279         PR target/66470
11280         * config/i386/i386.c (ix86_split_long_move): For collisions
11281         involving direct tls segment refs, move the UNSPEC_TP possibly
11282         wrapped in ZERO_EXTEND out of the address for lea, to each of
11283         the memory loads.
11285 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11287         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
11288         dmb sy. Adjust tabs.
11290 2015-06-10  Tom de Vries  <tom@codesourcery.com>
11292         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
11294 2015-06-10  Martin Liska  <mliska@suse.cz>
11296         PR bootstrap/66471
11297         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
11298         all enum values in mem_alloc_origin.
11299         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
11300         name.
11301         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
11302         * bitmap.c (bitmap_register): Likewise.
11303         (dump_bitmap_statistics): Likewise.
11304         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
11305         (ggc_record_overhead): Likewise.
11306         * hash-map.h: Likewise.
11307         * hash-set.h: Likewise.
11308         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
11309         * hash-table.h: Likewise.
11310         * vec.c (vec_prefix::register_overhead): Likewise.
11311         (vec_prefix::release_overhead): Likewise.
11312         (dump_vec_loc_statistics): Likewise.
11314 2015-06-09  Christian Bruel  <christian.bruel@st.com>
11316         PR target/52144
11317         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
11318         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
11319         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
11320         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
11321         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
11322         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
11323         (arm_valid_target_attribute_p): Likewise.
11324         (arm_set_current_function, arm_can_inline_p): Likewise.
11325         (arm_valid_target_attribute_rec): Likewise.
11326         (arm_previous_fndecl): New variable.
11327         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
11328         (TARGET_CAN_INLINE_P): Define.
11329         (arm_asm_trampoline_template): Emit mode.
11330         (arm_file_start): Don't set unified syntax.
11331         (arm_declare_function_name): Set unified syntax and mode.
11332         (arm_option_override): Init target_option_default_node.
11333         and target_option_current_node.
11334         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
11335         (*call_symbol): Likewise.
11336         * doc/extend.texi: Document ARM/Thumb target attribute.
11337         * doc/invoke.texi: Likewise.
11339 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
11341         Revert:
11342         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
11343         PR rtl-optimization/64164
11344         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11345         * tree-ssa-copyrename.c: Removed.
11346         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11347         -ftree-coalesce-vars.
11348         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11349         * common.opt (ftree-copyrename): Ignore.
11350         (ftree-coalesce-inlined-vars): Likewise.
11351         * doc/invoke.texi: Remove the ignored options above.
11352         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11353         * tree-ssa-coalesce.h: ... here.
11354         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11355         headers required by it.
11356         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11357         across variables when flag_tree_coalesce_vars.  Check register
11358         use and promoted modes to allow coalescing.  Moved to
11359         tree-ssa-coalesce.c.
11360         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11361         with its member functions to tree-ssa-coalesce.c.
11362         (var_map_base_init): Likewise.  Renamed to
11363         compute_samebase_partition_bases.
11364         (partition_view_normal): Drop want_bases parameter.
11365         (partition_view_bitmap): Likewise.
11366         * tree-ssa-live.h: Adjust declarations.
11367         * tree-ssa-coalesce.c: Include explow.h.
11368         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11369         default defs at the entry point.
11370         (dump_part_var_map): New.
11371         (compute_optimized_partition_bases): New, called by...
11372         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11373         of compute_samebase_partition_bases.  Adjust.
11374         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11375         * cfgexpand.c (leader_merge): New.
11376         (get_rtl_for_parm_ssa_default_def): New.
11377         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11378         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11379         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11380         redundant MEM attr setting.
11381         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11382         from...
11383         (expand_one_stack_var): ... this.  New wrapper to check and
11384         skip already expanded SSA partitions.
11385         (record_alignment_for_reg_var): New, factored out of...
11386         (expand_one_var): ... this.
11387         (expand_one_ssa_partition): New.
11388         (adjust_one_expanded_partition_var): New.
11389         (expand_one_register_var): Check and skip already expanded SSA
11390         partitions.
11391         (expand_used_vars): Don't create DECLs for anonymous SSA
11392         names.  Expand all SSA partitions, then adjust all SSA names.
11393         (pass::execute): Replace the loops that set
11394         SA.partition_to_pseudo from partition leaders and cleared
11395         DECL_RTL for multi-location variables, and that which used to
11396         rename vars and set attrs, with one that clears DECL_RTL and
11397         checks that PARMs and RESULTs default_defs match DECL_RTL.
11398         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11399         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11400         * explow.c (promote_ssa_mode): New.
11401         * explow.h (promote_ssa_mode): Declare.
11402         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11403         * function.c: Include cfgexpand.h.
11404         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11405         (use_register_for_parm_decl): Wrapper for the above to
11406         special-case the result_ptr.
11407         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11408         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11409         multiple locations.
11410         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11411         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11412         (assign_parm_setup_block): Prefer SSA-assigned location.
11413         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11414         if stack_parm is NULL.
11415         (assign_parm_setup_stack): Prefer SSA-assigned location.
11416         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11417         rtl before testing for pointer bounds.  Special-case result_ptr.
11418         (expand_function_start): Maybe reset DECL_RTL of result.
11419         Prefer SSA-assigned location for result and static chain.
11420         Factor out DECL_RESULT and SET_DECL_RTL.
11421         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11422         anonymous SSA names.  Use promote_ssa_mode.
11423         (get_temp_reg): Likewise.
11424         (remove_ssa_form): Adjust.
11425         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11426         and get its reg_usage for reg invalidation.
11427         (compute_bb_dataflow): Pass it insn.
11428         (emit_notes_in_bb): Likewise.
11429         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
11430         fail assert on conversion between unsigned types.
11432 2015-06-09  Tom de Vries  <tom@codesourcery.com>
11434         PR tree-optimization/65460
11435         * omp-low.c (expand_omp_target): Set parallelized_function on
11436         cgraph_node for child_fn.
11438 2015-06-09  Tom de Vries  <tom@codesourcery.com>
11440         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
11441         parallelized_function before add_new_function.
11443 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
11445         * gcc-plugin.h: Move decls to plugin.h and include it.
11446         * plugin.h: Relocate decls from gcc-plugin.h
11447         * ggc-page.c: Include required header files.
11448         * passes.c: Likewise.
11449         * cgraphunit.c: Likewise.
11451 2015-06-09  Tom de Vries  <tom@codesourcery.com>
11453         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
11455 2015-06-09  Jason Merrill  <jason@redhat.com>
11457         PR bootstrap/66448
11458         * toplev.c (check_global_declaration): Don't warn about a clone.
11460 2015-06-09  Marek Polacek  <polacek@redhat.com>
11462         PR tree-optimization/66299
11463         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
11464         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
11465         patterns.
11467 2015-06-09  Richard Biener  <rguenther@suse.de>
11469         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
11470         (vect_analyze_slp_instance): Instead do not falsely drop
11471         load permutations.
11473 2015-06-09  Richard Biener  <rguenther@suse.de>
11475         PR middle-end/66423
11476         * match.pd: Handle A % (unsigned)(1 << B).
11478 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
11480         * varasm.c (output_object_block_htab): Remove.
11481         (output_object_block_compare): New.
11482         (output_object_blocks): Sort named object_blocks before outputting
11483         them.
11485 2015-06-09  Richard Biener  <rguenther@suse.de>
11487         PR tree-optimization/66419
11488         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
11489         consider GROUP_GAP when detecting a perfect subchain.
11491 2015-06-09  Nick Clifton  <nickc@redhat.com>
11493         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
11494         place read only data in the .frodata section.
11496 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
11498         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
11499         (atomic_store<mode>): Likewise.
11501 2015-06-09  Richard Biener  <rguenther@suse.de>
11503         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
11505 2015-06-09  Richard Biener  <rguenther@suse.de>
11507         PR middle-end/66413
11508         * tree-inline.c (insert_init_debug_bind): Unshare value.
11510 2015-06-09  Richard Biener  <rguenther@suse.de>
11512         PR tree-optimization/66396
11513         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11514         Rename virtual operands.
11516 2015-06-09  Tom de Vries  <tom@codesourcery.com>
11518         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
11519         always return false.
11521 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
11523         PR rtl-optimization/64164
11524         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11525         * tree-ssa-copyrename.c: Removed.
11526         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11527         -ftree-coalesce-vars.
11528         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11529         * common.opt (ftree-copyrename): Ignore.
11530         (ftree-coalesce-inlined-vars): Likewise.
11531         * doc/invoke.texi: Remove the ignored options above.
11532         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11533         * tree-ssa-coalesce.h: ... here.
11534         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11535         headers required by it.
11536         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11537         across variables when flag_tree_coalesce_vars.  Check register
11538         use and promoted modes to allow coalescing.  Moved to
11539         tree-ssa-coalesce.c.
11540         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11541         with its member functions to tree-ssa-coalesce.c.
11542         (var_map_base_init): Likewise.  Renamed to
11543         compute_samebase_partition_bases.
11544         (partition_view_normal): Drop want_bases parameter.
11545         (partition_view_bitmap): Likewise.
11546         * tree-ssa-live.h: Adjust declarations.
11547         * tree-ssa-coalesce.c: Include explow.h.
11548         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11549         default defs at the entry point.
11550         (dump_part_var_map): New.
11551         (compute_optimized_partition_bases): New, called by...
11552         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11553         of compute_samebase_partition_bases.  Adjust.
11554         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11555         * cfgexpand.c (leader_merge): New.
11556         (get_rtl_for_parm_ssa_default_def): New.
11557         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11558         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11559         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11560         redundant MEM attr setting.
11561         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11562         from...
11563         (expand_one_stack_var): ... this.  New wrapper to check and
11564         skip already expanded SSA partitions.
11565         (record_alignment_for_reg_var): New, factored out of...
11566         (expand_one_var): ... this.
11567         (expand_one_ssa_partition): New.
11568         (adjust_one_expanded_partition_var): New.
11569         (expand_one_register_var): Check and skip already expanded SSA
11570         partitions.
11571         (expand_used_vars): Don't create DECLs for anonymous SSA
11572         names.  Expand all SSA partitions, then adjust all SSA names.
11573         (pass::execute): Replace the loops that set
11574         SA.partition_to_pseudo from partition leaders and cleared
11575         DECL_RTL for multi-location variables, and that which used to
11576         rename vars and set attrs, with one that clears DECL_RTL and
11577         checks that PARMs and RESULTs default_defs match DECL_RTL.
11578         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11579         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11580         * explow.c (promote_ssa_mode): New.
11581         * explow.h (promote_ssa_mode): Declare.
11582         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11583         * function.c: Include cfgexpand.h.
11584         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11585         (use_register_for_parm_decl): Wrapper for the above to
11586         special-case the result_ptr.
11587         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11588         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11589         multiple locations.
11590         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11591         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11592         (assign_parm_setup_block): Prefer SSA-assigned location.
11593         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11594         if stack_parm is NULL.
11595         (assign_parm_setup_stack): Prefer SSA-assigned location.
11596         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11597         rtl before testing for pointer bounds.  Special-case result_ptr.
11598         (expand_function_start): Maybe reset DECL_RTL of result.
11599         Prefer SSA-assigned location for result and static chain.
11600         Factor out DECL_RESULT and SET_DECL_RTL.
11601         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11602         anonymous SSA names.  Use promote_ssa_mode.
11603         (get_temp_reg): Likewise.
11604         (remove_ssa_form): Adjust.
11605         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11606         and get its reg_usage for reg invalidation.
11607         (compute_bb_dataflow): Pass it insn.
11608         (emit_notes_in_bb): Likewise.
11609         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
11610         fail assert on conversion between unsigned types.
11612 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
11614         PR debug/58315
11615         * tree-inline.c (reset_debug_binding): New.
11616         (reset_debug_bindings): Likewise.
11617         (expand_call_inline): Call it.
11619 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
11621         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
11622         TYPE_STRING_FLAG.
11624 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
11626         * lto-streamer-out.c (lto_output_location): Stream
11627         reserved locations correctly.
11628         * lto-streamer-in.c (lto_output_location): Likewise.
11630 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
11632         * coretypes.h: Include hash-table.h and hash-set.h for host files.
11633         * ggc.h: Don't include statistics.h>
11634         * hash-map.h: Remove all includes.
11635         * hash-set.h: Likewise.
11636         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
11637         the include list. Remove <new>.
11638         * inchash.h: Remove all includes.
11639         * mem-stats.h: Likewise.
11640         * vec.h: No special processing for generators or ggc.
11641         * alias.c : Adjust include files.
11642         * alloc-pool.c : Likewise.
11643         * alloc-pool.h : Likewise.
11644         * asan.c : Likewise.
11645         * attribs.c : Likewise.
11646         * auto-inc-dec.c : Likewise.
11647         * auto-profile.c : Likewise.
11648         * bb-reorder.c : Likewise.
11649         * bitmap.c : Likewise.
11650         * bitmap.h : Likewise.
11651         * bt-load.c : Likewise.
11652         * builtins.c : Likewise.
11653         * caller-save.c : Likewise.
11654         * calls.c : Likewise.
11655         * ccmp.c : Likewise.
11656         * cfg.c : Likewise.
11657         * cfganal.c : Likewise.
11658         * cfgbuild.c : Likewise.
11659         * cfgcleanup.c : Likewise.
11660         * cfgexpand.c : Likewise.
11661         * cfghooks.c : Likewise.
11662         * cfgloop.c : Likewise.
11663         * cfgloop.h : Likewise.
11664         * cfgloopanal.c : Likewise.
11665         * cfgloopmanip.c : Likewise.
11666         * cfgrtl.c : Likewise.
11667         * cgraph.c : Likewise.
11668         * cgraphbuild.c : Likewise.
11669         * cgraphclones.c : Likewise.
11670         * cgraphunit.c : Likewise.
11671         * cilk-common.c : Likewise.
11672         * combine-stack-adj.c : Likewise.
11673         * combine.c : Likewise.
11674         * compare-elim.c : Likewise.
11675         * context.c : Likewise.
11676         * convert.c : Likewise.
11677         * coverage.c : Likewise.
11678         * cppbuiltin.c : Likewise.
11679         * cprop.c : Likewise.
11680         * cse.c : Likewise.
11681         * cselib.c : Likewise.
11682         * data-streamer-in.c : Likewise.
11683         * data-streamer-out.c : Likewise.
11684         * data-streamer.c : Likewise.
11685         * data-streamer.h : Likewise.
11686         * dbxout.c : Likewise.
11687         * dce.c : Likewise.
11688         * ddg.c : Likewise.
11689         * debug.c : Likewise.
11690         * df-core.c : Likewise.
11691         * df-problems.c : Likewise.
11692         * df-scan.c : Likewise.
11693         * df.h : Likewise.
11694         * dfp.c : Likewise.
11695         * dojump.c : Likewise.
11696         * dominance.c : Likewise.
11697         * domwalk.c : Likewise.
11698         * double-int.c : Likewise.
11699         * dse.c : Likewise.
11700         * dumpfile.c : Likewise.
11701         * dwarf2asm.c : Likewise.
11702         * dwarf2cfi.c : Likewise.
11703         * dwarf2out.c : Likewise.
11704         * emit-rtl.c : Likewise.
11705         * et-forest.c : Likewise.
11706         * except.c : Likewise.
11707         * except.h : Likewise.
11708         * explow.c : Likewise.
11709         * expmed.c : Likewise.
11710         * expr.c : Likewise.
11711         * final.c : Likewise.
11712         * fixed-value.c : Likewise.
11713         * fold-const.c : Likewise.
11714         * function.c : Likewise.
11715         * fwprop.c : Likewise.
11716         * gcc-plugin.h : Likewise.
11717         * gcc.c : Likewise.
11718         * gcse-common.c : Likewise.
11719         * gcse.c : Likewise.
11720         * genattrtab.c : Likewise.
11721         * genautomata.c : Likewise.
11722         * genconditions.c : Likewise.
11723         * genemit.c : Likewise.
11724         * generic-match-head.c : Likewise.
11725         * genextract.c : Likewise.
11726         * gengtype-state.c : Likewise.
11727         * gengtype.c : Likewise.
11728         * genhooks.c : Likewise.
11729         * genmatch.c : Likewise.
11730         * genmodes.c : Likewise.
11731         * genrecog.c : Likewise.
11732         * gensupport.c : Likewise.
11733         * ggc-common.c : Likewise.
11734         * ggc-internal.h : Likewise.
11735         * ggc-none.c : Likewise.
11736         * ggc-page.c : Likewise.
11737         * gimple-builder.c : Likewise.
11738         * gimple-expr.c : Likewise.
11739         * gimple-fold.c : Likewise.
11740         * gimple-iterator.c : Likewise.
11741         * gimple-low.c : Likewise.
11742         * gimple-match-head.c : Likewise.
11743         * gimple-pretty-print.c : Likewise.
11744         * gimple-ssa-isolate-paths.c : Likewise.
11745         * gimple-ssa-strength-reduction.c : Likewise.
11746         * gimple-ssa.h : Likewise.
11747         * gimple-streamer-in.c : Likewise.
11748         * gimple-streamer-out.c : Likewise.
11749         * gimple-streamer.h : Likewise.
11750         * gimple-walk.c : Likewise.
11751         * gimple.c : Likewise.
11752         * gimplify-me.c : Likewise.
11753         * gimplify.c : Likewise.
11754         * godump.c : Likewise.
11755         * graph.c : Likewise.
11756         * graphds.c : Likewise.
11757         * graphite-blocking.c : Likewise.
11758         * graphite-dependences.c : Likewise.
11759         * graphite-interchange.c : Likewise.
11760         * graphite-isl-ast-to-gimple.c : Likewise.
11761         * graphite-optimize-isl.c : Likewise.
11762         * graphite-poly.c : Likewise.
11763         * graphite-scop-detection.c : Likewise.
11764         * graphite-sese-to-poly.c : Likewise.
11765         * graphite.c : Likewise.
11766         * haifa-sched.c : Likewise.
11767         * hard-reg-set.h : Likewise.
11768         * hw-doloop.c : Likewise.
11769         * ifcvt.c : Likewise.
11770         * inchash.c : Likewise.
11771         * incpath.c : Likewise.
11772         * init-regs.c : Likewise.
11773         * input.c : Likewise.
11774         * internal-fn.c : Likewise.
11775         * ipa-chkp.c : Likewise.
11776         * ipa-comdats.c : Likewise.
11777         * ipa-cp.c : Likewise.
11778         * ipa-devirt.c : Likewise.
11779         * ipa-icf-gimple.c : Likewise.
11780         * ipa-icf.c : Likewise.
11781         * ipa-inline-analysis.c : Likewise.
11782         * ipa-inline-transform.c : Likewise.
11783         * ipa-inline.c : Likewise.
11784         * ipa-polymorphic-call.c : Likewise.
11785         * ipa-profile.c : Likewise.
11786         * ipa-prop.c : Likewise.
11787         * ipa-pure-const.c : Likewise.
11788         * ipa-ref.c : Likewise.
11789         * ipa-reference.c : Likewise.
11790         * ipa-split.c : Likewise.
11791         * ipa-utils.c : Likewise.
11792         * ipa-visibility.c : Likewise.
11793         * ipa.c : Likewise.
11794         * ira-build.c : Likewise.
11795         * ira-color.c : Likewise.
11796         * ira-conflicts.c : Likewise.
11797         * ira-costs.c : Likewise.
11798         * ira-emit.c : Likewise.
11799         * ira-lives.c : Likewise.
11800         * ira.c : Likewise.
11801         * jump.c : Likewise.
11802         * langhooks.c : Likewise.
11803         * lcm.c : Likewise.
11804         * libfuncs.h : Likewise.
11805         * lists.c : Likewise.
11806         * loop-doloop.c : Likewise.
11807         * loop-init.c : Likewise.
11808         * loop-invariant.c : Likewise.
11809         * loop-iv.c : Likewise.
11810         * loop-unroll.c : Likewise.
11811         * lower-subreg.c : Likewise.
11812         * lra-assigns.c : Likewise.
11813         * lra-coalesce.c : Likewise.
11814         * lra-constraints.c : Likewise.
11815         * lra-eliminations.c : Likewise.
11816         * lra-lives.c : Likewise.
11817         * lra-remat.c : Likewise.
11818         * lra-spills.c : Likewise.
11819         * lra.c : Likewise.
11820         * lto-cgraph.c : Likewise.
11821         * lto-compress.c : Likewise.
11822         * lto-opts.c : Likewise.
11823         * lto-section-in.c : Likewise.
11824         * lto-section-out.c : Likewise.
11825         * lto-streamer-in.c : Likewise.
11826         * lto-streamer-out.c : Likewise.
11827         * lto-streamer.c : Likewise.
11828         * lto-streamer.h : Likewise.
11829         * mcf.c : Likewise.
11830         * mode-switching.c : Likewise.
11831         * modulo-sched.c : Likewise.
11832         * omega.c : Likewise.
11833         * omp-low.c : Likewise.
11834         * optabs.c : Likewise.
11835         * opts-global.c : Likewise.
11836         * opts.h : Likewise.
11837         * passes.c : Likewise.
11838         * plugin.c : Likewise.
11839         * postreload-gcse.c : Likewise.
11840         * postreload.c : Likewise.
11841         * predict.c : Likewise.
11842         * print-rtl.c : Likewise.
11843         * print-tree.c : Likewise.
11844         * profile.c : Likewise.
11845         * read-md.c : Likewise.
11846         * read-md.h : Likewise.
11847         * read-rtl.c : Likewise.
11848         * real.c : Likewise.
11849         * realmpfr.c : Likewise.
11850         * recog.c : Likewise.
11851         * ree.c : Likewise.
11852         * reg-stack.c : Likewise.
11853         * regcprop.c : Likewise.
11854         * reginfo.c : Likewise.
11855         * regrename.c : Likewise.
11856         * regstat.c : Likewise.
11857         * reload.c : Likewise.
11858         * reload1.c : Likewise.
11859         * reorg.c : Likewise.
11860         * resource.c : Likewise.
11861         * rtl-chkp.c : Likewise.
11862         * rtl.c : Likewise.
11863         * rtl.h : Likewise.
11864         * rtlanal.c : Likewise.
11865         * rtlhash.c : Likewise.
11866         * rtlhash.h : Likewise.
11867         * rtlhooks.c : Likewise.
11868         * sanopt.c : Likewise.
11869         * sched-deps.c : Likewise.
11870         * sched-ebb.c : Likewise.
11871         * sched-rgn.c : Likewise.
11872         * sched-vis.c : Likewise.
11873         * sdbout.c : Likewise.
11874         * sel-sched-dump.c : Likewise.
11875         * sel-sched-ir.c : Likewise.
11876         * sel-sched-ir.h : Likewise.
11877         * sel-sched.c : Likewise.
11878         * sese.c : Likewise.
11879         * shrink-wrap.c : Likewise.
11880         * shrink-wrap.h : Likewise.
11881         * simplify-rtx.c : Likewise.
11882         * stack-ptr-mod.c : Likewise.
11883         * statistics.c : Likewise.
11884         * stmt.c : Likewise.
11885         * stor-layout.c : Likewise.
11886         * store-motion.c : Likewise.
11887         * stringpool.c : Likewise.
11888         * symtab.c : Likewise.
11889         * target-globals.c : Likewise.
11890         * targhooks.c : Likewise.
11891         * tlink.c : Likewise.
11892         * toplev.c : Likewise.
11893         * tracer.c : Likewise.
11894         * trans-mem.c : Likewise.
11895         * tree-affine.c : Likewise.
11896         * tree-affine.h : Likewise.
11897         * tree-browser.c : Likewise.
11898         * tree-call-cdce.c : Likewise.
11899         * tree-cfg.c : Likewise.
11900         * tree-cfgcleanup.c : Likewise.
11901         * tree-chkp-opt.c : Likewise.
11902         * tree-chkp.c : Likewise.
11903         * tree-chrec.c : Likewise.
11904         * tree-complex.c : Likewise.
11905         * tree-data-ref.c : Likewise.
11906         * tree-dfa.c : Likewise.
11907         * tree-diagnostic.c : Likewise.
11908         * tree-dump.c : Likewise.
11909         * tree-eh.c : Likewise.
11910         * tree-eh.h : Likewise.
11911         * tree-emutls.c : Likewise.
11912         * tree-hasher.h : Likewise.
11913         * tree-if-conv.c : Likewise.
11914         * tree-inline.c : Likewise.
11915         * tree-inline.h : Likewise.
11916         * tree-into-ssa.c : Likewise.
11917         * tree-iterator.c : Likewise.
11918         * tree-loop-distribution.c : Likewise.
11919         * tree-nested.c : Likewise.
11920         * tree-nrv.c : Likewise.
11921         * tree-object-size.c : Likewise.
11922         * tree-outof-ssa.c : Likewise.
11923         * tree-parloops.c : Likewise.
11924         * tree-phinodes.c : Likewise.
11925         * tree-predcom.c : Likewise.
11926         * tree-pretty-print.c : Likewise.
11927         * tree-profile.c : Likewise.
11928         * tree-scalar-evolution.c : Likewise.
11929         * tree-sra.c : Likewise.
11930         * tree-ssa-address.c : Likewise.
11931         * tree-ssa-alias.c : Likewise.
11932         * tree-ssa-ccp.c : Likewise.
11933         * tree-ssa-coalesce.c : Likewise.
11934         * tree-ssa-copy.c : Likewise.
11935         * tree-ssa-copyrename.c : Likewise.
11936         * tree-ssa-dce.c : Likewise.
11937         * tree-ssa-dom.c : Likewise.
11938         * tree-ssa-dse.c : Likewise.
11939         * tree-ssa-forwprop.c : Likewise.
11940         * tree-ssa-ifcombine.c : Likewise.
11941         * tree-ssa-live.c : Likewise.
11942         * tree-ssa-loop-ch.c : Likewise.
11943         * tree-ssa-loop-im.c : Likewise.
11944         * tree-ssa-loop-ivcanon.c : Likewise.
11945         * tree-ssa-loop-ivopts.c : Likewise.
11946         * tree-ssa-loop-manip.c : Likewise.
11947         * tree-ssa-loop-niter.c : Likewise.
11948         * tree-ssa-loop-prefetch.c : Likewise.
11949         * tree-ssa-loop-unswitch.c : Likewise.
11950         * tree-ssa-loop.c : Likewise.
11951         * tree-ssa-math-opts.c : Likewise.
11952         * tree-ssa-operands.c : Likewise.
11953         * tree-ssa-phiopt.c : Likewise.
11954         * tree-ssa-phiprop.c : Likewise.
11955         * tree-ssa-pre.c : Likewise.
11956         * tree-ssa-propagate.c : Likewise.
11957         * tree-ssa-reassoc.c : Likewise.
11958         * tree-ssa-sccvn.c : Likewise.
11959         * tree-ssa-scopedtables.c : Likewise.
11960         * tree-ssa-sink.c : Likewise.
11961         * tree-ssa-strlen.c : Likewise.
11962         * tree-ssa-structalias.c : Likewise.
11963         * tree-ssa-tail-merge.c : Likewise.
11964         * tree-ssa-ter.c : Likewise.
11965         * tree-ssa-threadedge.c : Likewise.
11966         * tree-ssa-threadupdate.c : Likewise.
11967         * tree-ssa-uncprop.c : Likewise.
11968         * tree-ssa-uninit.c : Likewise.
11969         * tree-ssa.c : Likewise.
11970         * tree-ssanames.c : Likewise.
11971         * tree-stdarg.c : Likewise.
11972         * tree-streamer-in.c : Likewise.
11973         * tree-streamer-out.c : Likewise.
11974         * tree-streamer.c : Likewise.
11975         * tree-streamer.h : Likewise.
11976         * tree-switch-conversion.c : Likewise.
11977         * tree-tailcall.c : Likewise.
11978         * tree-vect-data-refs.c : Likewise.
11979         * tree-vect-generic.c : Likewise.
11980         * tree-vect-loop-manip.c : Likewise.
11981         * tree-vect-loop.c : Likewise.
11982         * tree-vect-patterns.c : Likewise.
11983         * tree-vect-slp.c : Likewise.
11984         * tree-vect-stmts.c : Likewise.
11985         * tree-vectorizer.c : Likewise.
11986         * tree-vectorizer.h : Likewise.
11987         * tree-vrp.c : Likewise.
11988         * tree.c : Likewise.
11989         * tsan.c : Likewise.
11990         * ubsan.c : Likewise.
11991         * valtrack.c : Likewise.
11992         * valtrack.h : Likewise.
11993         * value-prof.c : Likewise.
11994         * var-tracking.c : Likewise.
11995         * varasm.c : Likewise.
11996         * varpool.c : Likewise.
11997         * vec.c: Likewise.
11998         * vmsdbgout.c : Likewise.
11999         * vtable-verify.c : Likewise.
12000         * vtable-verify.h : Likewise.
12001         * web.c : Likewise.
12002         * wide-int.cc : Likewise.
12003         * xcoffout.c : Likewise.
12004         * config/aarch64/aarch64-builtins.c : Likewise.
12005         * config/aarch64/aarch64.c : Likewise.
12006         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
12007         * config/alpha/alpha.c : Likewise.
12008         * config/arc/arc.c : Likewise.
12009         * config/arm/aarch-common.c : Likewise.
12010         * config/arm/arm-builtins.c : Likewise.
12011         * config/arm/arm-c.c : Likewise.
12012         * config/arm/arm.c : Likewise.
12013         * config/avr/avr-c.c : Likewise.
12014         * config/avr/avr-log.c : Likewise.
12015         * config/avr/avr.c : Likewise.
12016         * config/bfin/bfin.c : Likewise.
12017         * config/c6x/c6x.c : Likewise.
12018         * config/cr16/cr16.c : Likewise.
12019         * config/cris/cris.c : Likewise.
12020         * config/darwin-c.c : Likewise.
12021         * config/darwin.c : Likewise.
12022         * config/default-c.c : Likewise.
12023         * config/epiphany/epiphany.c : Likewise.
12024         * config/epiphany/mode-switch-use.c : Likewise.
12025         * config/epiphany/resolve-sw-modes.c : Likewise.
12026         * config/fr30/fr30.c : Likewise.
12027         * config/frv/frv.c : Likewise.
12028         * config/ft32/ft32.c : Likewise.
12029         * config/glibc-c.c : Likewise.
12030         * config/h8300/h8300.c : Likewise.
12031         * config/i386/i386-c.c : Likewise.
12032         * config/i386/i386.c : Likewise.
12033         * config/i386/msformat-c.c : Likewise.
12034         * config/i386/winnt-cxx.c : Likewise.
12035         * config/i386/winnt-stubs.c : Likewise.
12036         * config/i386/winnt.c : Likewise.
12037         * config/ia64/ia64-c.c : Likewise.
12038         * config/ia64/ia64.c : Likewise.
12039         * config/iq2000/iq2000.c : Likewise.
12040         * config/lm32/lm32.c : Likewise.
12041         * config/m32c/m32c-pragma.c : Likewise.
12042         * config/m32c/m32c.c : Likewise.
12043         * config/m32r/m32r.c : Likewise.
12044         * config/m68k/m68k.c : Likewise.
12045         * config/mcore/mcore.c : Likewise.
12046         * config/mep/mep-pragma.c : Likewise.
12047         * config/mep/mep.c : Likewise.
12048         * config/microblaze/microblaze-c.c : Likewise.
12049         * config/microblaze/microblaze.c : Likewise.
12050         * config/mips/mips.c : Likewise.
12051         * config/mmix/mmix.c : Likewise.
12052         * config/mn10300/mn10300.c : Likewise.
12053         * config/moxie/moxie.c : Likewise.
12054         * config/msp430/msp430-c.c : Likewise.
12055         * config/msp430/msp430.c : Likewise.
12056         * config/nds32/nds32-cost.c : Likewise.
12057         * config/nds32/nds32-fp-as-gp.c : Likewise.
12058         * config/nds32/nds32-intrinsic.c : Likewise.
12059         * config/nds32/nds32-isr.c : Likewise.
12060         * config/nds32/nds32-md-auxiliary.c : Likewise.
12061         * config/nds32/nds32-memory-manipulation.c : Likewise.
12062         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
12063         * config/nds32/nds32-predicates.c : Likewise.
12064         * config/nds32/nds32.c : Likewise.
12065         * config/nios2/nios2.c : Likewise.
12066         * config/nvptx/nvptx.c : Likewise.
12067         * config/pa/pa.c : Likewise.
12068         * config/pdp11/pdp11.c : Likewise.
12069         * config/rl78/rl78-c.c : Likewise.
12070         * config/rl78/rl78.c : Likewise.
12071         * config/rs6000/rs6000-c.c : Likewise.
12072         * config/rs6000/rs6000.c : Likewise.
12073         * config/rx/rx.c : Likewise.
12074         * config/s390/s390-c.c : Likewise.
12075         * config/s390/s390.c : Likewise.
12076         * config/sh/sh-c.c : Likewise.
12077         * config/sh/sh-mem.cc : Likewise.
12078         * config/sh/sh.c : Likewise.
12079         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
12080         * config/sh/sh_treg_combine.cc : Likewise.
12081         * config/sol2-c.c : Likewise.
12082         * config/sol2-cxx.c : Likewise.
12083         * config/sol2-stubs.c : Likewise.
12084         * config/sol2.c : Likewise.
12085         * config/sparc/sparc-c.c : Likewise.
12086         * config/sparc/sparc.c : Likewise.
12087         * config/spu/spu-c.c : Likewise.
12088         * config/spu/spu.c : Likewise.
12089         * config/stormy16/stormy16.c : Likewise.
12090         * config/tilegx/mul-tables.c : Likewise.
12091         * config/tilegx/tilegx-c.c : Likewise.
12092         * config/tilegx/tilegx.c : Likewise.
12093         * config/tilepro/mul-tables.c : Likewise.
12094         * config/tilepro/tilepro-c.c : Likewise.
12095         * config/tilepro/tilepro.c : Likewise.
12096         * config/v850/v850-c.c : Likewise.
12097         * config/v850/v850.c : Likewise.
12098         * config/vax/vax.c : Likewise.
12099         * config/visium/visium.c : Likewise.
12100         * config/vms/vms-c.c : Likewise.
12101         * config/vms/vms.c : Likewise.
12102         * config/vxworks.c : Likewise.
12103         * config/winnt-c.c : Likewise.
12104         * config/xtensa/xtensa.c : Likewise.
12106 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
12108         PR lto/65378
12109         * ipa-utils.h (warn_types_mismatch): Update prototype.
12110         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
12111         parameters.
12112         (type_mismatch_p): New function.
12113         (warn_types_mismatch): Reorg to work better on non-C++ types.
12114         (odr_types_equivalent_p): Add loc1/loc2 parameters.
12115         (add_type_duplicate): Update.
12117 2015-06-08  Tom de Vries  <tom@codesourcery.com>
12119         PR rtl-optimization/66444
12120         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
12121         call_used_regs.
12123 2015-06-08  Richard Biener  <rguenther@suse.de>
12125         PR tree-optimization/66422
12126         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
12127         block after inserted gcc_unreachable.
12129 2015-06-08  Nick Clifton  <nickc@redhat.com>
12131         * config/rx/rx.c (rx_function_value): Do not promote vector types.
12132         (rx_promote_function_mode): Likewise.
12133         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
12135 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
12137         * genattrtab.c (insn_alternatives): Change type from int *
12138         to uint64_t *.
12139         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
12140         (get_attr_value): Change type of num_alt to uint64_t.
12141         (compute_alternative_mask): Change return type from
12142         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
12143         (make_alternative_compare, mk_attr_alt): Change argument type
12144         from int to uint64_t.
12145         (simplify_test_exp): Change type of i from int to uint64_t.
12146         Shift ((uint64_t) 1) instead of 1 up.
12147         (main): Adjust oballocvec first argument from int to uint64_t.
12148         Shift ((uint64_t) 1) instead of 1 up.
12150 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
12152         PR other/65366
12153         * gdbhooks.py: Import sys.
12154         (intptr): New function.  Replace int(...) by intptr(...).
12156 2015-06-08  Richard Biener  <rguenther@suse.de>
12158         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
12159         adjustment for gaps at the end of a SLP load group properly.
12160         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
12161         all permutations we can generate.
12162         (vect_transform_slp_perm_load): Use the correct group-size.
12164 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
12166         * genmatch.c (expr::gen_transform): For conditions, guess the type
12167         from the second operand.
12169 2015-06-08  Tom de Vries  <tom@codesourcery.com>
12171         PR tree-optimization/66442
12172         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
12173         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
12174         if the loop latch is not a singleton.  Use
12175         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
12177 2015-06-08  Marek Polacek  <polacek@redhat.com>
12179         PR sanitizer/66452
12180         * toplev.c (check_global_declaration): Don't warn about artificial
12181         decls.
12183 2015-06-08  Tom de Vries  <tom@codesourcery.com>
12185         PR tree-optimization/66436
12186         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
12187         dump file.
12188         * gimplify.c: Add tree-dump.h include.
12189         (gimplify_function_tree): Dump function to gimple dump file.
12190         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
12191         dump file.
12193 2015-06-08  Tom de Vries  <tom@codesourcery.com>
12195         PR tree-optimization/66435
12196         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
12197         function.
12199 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
12201         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
12202         of ptr_type_node to not be ptr_to_node.
12203         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
12204         TREE_TYPE of pointers.
12205         * gimple-expr.c (useless_type_conversion): Reorder the check for
12206         function pointers and TYPE_CANONICAL.
12208 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
12210         PR bootstrap/66319
12211         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
12212         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
12213         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
12214         later.
12215         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
12216         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
12217         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
12218         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
12219         and non iso if unix2003.
12221 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
12223         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
12225 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
12227         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
12228         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
12229         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
12230         except.c, final.c, function.c, gcse-common.c, genemit.c,
12231         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
12232         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
12233         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
12234         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
12235         more derived ones.
12237 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
12239         * combine.c (combine_split_insns): Remove cast.
12240         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
12241         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
12242         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
12243         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
12244         * genemit.c (gen_split): Change return type of generated functions to
12245         rtx_insn.
12246         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
12247         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
12248         gen_peephole2_* functions.
12249         (print_subroutine, main): Likewise.
12250         * recog.c (peephole2_optimize): Remove cast.
12251         (peep2_next_insn): Promote return type to rtx_insn.
12252         * recog.h (peep2_next_insn): Fix prototype.
12253         * rtl.h (try_split, split_insns): Likewise.
12255 2015-06-06  DJ Delorie  <dj@redhat.com>
12257         * config/msp430/msp430.c (msp430_asm_integer): Support addition
12258         and subtraction too.
12260 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
12262         PR target/66410
12263         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
12264         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
12265         instead of Snd.  Disparage Sid/z alternative with '^'.
12267 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
12269         * dwarf2out.c: Remove deferred_locations*.
12270         (dwarf2_debug_hooks): Add early_finish hook.
12271         Remove global_decl hook.
12272         Add early_global_decl and late_global_decl hook.
12273         New global early_dwarf.
12274         New structure set_early_dwarf.
12275         (output_die): Indicate whether a DIE was generated early
12276         when generating assembly with -dA.
12277         (struct limbo_die_struct): Document created_for field.
12278         Remove file_table_last_lookup.
12279         (remove_AT): Return TRUE if successful.
12280         (remove_child_TAG): Clear die_parent.
12281         (reparent_child): New function abstracted from...
12282         (splice_child_die): ...here.
12283         (new_die): ICE if a DIE ends up in limbo too late.
12284         (check_die): New.
12285         (defer_location): Remove.
12286         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
12287         (fill_variable_array_bounds): New.
12288         (decl_start_label): Call fill_variable_array_bounds.
12289         (gen_formal_parameter_die): Rewrite to reuse previously generated
12290         DIEs.
12291         (gen_subprogram_die): Same.
12292         (gen_variable_die): Same.
12293         (gen_const_die): Same.
12294         (gen_label_die): Same.
12295         (gen_lexical_block_die): Same.
12296         (decl_will_get_specification_p): New.
12297         (local_function_static): New.
12298         (gen_struct_or_union_type_die): Fill in variable-length fields.
12299         (gen_typedef_die): Fill in variable-length typedefs.
12300         (gen_tagged_type_die): Gracefully return on error_mark_node.
12301         Handle re-entrancy.
12302         (gen_type_die_with_usage): Handle variable-length types.
12303         Remove duplicate code for ARRAY_TYPE case.
12304         (process_scope_var): Only process imported modules during early
12305         dwarf.
12306         (dwarf2out_early_global_decl): New.
12307         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
12308         (dwarf2out_type_decl): Set early_dwarf while calling
12309         dwarf2out_decl.
12310         (dwarf2out_decl): Verify that we did not recreate a previously
12311         generated DIE.
12312         Do not return on DECL_EXTERNALs in VAR_DECLs.
12313         Abstract some code to local_function_static.
12314         (lookup_filename): Remove use of file_table_last_lookup.
12315         Gracefully exit on missing file_name.
12316         (dwarf2out_finish): Verify limbo list.
12317         Remove deferred_locations_list use.
12318         Move deferred_asm_name and limbo flushing to...
12319         (dwarf2out_early_finish): ...here.  New.
12320         (dwarf2out_c_finalize): Remove set of deferred_location_list,
12321         deferred_asm_name, and file_table_last_lookup.
12322         * cgraph.h (referred_to_p): Add default argument.
12323         * cgraphunit.c (referred_to_p): Add and handle include_self
12324         argument.
12325         (analyze_functions): Add first_time argument.
12326         Call check_global_declaration for all symbols.
12327         Call late_global_decl for nodes for moribund nodes.
12328         (finalize_compilation_unit): Add new argument to
12329         analyze_functions.
12330         Call early_global_decl for functions.
12331         Call early_finish debug hook.
12332         * dbxout.c (dbxout_early_global_decl): New.
12333         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
12334         (dbx_debug_hooks): Add new hooks.
12335         (xcoff_debug_hooks): Same.
12336         * debug.c (do_nothing_debug_hooks): Add early_finish field.
12337         Add early and late debug hooks.
12338         Remove global_decl hook.
12339         * debug.h (struct gcc_debug_hooks): Add early_finish,
12340         early_global_decl, and late_global_decl fields.
12341         Remove global_decl field.
12342         Document gcc_debug_hooks.
12343         * gengtype.c (output_typename): Remove.
12344         * godump.c (go_early_global_decl): New.
12345         (go_late_global_decl): New.
12346         (go_global_decl): Remove.
12347         (dump_go_spec_init): Remove global_decl.  Add
12348         {early,late}_global_decl.
12349         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
12350         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
12351         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
12352         (write_global_declarations): Remove.
12353         (global_decl_processing): New.
12354         * langhooks.h (struct lang_hooks_for_decls): Remove
12355         final_write_globals field.
12356         Add post_compilation_parsing_cleanups field.
12357         * passes.c (rest_of_decl_compilation): Call early_global_decl.
12358         * sdbout.c: Add early and late_global_decl hooks.  Remove
12359         sdbout_global_decl hook.
12360         Add early_finish field for sdb_debug_hooks.
12361         (sdbout_global_decl): Remove.
12362         (sdbout_early_global_decl): New.
12363         (sdbout_late_global_decl): New.
12364         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
12365         * toplev.c (check_global_declaration): Rename from
12366         check_global_declaration_1.
12367         Adapt to use symtab infrastructure.
12368         (check_global_declarations): Remove.
12369         (emit_debug_global_declarations): Remove.
12370         (compile_file): Remove call to final_write_globals langhook.
12371         Run the actual compilation process.
12372         Perform any post compilation parser cleanups.
12373         Generate late debug info.
12374         * toplev.h (check_global_declaration): New.
12375         (check_global_declaration_1): Remove.
12376         (check_global_declarations): Remove.
12377         (write_global_declarations): Remove.
12378         (emit_debug_global_declarations): Remove.
12379         (global_decl_processing): New.
12380         * tree-core.h (struct tree_block): Add DIE field.
12381         * tree.h (BLOCK_DIE): New.
12382         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
12383         throughout.
12384         (vmsdbgout_early_global_decl): New.
12385         (vmsdbgout_late_global_decl): New.
12386         Add early_finish debug hook field to vmsdbg_debug_hooks.
12387         Remove vmsdbgout_decl to vmsdbgout_function_decl.
12388         Add early and late_global_decl debug hooks.
12390 2015-06-05  Julian Brown  <julian@codesourcery.com>
12391             Sandra Loosemore  <sandra@codesourcery.com>
12393         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
12394         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
12395         to print-sysroot-suffix.sh script.
12397 2015-06-05  Tom de Vries  <tom@codesourcery.com>
12399         merge from gomp4 branch:
12400         2015-05-28  Tom de Vries  <tom@codesourcery.com>
12402         PR tree-optimization/65443
12403         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
12404         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
12405         (try_transform_to_exit_first_loop_alt): New function.
12406         (transform_to_exit_first_loop): Use
12407         try_transform_to_exit_first_loop_alt.
12409 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
12411         * builtins.c (expand_builtin_atomic_compare_exchange): Call
12412         emit_cmp_and_jump_insns with the mode of target.
12414 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12416         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
12418 2015-06-04  DJ Delorie  <dj@redhat.com>
12420         * config/msp430/msp430.md (movsi_s): New.  Special case for
12421         storing a 20-bit symbol into a 32-bit register.
12422         * config/msp430/msp430.c (msp430_subreg): Add support for it.
12423         * config/msp430/predicates.md (msp430_symbol_operand): New.
12425 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
12427         * c-family/c-common.c (noplt): New attribute.
12428         (handle_noplt_attribute): New handler.
12429         * calls.c (prepare_call_address): Check for noplt
12430         attribute.
12431         * config/i386/i386.c (ix86_expand_call): Check
12432         for noplt attribute.
12433         (ix86_nopic_noplt_attribute_p): New function.
12434         (ix86_output_call_insn): Output indirect call for non-pic
12435         no plt calls.
12436         * doc/extend.texi (noplt): Document new attribute.
12437         * doc/invoke.texi: Document new attribute.
12439 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
12441         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
12442         real.h, and fixed-value.h when included in host source files.
12443         * double-int.h: Remove redundant #includes listed above.
12444         * fixed-value.h: Likewise.
12445         * real.h: Likewise.
12446         * wide-int.h: Likewise.
12447         * inchash.h: Likewise.
12448         * rtl.h: Add some include files When included from a generator file.
12449         * target.h: Remove wide-int.h and insn-modes.h from the include list.
12450         * internal-fn.h: Don't include coretypes.h.
12451         * alias.c: Adjust includes for restructured coretypes.h.
12452         * asan.c: Likewise.
12453         * attribs.c: Likewise.
12454         * auto-inc-dec.c: Likewise.
12455         * auto-profile.c: Likewise.
12456         * bb-reorder.c: Likewise.
12457         * bt-load.c: Likewise.
12458         * builtins.c: Likewise.
12459         * caller-save.c: Likewise.
12460         * calls.c: Likewise.
12461         * ccmp.c: Likewise.
12462         * cfg.c: Likewise.
12463         * cfganal.c: Likewise.
12464         * cfgbuild.c: Likewise.
12465         * cfgcleanup.c: Likewise.
12466         * cfgexpand.c: Likewise.
12467         * cfghooks.c: Likewise.
12468         * cfgloop.c: Likewise.
12469         * cfgloop.h: Likewise.
12470         * cfgloopanal.c: Likewise.
12471         * cfgloopmanip.c: Likewise.
12472         * cfgrtl.c: Likewise.
12473         * cgraph.c: Likewise.
12474         * cgraphbuild.c: Likewise.
12475         * cgraphclones.c: Likewise.
12476         * cgraphunit.c: Likewise.
12477         * cilk-common.c: Likewise.
12478         * combine-stack-adj.c: Likewise.
12479         * combine.c: Likewise.
12480         * compare-elim.c: Likewise.
12481         * convert.c: Likewise.
12482         * coverage.c: Likewise.
12483         * cppbuiltin.c: Likewise.
12484         * cprop.c: Likewise.
12485         * cse.c: Likewise.
12486         * cselib.c: Likewise.
12487         * data-streamer-in.c: Likewise.
12488         * data-streamer-out.c: Likewise.
12489         * data-streamer.c: Likewise.
12490         * dbxout.c: Likewise.
12491         * dce.c: Likewise.
12492         * ddg.c: Likewise.
12493         * debug.c: Likewise.
12494         * df-core.c: Likewise.
12495         * df-problems.c: Likewise.
12496         * df-scan.c: Likewise.
12497         * df.h: Likewise.
12498         * dfp.c: Likewise.
12499         * dojump.c: Likewise.
12500         * dominance.c: Likewise.
12501         * domwalk.c: Likewise.
12502         * double-int.c: Likewise.
12503         * dse.c: Likewise.
12504         * dumpfile.c: Likewise.
12505         * dwarf2asm.c: Likewise.
12506         * dwarf2cfi.c: Likewise.
12507         * dwarf2out.c: Likewise.
12508         * dwarf2out.h: Likewise.
12509         * emit-rtl.c: Likewise.
12510         * et-forest.c: Likewise.
12511         * except.c: Likewise.
12512         * explow.c: Likewise.
12513         * expmed.c: Likewise.
12514         * expr.c: Likewise.
12515         * final.c: Likewise.
12516         * fixed-value.c: Likewise.
12517         * fold-const.c: Likewise.
12518         * function.c: Likewise.
12519         * fwprop.c: Likewise.
12520         * gcc-plugin.h: Likewise.
12521         * gcse.c: Likewise.
12522         * generic-match-head.c: Likewise.
12523         * ggc-page.c: Likewise.
12524         * gimple-builder.c: Likewise.
12525         * gimple-expr.c: Likewise.
12526         * gimple-fold.c: Likewise.
12527         * gimple-iterator.c: Likewise.
12528         * gimple-low.c: Likewise.
12529         * gimple-match-head.c: Likewise.
12530         * gimple-pretty-print.c: Likewise.
12531         * gimple-ssa-isolate-paths.c: Likewise.
12532         * gimple-ssa-strength-reduction.c: Likewise.
12533         * gimple-streamer-in.c: Likewise.
12534         * gimple-streamer-out.c: Likewise.
12535         * gimple-streamer.h: Likewise.
12536         * gimple-walk.c: Likewise.
12537         * gimple.c: Likewise.
12538         * gimplify-me.c: Likewise.
12539         * gimplify.c: Likewise.
12540         * godump.c: Likewise.
12541         * graph.c: Likewise.
12542         * graphite-blocking.c: Likewise.
12543         * graphite-dependences.c: Likewise.
12544         * graphite-interchange.c: Likewise.
12545         * graphite-isl-ast-to-gimple.c: Likewise.
12546         * graphite-optimize-isl.c: Likewise.
12547         * graphite-poly.c: Likewise.
12548         * graphite-scop-detection.c: Likewise.
12549         * graphite-sese-to-poly.c: Likewise.
12550         * graphite.c: Likewise.
12551         * haifa-sched.c: Likewise.
12552         * hooks.h: Likewise.
12553         * hw-doloop.c: Likewise.
12554         * ifcvt.c: Likewise.
12555         * incpath.c: Likewise.
12556         * init-regs.c: Likewise.
12557         * internal-fn.c: Likewise.
12558         * ipa-chkp.c: Likewise.
12559         * ipa-comdats.c: Likewise.
12560         * ipa-cp.c: Likewise.
12561         * ipa-devirt.c: Likewise.
12562         * ipa-icf-gimple.c: Likewise.
12563         * ipa-icf.c: Likewise.
12564         * ipa-inline-analysis.c: Likewise.
12565         * ipa-inline-transform.c: Likewise.
12566         * ipa-inline.c: Likewise.
12567         * ipa-polymorphic-call.c: Likewise.
12568         * ipa-profile.c: Likewise.
12569         * ipa-prop.c: Likewise.
12570         * ipa-pure-const.c: Likewise.
12571         * ipa-ref.c: Likewise.
12572         * ipa-reference.c: Likewise.
12573         * ipa-split.c: Likewise.
12574         * ipa-utils.c: Likewise.
12575         * ipa-visibility.c: Likewise.
12576         * ipa.c: Likewise.
12577         * ira-build.c: Likewise.
12578         * ira-color.c: Likewise.
12579         * ira-conflicts.c: Likewise.
12580         * ira-costs.c: Likewise.
12581         * ira-emit.c: Likewise.
12582         * ira-lives.c: Likewise.
12583         * ira.c: Likewise.
12584         * jump.c: Likewise.
12585         * langhooks.c: Likewise.
12586         * lcm.c: Likewise.
12587         * loop-doloop.c: Likewise.
12588         * loop-init.c: Likewise.
12589         * loop-invariant.c: Likewise.
12590         * loop-iv.c: Likewise.
12591         * loop-unroll.c: Likewise.
12592         * lower-subreg.c: Likewise.
12593         * lra-assigns.c: Likewise.
12594         * lra-coalesce.c: Likewise.
12595         * lra-constraints.c: Likewise.
12596         * lra-eliminations.c: Likewise.
12597         * lra-lives.c: Likewise.
12598         * lra-remat.c: Likewise.
12599         * lra-spills.c: Likewise.
12600         * lra.c: Likewise.
12601         * lto-cgraph.c: Likewise.
12602         * lto-compress.c: Likewise.
12603         * lto-opts.c: Likewise.
12604         * lto-section-in.c: Likewise.
12605         * lto-section-out.c: Likewise.
12606         * lto-streamer-in.c: Likewise.
12607         * lto-streamer-out.c: Likewise.
12608         * lto-streamer.c: Likewise.
12609         * mcf.c: Likewise.
12610         * mode-switching.c: Likewise.
12611         * modulo-sched.c: Likewise.
12612         * omega.c: Likewise.
12613         * omp-low.c: Likewise.
12614         * optabs.c: Likewise.
12615         * opts-global.c: Likewise.
12616         * passes.c: Likewise.
12617         * plugin.c: Likewise.
12618         * postreload-gcse.c: Likewise.
12619         * postreload.c: Likewise.
12620         * predict.c: Likewise.
12621         * print-rtl.c: Likewise.
12622         * print-tree.c: Likewise.
12623         * profile.c: Likewise.
12624         * real.c: Likewise.
12625         * realmpfr.c: Likewise.
12626         * realmpfr.h: Likewise.
12627         * recog.c: Likewise.
12628         * ree.c: Likewise.
12629         * reg-stack.c: Likewise.
12630         * regcprop.c: Likewise.
12631         * reginfo.c: Likewise.
12632         * regrename.c: Likewise.
12633         * regs.h: Likewise.
12634         * regstat.c: Likewise.
12635         * reload.c: Likewise.
12636         * reload1.c: Likewise.
12637         * reorg.c: Likewise.
12638         * resource.c: Likewise.
12639         * rtl-chkp.c: Likewise.
12640         * rtlanal.c: Likewise.
12641         * rtlhooks.c: Likewise.
12642         * sanopt.c: Likewise.
12643         * sched-deps.c: Likewise.
12644         * sched-ebb.c: Likewise.
12645         * sched-rgn.c: Likewise.
12646         * sched-vis.c: Likewise.
12647         * sdbout.c: Likewise.
12648         * sel-sched-dump.c: Likewise.
12649         * sel-sched-ir.c: Likewise.
12650         * sel-sched.c: Likewise.
12651         * sese.c: Likewise.
12652         * shrink-wrap.c: Likewise.
12653         * shrink-wrap.h: Likewise.
12654         * simplify-rtx.c: Likewise.
12655         * stack-ptr-mod.c: Likewise.
12656         * statistics.c: Likewise.
12657         * stmt.c: Likewise.
12658         * stor-layout.c: Likewise.
12659         * store-motion.c: Likewise.
12660         * stringpool.c: Likewise.
12661         * symtab.c: Likewise.
12662         * target-globals.c: Likewise.
12663         * targhooks.c: Likewise.
12664         * toplev.c: Likewise.
12665         * tracer.c: Likewise.
12666         * trans-mem.c: Likewise.
12667         * tree-affine.c: Likewise.
12668         * tree-affine.h: Likewise.
12669         * tree-browser.c: Likewise.
12670         * tree-call-cdce.c: Likewise.
12671         * tree-cfg.c: Likewise.
12672         * tree-cfgcleanup.c: Likewise.
12673         * tree-chkp-opt.c: Likewise.
12674         * tree-chkp.c: Likewise.
12675         * tree-chrec.c: Likewise.
12676         * tree-complex.c: Likewise.
12677         * tree-data-ref.c: Likewise.
12678         * tree-dfa.c: Likewise.
12679         * tree-diagnostic.c: Likewise.
12680         * tree-dump.c: Likewise.
12681         * tree-eh.c: Likewise.
12682         * tree-emutls.c: Likewise.
12683         * tree-if-conv.c: Likewise.
12684         * tree-inline.c: Likewise.
12685         * tree-into-ssa.c: Likewise.
12686         * tree-iterator.c: Likewise.
12687         * tree-loop-distribution.c: Likewise.
12688         * tree-nested.c: Likewise.
12689         * tree-nrv.c: Likewise.
12690         * tree-object-size.c: Likewise.
12691         * tree-outof-ssa.c: Likewise.
12692         * tree-parloops.c: Likewise.
12693         * tree-phinodes.c: Likewise.
12694         * tree-predcom.c: Likewise.
12695         * tree-pretty-print.c: Likewise.
12696         * tree-pretty-print.h: Likewise.
12697         * tree-profile.c: Likewise.
12698         * tree-scalar-evolution.c: Likewise.
12699         * tree-sra.c: Likewise.
12700         * tree-ssa-address.c: Likewise.
12701         * tree-ssa-alias.c: Likewise.
12702         * tree-ssa-ccp.c: Likewise.
12703         * tree-ssa-coalesce.c: Likewise.
12704         * tree-ssa-copy.c: Likewise.
12705         * tree-ssa-copyrename.c: Likewise.
12706         * tree-ssa-dce.c: Likewise.
12707         * tree-ssa-dom.c: Likewise.
12708         * tree-ssa-dse.c: Likewise.
12709         * tree-ssa-forwprop.c: Likewise.
12710         * tree-ssa-ifcombine.c: Likewise.
12711         * tree-ssa-live.c: Likewise.
12712         * tree-ssa-loop-ch.c: Likewise.
12713         * tree-ssa-loop-im.c: Likewise.
12714         * tree-ssa-loop-ivcanon.c: Likewise.
12715         * tree-ssa-loop-ivopts.c: Likewise.
12716         * tree-ssa-loop-manip.c: Likewise.
12717         * tree-ssa-loop-niter.c: Likewise.
12718         * tree-ssa-loop-prefetch.c: Likewise.
12719         * tree-ssa-loop-unswitch.c: Likewise.
12720         * tree-ssa-loop.c: Likewise.
12721         * tree-ssa-loop.h: Likewise.
12722         * tree-ssa-math-opts.c: Likewise.
12723         * tree-ssa-operands.c: Likewise.
12724         * tree-ssa-phiopt.c: Likewise.
12725         * tree-ssa-phiprop.c: Likewise.
12726         * tree-ssa-pre.c: Likewise.
12727         * tree-ssa-propagate.c: Likewise.
12728         * tree-ssa-reassoc.c: Likewise.
12729         * tree-ssa-sccvn.c: Likewise.
12730         * tree-ssa-scopedtables.c: Likewise.
12731         * tree-ssa-sink.c: Likewise.
12732         * tree-ssa-strlen.c: Likewise.
12733         * tree-ssa-structalias.c: Likewise.
12734         * tree-ssa-tail-merge.c: Likewise.
12735         * tree-ssa-ter.c: Likewise.
12736         * tree-ssa-threadedge.c: Likewise.
12737         * tree-ssa-threadupdate.c: Likewise.
12738         * tree-ssa-uncprop.c: Likewise.
12739         * tree-ssa-uninit.c: Likewise.
12740         * tree-ssa.c: Likewise.
12741         * tree-ssanames.c: Likewise.
12742         * tree-stdarg.c: Likewise.
12743         * tree-streamer-in.c: Likewise.
12744         * tree-streamer-out.c: Likewise.
12745         * tree-streamer.c: Likewise.
12746         * tree-switch-conversion.c: Likewise.
12747         * tree-tailcall.c: Likewise.
12748         * tree-vect-data-refs.c: Likewise.
12749         * tree-vect-generic.c: Likewise.
12750         * tree-vect-loop-manip.c: Likewise.
12751         * tree-vect-loop.c: Likewise.
12752         * tree-vect-patterns.c: Likewise.
12753         * tree-vect-slp.c: Likewise.
12754         * tree-vect-stmts.c: Likewise.
12755         * tree-vectorizer.c: Likewise.
12756         * tree-vrp.c: Likewise.
12757         * tree.c: Likewise.
12758         * tsan.c: Likewise.
12759         * ubsan.c: Likewise.
12760         * valtrack.c: Likewise.
12761         * value-prof.c: Likewise.
12762         * var-tracking.c: Likewise.
12763         * varasm.c: Likewise.
12764         * varpool.c: Likewise.
12765         * vmsdbgout.c: Likewise.
12766         * vtable-verify.c: Likewise.
12767         * web.c: Likewise.
12768         * wide-int-print.cc: Likewise.
12769         * wide-int-print.h: Likewise.
12770         * wide-int.cc: Likewise.
12771         * xcoffout.c: Likewise.
12772         * config/aarch64/aarch64-builtins.c: Likewise.
12773         * config/aarch64/aarch64.c: Likewise.
12774         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12775         * config/alpha/alpha.c: Likewise.
12776         * config/arc/arc.c: Likewise.
12777         * config/arm/aarch-common.c: Likewise.
12778         * config/arm/arm-builtins.c: Likewise.
12779         * config/arm/arm-c.c: Likewise.
12780         * config/arm/arm.c: Likewise.
12781         * config/avr/avr-c.c: Likewise.
12782         * config/avr/avr-log.c: Likewise.
12783         * config/avr/avr.c: Likewise.
12784         * config/bfin/bfin.c: Likewise.
12785         * config/c6x/c6x.c: Likewise.
12786         * config/cr16/cr16.c: Likewise.
12787         * config/cris/cris.c: Likewise.
12788         * config/darwin-c.c: Likewise.
12789         * config/darwin.c: Likewise.
12790         * config/default-c.c: Likewise.
12791         * config/epiphany/epiphany.c: Likewise.
12792         * config/epiphany/mode-switch-use.c: Likewise.
12793         * config/epiphany/resolve-sw-modes.c: Likewise.
12794         * config/fr30/fr30.c: Likewise.
12795         * config/frv/frv.c: Likewise.
12796         * config/ft32/ft32.c: Likewise.
12797         * config/glibc-c.c: Likewise.
12798         * config/h8300/h8300.c: Likewise.
12799         * config/i386/i386-c.c: Likewise.
12800         * config/i386/i386.c: Likewise.
12801         * config/i386/msformat-c.c: Likewise.
12802         * config/i386/winnt-cxx.c: Likewise.
12803         * config/i386/winnt-stubs.c: Likewise.
12804         * config/i386/winnt.c: Likewise.
12805         * config/ia64/ia64-c.c: Likewise.
12806         * config/ia64/ia64.c: Likewise.
12807         * config/iq2000/iq2000.c: Likewise.
12808         * config/lm32/lm32.c: Likewise.
12809         * config/m32c/m32c-pragma.c: Likewise.
12810         * config/m32c/m32c.c: Likewise.
12811         * config/m32r/m32r.c: Likewise.
12812         * config/m68k/m68k.c: Likewise.
12813         * config/mcore/mcore.c: Likewise.
12814         * config/mep/mep-pragma.c: Likewise.
12815         * config/mep/mep.c: Likewise.
12816         * config/microblaze/microblaze-c.c: Likewise.
12817         * config/microblaze/microblaze.c: Likewise.
12818         * config/mips/mips.c: Likewise.
12819         * config/mmix/mmix.c: Likewise.
12820         * config/mn10300/mn10300.c: Likewise.
12821         * config/moxie/moxie.c: Likewise.
12822         * config/msp430/msp430-c.c: Likewise.
12823         * config/msp430/msp430.c: Likewise.
12824         * config/nds32/nds32-cost.c: Likewise.
12825         * config/nds32/nds32-fp-as-gp.c: Likewise.
12826         * config/nds32/nds32-intrinsic.c: Likewise.
12827         * config/nds32/nds32-isr.c: Likewise.
12828         * config/nds32/nds32-md-auxiliary.c: Likewise.
12829         * config/nds32/nds32-memory-manipulation.c: Likewise.
12830         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
12831         * config/nds32/nds32-predicates.c: Likewise.
12832         * config/nds32/nds32.c: Likewise.
12833         * config/nios2/nios2.c: Likewise.
12834         * config/nvptx/nvptx.c: Likewise.
12835         * config/pa/pa.c: Likewise.
12836         * config/pdp11/pdp11.c: Likewise.
12837         * config/rl78/rl78-c.c: Likewise.
12838         * config/rl78/rl78.c: Likewise.
12839         * config/rs6000/rs6000-c.c: Likewise.
12840         * config/rs6000/rs6000.c: Likewise.
12841         * config/rx/rx.c: Likewise.
12842         * config/s390/s390-c.c: Likewise.
12843         * config/s390/s390.c: Likewise.
12844         * config/sh/sh-c.c: Likewise.
12845         * config/sh/sh-mem.cc: Likewise.
12846         * config/sh/sh.c: Likewise.
12847         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
12848         * config/sh/sh_treg_combine.cc: Likewise.
12849         * config/sol2-c.c: Likewise.
12850         * config/sol2-cxx.c: Likewise.
12851         * config/sol2-stubs.c: Likewise.
12852         * config/sol2.c: Likewise.
12853         * config/sparc/sparc-c.c: Likewise.
12854         * config/sparc/sparc.c: Likewise.
12855         * config/spu/spu-c.c: Likewise.
12856         * config/spu/spu.c: Likewise.
12857         * config/stormy16/stormy16.c: Likewise.
12858         * config/tilegx/mul-tables.c: Likewise.
12859         * config/tilegx/tilegx-c.c: Likewise.
12860         * config/tilegx/tilegx.c: Likewise.
12861         * config/tilepro/mul-tables.c: Likewise.
12862         * config/tilepro/tilepro-c.c: Likewise.
12863         * config/tilepro/tilepro.c: Likewise.
12864         * config/v850/v850-c.c: Likewise.
12865         * config/v850/v850.c: Likewise.
12866         * config/vax/vax.c: Likewise.
12867         * config/visium/visium.c: Likewise.
12868         * config/vms/vms-c.c: Likewise.
12869         * config/vms/vms.c: Likewise.
12870         * config/vxworks.c: Likewise.
12871         * config/winnt-c.c: Likewise.
12872         * config/xtensa/xtensa.c: Likewise.
12873         * common/config/bfin/bfin-common.c: Likewise.
12875 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
12877         * tree.h (tree_code_for_canonical_type_merging): New function.
12878         * tree.c (gimple_canonical_types_compatible_p): Use
12879         tree_code_for_canonical_type_merging..
12881 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12883         PR c++/66192
12884         PR target/66200
12885         * doc/tm.texi: Regenerate.
12886         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
12887         * target.def (TARGET_RELAXED_ORDERING): Likewise.
12888         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
12889         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
12890         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
12891         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
12892         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
12893         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
12894         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
12896 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12898         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
12899         register fma steering pass.
12900         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
12901         AARCH64_TUNE_FMA_STEERING.
12903 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
12905         * tree.c (verify_type_variant): Verify that type and variant is
12906         compatible.
12907         (gimple_canonical_types_compatible_p): Look for main variants.
12909 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12911         * config.gcc (powerpc*-*-*): Add support for a new configure
12912         option --with-advance-toolchain=<xxx> which overrides using the
12913         default header files, libraries and dynamic linker.
12915         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
12916         specs to support the configure --with-advance-toolchain=<xxx>
12917         option.
12918         (INCLUDE_EXTRA_SPEC): Likewise.
12919         (LINK_OS_EXTRA_SPEC32): Likewise.
12920         (LINK_OK_EXTRA_SPEC64): Likewise.
12921         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
12922         (DYNAMIC_LINKER_PREFIX): Likewise.
12923         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
12924         toolchain support.
12925         (GLIBC_DYNAMIC_LINKER32): Likewise.
12926         (GLIBC_DYNAMIC_LINKER64): Likewise.
12927         (LINK_OS_LINUX_SPEC32): Likewise.
12928         (LINK_OS_LINUX_SPEC64): Likewise.
12930         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
12931         configuration option.
12933 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
12935         PR target/66275
12936         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
12937         to determine current function ABI.
12938         (ix86_function_value_regno_p): Ditto.
12940 2015-06-03  Martin Liska  <mliska@suse.cz>
12942         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
12943         * bitmap.h (struct bitmap_usage): Likewise.
12944         * ggc-common.c (struct ggc_usage): Likewise.
12945         * mem-stats.h (struct mem_location): Likewise.
12946         (struct mem_usage): Likewise.
12947         * vec.c (struct vec_usage): Likewise.
12949 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
12951         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
12952         -Bsymbolic.
12954 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
12956         * doc/plugins.texi (enum plugin_event): New event.
12957         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
12958         and PLUGIN_FINISH_FUNCTION.
12959         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
12960         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
12962 2015-06-03  Richard Biener  <rguenther@suse.de>
12964         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
12965         compute GROUP_GAP for the first element.
12966         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
12967         on in-group gaps.
12969 2015-06-03  Nick Clifton  <nickc@redhat.com>
12971         * config/rl78/rl78-real.md: Add peepholes to avoid a register
12972         copy when calling a function.
12973         * config/rl78/rl78.c (need_to_save): Do not push the frame
12974         pointer in an interrupt handler prologue if it is never used.
12976 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12978         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
12980 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
12982         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
12983         reference when cloning alias node.
12985 2015-06-03  Martin Liska  <mliska@suse.cz>
12987         * alloc-pool.h (struct pool_usage): Correct space padding.
12988         * ggc-page.c (ggc_print_statistics): Align columns in a report.
12989         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
12990         * tree.c (dump_tree_statistics): Align columns in a report.
12992 2015-06-03  Martin Liska  <mliska@suse.cz>
12994         * alloc-pool.c (allocate_pool_descriptor): Remove.
12995         (struct pool_output_info): Likewise.
12996         (print_alloc_pool_statistics): Likewise.
12997         (dump_alloc_pool_statistics): Likewise.
12998         * alloc-pool.h (struct pool_usage): New struct.
12999         (pool_allocator::initialize): Change usage of memory statistics
13000         to a new interface.
13001         (pool_allocator::release): Likewise.
13002         (pool_allocator::allocate): Likewise.
13003         (pool_allocator::remove): Likewise.
13004         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
13005         for a pool allocator.
13006         * mem-stats.h (struct mem_location): Add new ctor.
13007         (struct mem_usage): Add counter for number of
13008         instances.
13009         (mem_alloc_description::register_descriptor): New overload of
13010         * mem-stats.h (mem_location::to_string): New function.
13011         * bitmap.h (struct bitmap_usage): Use this new function.
13012         * ggc-common.c (struct ggc_usage): Likewise.
13013         the function.
13015 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
13017         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
13018         of GCC_INSN_FLAGS_H block.
13020 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
13022         * explow.c (plus_constant): Update check after force_const_mem call
13023         to see if the value returned is not a NULL_RTX.
13025 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
13027         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
13028         remove instumentation thunks calling reachable functions.
13029         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
13030         * lto/lto-partition.c (privatize_symbol_name_1): New.
13031         (privatize_symbol_name): Privatize both decl and orig_decl
13032         names for instrumented functions.
13033         * cgraph.c (cgraph_node::verify_node): Add transparent
13034         alias chain check for instrumented node.
13036 2015-06-03  Marek Polacek  <polacek@redhat.com>
13038         PR c/64223
13039         PR c/29358
13040         * tree.c (attribute_value_equal): Handle attribute format.
13041         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
13043 2015-06-03  Richard Biener  <rguenther@suse.de>
13045         PR tree-optimization/63916
13046         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
13047         Forward-propagate non-invariant addresses by splicing their
13048         reference ops if the result isn't going to be used by PRE.
13049         (vn_reference_lookup_3): Remove pointless assert.
13051 2015-06-03  Richard Biener  <rguenther@suse.de>
13053         PR tree-optimization/66375
13054         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
13055         add to the evolution before following SSA edges.
13057 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
13059         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
13060         (dump_use, dump_cand, find_induction_variables): Pass new argument
13061         to dump_iv.
13062         (record_use): Preserve the ssa name information in IV.
13064 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
13066         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
13067         NO_MODE_TEST.
13068         (add_mode_tests): Don't add mode tests if the predicate only
13069         accepts scalar constant integers.  Otherwise, allow the mode
13070         of "op" to be VOIDmode if the predicate does accept such integers.
13072 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
13074         PR target/66258
13075         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
13076         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
13077         (aarch64_secondary_reload): Likewise
13078         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
13079         to !TARGET_FLOAT.
13080         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
13081         Likewise.
13083 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
13084             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
13086         PR target/65768
13087         * cprop.c (try_replace_reg): Check cost of constants before propagating.
13089 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13091         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
13092         provide access to the IBM extended double floating point mode if
13093         long double is IEEE 128-bit floating point.
13094         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
13095         point if long double is the IBM extended double type.
13097         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
13098         enable adding IEEE 128-bit floating point support.
13099         (-mfloat128-software): Likewise.
13100         (-mfloat128-sw): Likewise.
13102         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
13103         128-bit floating point types to occupy any register if
13104         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
13105         -mfloat128-software is enabled.
13106         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
13107         support.
13108         (rs6000_option_override_internal): Add -mfloat128-* support.
13109         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
13111         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
13112         and float128 type nodes.
13113         (ieee128_float_type_node): Likewise.
13114         (ibm128_float_type_node): Likewise.
13116 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
13118         PR target/66136
13119         * config/aarch64/geniterators.sh: Rewrite in awk.
13121 2015-06-02  Martin Liska  <mliska@suse.cz>
13123         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
13124         values to avoid -Wmaybe-uninitialized errors.
13126 2015-06-02  Richard Biener  <rguenther@suse.de>
13128         PR debug/65549
13129         * dwarf2out.c (lookup_context_die): New function.
13130         (resolve_addr): Avoid forcing a full DIE for the
13131         target of a DW_TAG_GNU_call_site during late compilation.
13132         Instead create a stub DIE without a type if we have a
13133         context DIE present.
13135 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
13137         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
13139 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
13141         PR tree-optimization/48052
13142         * cfgloop.h (struct control_iv): New.
13143         (struct loop): New field control_ivs.
13144         * tree-ssa-loop-niter.c : Include "stor-layout.h".
13145         (number_of_iterations_lt): Set no_overflow information.
13146         (number_of_iterations_exit): Init control iv in niter struct.
13147         (record_control_iv): New.
13148         (estimate_numbers_of_iterations_loop): Call record_control_iv.
13149         (loop_exits_before_overflow): New.  Interface factored out of
13150         scev_probably_wraps_p.
13151         (scev_probably_wraps_p): Factor loop niter related code into
13152         loop_exits_before_overflow.
13153         (free_numbers_of_iterations_estimates_loop): Free control ivs.
13154         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
13156 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
13158         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
13159         the target doesn't belong to the current function.
13161 2015-06-02  Marek Polacek  <polacek@redhat.com>
13163         PR middle-end/66345
13164         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
13165         get_maxval_strlen does not produce an INTEGER_CST.
13167 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
13169         * config/arc/constraints.md: Use lower-case names in match_code.
13170         * config/mmix/constraints.md: Likewise.
13172 2015-06-02  Richard Biener  <rguenther@suse.de>
13174         PR tree-optimization/65961
13175         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
13176         check and clarify dump message.
13177         (vect_build_slp_tree): If all children are built up from scalars
13178         build up the parent from scalars instead.
13179         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
13181 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
13183         PR other/65366
13184         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
13185         instead of print ... .
13187 2015-06-02  Alan Modra  <amodra@gmail.com>
13189         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
13190         2014-08-11 change.
13192 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
13194         PR tree-optimization/52563
13195         PR tree-optimization/62173
13196         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
13197         (alloc_iv, set_iv): New parameter.
13198         (determine_biv_step): Delete.
13199         (find_bivs): Inline original determine_biv_step.  Pass new
13200         argument to set_iv.
13201         (idx_find_step): Use no_overflow information for conversion.
13202         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
13203         resolve_mixers handle folded_casts.
13204         (instantiate_scev_name): Change bool parameter to bool pointer.
13205         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
13206         (instantiate_array_ref, instantiate_scev_not): Ditto.
13207         (instantiate_scev_3, instantiate_scev_2): Ditto.
13208         (instantiate_scev_1, instantiate_scev_r): Ditto.
13209         (instantiate_scev_convert, ): Change parameter.  Pass argument
13210         to chrec_convert_aggressive.
13211         (instantiate_scev): Change argument.
13212         (resolve_mixers): New parameter and set it.
13213         (scev_const_prop): New argument.
13214         * tree-scalar-evolution.h (resolve_mixers): New parameter.
13215         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
13216         of chrec_conert_1.
13217         (chrec_convert): New parameter.  Move definition below.
13218         (chrec_convert_aggressive): New parameter and set it.  Call
13219         convert_affine_scev.
13220         * tree-chrec.h (chrec_convert): New parameter.
13221         (chrec_convert_aggressive): Ditto.
13223 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
13225         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
13226         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
13227         the LHS of a no-return call if its type has variable size.
13228         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
13229         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
13231 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
13233         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
13234         * config.in: Regenerate.
13236 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
13238         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
13239         consecutive accesses within outer-loop with force_vectorize
13240         for references with zero step in inner-loop.
13242 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
13244         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
13245         rather than from gcc/build directory.
13247 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
13249         PR target/65697
13250         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
13251         for __sync memory models, emit initial loads and final barriers as
13252         appropriate.
13254 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
13256         PR target/65697
13257         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
13258         (aarch64_split_atomic_op): Check for __sync memory models, emit
13259         appropriate initial loads and final barriers.
13261 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
13263         * Makefile.in: Fix gcov dependencies that should
13264         not point to a build folder.
13266 2015-06-01  Richard Biener  <rguenther@suse.de>
13268         Revert
13269         2015-05-29  Richard Biener  <rguenther@suse.de>
13271         PR tree-optimization/66314
13272         * tree-ssa-threadupdate.c (create_block_for_threading): Add
13273         parameter that says which loop the new block belongs to.
13274         (ssa_create_duplicates): Blocks duplicated for the threaded
13275         path belong to the loop of the thread destination.
13277 2015-06-01  Martin Liska  <mliska@suse.cz>
13279         * sched-deps.c: Include pool-alloc.h before
13280         cselib.h header file is included.
13282 2015-06-01  Richard Biener  <rguenther@suse.de>
13284         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
13285         functions.
13287 2015-06-01  Martin Liska  <mliska@suse.cz>
13289         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
13290         a function local variable.
13292 2015-06-01  Martin Liska  <mliska@suse.cz>
13294         * alloc-pool.c (create_alloc_pool): Remove.
13295         (empty_alloc_pool): Likewise.
13296         (free_alloc_pool): Likewise.
13297         (free_alloc_pool_if_empty): Likewise.
13298         (pool_alloc): Likewise.
13299         (pool_free): Likewise.
13300         * alloc-pool.h: Remove old declarations.
13302 2015-06-01  Martin Liska  <mliska@suse.cz>
13304         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
13305         (ira_create_object): Likewise.
13306         (ira_create_allocno): Likewise.
13307         (ira_create_live_range): Likewise.
13308         (copy_live_range): Likewise.
13309         (ira_finish_live_range): Likewise.
13310         (ira_free_allocno_costs): Likewise.
13311         (finish_allocno): Likewise.
13312         (finish_allocnos): Likewise.
13313         (initiate_prefs): Likewise.
13314         (ira_create_pref): Likewise.
13315         (finish_pref): Likewise.
13316         (finish_prefs): Likewise.
13317         (initiate_copies): Likewise.
13318         (ira_create_copy): Likewise.
13319         (finish_copy): Likewise.
13320         (finish_copies): Likewise.
13321         (finish_prefs): Likewise.
13323 2015-06-01  Martin Liska  <mliska@suse.cz>
13325         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
13326         (allocate_and_init_ipcp_value): Likewise.
13327         (ipcp_lattice::add_value): Likewise.
13328         (merge_agg_lats_step): Likewise.
13329         (ipcp_driver): Likewise.
13330         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
13331         (ipa_free_all_structures_after_iinln): Likewise.
13332         * ipa-prop.h: Likewise.
13334 2015-06-01  Martin Liska  <mliska@suse.cz>
13336         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
13337         pool allocator.
13338         (set_hint_predicate): Likewise.
13339         (inline_summary_alloc): Likewise.
13340         (reset_inline_edge_summary): Likewise.
13341         (reset_inline_summary): Likewise.
13342         (set_cond_stmt_execution_predicate): Likewise.
13343         (set_switch_stmt_execution_predicate): Likewise.
13344         (compute_bb_predicates): Likewise.
13345         (estimate_function_body_sizes): Likewise.
13346         (inline_free_summary): Likewise.
13348 2015-06-01  Martin Liska  <mliska@suse.cz>
13350         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
13351         (ipa_edge_duplication_hook): Likewise.
13352         (ipa_free_all_structures_after_ipa_cp): Likewise.
13353         (ipa_free_all_structures_after_iinln): Likewise.
13355 2015-06-01  Martin Liska  <mliska@suse.cz>
13357         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
13358         (ipa_profile_generate_summary): Likewise.
13359         (ipa_profile_read_summary): Likewise.
13360         (ipa_profile): Likewise.
13362 2015-06-01  Martin Liska  <mliska@suse.cz>
13364         * tree-ssa-structalias.c (new_var_info): Use new type-based
13365         pool allocator.
13366         (new_constraint): Likewise.
13367         (init_alias_vars): Likewise.
13368         (delete_points_to_sets): Likewise.
13370 2015-06-01  Martin Liska  <mliska@suse.cz>
13372         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
13373         (free_strinfo): Likewise.
13374         (pass_strlen::execute): Likewise.
13376 2015-06-01  Martin Liska  <mliska@suse.cz>
13378         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
13379         pool allocator.
13380         (vn_reference_insert_pieces): Likewise.
13381         (vn_phi_insert): Likewise.
13382         (visit_reference_op_call): Likewise.
13383         (copy_phi): Likewise.
13384         (copy_reference): Likewise.
13385         (process_scc): Likewise.
13386         (allocate_vn_table): Likewise.
13387         (free_vn_table): Likewise.
13389 2015-06-01  Martin Liska  <mliska@suse.cz>
13391         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
13392         pool allocator.
13393         (add_repeat_to_ops_vec): Likewise.
13394         (get_ops): Likewise.
13395         (maybe_optimize_range_tests): Likewise.
13396         (init_reassoc): Likewise.
13397         (fini_reassoc): Likewise.
13399 2015-06-01  Martin Liska  <mliska@suse.cz>
13401         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
13402         pool allocator.
13403         (bitmap_set_new): Likewise.
13404         (get_or_alloc_expr_for_constant): Likewise.
13405         (get_or_alloc_expr_for): Likewise.
13406         (phi_translate_1): Likewise.
13407         (compute_avail): Likewise.
13408         (init_pre): Likewise.
13409         (fini_pre): Likewise.
13411 2015-06-01  Martin Liska  <mliska@suse.cz>
13413         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
13414         (delete_dep_node): Likewise.
13415         (create_deps_list): Likewise.
13416         (free_deps_list): Likewise.
13417         (sched_deps_init): Likewise.
13418         (sched_deps_finish): Likewise.
13420 2015-06-01  Martin Liska  <mliska@suse.cz>
13422         * regcprop.c (free_debug_insn_changes): Use new type-based
13423         pool allocator.
13424         (replace_oldest_value_reg): Likewise.
13425         (pass_cprop_hardreg::execute): Likewise.
13427 2015-06-01  Martin Liska  <mliska@suse.cz>
13429         * ira-build.c (initiate_cost_vectors): Use new type-based
13430         pool allocator.
13431         (ira_allocate_cost_vector): Likewise.
13432         (ira_free_cost_vector): Likewise.
13433         (finish_cost_vectors): Likewise.
13435 2015-06-01  Martin Liska  <mliska@suse.cz>
13437         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
13438         pool allocator.
13439         (free_sched_pools): Likewise.
13440         * sel-sched-ir.h (_list_alloc): Likewise.
13441         (_list_remove): Likewise.
13443 2015-06-01  Martin Liska  <mliska@suse.cz>
13445         * stmt.c (add_case_node): Use new type-based pool allocator.
13446         (expand_case): Likewise.
13447         (expand_sjlj_dispatch_table): Likewise.
13449 2015-06-01  Martin Liska  <mliska@suse.cz>
13451         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
13452         (free_bb): Likewise.
13453         (pass_cse_reciprocals::execute): Likewise.
13455 2015-06-01  Martin Liska  <mliska@suse.cz>
13457         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
13458         (sra_deinitialize) Likewise.
13459         (create_access_1) Likewise.
13460         (build_accesses_from_assign) Likewise.
13461         (create_artificial_child_access) Likewise.
13463 2015-06-01  Martin Liska  <mliska@suse.cz>
13465         * dse.c (get_group_info):Use new type-based pool allocator.
13466         (dse_step0) Likewise.
13467         (free_store_info) Likewise.
13468         (delete_dead_store_insn) Likewise.
13469         (free_read_records) Likewise.
13470         (record_store) Likewise.
13471         (replace_read) Likewise.
13472         (check_mem_read_rtx) Likewise.
13473         (scan_insn) Likewise.
13474         (dse_step1) Likewise.
13475         (dse_step7) Likewise.
13477 2015-06-01  Martin Liska  <mliska@suse.cz>
13479         * df-scan.c (struct df_scan_problem_data):Use new type-based
13480         pool allocator.
13481         (df_scan_free_internal) Likewise.
13482         (df_scan_alloc) Likewise.
13483         (df_grow_reg_info) Likewise.
13484         (df_free_ref) Likewise.
13485         (df_insn_create_insn_record) Likewise.
13486         (df_mw_hardreg_chain_delete) Likewise.
13487         (df_insn_info_delete) Likewise.
13488         (df_free_collection_rec) Likewise.
13489         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
13490         (df_sort_and_compress_mws) Likewise.
13491         (df_ref_create_structure) Likewise.
13492         (df_ref_record) Likewise.
13494 2015-06-01  Martin Liska  <mliska@suse.cz>
13496         * df-problems.c (df_chain_create):Use new type-based pool allocator.
13497         (df_chain_unlink_1) Likewise.
13498         (df_chain_unlink) Likewise.
13499         (df_chain_remove_problem) Likewise.
13500         (df_chain_alloc) Likewise.
13501         (df_chain_free) Likewise.
13502         * df.h (struct dataflow) Likewise.
13504 2015-06-01  Martin Liska  <mliska@suse.cz>
13506         * cselib.c (new_elt_list):Use new type-based pool allocator.
13507         (new_elt_loc_list) Likewise.
13508         (unchain_one_elt_list) Likewise.
13509         (unchain_one_elt_loc_list) Likewise.
13510         (unchain_one_value) Likewise.
13511         (new_cselib_val) Likewise.
13512         (cselib_init) Likewise.
13513         (cselib_finish) Likewise.
13515 2015-06-01  Martin Liska  <mliska@suse.cz>
13517         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
13518         (sh_reorg) Likewise.
13520 2015-06-01  Martin Liska  <mliska@suse.cz>
13522         * cfg.c (initialize_original_copy_tables):Use new type-based
13523         pool allocator.
13524         (free_original_copy_tables) Likewise.
13525         (copy_original_table_clear) Likewise.
13526         (copy_original_table_set) Likewise.
13528 2015-06-01  Martin Liska  <mliska@suse.cz>
13530         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
13531         pool allocator.
13532         (asan_mem_ref_new) Likewise.
13533         (free_mem_ref_resources) Likewise.
13535 2015-06-01  Martin Liska  <mliska@suse.cz>
13537         * var-tracking.c (variable_htab_free):Use new type-based
13538         pool allocator.
13539         (attrs_list_clear) Likewise.
13540         (attrs_list_insert) Likewise.
13541         (attrs_list_copy) Likewise.
13542         (shared_hash_unshare) Likewise.
13543         (shared_hash_destroy) Likewise.
13544         (unshare_variable) Likewise.
13545         (var_reg_delete_and_set) Likewise.
13546         (var_reg_delete) Likewise.
13547         (var_regno_delete) Likewise.
13548         (drop_overlapping_mem_locs) Likewise.
13549         (variable_union) Likewise.
13550         (insert_into_intersection) Likewise.
13551         (canonicalize_values_star) Likewise.
13552         (variable_merge_over_cur) Likewise.
13553         (dataflow_set_merge) Likewise.
13554         (remove_duplicate_values) Likewise.
13555         (variable_post_merge_new_vals) Likewise.
13556         (dataflow_set_preserve_mem_locs) Likewise.
13557         (dataflow_set_remove_mem_locs) Likewise.
13558         (variable_from_dropped) Likewise.
13559         (variable_was_changed) Likewise.
13560         (set_slot_part) Likewise.
13561         (clobber_slot_part) Likewise.
13562         (delete_slot_part) Likewise.
13563         (loc_exp_insert_dep) Likewise.
13564         (notify_dependents_of_changed_value) Likewise.
13565         (emit_notes_for_differences_1) Likewise.
13566         (vt_emit_notes) Likewise.
13567         (vt_initialize) Likewise.
13568         (vt_finalize) Likewise.
13570 2015-06-01  Martin Liska  <mliska@suse.cz>
13572         * ira-color.c (init_update_cost_records):Use new type-based
13573         pool allocator.
13574         (get_update_cost_record) Likewise.
13575         (free_update_cost_record_list) Likewise.
13576         (finish_update_cost_records) Likewise.
13577         (initiate_cost_update) Likewise.
13579 2015-06-01  Martin Liska  <mliska@suse.cz>
13581         * lra.c (init_insn_regs): Use new type-based pool allocator.
13582         (new_insn_reg) Likewise.
13583         (free_insn_reg) Likewise.
13584         (free_insn_regs) Likewise.
13585         (finish_insn_regs) Likewise.
13586         (init_insn_recog_data) Likewise.
13587         (init_reg_info) Likewise.
13588         (finish_reg_info) Likewise.
13589         (lra_free_copies) Likewise.
13590         (lra_create_copy) Likewise.
13591         (invalidate_insn_data_regno_info) Likewise.
13593 2015-06-01  Martin Liska  <mliska@suse.cz>
13595         * lra-lives.c (free_live_range): Use new type-based pool allocator.
13596         (free_live_range_list) Likewise.
13597         (create_live_range) Likewise.
13598         (copy_live_range) Likewise.
13599         (lra_merge_live_ranges) Likewise.
13600         (remove_some_program_points_and_update_live_ranges) Likewise.
13601         (lra_live_ranges_init) Likewise.
13602         (lra_live_ranges_finish) Likewise.
13604 2015-06-01  Martin Liska  <mliska@suse.cz>
13606         * et-forest.c (et_new_occ): Use new type-based pool allocator.
13607         (et_new_tree): Likewise.
13608         (et_free_tree): Likewise.
13609         (et_free_tree_force): Likewise.
13610         (et_free_pools): Likewise.
13611         (et_split): Likewise.
13613 2015-06-01  Martin Liska  <mliska@suse.cz>
13615         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
13616         to header file.
13617         * alloc-pool.h (pool_allocator::pool_allocator): New function.
13618         (pool_allocator::release): Likewise.
13619         (inline pool_allocator::release_if_empty): Likewise.
13620         (inline pool_allocator::~pool_allocator): Likewise.
13621         (pool_allocator::allocate): Likewise.
13622         (pool_allocator::remove): Likewise.
13624 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
13626         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
13627         in comment.
13629 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
13631         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
13632         to fusible_ops.
13633         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
13634         (arm_macro_fusion_p): Likewise.
13635         (arm_macro_fusion_pair_p): Likewise.
13637 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
13639         * config/aarch64/aarch64-protos.h (tune_params): Rename
13640         fuseable_ops to fusible_ops.
13641         * config/aarch64/aarch64.c (generic_tunings): Rename
13642         fuseable_ops to fusible_ops.
13643         (cortexa53_tunings): Likewise.
13644         (cortexa57_tunings): Likewise.
13645         (thunderx_tunings): Likewise.
13646         (xgene1_tunings): Likewise.
13647         (aarch64_macro_fusion_p): Likewise.
13648         (aarch64_macro_fusion_pair_p): Likewise.
13650 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13652         * config/s390/driver-native.c: New file.
13653         * config/s390/x-native: New file.
13654         * config.host: Add new files for s390.
13655         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
13656         and -march=native
13657         * config.gcc: Likewise.
13658         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
13659         * config/s390/s390-opts.h (enum processor_type): Ditto.
13660         * config/s390/s390.c (s390_option_override): Catch unhandled
13661         PROCESSOR_NATIVE
13663 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
13665         PR target/65527
13666         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
13667         redirection for instrumented calls.
13668         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
13669         (append_compiler_options): Append -fcheck-pointer-bounds.
13670         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
13671         (chkp_redirect_edge): New.
13672         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
13673         (chkp_redirect_edge): New.
13675 2015-06-01  Richard Biener  <rguenther@suse.de>
13677         PR tree-optimization/66280
13678         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
13679         def-use walking.
13681 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13683         * config/aarch64/aarch64.md
13684         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
13685         logic_shift_imm.
13687 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
13689         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
13690         Remove obsolete kludge.
13692 2015-06-01  Richard Biener  <rguenther@suse.de>
13694         * tree-ssa-reassoc.c (get_rank): Simplify.
13696 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
13698         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
13699         * configure: Regenerated.
13701 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
13703         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
13704         issue (add space between string literal and macro).
13705         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
13707 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
13709         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
13710         implict or explicit -fPIE or -fpie.
13712 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
13714         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
13716 2015-05-28  DJ Delorie  <dj@redhat.com>
13718         * expmed.c (extract_bit_field_1): Avoid clobbering a
13719         yet-to-be-used base/index register.
13721 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
13723         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
13724         (alias_stats): Add num_universal.
13725         (alias_set_subset_of): Special case pointers; be ready for NULL
13726         children.
13727         (alias_sets_conflict_p): Special case pointers; be ready for NULL
13728         children.
13729         (init_alias_set_entry): Break out from ...
13730         (record_alias_subset): ... here; propagate new fields;
13731         allocate children only when really needed.
13732         (get_alias_set): Do less generous pointer globbing.
13733         (dump_alias_stats_in_alias_c): Update statistics.
13735 2015-05-30  Alan Modra  <amodra@gmail.com>
13737         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
13738         correct block for use of r12.
13739         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
13741 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13743         PR target/66215
13744         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
13745         with -mhotpatch=.
13747 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
13749         PR tree-optimization/66142
13750         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
13751         virtual phis that feed themselves.
13753 2015-05-29  Richard Biener  <rguenther@suse.de>
13755         PR tree-optimization/66314
13756         * tree-ssa-threadupdate.c (create_block_for_threading): Add
13757         parameter that says which loop the new block belongs to.
13758         (ssa_create_duplicates): Blocks duplicated for the threaded
13759         path belong to the loop of the thread destination.
13761 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13763         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
13764         to cleanup-saved-temps.
13765         * doc/sourcebuild.texi (Clean up generated test files): Expand
13766         introduction.
13767         (dg-keep-saved-temps): Document new proc.
13768         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
13769         cleanup-saved-temps): Remove.
13771 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
13773         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
13774         gcc_AC_CHECK_DECLS.
13775         * configure: Regenerate.
13777 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
13779         * config/nios2/linux.h (CPP_SPEC): Define.
13781 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
13783         * config/microblaze/linux.h (CPP_SPEC): Define.
13785 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
13787         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
13788         -pthread is specified.
13790 2015-05-28  Richard Biener  <rguenther@suse.de>
13792         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
13793         (vect_fixup_scalar_cycles_with_patterns): Likewise.
13794         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
13795         after pattern recog.
13796         (vect_create_epilog_for_reduction): Properly handle reductions
13797         with patterns.
13798         (vectorizable_reduction): Likewise.
13799         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
13800         reduction chains.
13801         (vect_get_constant_vectors): Create the correct number of
13802         initial values for reductions.
13803         (vect_schedule_slp_instance): Handle reduction chains that are
13804         type changing properly.
13805         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
13807 2015-05-28  Richard Biener  <rguenther@suse.de>
13809         PR tree-optimization/66142
13810         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
13811         values better in memcpy destination handling.  Handle non-aliasing
13812         we discover here.
13814 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
13816         PR target/63810
13817         * config/darwin-c.c (version_components): New global enum.
13818         (parse_version, version_as_legacy_macro)
13819         (version_as_modern_macro, macosx_version_as_macro): New functions.
13820         (version_as_macro): Remove.
13821         (darwin_cpp_builtins): Use new function.
13823 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
13825         * builtins.c (expand_builtin_acc_on_device): Mark parameters
13826         with ATTRIBUTE_UNUSED.
13828 2015-05-28  Julian Brown  <julian@codesourcery.com>
13830         PR libgomp/65742
13832         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
13833         sequence for !ACCEL_COMPILER.
13835 2015-05-28  Nick Clifton  <nickc@redhat.com>
13837         * config/rx/rx.c (push_regs): New function.  Extracts code from...
13838         (rx_expand_prologue): ... here.  Use push_regs to push even small
13839         spans of registers.
13840         (pop_regs): New function.
13841         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
13842         registers.
13844 2015-05-28  Richard Biener  <rguenther@suse.de>
13846         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
13847         member.
13848         (SLP_INSTANCE_BODY_COST_VEC): Remove.
13849         (vect_update_slp_costs_according_to_vf): Likewise.
13850         (vect_slp_analyze_operations): Update prototype.
13851         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
13852         vect_update_slp_costs_according_to_vf, adjust.
13853         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
13854         (vect_analyze_slp_cost_1): Likewise.
13855         (vect_analyze_slp_cost): Likewise.  Properly deal with
13856         widening reduction ops.  Commit body costs.
13857         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
13858         cost for loops from here.
13859         (vect_slp_analyze_operations): But do it from here when
13860         the vectorization factor is known and stmts are analyzed.
13861         (vect_bb_vectorization_profitable_p): Simplify.
13862         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
13863         (vect_update_slp_costs_according_to_vf): Remove.
13865 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
13866             H.J. Lu  <hongjiu.lu@intel.com>
13868         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
13869         (BUILD_CFLAGS): Likewise.
13870         (BUILD_CXXFLAGS): Likewise.
13871         (LINKER): Add @NO_PIE_FLAG@.
13872         (BUILD_LDFLAGS): Likewise.
13873         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
13874         --enable-default-pie.
13875         * common.opt (fPIE): Initialize to -1.
13876         (fpie): Likewise.
13877         (no-pie): New option.
13878         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
13879         * configure.ac: Add --enable-default-pie.
13880         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
13881         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
13882         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
13883         * gcc.c (NO_PIE_SPEC): New.
13884         (PIE_SPEC): Likewise.
13885         (NO_FPIE1_SPEC): Likewise.
13886         (FPIE1_SPEC): Likewise.
13887         (NO_FPIE2_SPEC): Likewise.
13888         (FPIE2_SPEC): Likewise.
13889         (NO_FPIE2_SPEC): Likewise.
13890         (FPIE_SPEC): Likewise.
13891         (NO_FPIE_SPEC): Likewise.
13892         (NO_FPIC1_SPEC): Likewise.
13893         (FPIC1_SPEC): Likewise.
13894         (NO_FPIC2_SPEC): Likewise.
13895         (FPIC2_SPEC): Likewise.
13896         (NO_FPIC2_SPEC): Likewise.
13897         (FPIC_SPEC): Likewise.
13898         (NO_FPIC_SPEC): Likewise.
13899         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
13900         (FPIE1_OR_FPIC1_SPEC): Likewise.
13901         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
13902         (FPIE2_OR_FPIC2_SPEC): Likewise.
13903         (NO_FPIE_AND_FPIC_SPEC): Likewise.
13904         (FPIE_OR_FPIC_SPEC): Likewise.
13905         (LD_PIE_SPEC): Likewise.
13906         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
13907         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
13908         * config/darwin.h (PIE_SPEC): Renamed to ...
13909         (DARWIN_PIE_SPEC): This.
13910         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
13911         * config/darwin9.h (PIE_SPEC): Renamed to ...
13912         (DARWIN_PIE_SPEC): This.
13913         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
13914         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
13915         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
13916         FPIE2_OR_FPIC2_SPEC.
13917         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
13918         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
13919         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
13920         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
13921         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
13922         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
13923         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
13924         * config/m32r/m32r.h (ASM_SPEC): Likewise.
13925         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
13926         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
13927         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
13928         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
13929         * config/sparc/linux.h (ASM_SPEC): Likewise.
13930         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13931         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
13932         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
13933         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
13934         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
13935         * config/sparc/sparc.h (ASM_SPEC): Likewise.
13936         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
13937         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
13938         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
13939         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
13940         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
13941         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
13942         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
13943         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
13944         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
13945         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
13946         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
13947         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
13948         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13949         * config/vax/linux.h (ASM_SPEC): Likewise.
13950         * doc/install.texi: Document --enable-default-pie.
13951         * doc/invoke.texi: Document -no-pie.
13952         * config.in: Regenerated.
13953         * configure: Likewise.
13955 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13957         PR rtl-optimization/66168
13958         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
13959         can_move_invariant_reg.
13961 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
13963         PR target/66148
13964         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
13965         REG_EQUAL note when doing insert.
13967         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
13968         instead of "%d" for 'o' operand.
13970 2015-05-27  Nathan Sidwell  <nathan@acm.org>
13972         PR c++/66270
13973         * tree.c (build_pointer_type_for_mode): Canonical type does not
13974         inherit can_alias_all.
13975         (build_reference_type_for_mode): Likewise.
13977 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
13979         * expr.h (array_at_struct_end_p): Move to...
13980         (array_ref_element_size): Likewise.
13981         (component_ref_field_offset): Likewise.
13982         * tree.h (array_ref_element_size): ...here.
13983         (array_at_struct_end_p): Likewise.
13984         (component_ref_field_offset): Likewise.
13985         * expr.c (array_ref_element_size): Move to...
13986         (array_ref_low_bound): Likewise.
13987         (array_at_struct_end_p): Likewise.
13988         (array_ref_up_bound): Likewise.
13989         (component_ref_field_offset): Likewise.
13990         * tree.c (array_ref_element_size): ...here.
13991         (array_ref_low_bound): Likewise.
13992         (array_ref_up_bound): Likewise.
13993         (array_at_struct_end_p): Likewise.
13994         (component_ref_field_offset): Likewise.
13996 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
13997             Szabolcs Nagy  <szabolcs.nagy@arm.com>
13999         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
14001 2015-05-27  Jason Merrill  <jason@redhat.com>
14003         PR bootstrap/66304
14004         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
14005         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
14006         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
14008 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
14010         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
14011         is true.
14013         * statistics.c (statistics_fini_pass): Print pass name.
14015 2015-05-27  Richard Biener  <rguenther@suse.de>
14017         PR tree-optimization/66272
14018         Revert parts of
14019         2014-08-15  Richard Biener  <rguenther@suse.de>
14021         PR tree-optimization/62031
14022         * tree-data-ref.c (dr_analyze_indices): Do not set
14023         DR_UNCONSTRAINED_BASE.
14024         (dr_may_alias_p): All indirect accesses have to go the
14025         formerly DR_UNCONSTRAINED_BASE path.
14026         * tree-data-ref.h (struct indices): Remove
14027         unconstrained_base member.
14028         (DR_UNCONSTRAINED_BASE): Remove.
14030 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
14032         * dwarf2out.c: Remove block_map.
14033         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
14034         (gen_lexical_block_die): Same.
14035         (dwarf2out_function_decl): Remove block_map use.
14036         (dwarf2out_c_finalize): Same.
14037         * tree-core.h (struct tree_block): Add die field.
14038         * tree.h (BLOCK_DIE): New.
14040 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14042         PR target/65358
14043         * expr.c (memory_load_overlap): New function.
14044         (emit_push_insn): When pushing partial args to the stack would
14045         clobber the register part load the overlapping part into a pseudo
14046         and put it into the hard reg after pushing.  Change return type
14047         to bool.  Add bool argument.
14048         * expr.h (emit_push_insn): Change return type to bool.
14049         Add bool argument.
14050         * calls.c (expand_call): Cancel sibcall optimization when encountering
14051         partial argument on targets with ARGS_GROW_DOWNWARD and
14052         !STACK_GROWS_DOWNWARD.
14053         (emit_library_call_value_1): Update callsite of emit_push_insn.
14054         (store_one_arg): Likewise.
14056 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
14058         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
14060 2015-05-27  Martin Liska  <mliska@suse.cz>
14062         * Makefile.in: Add additional dependencies related to memory report
14063         enhancement.
14064         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
14065         * bitmap.c (struct bitmap_descriptor_d): Remove.
14066         (struct loc): Likewise.
14067         (struct bitmap_desc_hasher): Likewise.
14068         (bitmap_desc_hasher::hash): Likewise.
14069         (bitmap_desc_hasher::equal): Likewise.
14070         (get_bitmap_descriptor): Likewise.
14071         (bitmap_register): User new memory descriptor API.
14072         (register_overhead): Likewise.
14073         (bitmap_find_bit): Register nsearches and search_iter statistics.
14074         (struct bitmap_output_info): Remove.
14075         (print_statistics): Likewise.
14076         (dump_bitmap_statistics): Use new memory descriptor.
14077         * bitmap.h (struct bitmap_usage): New class.
14078         * genmatch.c: Extend header file inclusion.
14079         * genpreds.c: Likewise.
14080         * ggc-common.c (struct ggc_usage): New class.
14081         (struct ggc_loc_desc_hasher): Remove.
14082         (ggc_loc_desc_hasher::hash): Likewise.
14083         (ggc_loc_desc_hasher::equal): Likewise.
14084         (struct ggc_ptr_hash_entry): Likewise.
14085         (struct ptr_hash_hasher): Likewise.
14086         (ptr_hash_hasher::hash): Likewise.
14087         (ptr_hash_hasher::equal): Likewise.
14088         (make_loc_descriptor): Likewise.
14089         (ggc_prune_ptr): Likewise.
14090         (dump_ggc_loc_statistics): Use new memory descriptor.
14091         (ggc_record_overhead): Likewise.
14092         (ggc_free_overhead): Likewise.
14093         (final_cmp_statistic): Remove.
14094         (cmp_statistic): Likewise.
14095         (ggc_add_statistics): Liekwise.
14096         (ggc_prune_overhead_list): Likewise.
14097         * hash-map-traits.h: New file.
14098         * hash-map.h (struct default_hashmap_traits): Move the traits to a
14099         separate header file.
14100         * hash-set.h: Pass memory statistics info to ctor.
14101         * hash-table.c (void dump_hash_table_loc_statistics): New function.
14102         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
14103         (hash_table::~hash_table): Register memory release operation.
14104         (hash_table::alloc_entries): Handle memory allocation operation.
14105         (hash_table::expand): Likewise.
14106         * inchash.c (iterative_hash_hashval_t): Move implementation to header
14107         file.
14108         (iterative_hash_host_wide_int): Likewise.
14109         * inchash.h (class hash): Likewise.
14110         * mem-stats-traits.h: New file.
14111         * mem-stats.h: New file.
14112         (mem_location): Add new class.
14113         (mem_usage): Likewise.
14114         (mem_alloc_description): Likewise.
14115         * sese.c: Add new header file inclusision.
14116         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
14117         and hash_set.
14118         * tree-sra.c: Add new header file inclusision.
14119         * vec.c (struct vec_descriptor): Remove.
14120         (hash_descriptor): Likewise.
14121         (struct vec_usage): Likewise.
14122         (struct ptr_hash_entry): Likewise.
14123         (hash_ptr): Likewise.
14124         (eq_ptr): Likewise.
14125         (vec_prefix::register_overhead): Use new memory descriptor API.
14126         (vec_prefix::release_overhead): Likewise.
14127         (add_statistics): Remove.
14128         (dump_vec_loc_statistics): Use new memory descriptor API.
14129         * vec.h (struct vec_prefix): Likewise.
14130         (va_heap::reserve): Likewise.
14131         (va_heap::release): Likewise.
14132         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
14134 2015-05-27  Richard Biener  <rguenther@suse.de>
14136         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
14137         earlier and remove ??? comment.
14138         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
14139         and got called from loop analysis bail out.  Always pass the SLP
14140         node to the vectorizable_* functions.
14141         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
14142         the premature SLP check here.
14143         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
14144         detected SLP stmts.
14145         (vect_detect_hybrid_slp_1): Likewise.
14147 2015-05-26  Jeff Law  <law@redhat.com>
14149         * combine.c (find_split_point): Verify that the shift count is a
14150         constant when choosing (plus (ashift ...)) as a split point.
14152         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
14153         No functional changes.
14155 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
14157         * ipa-polymorphic-call.c
14158         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
14159         case when call target is already known.
14161 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
14163         PR target/65979
14164         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
14165         take into account the case that operands[1] and operands[2]
14166         are the same register.
14168 2015-05-26  Michael Matz  <matz@suse.de>
14170         PR middle-end/66251
14172         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
14173         stores.
14174         (vect_create_vectorized_demotion_stmts): Always set
14175         STMT_VINFO_VEC_STMT, also with SLP.
14176         (vectorizable_store): Handle strided group stores.
14178 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
14180         PR target/66049
14181         * config/aarch64/aarch64.md
14182         (*adds_shift_imm_<mode>):  New pattern.
14183         (*subs_shift_imm_<mode>):  Likewise.
14184         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
14185         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
14186         (*add_uxt<mode>_shift2): Likewise.
14187         (*add_uxtsi_shift2_uxtw): Likewise.
14188         (*sub_uxt<mode>_shift2): Likewise.
14189         (*sub_uxtsi_shift2_uxtw): Likewise.
14191 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
14193         * config/rs6000/constraints.md (Y, U): Use match_test.
14195 2015-05-26  Christian Bruel  <christian.bruel@st.com>
14197         PR target/52144
14198         * config/arm/arm.c (arm_option_check_internal)
14199         (arm_option_params_internal): Check opts->target_flags to set macros.
14200         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
14201         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
14202         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
14203         (builtin_define): Replaced with def_or_undef_macro.
14204         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
14205         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
14206         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
14207         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
14208         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
14209         (TARGET_ARM_FEATURE_LDREX_P)
14210         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
14211         * config/arm/arm-c.c (def_or_undef_macro): New function.
14212         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
14214 2015-05-26  Christian Bruel  <christian.bruel@st.com>
14216         * c-common.h (builtin_define_with_int_value)
14217         (builtin_define_type_sizeof): Declare.
14218         * c-cppbuiltin.c (builtin_define_with_int_value)
14219         (builtin_define_type_sizeof): Externalize.
14220         (builtin_define_std): Cleanup declaration.
14221         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
14222         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
14223         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
14224         (builtin_define, builtin_assert): New macros.
14226 2015-05-26  Richard Biener  <rguenther@suse.de>
14228         PR tree-optimization/66142
14229         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
14230         MEM_REFs for the same base address.
14232 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14234         PR ipa/66181
14235         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
14237 2015-05-26  Jason Merrill  <jason@redhat.com>
14239         * configure.ac: Set CXXFLAGS for ISL test.
14240         * configure: Regenerate.
14242         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
14243         strstr and basename.
14244         * configure: Regenerate.
14246 2015-05-26  Richard Biener  <rguenther@suse.de>
14248         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
14249         X % C -> X & (C - 1) for C being a power-of two to ...
14250         * match.pd: ... patterns.
14252 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
14254         * match.pd (swapped_tcc_comparison): New operator list.
14255         (-A CMP -B): New simplification.
14256         * fold-const.c (fold_comparison): Remove corresponding code.
14258 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
14260         * caller-save.c (init_caller_save): Base temporary register numbers
14261         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
14262         * cfgloopanal.c (init_set_costs): Likewise.
14263         * dojump.c (prefer_and_bit_test): Likewise.
14264         * expr.c (init_expr_target): Likewise.
14265         * ira.c (setup_prohibited_mode_move_regs): Likewise.
14266         * lower-subreg.c (init_lower_subreg): Likewise.
14267         * postreload.c (reload_cse_regs_1): Likewise.
14269 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
14271         * gensupport.h (compute_test_codes): Declare.
14272         * gensupport.c (compute_predicate_codes): Rename to...
14273         (compute_test_codes): ...this.  Generalize error message.
14274         (process_define_predicate): Update accordingly.
14275         * genpreds.c (compute_maybe_allows): Delete.
14276         (add_constraint): Use compute_test_codes to determine whether
14277         something can accept a SUBREG, REG or MEM.
14279 2015-05-26  Torvald Riegel  <triegel@redhat.com>
14281         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
14282         'memory model' to align with C++11; fix description of memory orders;
14283         fix a few typos.
14285 2015-05-26  Richard Biener  <rguenther@suse.de>
14287         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
14288         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
14289         detect whether we apply SLP.  Remove call to
14290         vect_update_slp_costs_according_to_vf.
14291         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
14292         vect_update_slp_costs_according_to_vf from here.  Dispatch
14293         to vect_slp_analyze_operations to analyze SLP stmts.
14294         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
14295         unused bb_vec_info parameter, adjust assert.
14296         (vect_slp_analyze_operations): Pass in the slp instance tree
14297         instead of bb_vec_info.
14298         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
14299         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
14301 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
14303         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
14304         Q_REGS.  Expand comment.
14305         (REG_CLASS_NAMES): Ditto.
14306         (REG_CLASS_CONTENTS): Ditto.
14308 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
14310         PR target/66274
14311         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
14312         when LEGACY_INT_REGNO_P is processed.
14314 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
14316         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
14318 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
14320         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
14321         register if not marked dead/unused, before return.
14323 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
14325         PR lto/66180
14326         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
14327         is set; check for assembler name at LTO time.
14328         (type_in_anonymous_namespace): Remove hacks, check that all
14329         anonymous types are called "<anon>"
14330         (odr_type_p): Simplify; add check for "<anon>"
14331         (odr_subtypes_equivalent): Add odr_type_p check.
14332         * tree.c (need_assembler_name_p): Even anonymous namespace needs
14333         assembler name.
14335 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
14337         * ipa-utils.h (method_class_type): Remove.
14338         * cgraphunit.c (walk_polymorphic_call_targets): Use
14339         TYPE_METHOD_BASETYPE.
14340         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
14341         on main variants only.
14342         (method_class_type): Remove.
14343         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
14344         (build_type_inheritance_graph): Likewise.
14345         * ipa-icf.c (sem_function::equals_wpa): Likewise.
14346         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
14347         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
14349 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
14351         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
14352         is_typedef_decl, typedef_variant_p): Constify.
14353         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
14354         is_typedef_decl, typedef_variant_p): Constify.
14356 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14358         * defaults.h (gen_tablejump): New function.
14359         (HAVE_tablejump): Add default value.
14360         * expr.c: Adjust.
14361         * stmt.c: Likewise.
14363 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14365         * defaults.h (gen_store_multiple): New function.
14366         (HAVE_store_multiple): Add default value.
14367         * expr.c (move_block_from_reg): Adjust.
14369 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14371         * defaults.h (gen_load_multiple): New function.
14372         (HAVE_load_multiple): Add default value.
14373         * expr.c (move_block_to_reg): Adjust.
14375 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14377         * defaults.h (gen_mem_signal_fence): New function.
14378         (HAVE_mem_signal_fence): Add default value.
14379         * optabs.c: Adjust.
14381 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14383         * defaults.h (gen_memory_barrier): New function.
14384         (HAVE_memory_barrier): Add default value.
14385         * optabs.c: Adjust.
14387 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14389         * defaults.h (gen_mem_thread_fence): New function.
14390         (HAVE_mem_thread_fence): Add default definition.
14391         * optabs.c: Adjust.
14393 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14395         * combine.c (find_split_point): Check the value of HAVE_lo_sum
14396         instead of if it is defined.
14397         (combine_simplify_rtx): Likewise.
14398         * lra-constraints.c (process_address_1): Likewise.
14399         * config/darwin.c: Adjust.
14400         * genconfig.c (main): Always define HAVE_lo_sum.
14402 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14404         * genmatch.c (parser::parse_operation): Reject expanding
14405         operator-list inside 'for'.
14407 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14409         * genmatch.c (parser::parse_for): Reject iterator if used as
14410         operator-list.
14412 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14414         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
14415         after end of id-list.
14417 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
14419         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
14420         we do not try to compute canonical type for type that does not need
14421         alias set.
14422         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
14423         FUNCITON_TYPE.
14424         * tree.h (type_with_alias_set_p): New.
14426 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
14428         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
14429         function attributes.
14430         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
14432 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
14434         * Makefile.in (check_gcc_parallelize): Delete.
14435         (lang_checks_parallelized): Update comment.
14437 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
14439         PR rtl-optimization/66237
14440         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
14441         location of an "as_a" cast.
14443 2015-05-22  Jeff Law  <law@redhat.com>
14445         * config/pa/pa.md (non-canonical shift-add insns): Remove.
14446         (peepholes with non-canonical RTL sources): Remove.
14447         (peepholes for indexed stores of FP regs in integer modes): Match and
14448         generate canonical RTL.
14450 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
14452         PR tree-optimization/63387
14453         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
14454         ((x ord x) & (y ord y) -> (x ord y),
14455         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
14456         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
14457         vectors like scalars.
14459 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
14461         * convert.c (convert_to_integer, convert_to_vector): Include the
14462         types in the error message.
14464 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
14466         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
14467         simplifications.
14469 2015-05-22  Jeff Law  <law@redhat.com>
14471         * config/pa/pa.md (integer_indexed_store splitters): Use
14472         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
14473         insns -- adjusting the constant 2nd operand accordingly.
14475         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
14476         (plus (ashift X log2) Y) if it is a split point.
14478         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
14479         out of hppa_legitimize_address to handle both forms of a multiply
14480         by 2, 4 or 8.
14481         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
14482         Always generate the ASHIFT variant as the result is not directly
14483         used in a MEM.  Update comments and refactor slightly to improve
14484         readability.
14486 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14488         PR target/65491
14489         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
14490         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
14491         (aarch64_composite_type_p): Return false if given type and mode are
14492         for a short vector.
14494 2015-05-22  Richard Biener  <rguenther@suse.de>
14496         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
14497         member.
14498         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
14499         patterns when determining whether SLP is pure.
14500         (vect_is_slp_reduction): Remove check for pattern stmts.
14501         (vect_is_simple_reduction_1): Remove dead code.
14502         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
14503         (vect_get_and_check_slp_defs): Pass in the stmt number.
14504         Allow the first def in a reduction to be not a pattern stmt when
14505         the rest of the stmts def are patterns.
14506         (vect_build_slp_tree_1): Allow tcc_expression codes like
14507         SAD_EXPR and DOT_PROD_EXPR.
14508         (vect_build_slp_tree): Adjust.
14509         (vect_analyze_slp): Refactor and move BB vect error message ...
14510         (vect_slp_analyze_bb_1): ... here.
14512 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
14514         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
14515         for CSWTCH temporary.
14517 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14519         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
14520         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
14521         unknown unspecs.
14523 2015-05-22  Richard Biener  <rguenther@suse.de>
14525         PR tree-optimization/66251
14526         * tree-vect-stmts.c (vectorizable_conversion): Properly
14527         set STMT_VINFO_VEC_STMT even for the SLP case.
14529 2015-05-22  Marek Polacek  <polacek@redhat.com>
14531         * doc/extend.texi: Use @pxref instead of @xref.
14533 2015-05-22  hiraditya  <hiraditya@msn.com>
14535         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
14536         redundant if.
14538 2015-05-22  Richard Biener  <rguenther@suse.de>
14540         PR tree-optimization/65701
14541         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
14542         Move peeling cost models into one place.  Peel for alignment
14543         for single loads only if an aligned load is cheaper than
14544         an unaligned load.
14546 2015-05-22  Marek Polacek  <polacek@redhat.com>
14548         PR c/47043
14549         * doc/extend.texi (Enumerator Attributes): New section.
14550         Document syntax of enumerator attributes.
14552 2015-05-22  Richard Biener  <rguenther@suse.de>
14554         * tree-vect-loop.c (get_reduction_op): New function.
14555         (vect_model_reduction_cost): Use it, add reduc_index parameter.
14556         Make ready for BB reductions.
14557         (vect_create_epilog_for_reduction): Use get_reduction_op.
14558         (vectorizable_reduction): Init reduc_index to a valid value.
14559         Adjust vect_model_reduction_cost call.
14560         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
14561         operand for reduction defaults.  Add SAD_EXPR support.
14562         Assert we have a neutral op for SLP reductions.
14563         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
14564         walking pattern stmt ops only recurse to SSA names.
14566 2015-05-22  Richard Biener  <rguenther@suse.de>
14568         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
14569         assert with guard, remove check on detected reduction.
14570         (vect_recog_sad_pattern): Likewise.
14571         (vect_recog_widen_sum_pattern): Likewise.
14573 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14575         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
14576         __always_inline__ attribute.
14577         (vaesdq_u8): Likewise.
14578         (vaesmcq_u8): Likewise.
14579         (vaesimcq_u8): Likewise.
14580         (vsha1cq_u32): Likewise.
14581         (vsha1mq_u32): Likewise.
14582         (vsha1pq_u32): Likewise.
14583         (vsha1h_u32): Likewise.
14584         (vsha1su0q_u32): Likewise.
14585         (vsha1su1q_u32): Likewise.
14586         (vsha256hq_u32): Likewise.
14587         (vsha256h2q_u32): Likewise.
14588         (vsha256su0q_u32): Likewise.
14589         (vsha256su1q_u32): Likewise.
14590         (vmull_p64): Likewise.
14591         (vmull_high_p64): Likewise.
14593 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14595         * final.c (final_scan_insn): Don't check HAVE_peephole with the
14596         preprocessor.
14597         * output.h: Likewise.
14598         * genconfig.c (main): Alwways define HAVE_peephole.
14599         * genpeep.c: Don't emit checks of HAVE_peephole.
14601 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14603         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
14604         check HAVE_conditional_move with the preprocessor.
14606 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14608         * genconfig.c (main): Always define HAVE_conditional_move.
14609         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
14610         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
14611         is defined.
14613 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14615         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
14616         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
14617         and FRAME_POINTER_REGNUM with the preprocessor.
14619 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14621         * defaults.h: Add default for STACK_PUSH_CODE.
14622         * expr.c: Don't redefine STACK_PUSH_CODE.
14623         * recog.c: Likewise.
14625 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14627         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
14628         sched-deps.c: Use if instead of preprocessor checks with
14629         STACK_GROWS_DOWNWARD.
14631 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14633         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
14634         is defined.
14635         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
14636         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
14637         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
14638         * doc/tm.texi: Regenerate.
14640 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
14642         PR target/66232
14643         * config/i386/constraints.md (Bg): New constraint for GOT memory
14644         operand.
14645         * config/i386/i386.md (*call_got_x32): New pattern.
14646         (*call_value_got_x32): Likewise.
14647         * config/i386/predicates.md (GOT_memory_operand): New predicate.
14649 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
14651         PR tree-optimization/66233
14652         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
14653         Simplify.
14655 2015-05-21  Jeff Law  <law@redhat.com>
14657         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
14658         than MULT for shadd sequences.
14660 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
14662         * alias.c (alias_stats): New static var.
14663         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
14664         (dump_alias_stats_in_alias_c): New function.
14665         * alias.h (dump_alias_stats_in_alias_c): Declare.
14666         * tree-ssa-alias.c (dump_alias_stats): Call it.
14668 2015-05-08  Michael Matz  <matz@suse.de>
14670         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
14671         to strided_p.
14672         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
14673         (STMT_VINFO_STRIDED_P): ... this.
14674         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
14675         (vect_verify_datarefs_alignment): Likewise.
14676         (vect_enhance_data_refs_alignment): Likewise.
14677         (vect_analyze_data_ref_access): Likewise.
14678         (vect_analyze_data_refs): Accept strided stores.
14679         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
14680         (vect_model_load_cost): Adjust for macro rename.
14681         (vectorizable_mask_load_store): Likewise.
14682         (vectorizable_load): Likewise.
14683         (vectorizable_store): Open code strided stores.
14685 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14687         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
14688         Document sqrt_insn.
14690 2015-05-21  Richard Biener  <rguenther@suse.de>
14692         PR c++/66211
14693         * match.pd: Guard pattern optimzing (int)(float)int
14694         conversions to apply only on GIMPLE.
14696 2015-05-21  Jeff Law  <law@redhat.com>
14698         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
14699         multiply-accumulate/shift-add insn generation.
14701 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
14703         PR target/54236
14704         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
14705         operands[1] are the same.
14707 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
14709         PR middle-end/66221
14710         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
14711         build_distinct_type_copy to copy bounds.
14713 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
14715         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
14716         Change to unsigned int.
14718 2015-05-20  Jeff Law  <law@redhat.com>
14720         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
14721         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
14722         (pa_shadd_constant_p): Allow constants for shadd insns rather
14723         than valid scaling constants for memory addresses.
14724         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
14725         * config/pa/predicates.md (mem_shadd_operand): New predicate.
14726         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
14727         (shift-add insns using ASHIFT): New patterns.
14729 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
14731         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
14732         feasible.
14733         (fix_up_fall_thru_edges): Likewise.
14734         (fix_crossing_conditional_branches): Likewise. Promote jump targets
14735         from to rtx_insn to rtx_code_label where feasible.
14736         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
14737         gen_move_insn (returned type changed to rtx_insn).
14738         * builtins.c (expand_errno_check): Fix arguments of
14739         do_compare_rtx_and_jump (now expects rtx_code_label).
14740         (expand_builtin_acc_on_device): Likewise.
14741         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
14742         invert_jump (now exprects rtx_jump_insn).
14743         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
14744         (construct_init_block): Use rtx_code_label.
14745         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
14746         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
14747         calling redirect_jump.
14748         (patch_jump_insn): Likewise.
14749         (redirect_branch_edge): Likewise.
14750         (force_nonfallthru_and_redirect): Likewise.
14751         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
14752         when suitable.
14753         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
14754         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
14755         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
14756         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
14757         to store the value retured by gen_label_rtx.
14758         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
14759         rtx_jump_insn.
14760         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
14761         (split_branches): Fix calls of redirect_jump.
14762         * dojump.c (jumpifnot): Promote argument type from rtx to
14763         rtx_code_label.
14764         (jumpifnot_1): Likewise.
14765         (jumpif): Likewise.
14766         (jumpif_1): Likewise.
14767         (do_jump_1): Likewise.
14768         (do_jump): Likewise. Use rtx_code_label when feasible.
14769         (do_jump_by_parts_greater_rtx): Likewise.
14770         (do_jump_by_parts_zero_rtx): Likewise.
14771         (do_jump_by_parts_equality_rtx): Likewise.
14772         (do_compare_rtx_and_jump): Likewise.
14773         * dojump.h: Update function prototypes.
14774         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
14775         returns rtx_insn).
14776         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
14777         rtx_jump_insn.
14778         (emit_label_before): Likewise.
14779         (emit_jump_insn_after_noloc): Likewise.
14780         (emit_jump_insn_after_setloc): Likewise.
14781         (emit_jump_insn_after): Likewise
14782         (emit_jump_insn_before_setloc): Likewise.
14783         (emit_jump_insn_before): Likewise.
14784         (emit_label_before): Promote return type to rtx_code_label.
14785         (emit_label): Likewise.
14786         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
14787         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
14788         gen_move_insn.
14789         (emit_stack_restore): Likewise.
14790         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
14791         (do_cmp_and_jump): Likewise.
14792         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
14793         from rtx to rtx_code_label.
14794         (gen_move_insn_uncast): New function.
14795         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
14796         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
14797         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
14798         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
14799         invert_jump_1 and redirect_jump_1.
14800         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
14801         do_compare_rtx_and_jump.
14802         (expand_addsub_overflow): Likewise.
14803         (expand_neg_overflow): Likewise.
14804         (expand_mul_overflow): Likewise.
14805         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
14806         return value of gen_move_insn.
14807         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
14808         * loop-doloop.c (add_test): Use rtx_code_label.
14809         (doloop_modify): Likewise.
14810         (doloop_optimize): Likewise.
14811         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
14812         * lra-constraints.c (emit_spill_move): Remove cast of value returned
14813         by gen_move_insn.
14814         (inherit_reload_reg): Add cast when calling dump_insn_slim.
14815         (split_reg): Likewise.
14816         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
14817         gen_move_insn.
14818         * optabs.c (expand_binop_directly): Remove casts of values returned by
14819         maybe_gen_insn.
14820         (expand_unop_direct): Likewise.
14821         (expand_abs): Likewise.
14822         (maybe_emit_unop_insn): Likewise.
14823         (maybe_gen_insn): Promote return type to rtx_insn.
14824         * optabs.h: Update prototype of maybe_gen_insn.
14825         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
14826         redundant cast.
14827         * recog.c (struct peep2_insn_data): Promote type of insn field to
14828         rtx_insn.
14829         (peep2_reinit_state): Use NULL instead of NULL_RTX.
14830         (peep2_attempt): Remove casts of insn in peep2_insn_data.
14831         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
14832         * recog.h (struct insn_gen_fn): Promote return types of function
14833         pointers and operator ().from rtx to rtx_insn.
14834         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
14835         (fill_eager_delay_slots): Likewise.
14836         (relax_delay_slots): Likewise.
14837         (make_return_insns): Likewise.
14838         (dbr_schedule): Likewise.
14839         (optimize_skips): Likewise.
14840         (reorg_redirect_jump): Likewise.
14841         (fill_slots_from_thread): Likewise.
14842         * reorg.h: Update prototypes.
14843         * resource.c (find_dead_or_set_registers): Use dyn_cast to
14844         rtx_jump_insn instead of check.  Use it's jump_target method.
14845         * rtl.h (rtx_jump_insn::jump_label): Define new method.
14846         (rtx_jump_insn::jump_target): Define new method.
14847         (rtx_jump_insn::set_jump_target): Define new method.
14848         * rtlanal.c (tablejump_p): Promote type of one local variable.
14849         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
14850         (sched_analyze_insn): Likewise.
14851         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
14852         (print_insn): Likewise.
14853         * stmt.c (label_rtx): Promote return type to rtx_insn.
14854         (force_label_rtx): Likewise.
14855         (jump_target_rtx): Define new function.
14856         (expand_label): Use it, get rid of one cast.
14857         (expand_naked_return): Promote rtx to rtx_code_label.
14858         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
14859         (expand_case): Use rtx_code_label instread of rtx where feasible.
14860         (expand_sjlj_dispatch_table): Likewise.
14861         (emit_case_nodes): Likewise.
14862         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
14863         * store-motion.c (insert_store): Make use of new return type of
14864         gen_move_insn and remove a cast.
14865         (replace_store_insn): Likewise.
14867 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
14869         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
14870         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
14872 2015-05-20  Jeff Law  <law@redhat.com>
14874         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
14875         dispose of the jump thread path when the jump threading
14876         opportunity is cancelled.
14878 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14880         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
14881         when printing the caret character.
14883 2015-05-20  Marek Polacek  <polacek@redhat.com>
14885         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
14887 2015-05-20  Marek Polacek  <polacek@redhat.com>
14889         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
14890         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
14891         * gimple-fold.c (canonicalize_bool): Likewise.
14892         (same_bool_result_p): Likewise.
14893         * tree-if-conv.c (parse_predicate): Likewise.
14895 2015-05-20  Marek Polacek  <polacek@redhat.com>
14897         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
14898         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
14900 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14902         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
14903         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
14904         values.
14906 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
14908         * config/mips/mips.h (micromips_globals): Declare.
14910 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
14912         * timevar.def (TV_INITIALIZE_RTL): New.
14913         * toplev.c (initialize_rtl): Use an auto_timevar to account this
14914         function's time to TV_INITIALIZE_RTL.
14916 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14918         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
14919         gimple_build_nop calls.
14920         (chkp_find_bounds_for_elem): Likewise.
14921         (chkp_get_zero_bounds): Likewise.
14922         (chkp_get_none_bounds): Likewise.
14923         (chkp_get_bounds_by_definition): Likewise.
14924         (chkp_generate_extern_var_bounds): Likewise.
14925         (chkp_get_bounds_for_decl_addr): Likewise.
14926         (chkp_get_bounds_for_string_cst): Likewise.
14928 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
14930         PR tree-optimization/65447
14931         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
14932         (dump_use, dump_uses): Support to dump sub use.
14933         (record_use): New parameters to support sub use.  Remove call to
14934         dump_use.
14935         (record_sub_use, record_group_use): New functions.
14936         (compute_max_addr_offset, split_all_small_groups): New functions.
14937         (group_address_uses, rewrite_use_address): New functions.
14938         (strip_offset): New declaration.
14939         (find_interesting_uses_address): Call record_group_use.
14940         (add_candidate): New assertion.
14941         (infinite_cost_p): Move definition forward.
14942         (add_costs): Check INFTY cost and return immediately.
14943         (get_computation_cost_at): Clear setup cost and dependent bitmap
14944         for sub uses.
14945         (determine_use_iv_cost_address): Compute cost for sub uses.
14946         (rewrite_use_address_1): Rename from old rewrite_use_address.
14947         (free_loop_data): Free sub uses.
14948         (tree_ssa_iv_optimize_loop): Call group_address_uses.
14950 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14951             Jim Wilson  <jim.wilson@linaro.org>
14953         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
14954         new  fields loadv and storev.
14955         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
14956         Initialize loadv and storev.
14957         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
14958         (cortexa53_extra_costs): Likewise.
14959         (cortexa57_extra_costs): Likewise.
14960         (xgene1_extra_costs): Likewise.
14961         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
14962         rtx_costs.
14964 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14966         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
14967          storev.
14968         (cortexa8_extra_costs): Likewise.
14969         (cortexa5_extra_costs): Likewise.
14970         (cortexa7_extra_costs): Likewise.
14971         (cortexa12_extra_costs): Likewise.
14972         (cortexa15_extra_costs): Likewise.
14973         (v7m_extra_costs): Likewise.
14975 2015-05-20  Jeff Law  <law@redhat.com>
14977         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
14978         instead of open-coded version.  Also delete the jump thread created
14979         within this function.
14981 2015-05-20  Alan Modra  <amodra@gmail.com>
14983         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
14984         stack adjusting insn.  Formatting.
14985         (rs6000_emit_prologue): Track stack adjusting insn, and use of
14986         r12.  If possible, emit first -fsplit-stack arg pointer insn
14987         before stack adjust.  Don't use r12 to save cr if split-stack.
14989 2015-05-20  Alan Modra  <amodra@gmail.com>
14991         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
14992         Define.
14993         (rs6000_supports_split_stack): New function.
14994         * gcc/config/rs6000/rs6000.c (machine_function): Add
14995         split_stack_arg_pointer.
14996         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
14997         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
14998         rather than virtual_incoming_args_rtx.
14999         (rs6000_va_start): Likewise.
15000         (split_stack_arg_pointer_used_p): New function.
15001         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
15002         (morestack_ref): New var.
15003         (gen_add3_const, rs6000_expand_split_stack_prologue,
15004         rs6000_internal_arg_pointer, rs6000_live_on_entry,
15005         rs6000_split_stack_space_check): New functions.
15006         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
15007         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
15008         (UNSPECV_SPLIT_STACK_RETURN): Define.
15009         (split_stack_prologue, load_split_stack_limit,
15010         load_split_stack_limit_di, load_split_stack_limit_si,
15011         split_stack_return, split_stack_space_check): New expands and insns.
15012         * gcc/config/rs6000/rs6000-protos.h
15013         (rs6000_expand_split_stack_prologue): Declare.
15014         (rs6000_split_stack_space_check): Declare.
15016 2015-05-20  Alan Modra  <amodra@gmail.com>
15018         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
15019         (direct_return): Test vrsave_size rather than vrsave_mask.
15020         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
15021         (rs6000_emit_epilogue): Likewise.
15023 2015-05-20  Alan Modra  <amodra@gmail.com>
15025         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
15026         when not saving registers.
15027         (debug_stack_info): Adjust to omit printing unused offsets,
15028         as before.
15029         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
15030         expression.
15032 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15034         PR c++/65835
15035         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
15036         value_type to const char *.
15038 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
15040         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
15041         to build a biarch toolchain again.
15043 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
15045         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
15046         or implicit declarations.
15047         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
15048         into it.
15049         (get_odr_type): Check type has linkage before adding bases.
15050         (register_odr_type): Check that type has linkage before adding it.
15051         (type_known_to_have_no_deriavations_p): Rename to ..
15052         (type_known_to_have_no_derivations_p): This one.
15053         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
15054         (type_known_to_have_no_derivations_p): This one.
15055         * ipa-polymorphic-call.c
15056         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
15057         type has linkage.
15059 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
15061         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
15062         (layout_type): Use RECORD_OR_UNION_TYPE_P.
15064 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15066         * config/s390/s390.c (s390_vector_bool_type_p): New function.
15067         (s390_invalid_binary_op): New function.
15068         (TARGET_INVALID_BINARY_OP): Define macro.
15070 2015-05-19  David Sherwood  <david.sherwood@arm.com>
15072         * loop-invariant.c (create_new_invariant): Don't calculate address cost
15073         if mode is not a scalar integer.
15074         (get_inv_cost): Increase computational cost for unused invariants.
15076 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15078         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
15079         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
15080         * config/s390/s390-builtin-types.def: New file.
15081         * config/s390/s390-builtins.def: New file.
15082         * config/s390/s390-builtins.h: New file.
15083         * config/s390/s390-c.c: New file.
15084         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
15085         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
15086         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
15087         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
15088         prototypes.
15089         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
15090         Include.
15091         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
15092         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
15093         variable definitions.
15094         (s390_const_operand_ok): New function.
15095         (s390_expand_builtin): Rewrite.
15096         (s390_init_builtins): New function.
15097         (s390_handle_vectorbool_attribute): New function.
15098         (s390_attribute_table): Add s390_vector_bool attribute.
15099         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
15100         (s390_branch_condition_mask): Generate masks for new modes.
15101         (s390_expand_vec_compare_cc): New function.
15102         (s390_mangle_type): Add mangling for vector bool types.
15103         (enum s390_builtin): Remove.
15104         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
15105         efpc builtins.
15106         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
15107         s390_cpu_cpp_builtins.
15108         (REGISTER_TARGET_PRAGMAS): New macro.
15109         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
15110         (insn_cmp mode attribute): Add new CC modes.
15111         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
15112         (lcbb): New pattern definition.
15113         * config/s390/s390intrin.h: Include vecintrin.h.
15114         * config/s390/t-s390: New file.
15115         * config/s390/vecintrin.h: New file.
15116         * config/s390/vector.md: Include vx-builtins.md.
15117         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
15118         support.
15120 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15122         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
15123         CCVFHE.
15124         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
15125         (s390_select_ccmode): Likewise.
15126         (s390_canonicalize_comparison): Swap operands if necessary.
15127         (s390_expand_vec_compare_scalar): Expand DFmode compare using
15128         single element vector instructions.
15129         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
15130         (s390_branch_condition_mask): Generate CC masks for the new modes.
15131         * config/s390/s390.md (v0, vf, vd): New mode attributes.
15132         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
15133         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
15134         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
15135         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
15136         (*extend<DSF:mode><BFP:mode>2): New insn definition.
15137         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
15138         (extend<DSF:mode><BFP:mode>2): Turn into expander.
15139         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
15140         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
15141         (sqrt<mode>2): Add vector instruction.
15143 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15145         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
15146         constraints.
15147         * config/s390/predicates.md (const0_operand, constm1_operand)
15148         (constable_operand): Accept vector operands.
15149         * config/s390/s390-modes.def: Add supported vector modes.
15150         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
15151         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
15152         (s390_bytemask_vector_p, s390_expand_vec_strlen)
15153         (s390_expand_vec_compare, s390_expand_vcond)
15154         (s390_expand_vec_init): Add prototypes.
15155         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
15156         (s390_vector_mode_supported_p): New function.
15157         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
15158         (s390_contiguous_bitmask_vector_p): New function.
15159         (s390_bytemask_vector_p): New function.
15160         (s390_split_ok_p): Vector regs don't work either.
15161         (regclass_map): Add VEC_REGS.
15162         (s390_legitimate_constant_p): Handle vector constants.
15163         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
15164         (legitimate_reload_vector_constant_p): New function.
15165         (s390_preferred_reload_class): Handle CONST_VECTOR.
15166         (s390_reload_symref_address):  Likewise.
15167         (s390_secondary_reload): Vector memory instructions only support
15168         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
15169         (s390_emit_ccraw_jump): New function.
15170         (s390_expand_vec_strlen): New function.
15171         (s390_expand_vec_compare): New function.
15172         (s390_expand_vcond): New function.
15173         (s390_expand_vec_init): New function.
15174         (s390_dwarf_frame_reg_mode): New function.
15175         (print_operand): Handle addresses with 'O' and 'R' constraints.
15176         (NR_C_MODES, constant_modes): Add vector modes.
15177         (s390_output_pool_entry): Handle vector constants.
15178         (s390_hard_regno_mode_ok): Handle vector registers.
15179         (s390_class_max_nregs): Likewise.
15180         (s390_cannot_change_mode_class): New function.
15181         (s390_invalid_arg_for_unprototyped_fn): New function.
15182         (s390_function_arg_vector): New function.
15183         (s390_function_arg_float): Remove size variable.
15184         (s390_pass_by_reference): Handle vector arguments.
15185         (s390_function_arg_advance): Likewise.
15186         (s390_function_arg): Likewise.
15187         (s390_return_in_memory): Vector values are returned in a VR if
15188         possible.
15189         (s390_function_and_libcall_value): Handle vector arguments.
15190         (s390_gimplify_va_arg): Likewise.
15191         (s390_call_saved_register_used): Consider the arguments named.
15192         (s390_conditional_register_usage): Disable v16-v31 for non-vec
15193         targets.
15194         (s390_preferred_simd_mode): New function.
15195         (s390_support_vector_misalignment): New function.
15196         (s390_vector_alignment): New function.
15197         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
15198         (TARGET_VECTOR_MODE_SUPPORTED_P)
15199         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
15200         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
15201         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
15202         (TARGET_VECTOR_ALIGNMENT): Define target macro.
15203         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
15204         (FIRST_PSEUDO_REGISTER): Increase value.
15205         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
15206         (VECTOR_REG_P): Define macros.
15207         (FIXED_REGISTERS, CALL_USED_REGISTERS)
15208         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
15209         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
15210         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
15211         Add vector registers.
15212         (CANNOT_CHANGE_MODE_CLASS): Call C function.
15213         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
15214         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
15215         memory.
15216         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
15217         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
15218         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
15219         (VR*_REGNUM): New constants.
15220         (ALL): New mode iterator.
15221         (INTALL): Remove mode iterator.
15222         Include vector.md.
15223         (movti): Implement TImode moves for VRs.
15224         Disable TImode splitter for VR targets.
15225         Implement splitting TImode GPR<->VR moves.
15226         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
15227         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
15228         reload<mode>_la_in, reload<mode>_la_out.
15229         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
15230         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
15231         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
15232         (mov<mode> SF SD): Prefer lder, lde for loading.
15233         Add lrl and strl instructions.
15234         Add vector instructions.
15235         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
15236         Call s390_expand_vec_strlen on z13.
15237         (*cc_to_int): Change predicate to nonimmediate_operand.
15238         (addti3): Rename to *addti3.  New expander.
15239         (subti3): Rename to *subti3.  New expander.
15240         * config/s390/vector.md: New file.
15242 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15244         * common/config/s390/s390-common.c (processor_flags_table): Add
15245         z13.
15246         * config.gcc: Add z13.
15247         * config/s390/s390-opts.h (enum processor_type): Add
15248         PROCESSOR_2964_Z13.
15249         * config/s390/s390.c (s390_adjust_priority): Check for
15250         PROCESSOR_2964_Z13.
15251         (s390_reorg): Likewise.
15252         (s390_sched_reorder): Likewise.
15253         (s390_sched_variable_issue): Likewise.
15254         (s390_loop_unroll_adjust): Likewise.
15255         (s390_option_override): Likewise. Default to -mvx when available.
15256         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
15257         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
15258         (TARGET_VX_ABI): Define macros.
15259         macros.
15260         (TARGET_DEFAULT): Add MASK_OPT_VX.
15261         * config/s390/s390.md ("cpu" attribute): Add z13.
15262         ("cpu_facility" attribute): Add vec.
15263         * config/s390/s390.opt (processor_type): Add z13.
15264         (mvx): New options.
15265         * doc/invoke.texi: Add z13 option for -march.
15267 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15269         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
15270         mode check to make sure that only scalar integer values are
15271         accepted.
15273 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
15275         * tree.c (verify_type_variant): Fix #undef.
15276         (gimple_canonical_types_compatible_p): Move here from lto.c
15277         (verify_type): Verify TYPE_CANONICAL compatibility.
15278         * tree.h (gimple_canonical_types_compatible_p): Declare.
15280 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
15282         PR middle-end/66199
15283         * tree.h (OMP_TEAMS_COMBINED): Define.
15284         * gimplify.c (enum gimplify_omp_var_data): Add
15285         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
15286         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
15287         (omp_notice_variable): Accept both ORT_TEAMS
15288         and ORT_COMBINED_TEAMS.  Don't recurse if
15289         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
15290         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
15291         GOVD_FIRSTPRIVATE.
15292         (omp_no_lastprivate): New function.
15293         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
15294         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
15295         notice_outer and set appropriate bits, otherwise make
15296         sure default(none) combined constructs won't complain.
15297         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
15298         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
15299         omp_no_lastprivate either remove the clause or turn it
15300         into OMP_CLAUSE_PRIVATE.
15301         (gimplify_omp_for): Fix up handling of implicit
15302         lastprivate or linear iterators.
15303         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
15304         ORT_COMBINED_TEAMS.
15305         * omp-low.c (lower_omp_for_lastprivate): For combined
15306         for simd use fd.loop.n2 from the for rather than simd.
15308 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15310         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
15311         instead of gen_rtx_raw_REG.
15312         (cris_expand_epilogue): Likewise.
15313         * config/microblaze/microblaze.c (microblaze_classify_address):
15314         Likewise.
15315         * config/sparc/sparc.md: Likewise.
15317 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
15319         * config/alpha/alpha.c (alpha_legitimize_reload_address)
15320         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
15321         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
15322         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
15323         Use CASE_CONST_SCALAR_INT.
15324         (print_operand) <case 'M'>: Use mode_width_operand to check the
15325         value of the constant.
15326         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
15327         * config/alpha/predicates.md (input_operand): Use general_operand
15328         instead of match_code as operand check.
15329         (symbolic_operand): Use match_code with subexpression digits.
15330         * config/alpha/constraints.md (Q): Ditto.
15332 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15334         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
15336 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15338         * config/s390/s390.c (s390_secondary_reload): Fix check for
15339         load/store relative.
15341 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15343         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
15344         alternative_mask to uint64_t.
15346 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
15348         PR tree-optimization/66187
15349         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
15350         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
15351         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
15353 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
15355         * diagnostic.c (diagnostic_report_current_module): Strengthen
15356         local "new_map" from const line_map * to
15357         const line_map_ordinary *.
15358         * genmatch.c (error_cb): Likewise for local "map".
15359         (output_line_directive): Likewise for local "map".
15360         * input.c (expand_location_1): Likewise for local "map".
15361         Pass NULL rather than &map to
15362         linemap_unwind_to_first_non_reserved_loc, since the value is never
15363         read from there, and the value written back not read from here.
15364         (is_location_from_builtin_token): Strengthen local "map" from
15365         const line_map * to const line_map_ordinary *.
15366         (dump_location_info): Strengthen locals "map" from
15367         line_map *, one to const line_map_ordinary *, the other
15368         to const line_map_macro *.
15369         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
15370         const line_map * to const line_map_macro *.
15371         (maybe_unwind_expanded_macro_loc): Add a call to
15372         linemap_check_macro when writing to the "map" field of the
15373         loc_map_pair.
15374         Introduce local const line_map_ordinary * "ord_map", using it in
15375         place of "map" in the part of the function where we know we have
15376         an ordinary map.  Strengthen local "m" from const line_map * to
15377         const line_map_ordinary *.
15379 2015-05-19  Nick Clifton  <nickc@redhat.com>
15381         PR target/66156
15382         * config/msp430/msp430.md (zero_extendhisi2): Add support for
15383         separate source and destination registers.
15385 2015-05-19  Richard Biener  <rguenther@suse.de>
15387         PR tree-optimization/66165
15388         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
15389         for no load permutation.
15391         PR tree-optimization/66185
15392         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
15393         when building the SLP node from scalars.
15395 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
15396             Tristan Gingold  <gingold@adacore.com>
15398         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
15399         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
15400         (expand_stack_restore): Call record_new_stack_level.
15401         (expand_stack_save): Do not call do_pending_stack_adjust.
15402         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
15403         * calls.c (expand_call): Call record_new_stack_level for alloca.
15404         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
15405         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
15406         (update_sjlj_context): New global function.
15407         * except.h (update_sjlj_context): Declare.
15408         * explow.c (record_new_stack_level): New global function.
15409         (allocate_dynamic_stack_space): Call record_new_stack_level.
15410         * explow.h (record_new_stack_level): Declare.
15411         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
15412         * cfgrtl.c (duplicate_insn_chain): Likewise.
15414 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15416         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
15417         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
15418         STACK_GROWS_DOWNWARD as normal if.
15419         (expand_call): Likewise.
15421 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
15423         PR target/54236
15424         * config/sh/sh.md (*round_int_even): New insn_and_split and
15425         accompanying new unnamed split.
15427 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15429         * bitmap.c (bitmap_set_range): Handle count==1 specially.
15430         (bitmap_clear_range): Likewise.
15431         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
15432         bitmap_set_range unconditionally.
15433         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
15434         * df-scan.c (df_mark_reg): Likewise.
15435         * haifa-sched.c (setup_ref_regs): Likewise.
15436         * sched-rgn.c (update_live_1): Likewise.
15438 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15440         * regs.h (END_HARD_REGNO): Delete.
15441         (END_REGNO): Move to...
15442         * rtl.h: ...here.
15443         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
15444         * caller-save.c (mark_set_regs): Likewise.
15445         * combine.c (move_deaths, distribute_notes): Likewise.
15446         * cse.c (invalidate, invalidate_for_call): Likewise.
15447         * df-scan.c (df_ref_record): Likewise.
15448         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
15449         (record_last_reg_set_info): Likewise.
15450         * reg-stack.c (convert_regs_exit): Likewise.
15451         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
15452         * resource.c (update_live_status): Likewise.
15453         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
15455 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15457         * rtl.h (reg_info): Add an nregs field.
15458         (REG_NREGS): Use it.
15459         (SET_REGNO_RAW): Delete.
15460         (set_regno_raw): New function.
15461         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
15462         (END_REGNO): Redefine in terms of REG_NREGS.
15463         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
15464         SET_REGNO_RAW.
15465         * emit-rtl.c (set_mode_and_regno): Likewise.
15466         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
15467         instead of SET_REGNO_RAW.
15469 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15471         * rtl.h (PUT_MODE_RAW): New macro.
15472         (PUT_REG_NOTE_KIND): Use it.
15473         (set_mode_and_regno): Declare.
15474         (gen_raw_REG): Change regno to "unsigned int".
15475         (gen_rtx_REG): Change "unsigned" to "unsigned int".
15476         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
15477         use set_mode_and_regno to change the mode of registers.
15478         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
15479         * emit-rtl.c (set_mode_and_regno): New function.
15480         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
15481         * caller-save.c (reg_save_code): Use set_mode_and_regno.
15482         * expr.c (init_expr_target): Likewise.
15483         * ira.c (setup_prohibited_mode_move_regs): Likewise.
15484         * postreload.c (reload_cse_simplify_operands): Likewise.
15486 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15488         * caller-save.c (init_caller_save): Use word_mode and
15489         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
15490         * expr.c (init_expr_target): Likewise.
15491         * ira.c (setup_prohibited_mode_move_regs): Likewise.
15492         * postreload.c (reload_cse_regs_1): Likewise.
15494 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15496         * rtl.def (REG): Change format to "r".
15497         * rtl.h (rtunion): Remove rt_reg.
15498         (reg_info): New structure.
15499         (rtx_def): Add reg field to main union.
15500         (X0REGATTR): Delete.
15501         (REG_CHECK): New macro.
15502         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
15503         * rtl.c (rtx_format): Document "r".
15504         (rtx_code_size): Handle REG specially.
15505         * gengenrtl.c (special_format): Return true for formats
15506         that include 'r'.
15507         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
15508         Deal with REG_ATTRS after the field loop.
15509         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
15510         * expmed.c (init_expmed): Call gen_raw_REG instead of
15511         gen_rtx_raw_REG.
15512         * expr.c (init_expr_target): Likewise.
15513         * regcprop.c (maybe_mode_change): Likewise.
15514         * varasm.c (make_decl_rtl): Likewise.
15515         * final.c (leaf_renumber_regs_insn): Return early after
15516         handling REGs.
15517         * genemit.c (gen_exp): Handle 'r' fields.
15518         * genpeep.c (match_rtx): Likewise.
15519         * gensupport.c (subst_pattern_match): Likewise.
15520         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
15521         (alter_constraints, subst_dup): Likewise.
15522         * read-rtl.c (read_rtx_code): Likewise.
15523         * print-rtl.c (print_rtx): Likewise.
15524         * genrecog.c (find_operand, find_matching_operand): Likewise.
15525         (validate_pattern, match_pattern_2): Likewise.
15526         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
15527         (rtx_test::regno_field): New function.
15528         (operator ==, safe_to_hoist_p, transition_parameter_type)
15529         (parameter_type_string, print_parameter_value)
15530         (print_nonbool_test, print_test): Handle new enum values.
15531         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
15532         * lra-constraints.c (operands_match_p): Likewise.
15534 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15536         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
15537         Change type of new_regno to unsigned int.
15538         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
15539         new_regno to unsigned int.
15540         (df_ref_change_reg_with_loc): Remove old_regno parameter.
15541         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
15542         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
15543         (SET_REGNO_RAW): Add space after ",".
15545 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15547         * rtl.h (REG_NREGS): New macro
15548         * alias.c (record_set): Use it.
15549         * cfgcleanup.c (mark_effect): Likewise.
15550         * combine.c (likely_spilled_retval_1): Likewise.
15551         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
15552         (move_deaths, distribute_notes): Likewise.
15553         * cselib.c (cselib_record_set): Likewise.
15554         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
15555         * df-scan.c (df_mark_reg): Likewise.
15556         * dse.c (look_for_hardregs): Likewise.
15557         * dwarf2out.c (reg_loc_descriptor): Likewise.
15558         (multiple_reg_loc_descriptor): Likewise.
15559         * expr.c (write_complex_part, read_complex_part): Likewise.
15560         (emit_move_complex): Likewise.
15561         * haifa-sched.c (setup_ref_regs): Likewise.
15562         * ira-lives.c (mark_hard_reg_live): Likewise.
15563         * lra.c (lra_set_insn_recog_data): Likewise.
15564         * mode-switching.c (create_pre_exit): Likewise.
15565         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
15566         (reload_combine_recognize_pattern): Likewise.
15567         (reload_combine_note_use, move2add_record_mode): Likewise.
15568         (reload_cse_move2add): Likewise.
15569         * reg-stack.c (subst_stack_regs_pat): Likewise.
15570         * regcprop.c (kill_value, copy_value): Likewise.
15571         (copyprop_hardreg_forward_1): Likewise.
15572         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
15573         (build_def_use): Likewise.
15574         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
15575         (deps_analyze_insn): Likewise.
15576         * sched-rgn.c (check_live_1, update_live_1): Likewise.
15577         * sel-sched.c (count_occurrences_equiv): Likewise.
15578         * valtrack.c (dead_debug_insert_temp): Likewise.
15580 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
15582         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
15583         * dse.c (note_add_store): Likewise.
15584         * ira-lives.c (mark_hard_reg_dead): Likewise.
15585         * loop-invariant.c (mark_reg_store): Likewise.
15586         (mark_reg_death): Likewise.
15587         * postreload.c (reload_combine): Likewise.
15588         (reload_combine_note_store): Likewise.
15589         (reload_combine_note_use): Likewise.
15590         * recog.c (peep2_reg_dead_p): Likewise.
15592 2015-05-19  Alan Modra  <amodra@gmail.com>
15594         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
15595         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
15596         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
15597         unused predicates.
15598         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
15599         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
15600         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
15601         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
15603 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
15605         * config/mips/mips.md (JOIN_MODE): New mode iterator.
15606         (join2_load_Store<JOIN_MODE:mode>): New pattern.
15607         (join2_loadhi): Likewise.
15608         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
15609         load-load and store-stores.
15610         * config/mips/mips.opt (mload-store-pairs): New option.
15611         (TARGET_LOAD_STORE_PAIRS): New macro.
15612         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
15613         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
15614         * config/mips/mips.c (mips_load_store_bonding_p): New function.
15616 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
15618         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
15619         explicit swaps.
15620         * dojump.c (do_compare_rtx_and_jump): Likewise.
15621         * expmed.c (emit_store_flag_1): Likewise.
15622         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
15623         * final.c (sprint_ul): Use std::reverse for reversing a string.
15624         * fold-const.c (extract_muldiv_1): Use std::swap.
15625         * genmodes.c (emit_mode_int_n): Likewise.
15626         * ifcvt.c (dead_or_predicable): Likewise.
15627         * ira-build.c (ira_merge_live_ranges): Likewise.
15628         (swap_allocno_copy_ends_if_necessary): Likewise.
15629         * ira.c (ira_setup_alts): Likewise.
15630         * loop-iv.c (iv_analyze_expr): Likewise.
15631         (implies_p): Likewise.
15632         (canon_condition): Likewise.
15633         * lra-constraints.c (swap_operands): Likewise.
15634         * lra-lives.c (lra_merge_live_ranges): Likewise.
15635         * omega.c (swap): Remove.
15636         (bswap): Remove.
15637         (omega_unprotect_1): Use std::swap.
15638         (omega_solve_geq): Likewise.
15639         * optabs.c (expand_binop_directly): Likewise.
15640         (expand_binop): Likewise.
15641         (emit_conditional_move): Likewise.
15642         (emit_conditional_add): Likewise.
15643         * postreload.c (reload_cse_simplify_operands): Likewise.
15644         * reg-stack.c (emit_swap_insn): Likewise.
15645         (swap_to_top): Likewise.
15646         (compare_for_stack_reg): Likewise.
15647         (subst_asm_stack_regs): Likewise.
15648         * reload.c (find_reloads): Likewise.
15649         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
15650         * sel-sched.c (invoke_reorder_hooks): Likewise.
15651         (create_block_for_bookkeeping): Likewise.
15652         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
15653         (lambda_matrix_right_hermite): Use std::swap.
15654         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
15655         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
15656         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
15657         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
15658         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
15659         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
15660         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
15661         * tree-vrp.c (compare_ranges): Likewise.
15662         * var-tracking.c (add_with_sets): Likewise.
15663         (vt_find_locations): Likewise.
15665 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
15667         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
15668         pie executables.
15669         (FBSD_ENDFILE_SPEC): Likewise.
15670         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
15671         config/freebsd-spec.h.
15672         (ENDFILE_SPEC): Likewise.
15674 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
15675             Richard Henderson  <rth@redhat.com>
15677         PR target/57032
15678         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
15679         Check for a memory location that is not a reference (using an AND)
15680         to an unaligned location here.
15681         * config/alpha/predicates.md (normal_memory_operand): Remove.
15683 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
15685         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
15686         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
15688 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
15690         * config/mips/mips.c (micromips_globals): New variable.
15691         (mips_set_compression_mode): Save and reinitialize target-dependent
15692         state for microMIPS.
15694 2015-05-18  Martin Liska  <mliska@suse.cz>
15696         * dbgcnt.def: Add new counter.
15697         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
15699 2015-05-18  Martin Liska  <mliska@suse.cz>
15701         * dbgcnt.def: Sort counters.
15702         * opts.c (common_handle_option): Do not compile if
15703         -fdbg-cnt-list is enabled.
15705 2015-05-18  Tom de Vries  <tom@codesourcery.com>
15707         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
15708         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
15709         address operator to va_list operand.
15710         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
15711         unconditionally.
15712         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
15713         operand.
15714         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
15715         * config/s390/s390.c (s390_gimplify_va_arg): Same.
15716         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
15718 2015-05-18  Tom de Vries  <tom@codesourcery.com>
15720         * tree-ssa-tail-merge.c: Fix whitespace.
15722 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
15724         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
15725         cortex-a17, and cortex-a17.cortex-a7.
15727 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
15729         PR target/54236
15730         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
15732 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
15734         PR target/66174
15735         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
15736         QImode inner modes for TARGET_AVX512BW.  Force mask operand
15737         to a register for AVX512F modes.
15739 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
15741         * toplev.c (emit_debug_global_declarations): Do not output debug info
15742         when doing slim LTO objects.
15744 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
15746         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
15747         odr_types_equivalent_p): Declare.
15748         (odr_type_p): Use gcc_checking_assert.
15749         (type_in_anonymous_namespace_p) Declare.
15750         (type_with_linkage_p): Declare.
15751         * common.opt (Wlto-type-mismatch): New warning.
15752         * ipa-devirt.c (compound_type_base): New function.
15753         (odr_or_derived_type_p): New function.
15754         (odr_types_equivalent_p): New function.
15755         (add_type_duplicate): Simplify.
15756         (type_with_linkage_p): Add hack to prevent false positives on C types
15757         (type_in_anonymous_namespace_p): Likewise.
15758         * tree.c (need_assembler_name_p): Use type_with_linkage.
15759         * tree.h (type_in_anonymous_namespace_p): Remove.
15760         * doc/invoke.texi (-Wlto-type-mismatch): Document
15762 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
15764         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
15765         (verify_type): Verify STRING_FLAG.
15767 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15769         PR fortran/44054
15770         * tree-pretty-print.c (percent_K_format): Replace locus pointer
15771         with accessor function.
15772         * tree-diagnostic.c (diagnostic_report_current_function): Use
15773         diagnostic_location function.
15774         (maybe_unwind_expanded_macro_loc): Likewise.
15775         (virt_loc_aware_diagnostic_finalizer): Likewise.
15776         (default_tree_printer): Replace locus pointer with accessor function.
15777         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
15778         (diagnostic_set_info_translated): Initialize second location.
15779         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
15780         (diagnostic_show_locus): Handle two locations. Call
15781         diagnostic_print_caret_line.
15782         (diagnostic_print_caret_line): New.
15783         (default_diagnostic_starter): Use diagnostic_location function.
15784         (diagnostic_report_diagnostic): Use diagnostic_location function.
15785         (verbatim): Do not set text.locus.
15786         * diagnostic.h (struct diagnostic_info): Remove location field.
15787         (struct diagnostic_context): Make caret_chars an array of two.
15788         (diagnostic_location): New inline.
15789         (diagnostic_expand_location): Handle two locations.
15790         (diagnostic_same_line): New inline.
15791         (diagnostic_print_caret_line): Declare.
15792         (CARET_LINE_MARGIN): New constant.
15793         * pretty-print.c (pp_printf): Do not set text.locus.
15794         (pp_verbatim): Do not set text.locus.
15795         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
15796         (struct text_info): Replace locus pointer with locations
15797         array. Add accessor functions.
15799 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
15800             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
15802         PR target/65768
15803         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
15804         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
15805          large constants in register instead of splitting them.
15807 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
15809         PR target/66140
15810         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
15811         replacements in memory addresses.
15812         (get_unaligned_address): Ditto.
15814 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
15816         * config/ft32/*: New files for FT32 port.
15817         * doc/install.texi: Add FT32 information.
15818         * doc/invoke.texi: Add FT32 information.
15819         * doc/md.texi: Add FT32 information.
15820         * doc/contrib.texi: Self added.
15822 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
15824         PR tree-optimization/64454
15825         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
15826         (-1 - A -> ~A): Remove unnecessary condition.
15828 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
15830         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
15831         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
15832         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
15834 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
15836         * ipa-chkp.h (chkp_wrap_function): New.
15837         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
15838         (chkp_wrap_function_name): New.
15839         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
15840         to get wrapper name.
15841         * lto-cgraph.c: Include ipa-chkp.h.
15842         (input_cgraph_1): Avoid alias chain for wrappers.
15844 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15846         PR middle-end/66134
15847         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
15848         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
15850 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15852         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
15853         (AARCH64_FL_SLOWMUL): Delete.
15854         (AARCH64_FL_CRC): Redefine to 1<<3.
15855         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
15857 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15859         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
15860         casting.
15862 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
15864         * config/alpha/alpha.md (extendqidi2): Use general_operand
15865         instead of some_operand for operand[1] predicate.
15866         (extendhidi2): Ditto.
15867         (cbranchdi4): Use general_operand instead of some_operand
15868         for operand[1] and operands[2] predicates.
15869         (cstoredi4): Ditto.
15870         * config/alpha/predicates.md (some_operand): Remove unused predicate.
15871         (some_ni_operand): Ditto.
15873 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
15875         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
15876         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
15877         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
15878         low part of the constant using alpha_emit_set_const_1.
15879         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
15881 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
15883         * varasm.c (output_constant_pool_1): Pass down alignment from
15884         constant pool entry's descriptor to output_constant_pool_2.
15885         (output_object_block): Add comment prior to call to
15886         output_constant_pool_1.
15888 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
15890         PR rtl-optimization/65862
15891         * target.def (ira_change_pseudo_allocno_class): New hook.
15892         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
15893         value of the hook.
15894         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
15895         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
15896         hook.
15897         * ira-costs.c (find_costs_and_classes): Call the hook and change
15898         classes when it is necessary.
15899         * doc/tm.texi: Update.
15901 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
15903         * config/i386/i386.md (sibcall_memory): Check that register with
15904         callee address is not also used as one of the arguments, instead
15905         of checking that it is not live after the sibcall.
15906         (sibcall_pop_memory): Ditto.
15907         (sibcall_value_memory): Ditto.
15908         (sibcall_value_pop_memory): Ditto.
15910 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
15912         * generic-match-head.c (types_match): Handle non-types.
15913         * gimple-match-head.c (types_match): Likewise.
15914         * match.pd: Remove unnecessary TREE_TYPE for types_match.
15916 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
15918         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
15919         (csneg3<mode>_insn): Enable expansion of pattern.
15921 2015-05-14  Nick Clifton  <nickc@redhat.com>
15923         * config/rl78/rl78.c (rl78_select_section): Select the correct
15924         default section based upon the category of the decl.
15926 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
15928         PR rtl-optimization/30967
15929         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
15930         destination mode for the cost of scc patterns.
15932 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
15934         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
15935         using SWIM248 mode iterator.
15936         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
15937         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
15938         for operand[2] constraint.
15939         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
15941 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
15943         PR middle-end/66133
15944         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
15945         make sure it is never noreturn, even when the task body does not
15946         return.
15947         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
15948         right before GIMPLE_OMP_RETURN.
15949         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
15950         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
15951         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
15953 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15955         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
15956         * tree-ssa-math-opts.c: Include params.h
15957         (pow_synth_sqrt_info): New struct.
15958         (representable_as_half_series_p): New function.
15959         (get_fn_chain): Likewise.
15960         (print_nested_fn): Likewise.
15961         (dump_fractional_sqrt_sequence): Likewise.
15962         (dump_integer_part): Likewise.
15963         (expand_pow_as_sqrts): Likewise.
15964         (gimple_expand_builtin_pow): Use above to attempt to expand
15965         pow as series of square roots.  Removed now unused variables.
15967 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
15969         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
15970         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
15971         Remove *p0 and *p1 arguments.  Rewrite function.
15972         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
15973         (alpha_split_const_mov): Update calls to alpha_extract_integer and
15974         alpha_emit_set_long_const.
15975         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
15976         (alpha_output_mi_thunk_osf): Ditto.
15977         * config/alpha/alpha.md (movti): Do not check operands[1]
15978         for CONST_DOUBLE.
15980 2015-05-13  Richard Biener  <rguenther@suse.de>
15982         PR tree-optimization/66129
15983         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
15984         commutative.
15985         (vect_schedule_slp_instance): Fix typo.
15987 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
15989         * common.opt (fdump-internal-locations): New option.
15990         * input.c: Include diagnostic-core.h.
15991         (get_end_location): New function.
15992         (write_digit): New function.
15993         (write_digit_row): New function.
15994         (dump_location_range): New function.
15995         (dump_labelled_location_range): New function.
15996         (dump_location_info): New function.
15997         * input.h (dump_location_info): New prototype.
15998         * toplev.c (compile_file): Handle flag_dump_locations.
16000 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
16002         * gimple-expr.h (is_gimple_constant): Reorder.
16003         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
16005 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
16007         * combine.c (simplify_set): When generating a CC set, if the
16008         source already is in the correct mode, do not wrap it in a
16009         compare.  Simplify the rest of that code.
16011 2015-05-13  Richard Biener  <rguenther@suse.de>
16013         PR tree-optimization/66123
16014         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
16015         a taken edge.
16017 2015-05-13  Richard Biener  <rguenther@suse.de>
16019         PR middle-end/66110
16020         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
16021         specially.
16022         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
16024 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
16026         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
16027         * aclocal.m4: Regenerated with automake-1.11.6.
16029 2015-05-13  Tom de Vries  <tom@codesourcery.com>
16031         PR tree-optimization/66010
16032         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
16033         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
16034         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
16035         and rval based on do_deref.
16037 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
16039         PR target/65103
16040         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
16041         link time constants into adress expressions and therefore set
16042         their cost to 0.
16044 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
16046         PR target/66112
16047         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
16048         Use SWI248 iterator instead of SWI.
16049         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
16050         Use eq_attr "alternative" "0" instead of match_test in
16051         length_immediate attribute computation.
16052         (*mulvhi4, *mulvhi4_1): New define_insns.
16054         PR target/66112
16055         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
16056         SIGNED to get precision of non-negative value.
16058 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
16060         PR target/66048
16061         * function.c (diddle_return_value_1): Process bounds first.
16062         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
16063         register.
16065 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16067         PR rtl-optimization/64616
16068         * loop-invariant.c (can_move_invariant_reg): New.
16069         (move_invariant_reg): Call above new function to decide whether
16070         instruction can just be moved, skipping creation of temporary
16071         register.
16073 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
16075         PR target/pr66047.c
16076         * i386.c (ix86_function_sseregparm): Only return -1 if local function
16077         with implied regparm is called from -mno-sse function.
16078         (init_cumulative_args): Output error if ix86_function_sseregparm
16079         return -1 and SSE register would be needed.
16080         (function_arg_advance_32): Likewise.
16081         (function_arg_32): Likewise.
16082         * i386.h (ix86_args): Add decl field.
16084 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
16086         PR ipa/65873
16087         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
16088         inlines across optimization boundary.
16090 2015-05-12  Jason Merrill  <jason@redhat.com>
16092         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
16093         string literal and macro name.
16095 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
16097         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
16098         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
16099         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
16101 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
16103         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
16104         (-Wmisleading-indentation): New option.
16105         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
16107 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
16109         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
16110         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
16111         (alpha_extract_integer): Ditto.
16112         (alpha_legitimate_constant_p): Ditto.
16113         (alpha_split_tmode_pair): Ditto.
16114         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
16115         (alpha_expand_mov): Ditto.
16116         (print_operand): Remove handling of 'H' modifier.
16117         <case 'm'>: Remove CONST_DOUBLE handling.
16118         (summarize_insn): Handle CONST_WIDE_INT.
16119         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
16120         (anddi3): Ditto.
16121         (movti): Handle CONST_WIDE_INT.
16122         * config/alpha/constraints.md ('H'): Remove constraint definition.
16123         ('G'): Do not match MODE_FLOAT class.
16124         * config/alpha/predicates.md (const0_operand): Also match
16125         const_wide_int.
16126         (non_add_const_operand): Ditto.
16127         (non_zero_const_operand): Ditto.
16128         (some_operand): Ditto.
16129         (input_operand): Ditto.  Handle CONST_WIDE_INT.
16130         (and_operand): Do not match const_double.
16131         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
16133 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
16135         PR target/65697
16136         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
16137         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
16138         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
16139         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
16140         is_mm_seq_cst, is_mm_sync): New accessor functions.
16141         * builtins.c (expand_builtin_sync_operation,
16142         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
16143         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
16144         (get_memmodel,  expand_builtin_atomic_compare_exchange,
16145         expand_builtin_atomic_load, expand_builtin_atomic_store,
16146         expand_builtin_atomic_clear): Use new accessor routines.
16147         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
16148         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
16149         (maybe_emit_sync_lock_test_and_set): Use new accessors and
16150         MEMMODEL_SYNC_ACQUIRE.
16151         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
16152         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
16153         expand_atomic_store): Use new accessors.
16154         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
16155         * tsan.c (instrument_builtin_call): Update check for memory model beyond
16156         final enum to use MEMMODEL_LAST.
16157         * c-family/c-common.c: Use new accessor for memmodel_base.
16158         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
16159         accessors.
16160         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
16161         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
16162         mem_thread_fence, *dmb): Likewise.
16163         * config/alpha/alpha.c (alpha_split_compare_and_swap,
16164         alpha_split_compare_and_swap_12): Likewise.
16165         * config/arm/arm.c (arm_expand_compare_and_swap,
16166         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
16167         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
16168         atomic_loaddi): Likewise.
16169         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
16170         Likewise.
16171         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
16172         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
16173         use new accessors.
16174         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
16175         atomic_store<mode>, atomic_compare_and_swap<mode>,
16176         atomic_exchange<mode>): Use new accessors.
16177         * config/mips/mips.c (mips_process_sync_loop): Likewise.
16178         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
16179         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
16180         rs6000_post_atomic_barrier): Add new cases.
16181         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
16182         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
16183         (atomic_load<mode>): Add new cases and use new accessors.
16184         (store_quadpti): Add new cases.
16185         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
16186         accessors.
16187         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
16188         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
16189         model, not 8.
16191 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
16193         * ipa-devirt.c (type_with_linkage_p): New function.
16194         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
16195         type has linkage.
16196         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
16197         (can_be_name_hashed_p): Simplify.
16198         (hash_odr_name): Check that type has linkage before checking if it is
16199         anonymous.
16200         (types_same_for_odr): Likewise.
16201         (odr_name_hasher::equal): Likewise.
16202         (odr_subtypes_equivalent_p): Likewise.
16203         (warn_types_mismatch): Likewise.
16204         (get_odr_type): Likewise.
16205         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
16206         * ipa-utils.h (odr_type_p): Move offline.
16207         * tree.c (need_assembler_name_p): Fix handling of types
16208         without linkages.
16209         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
16211 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
16213         * timevar.c (timevar_enable): Delete in favor of...
16214         (g_timer): New global.
16215         (struct timevar_def): Move to timevar.h inside class timer.
16216         (struct timevar_stack_def): Likewise.
16217         (timevars): Delete global in favor of field "m_timevars" within
16218         class timer in timevar.h
16219         (stack): Likewise, in favor of field "m_stack".
16220         (unused_stack_instances): Likewise, in favor of field
16221         "m_unused_stack_instances".
16222         (start_time): Likewise, in favor of field "m_start_time".
16223         (get_time): Eliminate check for timevar_enable.
16224         (timer::timer): New function, built from part of timevar_init.
16225         (timevar_init): Rewrite idempotency test from using
16226         "timevar_enable" bool to using dynamic allocation of "g_timer".
16227         Move rest of implementation into timer's constructor.
16228         (timevar_push_1): Rename to...
16229         (timer::push): ...this, adding "m_" prefixes to variables that
16230         are now fields of timer.
16231         (timevar_pop_1): Likewise, rename to...
16232         (timer::pop): ...this, and add "m_" prefixes.
16233         (timevar_start): Replace test for "timevar_enable" with one for
16234         "g_timer", and move bulk of implementation to...
16235         (timer::start): ...here, adding "m_" prefixes.
16236         (timevar_stop): Likewise, from here...
16237         (timer::stop): ...to here.
16238         (timevar_cond_start): Likewise, from here...
16239         (timer::cond_start): ...to here.
16240         (timevar_cond_stop): Likewise, from here...
16241         (timer::cond_stop): ...to here.
16242         (validate_phases): Rename to...
16243         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
16244         locals "total" and "tv" const.
16245         (timevar_print): Rename to...
16246         (timer::print): ...this, and add "m_" prefixes.  Make locals
16247         "total" and "tv" const.  Eliminate test for timevar_enable.
16248         * timevar.h (timevar_enable): Eliminate.
16249         (g_timer): New declaration.
16250         (timevar_push_1): Eliminate.
16251         (timevar_pop_1): Eliminate.
16252         (timevar_print): Eliminate.
16253         (class timer): New class.
16254         (timevar_push): Rewrite to use g_timer.
16255         (timevar_pop): Likewise.
16256         * toplev.c (toplev::~toplev): Likewise.
16258 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
16260         * arm-protos.h (arm_sched_autopref): Delete.
16261         (tune_params): Re-organize, use enums for flag values.
16262         (FUSE_OPS): New macro.
16263         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
16264         (ARM_PREFETCH_BENEFICIAL): Likewise.
16265         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
16266         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
16267         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
16268         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
16269         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
16270         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
16271         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
16272         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
16273         format.
16274         (arm_option_override, thumb2_reorg, arm_print_tune_info)
16275         (aarch_macro_fusion_pair_p): Update uses of current_tune.
16276         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
16278 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
16280         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
16281         "break".
16283 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
16284             Sandra Loosemore <sandra@codesourcery.com>
16286         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
16287         value.
16288         (REG_CLASS_NAMES): Add "IJMP_REGS".
16289         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
16290         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
16291         use new "c" register constraint.
16292         * config/nios2/constraint.md (c): New register constraint
16293         corresponding to IJMP_REGS.
16295 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16297         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
16298         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
16299         define_splits): Delete, revamp, transmogrify into ...
16300         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
16301         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
16302         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
16303         New.
16305 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16307         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
16308         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
16310 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16312         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
16313         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
16314         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
16315         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
16316         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
16317         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
16318         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
16319         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
16320         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
16321         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
16322         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
16323         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
16324         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
16325         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
16326         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
16327         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
16328         and 30 corresponding splitters): Delete.
16330 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16332         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
16333         zero_extract.
16335 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16337         * combine.c (recog_for_combine_1): New function, factored out
16338         from recog_for_combine.
16339         (change_zero_ext): New function.
16340         (recog_for_combine): If recog fails, try again with the pattern
16341         modified by change_zero_ext; if that still fails, restore the
16342         pattern.
16344 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
16346         * combine.c (get_undo_marker): New function.
16347         (undo_to_marker): New function, largely factored out from ...
16348         (undo_all): ... this.  Adjust.
16350 2015-05-12  Richard Biener  <rguenther@suse.de>
16352         PR tree-optimization/66101
16353         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
16354         fixup if we turn a loop exit edge to a fallthru edge.
16356 2015-05-12  Richard Biener  <rguenther@suse.de>
16358         PR tree-optimization/37021
16359         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
16360         (SLP_TREE_TWO_OPERATORS): New define.
16361         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
16362         SLP_TREE_TWO_OPERATORS.
16363         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
16364         SLP node.
16365         (vect_build_slp_tree): Adjust.
16366         (vect_analyze_slp_cost_1): Likewise.
16367         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
16368         emitting two vector stmts and mixing the results.
16370 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
16372         * call.c (print_z_candidates): Remove dead code.
16374 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16376         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
16377         and zEC12_simple_fp.
16378         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
16379         to 1.
16381 2015-05-12  Tom de Vries  <tom@codesourcery.com>
16383         PR tree-optimization/66010
16384         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
16385         ifn_va_arg.
16386         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
16387         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
16388         va_lists are passed, and remove corresponding handling.
16389         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
16390         do_deref argument to ifn_va_arg.
16391         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
16392         ifn_va_arg.
16394 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16396         PR target/65955
16397         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
16398         REG before taking its REGNO.
16400 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16402         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
16403         rsp->sign_bit_copies and rsp->nonzero_bits into ...
16404         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
16405         present to get more accurate information about the number of sign bit
16406         copies and non zero bits.
16408 2015-05-12  Richard Biener  <rguenther@suse.de>
16410         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
16411         do not allow unrolling.
16413 2015-05-11  Richard Henderson  <rth@redhat.com>
16415         * config/i386/i386-modes.def (CCP): New.
16416         * config/i386/i386.c (put_condition_code): Handle it.
16417         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
16419 2015-05-11  Richard Henderson  <rth@redhat.com>
16421         * target.def (md_asm_clobbers): Replace with...
16422         (md_asm_adjust): this.
16423         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
16424         (TARGET_MD_ASM_ADJUST): New.
16425         * tm.texi: Rebuild.
16426         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
16427         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
16428         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
16430         * cfgexpand.c (check_operand_nalternatives): Accept vector of
16431         constraints instead of lists of outputs and inputs.
16432         (expand_asm_stmt): Save and restore input_location around the
16433         body of the function.  Move asm data into vectors instead of
16434         building tree lists.  Generate cleanup sequences as needed,
16435         rather than waiting til the end.  Use new md_asm_adjust hook.
16437         * config/vxworks.c: Include vec.h before target.h.
16438         * gimple.c: Likewise.
16439         * incpath.c: Likewise.
16440         * mode-switching.c: Likewise.
16442         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
16443         (cris_md_asm_adjust): this.
16444         (TARGET_MD_ASM_CLOBBERS): Remove.
16445         (TARGET_MD_ASM_ADJUST): New.
16446         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
16447         (ix86_md_asm_adjust): this.
16448         (TARGET_MD_ASM_CLOBBERS): Remove.
16449         (TARGET_MD_ASM_ADJUST): New.
16450         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
16451         (mn10300_md_asm_adjust): this.
16452         (TARGET_MD_ASM_CLOBBERS): Remove.
16453         (TARGET_MD_ASM_ADJUST): New.
16454         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
16455         (rs6000_md_asm_adjust): this.
16456         (TARGET_MD_ASM_CLOBBERS): Remove.
16457         (TARGET_MD_ASM_ADJUST): New.
16458         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
16459         (visium_md_asm_adjust): this.
16460         (TARGET_MD_ASM_CLOBBERS): Remove.
16461         (TARGET_MD_ASM_ADJUST): New.
16463 2015-05-11  Richard Henderson  <rth@redhat.com>
16465         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
16466         if noutputs is zero.
16467         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
16469         * cfgexpand.c (expand_asm_operands): Merge into...
16470         (expand_asm_stmt): ... here.
16472         * cfgexpand.c (expand_asm_operands): Don't call
16473         resolve_asm_operand_names.
16474         * stmt.c (resolve_asm_operand_names): Clarify block comment.
16476 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
16478         * dwarf2out.c (gen_member_die): Sanity check that we access
16479         TYPE_MAIN_VARIANT for TYPE_METHODS.
16480         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
16481         checking TYPE_METHODS.
16482         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
16483         if non-null.
16484         (build_distinct_type_copy): Clear TYPE_METHODS.
16485         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
16486         (verify_type): Allow TYPE_METHODS to be error_mark_node.
16487         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
16489 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
16491         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
16492         (emit_pattern_before_setloc): Likewise.
16494 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
16496         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
16497         for define_peephole2s.
16498         (get_peephole2_pattern): New function.
16499         (main): Use it.  Call validate_pattern.
16501 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
16503         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
16504         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
16505         (Last callee saved reg is different for AVR_TINY architecture)
16507 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
16509         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
16510         when looking for memory references.
16512 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
16514         PR target/65753
16515         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
16516         via function pointers.
16518 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
16520         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
16521         indirect call by forcing address into a pseudo with -fno-plt.
16522         * common.opt (flag_plt): New option.
16523         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
16524         ([-fno-plt]): Document.
16526 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
16528         PR bootstrap/66105
16529         * config/rs6000/option-defaults.h: Add space between string literal
16530         and macro name.
16532 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16534         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
16535         accross ARM targets.
16537 2015-05-11  Christian Bruel  <christian.bruel@st.com>
16539         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
16540         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
16542 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
16544         PR rtl-optimization/66076
16545         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
16546         Don't grow the heap array if it is already big enough from a
16547         previous iteration.
16549 2015-05-11  Christian Bruel  <christian.bruel@st.com>
16551         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
16552         (is_called_in_ARM_mode): Remove.
16553         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
16554         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
16555         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
16556          arm_declare_function_name.
16558 2015-05-11  Christian Bruel  <christian.bruel@st.com>
16560         * config/arm/arm.c (arm_option_override): Reoganized and split into :
16561         (arm_option_params_internal); New function.
16562         (arm_option_check_internal): New function.
16563         (arm_option_override_internal): New function.
16564         (thumb_code, thumb1_code): Remove.
16565         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
16566         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
16567         (thumb_code, thumb1_code): Remove.
16568         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
16570 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
16572         * config/alpha/alpha.c (alpha_emit_set_const_1)
16573         (alpha_emit_set_long_const, alpha_extract_integer)
16574         (alpha_legitimate_constant_p, alpha_split_const_mov)
16575         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
16576         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
16577         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
16578         HOST_WIDE_INT_1U.
16579         * config/alpha/predicates.md (mode_mask_operand): Do not match
16580         const_double RTX.
16581         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
16582         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
16583         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
16584         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
16585         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
16587 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
16589         PR target/65780
16590         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
16591         default_binds_local_p_2.
16592         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
16593         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
16595 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
16597         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
16599 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
16601         Patch by Richard Biener
16602         * coverage.c (coverage_obj_init): Delay building of type variant
16603         until the type is finished.
16605 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
16607         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
16608         mismatch between C and C++ type; compoare correctly ARG_TYPES
16609         for non-prototypes and output correctly parameter index for METHOD_TYPE.
16610         (odr_types_equivalent_p): Fix wording of warning about attributes;
16611         it is OK to match prototype and non-prototype.
16613 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
16615         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
16616         TYPE_ARG_TYPES list.
16617         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
16618         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
16620 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
16622         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
16623         * tree.h (is_lang_specific): Constify.
16625 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
16627         PR tree-optimization/64454
16628         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
16629         Rewrite.
16631 2015-05-08  Jason Merrill  <jason@redhat.com>
16633         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
16634         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
16635         config/darwin.h, config/darwin9.h, config/elfos.h,
16636         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
16637         config/microblaze/microblaze.h, config/mips/mips.h,
16638         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
16639         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
16640         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
16641         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
16642         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
16643         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
16644         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
16645         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
16646         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
16647         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
16648         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
16649         between string literal and macro name.
16651 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16653         * jump.c: Change argument types to rtx_insn *.
16654         * rtl.h: Adjust.
16656 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16658         * lra-constraints.c: Change argument type to rtx_insn *.
16660 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16662         * df-problems.c: Change argument type to rtx_insn *.
16664 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16666         * combine.c: Change argument type to rtx_insn *.
16668 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16670         * rtl.h: Adjust.
16671         * rtlanal.c: Change argument type to rtx_insn *.
16673 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16675         * sched-deps.c: Change argument types to rtx_insn *.
16676         * sched-int.h: Adjust.
16678 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16680         * dwarf2cfi.c: Change argument type to rtx_insn *.
16682 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16684         * ira.c (decrease_live_ranges_number): Changetype of local
16685         variable to rtx_insn *.
16686         * recog.c: Change argument types to rtx_insn *.
16687         * recog.h: Adjust.
16689 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16691         * reorg.c: Change argument types to rtx_insn *.
16693 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16695         * ira-color.c: Change argument types to rtx_insn *.
16696         * lra-eliminations.c: Likewise.
16697         * ira.h: Adjust.
16699 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16701         * gcse.c: Change argument types to rtx_insn *.
16703 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16705         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
16707 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16709         * emit-rtl.c (emit_debug_insn_before): Change argument type to
16710         rtx_insn *.
16711         * rtl.h: Adjust.
16713 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16715         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
16716         * rtl.h: Adjust.
16718 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16720         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
16721         * rtl.h: Adjust.
16723 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16725         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
16726         * rtl.h: Adjust.
16728 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16730         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
16731         * rtl.h: Adjust.
16733 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16735         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
16736         to rtx_insn *.
16737         * rtl.h: Adjust.
16739 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16741         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
16742         to rtx_insn *.
16743         * rtl.h: Likewise.
16745 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16747         * except.c (can_nonlocal_goto): Change type of argument to
16748         rtx_insn *.
16749         * rtl.h: Adjust.
16751 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16753         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
16754         * rtl.h: Adjust.
16756 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16758         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
16759         * cfgrtl.c (can_delete_label_p): Adjust.
16760         * rtl.h: likewise.
16762 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16764         * reorg.c (stop_search_p): Change argument to rtx_insn *.
16766 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16768         * except.c (make_reg_eh_region_note): Change argument to
16769         rtx_insn *.
16770         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
16771         * except.h: Adjust.
16773 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16775         * mode-switching.c (commit_mode_sets): Change type of local
16776         variable from rtx to rtx_insn *.
16778 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
16780         * doc/install.texi (--enable-languages): Add missing jit and lto info.
16781         Add ^ to grep command.
16782         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
16783         arg to last gimple_simplify declaration.  Add missing gimple_build
16784         declaration for built-in function case with four tree args.
16786 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
16787             Szabolcs Nagy  <szabolcs.nagy@arm.com>
16789         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
16790         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
16791         (GNU_USER_DYNAMIC_LINKERN32): Update.
16793 2015-05-08  Richard Biener  <rguenther@suse.de>
16795         PR tree-optimization/66036
16796         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16797         Handle strided group loads.
16798         (vect_verify_datarefs_alignment): Likewise.
16799         (vect_enhance_data_refs_alignment): Likewise.
16800         (vect_analyze_group_access): Likewise.
16801         (vect_analyze_data_ref_access): Likewise.
16802         (vect_analyze_data_ref_accesses): Likewise.
16803         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
16804         (vectorizable_load): Likewise.
16806 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
16808         * config/rs6000/rs6000.md: Require operand inequality in one
16809         of the peepholes.
16811 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
16812             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16814         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
16815         from (set ...).
16816         * config/rx/rx.md (movdi, movdf): Likewise.
16817         Likewise for define_peephole2s.
16819 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
16821         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
16822         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
16823         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
16824         vtst_u64): Rewrite using gcc vector extensions.
16826 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
16828         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
16829         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
16831 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
16833         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
16835 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16837         * config/glibc-stdint.h (OPTION_MUSL): Define.
16838         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
16839         Change the definition based on OPTION_MUSL for 64 bit targets.
16840         * config/linux.h (OPTION_MUSL): Redefine.
16841         * config/alpha/linux.h (OPTION_MUSL): Redefine.
16842         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
16843         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
16845 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
16846             Szabolcs Nagy  <szabolcs.nagy@arm.com>
16848         * config.gcc (LIBC_MUSL): New tm_defines macro.
16849         * config/linux.h (OPTION_MUSL): Define.
16850         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
16851         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
16852         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
16853         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
16854         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
16855         * config/linux.opt (mmusl): New option.
16856         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
16857         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
16858         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
16859         * configure: Regenerate.
16861 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
16862             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
16864         PR target/48904
16865         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
16866         * config/i386/knetbsd-gnu64.h: New file.
16868 2015-05-08  Marek Polacek  <polacek@redhat.com>
16870         PR c/64918
16871         * doc/invoke.texi: Document -Woverride-init-side-effects.
16873 2015-05-07  Marek Polacek  <polacek@redhat.com>
16875         PR c/65179
16876         * doc/invoke.texi: Document -Wshift-negative-value.
16878 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
16880         * gcov-tool.c (do_merge): Refactore to remove int ret.
16881         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
16882         !type == FUNC to type != FUNC.
16883         * reload.h (struct target_reload): Changee to type of
16884         x_spill_indirect_levels from bool to unsigned char.
16886 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
16888         * rtl.h (always_void_p): New function.
16889         * gengenrtl.c (always_void_p): Likewise.
16890         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
16891         with code foo are always VOIDmode.
16892         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
16893         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
16894         compare-elim.c, config/aarch64/aarch64.c,
16895         config/aarch64/aarch64.md, config/alpha/alpha.c,
16896         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
16897         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
16898         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
16899         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
16900         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
16901         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
16902         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
16903         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
16904         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
16905         config/ia64/vect.md, config/iq2000/iq2000.c,
16906         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
16907         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
16908         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
16909         config/mep/mep.c, config/microblaze/microblaze.c,
16910         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
16911         config/mn10300/mn10300.c, config/msp430/msp430.c,
16912         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
16913         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
16914         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
16915         config/rs6000/altivec.md, config/rs6000/rs6000.c,
16916         config/rs6000/rs6000.md, config/rs6000/vector.md,
16917         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
16918         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
16919         config/sh/sh.md, config/sh/sh_treg_combine.cc,
16920         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
16921         config/spu/spu.md, config/stormy16/stormy16.c,
16922         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
16923         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
16924         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
16925         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
16926         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
16927         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
16928         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
16929         var-tracking.c: Update calls accordingly.
16931 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
16933         PR middle-end/192
16934         PR middle-end/54303
16935         * varasm.c (function_mergeable_rodata_prefix): New function.
16936         (mergeable_string_section): Use it.
16937         (mergeable_constant_section): Use it.
16939 2015-05-07  Jeff Law  <law@redhat.com>
16941         PR target/39726
16942         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
16943         simplifier to narrow arithmetic.
16944         * generic-match-head.c: (types_match, single_use): New functions.
16945         * gimple-match-head.c: (types_match, single_use): New functions.
16947 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
16949         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
16950         rtx type.
16952 2015-05-07  Richard Biener  <rguenther@suse.de>
16954         PR tree-optimization/66002
16955         * passes.def: Schedule another pass_merge_phi after ifcombine, right
16956         before phiopt.
16958 2015-05-07  Marek Polacek  <polacek@redhat.com>
16959             Martin Uecker  <uecker@eecs.berkeley.edu>
16961         * doc/invoke.texi: Document -fsanitize=bounds-strict.
16962         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
16963         into SANITIZE_NONDEFAULT.
16964         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
16966 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
16968         PR target/66015
16969         * config/alpha/alpha.c (alpha_override_options_after_change): New.
16970         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
16971         (alpha_override_options): Move align_loops, align_jumps and
16972         align_functions handling into alpha_override_options_after_change.
16974 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
16975             Chris Jones  <chrisj@nvidia.com>
16976             Joshua Conner  <jconner@nvidia.com>
16978         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
16979         linking of crtfastmath.o.
16980         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
16982 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
16984         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
16985         (cstore<mode>4_unsigned_imm): New expander.
16986         (cstore<mode>4): Remove empty constraint strings.  Use the new
16987         expanders.
16989 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
16991         PR target/64208
16992         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
16993         alternatives.
16995 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16997         * config/aarch64/geniterators.sh: Use standard BRE in sed.
16999 2015-05-06  Alan Modra  <amodra@gmail.com>
17001         PR target/66033
17002         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
17003         (UNSPEC_NOP): Define.
17004         (reload_vsx_from_gpr<mode>): Add missing DONE.
17005         (reload_gpr_from_vsx<mode>): Likewise.
17006         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
17007         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
17009 2015-05-06  Christian Bruel  <christian.bruel@st.com>
17011         PR target/66015
17012         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
17013         align_jumps, align_functions into aarch64_override_options_after_change.
17015 2015-05-06  Richard Biener  <rguenther@suse.de>
17017         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
17018         vect_transform_slp_perm_load to check if we support a permutation
17019         for basic-block vectorization.
17021 2015-05-06  Nick Clifton  <nickc@redhat.com>
17023         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
17024         used, even if it is not being used as a frame pointer.
17026 2015-05-05  Jason Merrill  <jason@redhat.com>
17028         * dwarf2out.c (gen_member_die): Don't emit anything for an
17029         anonymous class constructor.
17031 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
17033         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
17034         that it reflects the block structure.
17035         (afdo_propagate_edge): Likewise.
17036         (afdo_calculate_branch_prob): Likewise.
17037         (afdo_annotate_cfg): Likewise.
17038         * cfgcleanup.c (equal_different_set_p): Likewise.
17039         (try_crossjump_to_edge): Likewise.
17040         * cgraph.c (cgraph_node::verify_node): Likewise.
17041         * cgraphunit.c (expand_all_functions): Likewise.
17042         * config/i386/i386.c (ix86_expand_copysign): Likewise.
17043         (exact_dependency_1): Likewise.
17044         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
17045         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
17046         * gensupport.c (process_define_subst): Likewise.
17047         * lto-wrapper.c (merge_and_complain): Likewise.
17048         * tree-if-conv.c (if_convertible_bb_p): Likewise.
17049         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
17050         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
17051         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
17052         * tree-vect-loop.c (vectorizable_reduction): Likewise.
17053         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
17054         * tree-vect-stmts.c (vectorizable_shift): Likewise.
17055         * tree-vrp.c (vrp_finalize): Likewise.
17056         * tree.c (variably_modified_type_p): Likewise.
17058 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
17060         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
17061         on darwin12 and later.
17062         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
17063         file to pass -rdynamic on darwin12 and later.
17064         * config/darwin.opt (rdynamic): Add.
17066 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
17068         * doc/extend.texi (C Extensions): Update menu for moved Variable
17069         Attributes and Type Attributes sections.
17071 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
17073         PR target/65990
17074         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
17075         if rep_8byte stringop strategy was specified for 32-bit target.
17077 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
17079         PR target/65915
17080         * config/i386/i386.md (vector convert to float spltiter): Check for
17081         xmm16+, when splitting scalar float conversion.
17082         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
17084 2015-05-05  Nick Clifton  <nickc@redhat.com>
17086         * config/msp430/msp430-opts.h (enum msp430_regions): New.
17087         * config/msp430/msp430.c (msp430_override_options): Complain if
17088         -mcode-region or -mdata-region is used on a non MSP430X.
17089         (msp430_section_attr): New function.  Checks lower, upper and
17090         either attributes.
17091         (msp430_attribute_table): Add lower, upper and either.
17092         (gen_prefix): New function.  Generates a prefix for a section
17093         name.
17094         (msp430_select_section): New function - handles the choice of
17095         section for an object.  Takes into account memory region
17096         attributes and options.
17097         (msp430_function_section): Use gen_prefix.
17098         (TARGET_SECTION_TYPE_FLAGS): Define.
17099         (msp430_section_type_flags): New function.
17100         (TARGET_ASM_UNIQUE_SECTION): Define.
17101         (msp430_unique_section): New function.
17102         (msp430_output_aligned_decl_common): New function.
17103         (msp430_do_not_relax_short_jumps): New function.
17104         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
17105         Define.
17106         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
17107         * config/msp430/msp430-protos.h
17108         (msp430_do_not_relax_short_jumps): New prototype.
17109         (msp430_output_aligned_decl_common): New prototype.
17110         * config/msp430/msp430.md (length): New attribute.
17111         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
17112         then use a long code sequence for short jumps.
17113         * config/msp430/msp430.opt (mcode-region): New.
17114         (mdata-region): New.
17115         * doc/invoke.texi: Document new options.
17116         * doc/extend.texi: Document new attributes.
17118 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
17120         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
17121         (tune_params): Add field branch_costs.
17122         (aarch64_branch_cost): Declare.
17123         * gcc/config/aarch64.c (generic_branch_cost): New.
17124         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
17125         (cortexa53_tunings): Likewise.
17126         (cortexa57_tunings): Likewise.
17127         (thunderx_tunings): Likewise.
17128         (xgene1_tunings): Likewise.
17129         (aarch64_branch_cost): Define.
17130         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
17132 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
17134         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
17135         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
17136         * config/i386/i386.md: Ditto.
17137         * config/i386/winnt.c: Ditto.
17139 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
17141         * doc/extend.texi (__atomic Builtins): Move implementation details
17142         to the end of the description, rewrite opening paragraphs, state
17143         difference with __sync builtins, state C11/C++11 assumptions,
17144         weaken itemized descriptions, add explanation of memory model
17145         behaviour, expand description of compare-exchange, simplify text.
17147 2015-05-05  Renlin Li  <renlin.li@arm.com>
17149         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
17151 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
17153         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
17154         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
17155         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
17156         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
17157         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
17158         * configure: Regenerate.
17159         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
17160         * doc/install.texi (aarch64*-*-*): Document new
17161         --enable-fix-cortex-a53-843419 option.
17162         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
17163         and -mno-fix-cortex-a53-843419 options.
17165 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
17167         PR target/65871
17168         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
17170 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
17172         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
17173         fix overactive TYPE_MIN_VALUE check and add FIXME for type
17174         compatibility problems.
17176 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
17178         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
17179         constraints.
17180         (cbranchsi4_reg): New.
17181         * config/microblaze/microblaze.c
17182         (microblaze_expand_conditional_branch_reg): New.
17183         * config/microblaze/microblaze-protos.h
17184         (microblaze_expand_conditional_branch_reg): New prototype.
17186 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
17188         * config/microblaze/microblaze.md (peephole2): New.
17190 2015-05-04  Jeff Law  <law@redhat.com>
17192         Revert:
17193         2015-05-04  Jeff Law  <law@redhat.com>
17195         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
17196         simplifier to narrow arithmetic.
17197         * generic-match-head.c: (types_match, single_use): New functions.
17198         * gimple-match-head.c: (types_match, single_use): New functions.
17200 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
17202         PR target/65987
17203         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
17204         (split_branches): Likewise.
17206 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
17208         * common.opt (fdelete-null-pointer-checks): Init to -1.
17209         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
17210         override flag_delete_null_pointer_checks default.
17211         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
17212         behavior re address zero.  Better document target-specific behavior.
17213         (-fisolate-errneous-paths-dereference): Mention relationship to
17214         -fdelete-null-pointer-checks.
17216 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
17218         PR tree-optimization/65984
17219         * ubsan.c: Include tree-cfg.h.
17220         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
17221         stmt_could_throw_p test, rename can_throw variable to ends_bb.
17223 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
17225         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
17226         to CONST_DOUBLE_P predicate.
17227         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
17228         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
17229         allow only operands that satisfy standard_sse_constant_p predicate.
17230         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
17231         to CONST_DOUBLE_P predicate.
17233 2015-05-04  Jeff Law  <law@redhat.com>
17235         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
17236         simplifier to narrow arithmetic.
17237         * generic-match-head.c: (types_match, single_use): New functions.
17238         * gimple-match-head.c: (types_match, single_use): New functions.
17240 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
17242         * config/arm/arm.c: Restore bootstrap.
17244 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
17246         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
17247         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
17248         as CONST_WIDE_INT, not CONST_DOUBLE.
17249         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
17250         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
17251         (ix86_find_base_term): Do not check for CONST_DOUBLE.
17252         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
17253         (ix86_build_signbit_mask): Rewrite using wide ints.
17254         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
17255         (ix86_rtx_costs): Handle CONST_WIDE_INT.
17256         (find_constant): Ditto.
17257         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
17258         using gen_int_mode.
17259         * config/i386/predicates.md (x86_64_immediate_operand)
17260         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
17261         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
17262         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
17263         (const0_operand): Also match const_wide_int.
17264         (constm1_operand): Ditto.
17265         (const1_operand): Ditto.
17267 2015-05-04  Richard Biener  <rguenther@suse.de>
17269         PR tree-optimization/65965
17270         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
17271         store groups at gaps.
17273 2015-05-04  Richard Biener  <rguenther@suse.de>
17275         PR tree-optimization/65935
17276         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
17277         then make sure to apply that swapping to the IL.
17279 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
17281         * Makefile.in (PATCHLEVEL_c): New variable.
17282         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
17283         expand the same way as if DEVPHASE_c was non-empty.
17285 2015-05-04  Kai Tietz  <ktietz@redhat.com>
17287         PR target/65559
17288         * lto-wrapper.c (run_gcc): Open filename
17289         in binary-mode.
17291 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
17293         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
17294         sections up in file, to immediately after the Function Attributes
17295         section.
17297 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
17299         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
17301 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17303         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
17304         (insert_partition_copy_on_edge): Adjust.
17305         (insert_rtx_to_part_on_edge): Likewise.
17306         (insert_part_to_rtx_on_edge): Likewise.
17308 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17310         * function.c (set_return_jump_label): Change type of argument to
17311         rtx_insn *.
17312         * function.h (set_return_jump_label): Adjust.
17314 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17316         * reload.h (struct reg_equivs_t): Change type of init to
17317         rtx_insn *.
17318         * ira.c (fix_reg_equiv_init): Adjust.
17319         * reload1.c (eliminate_regs_1): Likewise.
17320         (init_eliminable_invariants): Likewise.
17322 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17324         * cselib.c (fp_setter_insn): Take a rtx_insn *.
17325         * cselib.h (fp_setter_insn): Adjust.
17327 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17329         * recog.c (struct validate_replace_src_data): Change type of
17330         insn field to rtx_insn *.
17331         (validate_replace_src_group): Change type of argument to rtx_insn *.
17332         * recog.h (validate_replace_src_group): Adjust.
17334 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17336         * haifa-sched.c: Change the type of some variables to rtx_insn *.
17337         * sched-deps.c: Likewise.
17338         * sched-int.h: Likewise.
17339         * sched-rgn.c: Likewise.
17340         * sel-sched.c: Likewise.
17342 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17344         to rtx_insn *.
17345         * config/i386/i386.c: Change the type of some arguments to
17346         rtx_insn *.
17347         * config/arm/arm.c: Likewise.
17349 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17351         * lra-constraints.c: Change type of some arguments to rtx_insn *.
17353 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17355         * regcprop.c (kill_autoinc_value): Change type of argument to
17356         rtx_insn *.
17358 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17360         * genrecog.c (print_subroutine): Adjust.
17361         * recog.c (get_bool_attr_mask_uncached): Likewise.
17362         * recog.h (struct recog_data_d): Change the type of insn to
17363         rtx_insn *.
17365 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17367         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
17369 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17371         * df-problems.c (df_set_note): Change type of argument to
17372         rtx_insn *.
17374 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17376         * builtins.c (expand_builtin_trap): Change type of local
17377         variable to rtx_insn *.
17378         (add_sched_insns_for_speculation): Likewise.
17379         (ix86_emit_save_regs): Likewise.
17380         (get_scratch_register_on_entry): Likewise.
17381         (ix86_emit_restore_reg_using_pop): Likewise.
17382         (ix86_emit_leave): Likewise.
17383         (ix86_emit_restore_regs_using_mov): Likewise.
17384         (ix86_expand_epilogue): Likewise.
17385         Likewise.
17386         (rl78_alloc_physical_registers_umul): Likewise.
17387         * cselib.c (discard_useless_locs): Likewise.
17388         (cselib_invalidate_regno): Likewise.
17389         (cselib_invalidate_mem): Likewise.
17390         * function.c (expand_function_start): Likewise.
17391         (emit_use_return_register_into_block): Likewise.
17392         * gcse.c: Likewise.
17393         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
17394         * ifcvt.c (noce_get_alt_condition): Likewise.
17395         * loop-doloop.c (doloop_condition_get): Likewise.
17396         * lra-constraints.c (inherit_in_ebb): Likewise.
17397         * modulo-sched.c (sms_schedule_by_order): Likewise.
17398         * recog.c (next_insn_tests_no_inequality): Likewise.
17399         * reorg.c (emit_delay_sequence): Likewise.
17400         (update_reg_dead_notes): Likewise.
17401         (fix_reg_dead_note): Likewise.
17402         (fill_slots_from_thread): Likewise.
17403         (delete_computation): Likewise.
17405 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
17407         * doc/extend.texi (Variable Attributes): Add menu and proper
17408         @nodes to subsections.  Move Microsoft Windows attributes to
17409         their own subsection.
17410         (Type Attributes): Reorganize introduction to remove duplicate
17411         list of attributes.  Add menu and proper @nodes to subsections.
17412         Alphabetize the main table of common attributes.
17414 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
17416         * match.pd: New simplification patterns.
17417         (x + (x & 1))  -> ((x + 1) & ~1)
17418         (x & ~(x & y)) -> ((x & ~y))
17419         (x | ~(x | y)) -> ((x | ~y))
17421 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17423         * target.def (attribute_table): Mention that struct attribute_spec
17424         is defined in tree-core.h rather than tree.h
17425         * doc/tm.texi: Regenerate.
17427 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
17429         * genrecog.c (test): Rename to rtx_test.  Update rest of file
17430         accordingly.
17432 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
17434         PR translation/65959
17435         * params.h (DEFPARAM): Rename msgid to nocmsgid.
17437 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
17439         * gcc/config/aarch64/aarch64-protos.h (tune_params):
17440         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
17441         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
17442         Return value depending on target.
17443         (generic_tunings): Initialize new target settings.
17444         (cortexa53_tunings): Likewise.
17445         (cortexa57_tunings): Likewise.
17446         (thunderx_tunings): Likewise.
17447         (xgene1_tunings): Likewise.
17449 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
17451         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
17452         Make Cortex-A53 shift costs more accurate.
17454 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17456         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
17457         UNSIGNED_FLOAT.
17459 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
17461         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
17462         Calculate cost of op0 and op1 in PLUS and MINUS cases.
17464 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17466         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
17467         Add cost of op0 in the compare-with-fpzero case.
17469 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
17471         * builtins.c (fold_builtin_1): Remove spurious second
17472         semicolon.
17473         * cgraph.h (symtab_node::get_availability): Likewise.
17474         * opts.c (common_handle_option): Remove spurious second semicolon.
17475         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
17476         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
17478 2015-04-30  Caroline Tice  <cmtice@google.com>
17480         PR gcov-profile/65929
17481         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
17482         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
17483         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
17484         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
17485         * doc/tm.texi: Regenerate.
17486         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
17487         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
17488         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
17489         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
17491 2015-04-30  Marek Polacek  <polacek@redhat.com>
17493         * varasm.c (handle_cache_entry): Fix logic.
17495 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17497         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
17498         (*extrsi5_insn_uxtw_alt): Likewise.
17499         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
17500         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
17501         operations.
17503 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17505         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
17506         fabd in ABS case.
17508 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17510         * config/aarch64/aarch64.md
17511         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
17512         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
17513         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
17514         appropriately.  Handle alternative EON form.
17516 2015-04-30  Renlin Li  <renlin.li@arm.com>
17518         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
17519         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
17521 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
17523         PR ipa/65873
17524         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
17525         -fstrict-aliasing boundaries.
17527 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17529         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
17530         and [SU]MNEGL patterns.
17532 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17534         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
17535         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
17536         combined arithmetic-shift ops.  Properly handle all shift and extend
17537         operations that can occur in combination with PLUS/MINUS.
17538         Rename maybe_fma to compound_p.
17539         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
17540         arithmetic and shift operations.
17542 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17544         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
17545         rather than arith_shift cost when costing ADD/MINUS of an
17546         extended value.
17548 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
17550         PR lto/65948
17551         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
17552         to itself.
17554 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
17556         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
17557         are for the same position.
17559 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
17561         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
17562         vectorize_loops.
17563         (vectorize_loops): Use it.
17565 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
17567         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
17568         for aggregate types.
17569         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
17570         type to be non_ODR.
17571         * tree.c (need_assembler_name_p): Compute mangled name for
17572         non-fundamental types and integer types.
17574 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
17576         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
17577         manual swaps.
17578         * expr.c (expand_expr_real_2): Likewise.
17580 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
17582         * tree.c (build_common_builtin_nodes): Do not build
17583         __builtin_alloca_with_align as equivalent of library alloca.
17585 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
17587         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
17588         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
17589         bugus variants.
17590         * tree.c: Include print-tree.h and ipa-utils.h
17591         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
17592         (free_lang_data_in_cgraph): Call verify_type.
17593         (verify_type_variant): New function.
17594         (verify_type): New function.
17595         * tree.h (verify_type): Declare.
17597 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
17599         * config/mips/mips-cpus.def: (mips4): Change default processor
17600         from PROCESSOR_R8000 to PROCESSOR_R10000.
17602 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
17604         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
17605         la/jalr instead of jal.
17607 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
17609         PR target/65871
17610         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
17611         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
17612         (setcc+movzbl peephole2): Check also clobbered reg.
17613         (setcc+andl peephole2): Ditto.
17615 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
17617         PR libgomp/65099
17618         * config/nvptx/mkoffload.c (target_ilp32): New variable.
17619         (main): Set it depending on "-foffload-abi=[...]".
17620         (compile_native, main): Use it to pass "-m32" or "-m64" to the
17621         compiler.
17623 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
17625         PR target/65770
17626         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
17627         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
17628         Flip lane index back at assembly time for bigendian.
17630 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
17632         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
17633         * gimplify.c (gimplify_omp_workshare): Use it.
17635 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
17637         * Makefile.in (build/genrecog.o): Depend on inchash.h.
17638         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
17639         build/inchash.o
17640         * genrecog.c: Rewrite most of the code except for the third page.
17642 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
17644         * inchash.h, inchash.c: Include bconfig.h for build objects.
17645         * Makefile.in (build/inchash.o): New rule.
17647 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
17649         PR target/65924
17650         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
17651         number in type attribute expression.
17653 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
17655         * loop-iv.c (canon_condition): Generalize to all types of integer
17656         constant.
17658 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
17660         * gimple-walk.c: Prune duplicate or unneeded includes.
17661         (walk_gimple_asm): Only call parse_input_constraint or
17662         parse_output_constraint if their findings are used.
17663         Honour parse_input_constraint and parse_output_constraint
17664         result.
17666 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
17668         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
17670 2015-04-29  Tom de Vries  <tom@codesourcery.com>
17672         PR tree-optimization/65893
17673         * passes.def (pass_all_optimizations): Move pass_stdarg to after
17674         pass_dce.
17676 2015-04-29  Richard Biener  <rguenther@suse.de>
17678         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
17679         compute GROUP_SIZE for basic-block SLP.
17680         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
17681         take into account gaps.
17682         (vect_get_mask_element): Properly reject references to previous
17683         vectors.
17684         (vect_transform_slp_perm_load): Likewise.
17686 2015-04-29  Christian Bruel  <christian.bruel@st.com>
17688         PR target/64835
17689         * config/i386/i386.c (ix86_default_align): New function.
17690         (ix86_override_options_after_change): Call ix86_default_align.
17691         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
17692         (ix86_override_options_after_change): New function.
17694 2015-04-28  Jeff Law  <law@redhat.com>
17696         * tree-ssa-dom.c (record_equality); Fix comment typos.
17698 2015-04-28  Tom de Vries  <tom@codesourcery.com>
17700         PR tree-optimization/65887
17701         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
17703 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
17705         * doc/extend.texi (Declaring Attributes of Functions): Split into
17706         subsections by target.  Alphabetize the table of common attributes.
17707         Rewrite some of the introductory text to reflect the new structure.
17708         Update some cross-references to point to the new subsections.
17709         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
17710         duplicate copies in the discussion of function, label, and type
17711         attributes.
17713 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
17715         PR bootstrap/65910
17716         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
17718 2015-04-28  Jason Merrill  <jason@redhat.com>
17720         PR c++/65734
17721         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
17722         (finalize_type_size): Respect TYPE_USER_ALIGN.
17723         (layout_type) [ARRAY_TYPE]: Likewise.
17725 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
17727         * config/arm/arm.md (*arm_movt): Fix type attribute.
17728         (*cmpsi_shiftsi): Likewise.
17729         (*cmpsi_shiftsi_swp): Likewise.
17730         (*movsicc_insn): Likewise.
17731         (*cond_move): Likewise.
17732         (*if_plus_move): Likewise.
17733         (*if_move_plus): Likewise.
17734         (*if_arith_move): Likewise.
17735         (*if_move_arith): Likewise.
17736         (*if_shift_move): Likewise.
17737         (*if_move_shift): Likewise.
17738         (*arm_movtas_ze): Likewise.
17739         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
17740         redundancy and type attribute.
17741         (*thumb2_movsi_insn): Fix type attribute.
17742         (*thumb2_addsi_short): Likewise.
17743         (thumb2_addsi3_compare0): Likewise.
17744         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
17745         attributes accordingly.
17747 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
17749         PR other/65911
17750         * function.c (pad_to_arg_alignment): Add parentheses.
17752 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
17754         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
17755         libgcc/config/frv/elf-lib.h.
17757 2015-04-28  Tom de Vries  <tom@codesourcery.com>
17759         * tree-call-cdce.c: Fix example in header comment.
17761 2015-04-28  Richard Biener  <rguenther@suse.de>
17763         PR tree-optimization/62283
17764         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
17765         fails fatally and we are vectorizing a basic-block simply
17766         cause the child to be constructed piecewise.
17767         (vect_analyze_slp_cost_1): Adjust.
17768         (vect_detect_hybrid_slp_stmts): Likewise.
17769         (vect_bb_slp_scalar_cost): Likewise.
17770         (vect_get_constant_vectors): For piecewise constructed
17771         constants place them after the last def.
17772         (vect_get_slp_defs): Adjust.
17773         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
17774         externals for basic-block vectorization.
17776 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17778         PR target/63503
17779         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
17780         aarch64-*-*.
17781         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
17782         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
17783         (AARCH64_TUNE_FMA_STEERING): Likewise.
17784         * config/aarch64/aarch64-cores.def: Set
17785         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
17786         FMUL/FMADD instructions.
17787         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
17788         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
17789         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
17790         * config/aarch64/cortex-a57-fma-steering.h: New file.
17791         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
17793 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
17795         * gensupport.c (std_preds): Add missing codes to address_operand entry.
17797 2015-04-28  Richard Biener  <rguenther@suse.de>
17799         PR tree-optimization/65851
17800         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
17801         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
17802         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
17803         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
17804         (ccp_visit_phi_node): Adjust.
17805         (evaluate_stmt): For simplifications to SSA names return its
17806         lattice value if that isn't VARYING.  Return immediately when
17807         simplified to a constant.
17808         (visit_assignment): Adjust.
17809         (ccp_visit_stmt): Likewise.
17811 2015-04-28  Tom de Vries  <tom@codesourcery.com>
17813         PR tree-optimization/65818
17814         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
17815         evaluated.
17817 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17819         * calls.c (save_fixed_argument_area): Don't check
17820         ARGS_GROW_DOWNWARD with the preprocessor.
17821         (restore_fixed_argument_area): Likewise.
17822         (mem_overlaps_already_clobbered_arg_p): Likewise.
17823         (check_sibcall_argument_overlap): Likewise.
17824         (expand_call): Likewise.
17825         (emit_library_call_value_1): Likewise.
17826         (store_one_arg): Likewise.
17827         * function.c (assign_parms): Likewise.
17828         (locate_and_pad_parm): Likewise.
17829         (pad_to_arg_alignment): Likewise.
17830         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
17832 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17834         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
17835         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
17836         * calls.c (save_fixed_argument_area): Don't chekc if
17837         ARGS_GROW_DOWNWARD is defined.
17838         (restore_fixed_argument_area): Likewise.
17839         (mem_overlaps_already_clobbered_arg_p): Likewise.
17840         (check_sibcall_argument_overlap): Likewise.
17841         (expand_call): Likewise.
17842         (emit_library_call_value_1): Likewise.
17843         (store_one_arg): Likewise.
17844         * function.c (assign_parms): Likewise.
17845         (locate_and_pad_parm): Likewise.
17846         (pad_to_arg_alignment): Likewise.
17847         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
17849 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17851         * defaults.h (gen_epilogue): New function.
17852         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
17853         defined.
17854         * cfgrtl.c (cfg_layout_finalize): Likewise.
17855         * df-scan.c: Likewise.
17856         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17857         (reposition_prologue_and_epilogue_notes): Likewise.
17858         * reorg.c (find_end_label): Likewise.
17859         * toplev.c: Likewise.
17861 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17863         * bb-reorder.c (HAVE_return): Don't check if its undefined.
17864         * defaults.h (gen_simple_return): New function.
17865         (gen_simple_return): Likewise.
17866         (HAVE_return): Add default definition to false.
17867         (HAVE_simple_return): Likewise.
17868         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
17869         HAVE_return and HAVE_simple_return are defined.
17870         * function.c (gen_return_pattern): Likewise.
17871         (convert_jumps_to_returns): Likewise.
17872         (thread_prologue_and_epilogue_insns): Likewise.
17873         * reorg.c (find_end_label): Likewise.
17874         (dbr_schedule): Likewise.
17875         * shrink-wrap.c: Likewise.
17876         * shrink-wrap.h: Likewise.
17878 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17880         * defaults.h (EPILOGUE_USES): Add default definition of false.
17881         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
17882         * resource.c (init_resource_info): Likewise.
17884 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17886         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
17887         to false.
17888         * dwarf2out.c (field_byte_offset): REmove check if
17889         PCC_BITFIELD_TYPE_MATTERS is defined.
17890         * stor-layout.c (layout_decl): Likewise.
17891         (update_alignment_for_field): Likewise.
17892         (place_field): Likewise.
17894 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17896         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
17897         true.
17898         * regrename.c (check_new_reg_p): Remove check if
17899         HARD_REGNO_RENAME_OK is defined.
17900         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
17902 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
17904         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
17905         * cse.c (fold_rtx): Likewise.
17906         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
17907         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
17908         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
17909         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
17910         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
17911         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
17912         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
17913         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
17914         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
17915         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
17916         * Likewise.
17917         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
17918         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
17919         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
17920         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
17921         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
17922         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
17923         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
17924         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
17925         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
17926         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
17927         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
17928         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
17929         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
17930         * doc/tm.texi: Regenerate.
17931         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
17932         either true or false.
17934 2015-04-27  Jeff Law  <law@redhat.com>
17936         PR tree-optimization/65217
17937         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
17938         of them has a single use, make sure it is the LHS of the implied
17939         copy.
17941 2015-04-28  Alan Modra  <amodra@gmail.com>
17943         PR target/65810
17944         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
17945         (offsettable_ok_by_alignment): Use minimum of decl and toc
17946         pointer alignment.  Replace dead code with assertion.
17947         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
17948         case if size exceeds toc pointer alignment.
17949         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
17950         (rs6000_emit_move): Likewise.
17951         * configure.ac: Add linker toc pointer alignment check.
17952         * configure: Regenerate.
17953         * config.in: Regenerate.
17955 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
17957         * config.gcc: Add h8300-*-linux.
17958         * config/h8300/linux.h: New.
17959         * config/h8300/t-linux: New.
17960         * config/h8300/h8300.c (h8300_option_override): Normal mode
17961         is not supported for h8300-*-linux.
17962         (h8300_file_start): Target priority change.
17963         (get_shift_alg): Likewise.
17964         (h8300_shift_need_scratch_p): Likewise.
17965         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
17966         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
17968 2015-04-27  Caroline Tice  <cmtice@google.com>
17970         * final.c (final_scan_insn):  Output cold_function_name as function
17971         type.
17972         * varasm.c (cold_function_name):  Make global.
17973         (assemble_start_function):  Re-set cold_function_name.
17974         (assemble_end_function): Output cold partition size.
17975         * varasm.h (cold_function_name):  Declare global.
17977 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
17979         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
17980         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
17981         constraint.
17982         (*movxi_internal_avx512f): Ditto.
17983         (define_split): Check for xmm16+, when splitting scalar float_extend.
17984         (*extendsfdf2_mixed): Use "v" constraint.
17985         (define_split): Check for xmm16+, when splitting scalar float_truncate.
17986         (*truncdfsf_fast_sse): Use "v" constraint.
17987         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
17988         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
17989         (define_peephole2): Check for xmm16+, when converting scalar
17990         float_truncate.
17991         (define_peephole2): Check for xmm16+, when converting scalar
17992         float_extend.
17993         (*fop_<mode>_comm_mixed): Use "v" constraint.
17994         (*fop_<mode>_comm_sse): Ditto.
17995         (*fop_<mode>_1_mixed): Ditto.
17996         (*sqrt<mode>2_sse): Ditto.
17997         (*ieee_s<ieee_maxmin><mode>3): Ditto.
17999 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18001         * combine.c (simplify_if_then_else): Use std::swap instead
18002         of manually swapping.
18003         (known_cond): Likewise.
18004         (simplify_comparison): Likewise.
18006 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
18008         PR target/64579
18009         * config/rs6000/htm.md: Remove all define_expands.
18010         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
18011         UNSPECV_HTM_TABORTWCI): Remove.
18012         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
18013         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
18014         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
18015         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
18016         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
18017         tabortwci_internal): Remove define_insns.
18018         (tabort<wd>c, tabort<wd>ci): New define_insns.
18019         (tabort): Use gpc_reg_operand.
18020         (tcheck): Remove operand.
18021         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
18022         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
18023         expected value.
18024         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
18025         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
18026         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
18027         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
18028         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
18029         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
18030         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
18031         (tcheck): Remove builtin argument.
18032         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
18033         not TARGET_64BIT.
18034         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
18035         tabortdc and tabortdci builtins when not in 64-bit mode.
18036         Modify code to handle the loss of the HTM define_expands.
18037         Emit code to copy the CR register to TARGET.
18038         (htm_init_builtins): Modify code to handle the loss of the HTM
18039         define_expands.
18040         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
18041         (RS6000_BTC_64BIT): Likewise.
18042         (RS6000_BTC_CR): New macro.
18043         * doc/extend.texi: Update documentation for htm builtins.
18045 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18047         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
18048         of manually swapping.
18049         (simplify_associative_operation): Likewise.
18050         (simplify_binary_operation): Likewise.
18051         (simplify_plus_minus): Likewise.
18052         (simplify_relational_operation): Likewise.
18053         (simplify_ternary_operation): Likewise.
18055 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
18057         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
18058         (xs_hi_nonmemory_operand): Remove error.
18059         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
18060         general_operand rather than xs_hi_general_operand.
18062 2015-04-27  Richard Biener  <rguenther@suse.de>
18064         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
18065         (record_equivalences_from_stmt): Valueize rhs.
18066         (record_equality): Canonicalize x and y order via
18067         tree_swap_operands_p.  Do not swap operands for same loop depth.
18069 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
18071         PR target/65296
18072         PR target/65895
18073         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
18074         Add hint how to use own spec file.
18076 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
18078         PR tree-optimization/65875
18079         * tree-vrp.c (update_value_range): If in is_new case setting
18080         old_vr to VR_VARYING, also set new_vr to it.  Remove
18081         old_vr->type == VR_VARYING test.
18082         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
18083         SSA_PROP_INTERESTING if update_value_range returned true,
18084         but new range is VR_VARYING.
18086 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18088         * combine.c (sign_extend_short_imm): New.
18089         (set_nonzero_bits_and_sign_copies): Use above new function for sign
18090         extension of src short immediate.
18091         (reg_nonzero_bits_for_combine): Likewise for tem.
18093 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18095         * stor-layout.c (self_referential_component_ref_p): New predicate.
18096         (copy_self_referential_tree_r): Use it.
18097         (self_referential_size): Punt for simple operations directly involving
18098         self-referential component references.
18099         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
18101 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
18103         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
18105 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
18107         * vec.h (vec): Make splice arguments const.  Update definitions
18108         accordingly.
18110 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
18112         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
18113         alternatives.
18115 2015-04-26  Tom de Vries  <tom@codesourcery.com>
18117         PR tree-optimization/65826
18118         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
18120 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
18122         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
18123         (*madd3<mode>): Ditto.
18124         (*msub4<mode>): Ditto.
18125         (*msub3<mode>): Ditto.
18126         (*nmadd4<mode>): Ditto.
18127         (*nmadd3<mode>): Ditto.
18128         (*nmadd4<mode>_fastmath): Ditto.
18129         (*nmadd3<mode>_fastmath): Ditto.
18130         (*nmsub4<mode>): Ditto.
18131         (*nmsub3<mode>): Ditto.
18132         (*nmsub4<mode>_fastmath): Ditto.
18133         (*nmsub3<mode>_fastmath): Ditto.
18135 2015-04-24  Jason Merrill  <jason@redhat.com>
18137         PR c++/50800
18138         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
18139         down when building TYPE_CANONICAL.
18140         (build_pointer_type_for_mode): Likewise.
18142 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
18144         * genrecog.c (validate_pattern): Check matching constraint refers
18145         to a lower numbered operand.
18147 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
18149         PR target/65849
18150         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
18151         save to independent variables use the Save attribute.  This will
18152         allow these options to be modified with the #pragma/attribute
18153         target support.
18154         (-mallow-movmisalign): Likewise.
18155         (-mallow-df-permute): Likewise.
18156         (-msched-groups): Likewise.
18157         (-malways-hint): Likewise.
18158         (-malign-branch-targets): Likewise.
18159         (-mvectorize-builtins): Likewise.
18160         (-msave-toc-indirect): Likewise.
18162         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
18163         can be set via the #pragma/attribute target support.
18164         (rs6000_opt_vars): Likewise.
18165         (rs6000_inner_target_options): If VSX was set, also set
18166         -mno-avoid-indexed-addresses.
18168 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18170         * config/arm/iterators.md (shiftable_ops): Rename to...
18171         (SHIFTABLE_OPS): ... This.  Update use in comments.
18172         (ior_xor): Rename to...
18173         (IOR_XOR): ... This.
18174         (vqh_ops): Rename to...
18175         (VQH_OPS): ... This.
18176         (vqhs_ops): Rename to...
18177         (VQHS_OPS): ... This.
18178         (rshifts): Rename to...
18179         (RSHIFTS): ... This.
18180         (returns): Rename to...
18181         (RETURNS): ... This.
18182         * config/arm/arm.md: Update uses of the above.
18183         * config/arm/neon.md: Likewise.
18185 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18187         * config.host (case ${host}): Add aarch64*-*-linux case.
18188         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
18189         fields to all the cores.
18190         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
18191         Add MCPU_MTUNE_NATIVE_SPECS.
18192         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
18193         field to all extensions.
18194         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
18195         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
18196         Adjust definition of AARCH64_OPT_EXTENSION.
18197         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
18198         (MCPU_MTUNE_NATIVE_SPECS): Define.
18199         * config/aarch64/driver-aarch64.c: New file.
18200         * config/aarch64/x-arch64: New file.
18201         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
18202         -mtune and -march.
18204 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
18205             Wei Mi  <wmi@google.com>
18207         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
18208         * config/i386/i386.c (extract_base_offset_in_addr): New function.
18209         (ix86_operands_ok_for_move_multiple): Ditto.
18210         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
18211         (movlpd/movhpd to movupd peephole2): Ditto.
18213 2015-04-24  Marek Polacek  <polacek@redhat.com>
18215         PR c/61534
18216         * input.h (from_macro_expansion_at): Define.
18218         PR c/63357
18219         * doc/invoke.texi: Update description of -Wlogical-op.
18221 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18223         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
18224         ternary operator in fprintf and harmonize spacing.
18226 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
18228         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
18229         Mark operand1 commutative.
18231 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
18233         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
18234         input operands in memory.
18235         (*vec_concatv2si_sse4_1): Ditto.
18236         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
18237         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
18238         register_operand.
18239         (vec_extract_hi_v32hi): Ditto.
18240         (vec_extract_hi_v64hi): Ditto.
18241         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
18243 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18244             Steven Bosscher <steven@gcc.gnu.org>
18246         PR rtl-optimization/34503
18247         * cprop.c (cprop_reg_p): New.
18248         (hash_scan_set): Use above function to check if register can be
18249         propagated.
18250         (find_avail_set): Return up to two sets, one whose source is a
18251         register and one whose source is a constant.  Sets are returned in an
18252         array passed as parameter rather than as a return value.
18253         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
18254         sets returned by find_avail_set, starting with the one whose source is
18255         a constant. Use cprop_reg_p to check if register can be propagated.
18256         (do_local_cprop): Use cprop_reg_p to check if register can be
18257         propagated.
18258         (implicit_set_cond_p): Likewise.
18260 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
18262         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
18263         (sem_function::equals): IGNORED_NODES parameter is now unused;
18264         update call of equals_private.
18265         (sem_function::equals_private): Do not call equals_wpa; skip
18266         gimple body matching if there is no body.
18267         (sem_function::init): Add logic to hash tthunk info.
18268         (sem_function::parse): Also parse thunks.
18269         * ipa-icf.h (equals_private): Update declaration.
18271 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18273         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
18274         asterisk from name so this can be generated directly.
18275         (*altivec_stvx_<mode>_internal): Likewise.
18276         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
18277         that this is never called during or after reload/lra.
18278         (rs6000_frame_related): Remove split_reg
18279         argument and logic that references it.
18280         (emit_frame_save): Remove last parameter from call to
18281         rs6000_frame_related.
18282         (rs6000_emit_prologue): Remove last parameter from eight calls to
18283         rs6000_frame_related.  Force generation of stvx instruction for
18284         Altivec register saves.  Remove split_reg handling, which is no
18285         longer needed.
18286         (rs6000_emit_epilogue):  Force generation of lvx instruction for
18287         Altivec register restores.
18289 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18291         * config/rs6000/rs6000.opt (mcrypto): Change option description to
18292         match category changes in ISA 2.07B.
18294 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18296         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
18297         iterators.
18298         (cmp_op, cmp_type): New code attributes.
18299         (NEON_VCMP, NEON_VACMP): New int iterators.
18300         (cmp_op_unsp): New int attribute.
18301         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
18302         (neon_vceq<mode>): Delete.
18303         (neon_vc<cmp_op><mode>_insn): New pattern.
18304         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
18305         (neon_vcgeu<mode>): Delete.
18306         (neon_vcle<mode>): Likewise.
18307         (neon_vclt<mode>: Likewise.
18308         (neon_vcage<mode>): Likewise.
18309         (neon_vcagt<mode>): Likewise.
18310         (neon_vca<cmp_op><mode>): New define_expand.
18311         (neon_vca<cmp_op><mode>_insn): New pattern.
18312         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
18314 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
18316         * tree.h (attribute_value_equal): Declare.
18317         * tree.c (attribute_value_equal): Export.
18319 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
18321         * ipa-icf.c (sem_item::compare_attributes): New function.
18322         (sem_item::compare_referenced_symbol_properties): Compare variable
18323         attributes.
18324         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
18325         (sem_function::param_used_p): New function.
18326         (sem_function::equals_wpa): Fix attribute comparsion; match
18327         parameter type codes; do not compare paremter flags when
18328         they are not used; compare edge flags; compare indirect calls.
18329         (sem_item::update_hash_by_addr_refs): Hash reference type.
18330         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
18331         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
18332         reference use type.
18333         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
18334         * ipa-icf.h (compare_attributes, param_used_p): Declare.
18336 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
18338         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
18339         cleanup.
18340         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
18341         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
18342         (sem_item::compare_referenced_symbol_properties): New.
18343         (sem_item::hash_referenced_symbol_properties): New.
18344         (sem_item::compare_cgraph_references): Rename to ...
18345         (sem_item::compare_symbol_references): ... this one; use
18346         compare_referenced_symbol_properties.
18347         (sem_function::equals_wpa): Do not compare
18348         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
18349         DECL_IS_OPERATOR_NEW; compare pointer sizes.
18350         (sem_item::update_hash_by_addr_refs): Call
18351         hash_referenced_symbol_properties.
18352         (sem_item::update_hash_by_local_refs): Cleanup.
18353         (sem_function::merge): Do not mix up symbol properties.
18354         (sem_variable::equals_wpa): Use compare_symbol_references.
18355         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
18356         (sem_item::hash_referenced_symbol_properties): New.
18357         (sem_item::compare_symbol_references): New.
18358         (sem_item::compare_cgraph_references): Remove.
18360 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
18362         PR target/26702
18363         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
18364         Emit size of local.
18366 2015-04-23  Nick Clifton  <nickc@redhat.com>
18368         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
18369         ATTRIBUTE_UNUSED to x parameter.
18370         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
18372 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18374         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
18375         TARGET_CRYPTO to TARGET_P8_VECTOR>
18376         (crypto_vpermxor_<mode>): Likewise.
18377         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
18378         (BU_CRYPTO_3A): Likewise.
18379         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
18380         (BU_CRYPTO_OVERLOAD_3A): New #define.
18381         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
18382         (VPMSUMH): Likewise.
18383         (VPMSUMW): Likewise.
18384         (VPMSUMD): Likewise.
18385         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
18386         (VPERMXOR_V4SI): Likewise.
18387         (VPERMXOR_V8HI): Likewise.
18388         (VPERMXOR_V16QI): Likewise.
18389         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
18390         BU_CRYPTO_OVERLOAD_2A.
18391         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
18392         BU_CRYPTO_OVERLOAD_3A.
18393         * config/rs6000/rs6000.opt (mcrypto): Change description of
18394         option.
18396 2015-04-23  Richard Biener  <rguenther@suse.de>
18398         * passes.def: Remove copy propagation passes run directly after CCP.
18399         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
18400         SSA names.
18401         (ccp_visit_phi_node): Rework to handle first executable edge
18402         specially.
18404 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
18406         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
18407         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
18408         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
18409         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
18410         (thumb_legimitimize_reload_address): Remove.
18411         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
18412         Remove.
18413         (thumb_legimitimize_reload_address): Remove.
18415 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18417         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
18419 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18421         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
18422         MAX_LDM_STM_OPS.
18423         (store_multiple): Likewise.
18425 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18427         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
18428         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
18429         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
18430         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
18431         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
18432         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
18433         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
18434         Specify issue_rate value.
18435         (arm_issue_rate): Look up issue rate from tuning structs. Remove
18436         large switch statement.
18437         (arm_marvell_pj4_tune): New struct.
18438         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
18439         struct.
18441 2015-04-23  Richard Biener  <rguenther@suse.de>
18443         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
18444         (vect_find_last_store_in_slp_instance): Rename to ...
18445         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
18446         (vect_analyze_slp_cost_1): Use vector_load for constant defs
18447         and vec_construct for external defs when estimating prologue cost.
18448         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
18449         Compute costs here only when vectorizing loops.
18450         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
18451         have been determined.
18452         (vect_schedule_slp_instance): Simplify vectorized code placement
18453         and prepare for in-BB external defs.
18454         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
18455         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
18456         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
18457         guard.
18458         (vect_model_load_cost): Likewise.
18459         (vectorizable_store): Instead add it here.
18460         (vectorizable_load): Likewise.
18461         (vect_is_simple_use): Dump def type textually.
18463 2015-04-23  Richard Biener  <rguenther@suse.de>
18465         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
18466         * cfgloop.c (verify_loop_structure): Verify the root loop node.
18467         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
18468         instead of get_eh_region_from_lp_number.
18469         * loop-init.c (fix_loop_structure): If we removed a loop, reset
18470         the SCEV cache.
18472 2015-04-23  Anton Blanchard  <anton@samba.org>
18474         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
18475         need for -mprofile-kernel to save LR to stack.
18477 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18479         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
18480         adjustments.
18481         (insn_is_swappable_p): Return 1 for a convert from double to
18482         single precision when all of its uses are splats of BE element
18483         zero.
18485 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
18487         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
18489 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18491         PR target/65456
18492         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
18493         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
18494         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
18495         option.
18496         (rs6000_builtin_mask_for_load): Return 0 for targets with
18497         efficient unaligned VSX accesses so that the vectorizer will use
18498         direct unaligned loads.
18499         (rs6000_builtin_support_vector_misalignment): Always return true
18500         for targets with efficient unaligned VSX accesses.
18501         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
18502         stores on targets with efficient unaligned VSX accesses is almost
18503         always the same as the cost of an aligned load or store, so model
18504         it that way.
18505         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
18506         unaligned vectors if we have efficient unaligned VSX accesses.
18507         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
18508         undocumented option.
18510 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18512         Revert:
18513         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
18515         * config.gcc (LIBC_MUSL): New tm_defines macro.
18516         * config/linux.h (OPTION_MUSL): Define.
18517         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
18518         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
18519         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
18521         * config/linux.opt (mmusl): New option.
18522         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
18523         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
18525         * configure: Regenerate.
18527 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
18529         * config.gcc (LIBC_MUSL): New tm_defines macro.
18530         * config/linux.h (OPTION_MUSL): Define.
18531         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
18532         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
18533         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
18535         * config/linux.opt (mmusl): New option.
18536         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
18537         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
18539         * configure: Regenerate.
18541 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
18543         * doc/invoke.texi (-fsanitize-sections): Update description.
18544         * asan.c (set_sanitized_sections): Parse incoming arg.
18545         (section_sanitized_p): Support wildcards.
18547 2015-04-22  Tom de Vries  <tom@codesourcery.com>
18549         PR tree-optimization/65823
18550         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
18551         equality between ap_copy and ap.
18553 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18555         PR target/47098
18556         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
18558 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18560         PR target/47122
18561         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
18563 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18565         PR target/55144
18566         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
18567         remove already contained t-files.
18569 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18571         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
18572         Remove unneeded forward declarations.
18573         (suitable_for_tail_call_opt_p): Commentary typo fix.
18575 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18577         * varasm.c (emit_bss): Remove redundant guard.
18579 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18581         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
18583 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18585         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
18587 2015-04-22  Hale Wang  <hale.wang@arm.com>
18588             Terry Guo  <terry.guo@arm.com>
18590         PR rtl-optimization/64818
18591         * combine.c (can_combine_p): Don't combine user-specified
18592         register if it is in an asm input.
18594 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
18596         PR ipa/65076
18597         * passes.def (early_optimizations): Add pass_dse.
18599 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18601         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
18602         * reorg.c (redundant_insn): Remove ifdef
18603         INSN_REFERENCES_ARE_DELAYED.
18604         * resource.c (mark_referenced_resources): Likewise.
18606 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18608         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
18609         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
18610         * resource.c (mark_set_resources): Likewise.
18612 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18614         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
18615         * cfgcleanup.c (flow_find_cross_jump): Likewise.
18616         (flow_find_head_matching_sequence): Likewise.
18617         (try_head_merge_bb): Likewise.
18618         * combine.c (can_combine_p): Likewise.
18619         (try_combine): Likewise.
18620         (distribute_notes): Likewise.
18621         * df-problems.c (can_move_insns_across): Likewise.
18622         * final.c (final): Likewise.
18623         * gcse.c (insert_insn_end_basic_block): Likewise.
18624         * ira.c (find_moveable_pseudos): Likewise.
18625         * reorg.c (try_merge_delay_insns): Likewise.
18626         (fill_simple_delay_slots): Likewise.
18627         (fill_slots_from_thread): Likewise.
18628         * sched-deps.c (sched_analyze_2): Likewise.
18630 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18632         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
18633         PIC_OFFSET_TABLE_REGNUM.
18635 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18637         * alias.c (init_alias_target): Remove ifdef
18638         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
18639         * df-scan.c (df_insn_refs_collect): Likewise.
18640         (df_get_regular_block_artificial_uses): Likewise.
18641         (df_get_eh_block_artificial_uses): Likewise.
18642         (df_get_entry_block_def_set): Likewise.
18643         (df_get_exit_block_use_set): Likewise.
18644         * emit-rtl.c (gen_rtx_REG): Likewise.
18645         * ira.c (ira_setup_eliminable_regset): Likewise.
18646         * reginfo.c (init_reg_sets_1): Likewise.
18647         * regrename.c (rename_chains): Likewise.
18648         * reload1.c (reload): Likewise.
18649         (eliminate_regs_in_insn): Likewise.
18650         * resource.c (mark_referenced_resources): Likewise.
18651         (init_resource_info): Likewise.
18653 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18655         * defaults.h (MASK_RETURN_ADDR): New definition.
18656         * except.c (expand_builtin_extract_return_addr): Remove ifdef
18657         MASK_RETURN_ADDR.
18659 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18661         * defaults.h (RETURN_ADDR_OFFSET): New definition.
18662         * except.c (expand_builtin_extract_return_addr): Remove ifdef
18663         RETURN_ADDR_OFFSET.
18664         (expand_builtin_frob_return_addr): Likewise.
18666 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18668         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
18669         (try_redirect_by_replacing_jump): Likewise.
18670         (rtl_tidy_fallthru_edge): Likewise.
18671         * combine.c (insn_a_feeds_b): Likewise.
18672         (find_split_point): Likewise.
18673         (simplify_set): Likewise.
18674         * cprop.c (cprop_jump): Likewise.
18675         * cse.c (cse_extended_basic_block): Likewise.
18676         * df-problems.c (can_move_insns_across): Likewise.
18677         * function.c (emit_use_return_register_into_block): Likewise.
18678         * haifa-sched.c (sched_init): Likewise.
18679         * ira.c (find_moveable_pseudos): Likewise.
18680         * loop-invariant.c (find_invariant_insn): Likewise.
18681         * lra-constraints.c (curr_insn_transform): Likewise.
18682         * postreload.c (reload_combine_recognize_const_pattern):
18683         * Likewise.
18684         * reload.c (find_reloads): Likewise.
18685         * reorg.c (delete_scheduled_jump): Likewise.
18686         (steal_delay_list_from_target): Likewise.
18687         (steal_delay_list_from_fallthrough): Likewise.
18688         (redundant_insn): Likewise.
18689         (fill_simple_delay_slots): Likewise.
18690         (fill_slots_from_thread): Likewise.
18691         (delete_computation): Likewise.
18692         * sched-rgn.c (add_branch_dependences): Likewise.
18694 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18696         * genconfig.c (main): Always define HAVE_cc0.
18697         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
18698         HAVE_cc0.
18699         * cfgcleanup.c (flow_find_cross_jump): Likewise.
18700         (flow_find_head_matching_sequence): Likewise.
18701         (try_head_merge_bb): Likewise.
18702         * cfgrtl.c (rtl_merge_blocks): Likewise.
18703         (try_redirect_by_replacing_jump): Likewise.
18704         (rtl_tidy_fallthru_edge): Likewise.
18705         * combine.c (do_SUBST_MODE): Likewise.
18706         (insn_a_feeds_b): Likewise.
18707         (combine_instructions): Likewise.
18708         (can_combine_p): Likewise.
18709         (try_combine): Likewise.
18710         (find_split_point): Likewise.
18711         (subst): Likewise.
18712         (simplify_set): Likewise.
18713         (distribute_notes): Likewise.
18714         * cprop.c (cprop_jump): Likewise.
18715         * cse.c (cse_extended_basic_block): Likewise.
18716         * df-problems.c (can_move_insns_across): Likewise.
18717         * final.c (final): Likewise.
18718         (final_scan_insn): Likewise.
18719         * function.c (emit_use_return_register_into_block): Likewise.
18720         * gcse.c (insert_insn_end_basic_block): Likewise.
18721         * haifa-sched.c (sched_init): Likewise.
18722         * ira.c (find_moveable_pseudos): Likewise.
18723         * loop-invariant.c (find_invariant_insn): Likewise.
18724         * lra-constraints.c (curr_insn_transform): Likewise.
18725         * optabs.c (prepare_cmp_insn): Likewise.
18726         * postreload.c (reload_combine_recognize_const_pattern):
18727         * Likewise.
18728         * reload.c (find_reloads): Likewise.
18729         (find_reloads_address_1): Likewise.
18730         * reorg.c (delete_scheduled_jump): Likewise.
18731         (steal_delay_list_from_target): Likewise.
18732         (steal_delay_list_from_fallthrough): Likewise.
18733         (try_merge_delay_insns): Likewise.
18734         (redundant_insn): Likewise.
18735         (fill_simple_delay_slots): Likewise.
18736         (fill_slots_from_thread): Likewise.
18737         (delete_computation): Likewise.
18738         (relax_delay_slots): Likewise.
18739         * sched-deps.c (sched_analyze_2): Likewise.
18740         * sched-rgn.c (add_branch_dependences): Likewise.
18742 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18744         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
18745         that is trivially ded on non cc0 targets.
18746         (simplify_set): Likewise.
18747         (mark_used_regs_combine): Likewise.
18748         * cse.c (new_basic_block): Likewise.
18749         (fold_rtx): Likewise.
18750         (cse_insn): Likewise.
18751         (cse_extended_basic_block): Likewise.
18752         (set_live_p): Likewise.
18753         * rtlanal.c (canonicalize_condition): Likewise.
18754         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
18756 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18758         * conditions.h: Define macros even if HAVE_cc0 is undefined.
18759         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
18760         * final.c: Likewise.
18761         * jump.c: Likewise.
18762         * recog.c: Likewise.
18763         * recog.h: Declare functions even when HAVE_cc0 is undefined.
18764         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
18766 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18768         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
18769         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
18770         * builtins.c (expand_builtin): Remove check if
18771         EH_RETURN_DATA_REGNO is defined.
18772         * df-scan.c (df_bb_refs_collect): Likewise.
18773         (df_get_exit_block_use_set): Likewise.
18774         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
18775         * ira-lives.c (process_bb_node_lives): Likewise.
18776         * lra-lives.c (process_bb_lives): Likewise.
18778 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
18780         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
18781         FIRST_PSEUDO_REG): New.
18782         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
18783         (ARG_POINTER_REGNUM): Define to ARGP_REG.
18784         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
18785         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
18786         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
18787         (FIRST_INT_REG): New.
18788         (LAST_INT_REG): New.
18789         (FIRST_*_REG): Define using *_REG.
18790         (LAST_*_REG): Ditto.
18791         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
18792         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
18793         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
18795 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18797         * expmed.c: (synth_mult): Only assume overlapping
18798         shift with previous steps in alg_sub_t_m2 case.
18800 2015-04-21  Richard Biener  <rguenther@suse.de>
18802         PR tree-optimization/65650
18803         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
18804         transitions involving copies.
18805         (set_lattice_value): Adjust for copy lattice state.
18806         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
18807         if that doesn't dominate the merge point.
18808         (bit_value_unop): Adjust what we treat as varying mask.
18809         (bit_value_binop): Likewise.
18810         (bit_value_assume_aligned): Likewise.
18811         (evaluate_stmt): When we simplified to a SSA name record a copy
18812         instead of dropping to varying.
18813         (visit_assignment): Simplify.
18815         * gimple-match.h (gimple_simplify): Add another callback.
18816         * gimple-fold.c (fold_stmt_1): Adjust caller.
18817         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
18818         for the 2nd callback.
18819         * gimple-match-head.c (gimple_simplify): Add a callback that is
18820         used to valueize the stmt operands and use it that way.
18822 2015-04-21  Richard Biener  <rguenther@suse.de>
18824         PR tree-optimization/65788
18825         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
18827 2015-04-21  Richard Biener  <rguenther@suse.de>
18829         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
18830         vec_construct cost by vec_stmt_cost.
18832 2015-04-21  Richard Biener  <rguenther@suse.de>
18834         * cfghooks.h (create_basic_block): Replace with two overloads
18835         for RTL and GIMPLE.
18836         (split_block): Likewise.
18837         * cfghooks.c (split_block): Rename to ...
18838         (split_block_1): ... this.
18839         (split_block): Add two type-safe overloads for RTL and GIMPLE.
18840         (split_block_after_labels): Call split_block_1.
18841         (create_basic_block): Rename to ...
18842         (create_basic_block_1): ... this.
18843         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
18844         (create_empty_bb): Call create_basic_block_1.
18845         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
18846         split_block_after_labels.
18847         * omp-low.c (expand_parallel_call): Likewise.
18848         (expand_omp_target): Likewise.
18849         (simd_clone_adjust): Likewise.
18850         * tree-chkp.c (chkp_get_entry_block): Likewise.
18851         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
18852         create_basic_block overload.
18853         (cgraph_node::expand_thunk): Likewise.
18854         * tree-cfg.c (make_blocks): Likewise.
18855         (handle_abnormal_edges): Likewise.
18856         * tree-inline.c (copy_bb): Likewise.
18858 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18860         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
18861         New pattern.
18862         (*xor_one_cmplsidi3_ze): Likewise.
18864 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18866         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
18867         use df_remove_problem rather than manually removing problems, leaving
18868         holes in df->problems_in_order[].
18870 2015-04-21  Tom de Vries  <tom@codesourcery.com>
18872         PR tree-optimization/65802
18873         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
18875 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18877         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
18878         Increase to 128.
18879         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
18880         at '.'.  Assert that there's enough space for everything.
18882 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
18884         PR tree-optimization/64950
18885         Revert:
18886         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18888         PR target/41089
18889         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18890         as volatile.
18892 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
18894         PR rtl-optimization/64916
18895         * cfgcleanup.c (values_equal_p): New function.
18896         (can_replace_by): Use it.
18898 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
18900         PR c++/65801
18901         * doc/invoke.texi ([-Wnarrowing]): Update.
18903 2015-04-20  Jeff Law  <law@redhat.com>
18905         PR tree-optimization/65658
18906         * tree-ssa-threadupdate.c (redirection_block_p): Remove
18907         redundant test for GIMPLE_ASSIGN in last change.
18909 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
18911         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
18912         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
18913         (legitimize_tls_address): Ditto.
18914         (ix86_expand_move): Ditto.
18915         (ix86_expand_binary_operator): Remove reload_in_progress checks.
18916         (ix86_expand_unary_operator): Ditto.
18917         * config/i386/predicates.md (index_register_operand): Ditto.
18919 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
18921         * reorg.c (try_merge_delay_insns): Improve correctness checking
18922         for targets with multiple delay slots.
18924 2015-04-20  Jeff Law  <law@redhat.com>
18926         PR tree-optimization/65658
18927         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
18928         statements too.
18930 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
18932         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
18933         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
18934         Delete.
18936 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
18938         PR debug/65807
18939         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
18941 2015-04-20  Richard Biener  <rguenther@suse.de>
18943         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
18944         * gimple-fold.c (gimple_build_valueize): New function.
18945         (gimple_build): Always use gimple_build_valueize as valueize hook.
18947 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
18949         PR target/64134
18950         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
18951         and overwrite variable parts if <= 1/2 the elements are variable.
18953 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
18955         PR rtl-optimization/65805
18956         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
18957         Don't use difference of offset and previous offset if
18958         update_sp_offset is non-zero.
18959         (eliminate_regs_in_insn): Ditto.
18960         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
18961         lra_eliminate_regs_1 call.
18962         * lra-constraints.c (get_equiv_with_elimination): Ditto.
18964 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
18966         * hash-table.h: Remove version of hash_table that stored value_type *.
18967         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
18968         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
18969         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
18970         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
18971         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
18972         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
18973         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
18974         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
18975         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
18976         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
18977         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
18978         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
18979         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
18980         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
18981         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
18982         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
18984 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18985             Jakub Jelinek  <jakub@redhat.com>
18987         PR target/65787
18988         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
18989         subsequent SH_NONE operand does not overwrite an existing *special
18990         value.
18991         (adjust_extract): Handle case where a vec_extract operation is
18992         wrapped in a PARALLEL.
18994 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
18996         PR target/65780
18997         * config/i386/i386.c (ix86_binds_local_p): Define only if
18998         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
19000 2015-04-17  Jeff Law  <law@redhat.com>
19002         PR tree-optimization/47679
19003         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
19004         * tree-ssa-scopedtables.c: New file.
19005         * tree-ssa-scopedtables.h: New file.
19006         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
19007         (const_and_copies): Change name/type.
19008         (record_const_or_copy): Move into tree-ssa-scopedtables.c
19009         (record_const_or_copy_1): Similarly.
19010         (restore_vars_to_original_value): Similarly.
19011         (pass_dominator::execute): Create and destroy const_and_copies table.
19012         (thread_across_edge): Update passing of const_and_copies.
19013         (record_temporary_equivalence): Use method calls rather than
19014         manipulating const_and_copies directly.
19015         (record_equality, cprop_into_successor_phis): Similarly.
19016         (dom_opt_dom_walker::before_dom_children): Similarly.
19017         (dom_opt_dom_walker::after_dom_children): Similarly.
19018         (eliminate_redundant_computations): Similarly.
19019         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
19020         (record_temporary_equivalence): Likewise.
19021         (invalidate_equivalences): Likewise.
19022         (record_temporary_equivalences_from_phis): Update due to type
19023         change of const_and_copies.  Use method calls rather than
19024         manipulating the stack directly.
19025         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
19026         (thread_through_normal_block, thread_across_edge): Likewise.
19027         (thread_across_edge): Likewise.
19028         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
19029         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
19030         of equiv_stack.
19031         (identify_jump_threads): Update due to type change of equiv_stack.
19032         (finalize_jump_threads): Delete the equiv_stack when complete.
19034 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
19036         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
19037         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
19038         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
19040 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
19042         PR target/65535
19043         * config.gcc: Exit with a comment when we do not have a major version
19044         number for the FreeBSD target.
19046 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
19048         PR target/65689
19049         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
19050         maybe_allows_mem bitfields.
19051         (maybe_allows_none_start, maybe_allows_none_end,
19052         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
19053         maybe_allows_mem_end): New variables.
19054         (compute_maybe_allows): New function.
19055         (add_constraint): Use it to initialize maybe_allows_reg and
19056         maybe_allows_mem fields.
19057         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
19058         is_address constraints such that those that allow neither mem nor
19059         reg come first, then those that only allow reg but not mem, then
19060         those that only allow mem but not reg, then the rest.
19061         (write_allows_reg_mem_function): New function.
19062         (write_tm_preds_h): Call it.
19063         * stmt.c (parse_output_constraint, parse_input_constraint): Use
19064         the generated insn_extra_constraint_allows_reg_mem function
19065         instead of always setting *allows_reg = true; *allows_mem = true;
19066         for unknown extra constraints.
19068 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
19070         PR target/65780
19071         * output.h (default_binds_local_p_3): New.
19072         * varasm.c (default_binds_local_p_3): Make it public.  Take an
19073         argument to indicate if common symbol may be local.  If common
19074         symbol may be local, treat non-external variable as defined
19075         locally.
19076         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
19077         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
19078         * config/i386/i386.c (ix86_binds_local_p): New.
19079         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
19080         ix86_binds_local_p.
19082 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
19084         PR debug/65771
19085         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
19086         trying mem_loc_descriptor on XEXP (rtl, 0).
19088 2015-04-17  Martin Liska  <mliska@suse.cz>
19090         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
19091         Release symbol_compare_collection.
19092         * ipa-reference.c: Add TODO that a vector should be released.
19094 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
19096         PR target/65296
19097         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
19098         to new AVR-LibC file layout (bug #44574).
19099         (*avrlibc_devicelib): Same.
19100         * config/avr/avr-mcus.def: Adjust comments.
19101         * config/avr/avr.opt (nodevicelib): Adjust help.
19103 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
19105         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
19107 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
19109         PR c++/64527
19110         * gimplify.c (gimplify_init_constructor): Always emit a
19111         side-effecting constructor.
19113 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19115         PR tree-optimization/64950
19116         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
19117         in cfun->curr_properties.
19118         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
19119         if we generate an IFN_VA_ARG.
19120         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
19121         function if PROP_gimple_lva is not set in src function.
19123 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19124             Michael Matz  <matz@suse.de>
19126         PR tree-optimization/64950
19127         * gimple-iterator.c (update_modified_stmts): Remove static.
19128         * gimple-iterator.h (update_modified_stmts): Declare.
19129         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
19130         (gimplify_va_arg_internal): New function.
19131         (gimplify_va_arg_expr): Use IFN_VA_ARG.
19132         * gimplify.h (gimplify_va_arg_internal): Declare.
19133         * internal-fn.c (expand_VA_ARG): New unreachable function.
19134         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
19135         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
19136         (expand_ifn_va_arg): New function.
19137         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
19138         (pass_stdarg::execute): Call expand_ifn_va_arg.
19139         (pass_data_lower_vaarg): New pass_data.
19140         (pass_lower_vaarg): New gimple_opt_pass.
19141         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
19142         (make_pass_lower_vaarg): New function.
19143         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
19144         properties_required field.
19145         * passes.def (all_passes): Add pass_lower_vaarg.
19146         * tree-pass.h (PROP_gimple_lva): Add define.
19147         (make_pass_lower_vaarg): Declare.
19149 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19151         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
19152         * calls.c (call_expr_flags): Same.
19154 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19156         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
19157         (pass_stdarg::execute): ... here.
19159 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19160             Michael Matz  <matz@suse.de>
19162         * tree-cfg.c (make_blocks_1): Factor out of ...
19163         (make_blocks): ... here.
19164         (make_edges_bb): Factor out of ...
19165         (make_edges): ... here.
19166         (gimple_find_sub_bbs): New function.
19167         * tree-cfg.h (gimple_find_sub_bbs): Declare.
19169 2015-04-17  Tom de Vries  <tom@codesourcery.com>
19171         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
19173 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
19175         * asan.c (set_sanitized_sections): New function.
19176         (section_sanitized_p): Ditto.
19177         (asan_protect_global): Optionally sanitize user-defined
19178         sections.
19179         * asan.h (set_sanitized_sections): Declare new function.
19180         * common.opt (fsanitize-sections): New option.
19181         * doc/invoke.texi (-fsanitize-sections): Document new option.
19182         * opts-global.c (handle_common_deferred_options): Handle new
19183         option.
19185 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
19187         PR debug/65771
19188         * dwarf2out.c (loc_list_from_tree): Return NULL
19189         for DEBUG_EXPR_DECL.
19191 2015-04-17  Christian Bruel  <christian.bruel@st.com>
19193         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
19194         same attributes.
19196 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
19198         * ira-color.c (setup_left_conflict_sizes_p): Do not process
19199         node itself when computing left conflict subnode size.
19201 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
19203         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
19204         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
19205         *fop_<mode>_1_sse using enabled attribute.  Use
19206         register_mixssei387nonimm_operand operand 1 predicate. Change
19207         alternative 3 constraints from "x" to "v".
19209 2015-04-16  Richard Biener  <rguenther@suse.de>
19211         PR tree-optimization/65774
19212         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
19213         bit-value tracking on.
19215 2015-04-16  Richard Biener  <rguenther@suse.de>
19217         PR tree-optimization/64277
19218         * tree-vrp.c (check_array_ref): Fix anti-range handling,
19219         simplify upper bound handling.
19220         (search_for_addr_array): Simplify.
19221         (check_array_bounds): Handle ADDR_EXPRs here.
19222         (check_all_array_refs): Simplify.
19224 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
19226         * config/i386/i386.c (print_reg): Rewrite function.
19228 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19230         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
19231         Invert the condition.
19233 2015-04-16  Renlin Li  <renlin.li@arm.com>
19235         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
19236         simplifications for UNSIGNED_FLOAT.
19238 2015-04-16  Nick Clifton  <nickc@redhat.com>
19240         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
19241         MUL_UNINIT.
19242         (enum rl78_cpu_type): New.
19243         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
19244         (umulhi3_shift_virt): Remove m constraint from operand 1.
19245         (umulqihi3_virt): Likewise.
19246         * config/rl78/rl78.c (rl78_option_override): Add code to process
19247         -mcpu and -mmul options.
19248         (rl78_alloc_physical_registers): Add code to handle divhi and
19249         divsi valloc attributes.
19250         (set_origin): Likewise.
19251         * config/rl78/rl78.h (RL78_MUL_G14): Define.
19252         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
19253         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
19254         __RL78_Gxx__.
19255         (ASM_SPEC): Pass -mcpu on to assembler.
19256         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
19257         (mulqi3_rl78): Likewise.
19258         (mulhi3_g13): Likewise.
19259         (mulhi3): Generate the G13 or G14 versions of the insn directly.
19260         (mulsi3): Likewise.
19261         (mulhi3_g14): Add clobbers of AX and BC.
19262         (mulsi3_g14): Likewise.
19263         (mulsi3_g13): Likewise.
19264         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
19265         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
19266         * config/rl78/rl78.opt (mmul): Initialise value to
19267         RL78_MUL_UNINIT.
19268         (mcpu): New option.
19269         (m13, m14, mrl78): New option aliases.
19270         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
19271         (MULTILIB_DIRNAMES): Add g13 and g14.
19272         * doc/invoke.texi: Document -mcpu and -mmul options.
19274 2015-04-16  Richard Biener  <rguenther@suse.de>
19276         * tree-ssa-ccp.c (likely_value): See if we have operands that
19277         are marked as never simulate again and return CONSTANT in this
19278         case.
19279         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
19280         not have any operands that will be simulated again as
19281         not being simulated again.
19283 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
19285         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
19286         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
19287         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
19288         attribute.
19289         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
19290         enabled attribute.
19291         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
19292         *float<SWI48:mode><MODEF:mode>2_sse.
19293         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
19294         enabled attribute.
19295         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
19296         enabled attribute.
19298 2015-04-15  Tom de Vries  <tom@codesourcery.com>
19300         PR other/65487
19301         * function.c (push_dummy_function): New function.
19302         (init_dummy_function_start): Use push_dummy_function.
19303         (pop_dummy_function): New function.  Factored out of ...
19304         (expand_dummy_function_end): ... here.
19305         * function.h (push_dummy_function, pop_dummy_function): Declare.
19306         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
19307         pop_dummy_function.
19308         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
19310 2015-04-15  Jeff Law  <law@redhat.com>
19312         PR tree-optimization/47679
19313         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
19314         need for forward declaration in upcoming changes.
19315         (record_conditions, record_edge_info): Likewise.
19317         PR rtl-optimization/42522
19318         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
19319         SIGN_EXTRACT as a whole object rather than simplifying
19320         its operand.
19322 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
19324         PR ipa/65765
19325         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
19326         and GIMPLE_PREDICT use break instead of return true. For
19327         GIMPLE_EH_DISPATCH, compare dispatch region.
19329 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
19331         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
19332         details about the implementation.  Make clear preference for
19333         __atomic builtins.  Reduce possibility of future change.
19335 2015-04-15  Nick Clifton  <nickc@redhat.com>
19337         * config/rx/rx.opt (mallow-string-insns): New option.
19338         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
19339         builtin if string instructions are denied.
19340         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
19341         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
19342         appropriate.
19343         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
19344         * config/rx/rx.md (movstr): Enable pattern only if string
19345         instructions are allowed.
19346         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
19347         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
19348         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
19349         (MULTILIB_DIRNAMES): Add no-strings.
19350         * doc/invoke.texi: Document -mno-allow-string-insns.
19352 2015-04-15  Alan Modra  <amodra@gmail.com>
19354         PR target/65408
19355         PR target/58744
19356         PR middle-end/36043
19357         * calls.c (load_register_parameters): Don't load past end of
19358         mem unless suitably aligned.
19360 2015-04-15  Nick Clifton  <nickc@redhat.com>
19362         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
19363         decrement instruction as being frame related.
19364         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
19365         based addresses.
19366         If zero extending a function address enclose the operation in
19367         %code(...).
19368         (rl78_preferred_reload_class): New function.
19369         (TARGET_PREFERRED_RELOAD_CLASS): Define.
19370         * config/rl78/rl78.md: Remove useless constraints in expanders.
19371         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
19372         (mulhi3_rl78): Likewise.
19373         (mulhi3_g13): Likewise.
19374         (mulsi3_rl78): Likewise.
19375         (es_addr): Move to before the multiply patterns.
19377 2015-04-15  Alan Modra  <amodra@gmail.com>
19379         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
19380         and sequence_stack.  Add seq.
19381         (seq_stack): Delete.
19382         * function.c (prepare_function_start): Don't access x_last_insn.
19383         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
19384         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
19385         * emit_rtl.c (start_sequence, push_topmost_sequence,
19386         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
19387         sequence accessors.
19388         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
19389         remove_insn): Likewise.  Simplify.
19390         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
19391         and pop_topmost_sequence.
19392         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
19393         debug insns.
19394         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
19396 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
19398         PR target/65729
19399         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
19400         the assertiion.
19402 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
19404         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
19405         (LEGACY_INT_REGNO_P): Ditto.
19406         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
19407         (ANY_MASK_REG_P): Remove.
19408         (BND_REG_P): Rename from ANY_BND_REG_P.
19409         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
19410         legacy integer registers.  Do not handle MMX_REG_P in a special way.
19411         Merge 64byte and 32byte SSE handling.
19413 2015-04-14  Nick Clifton  <nickc@redhat.com>
19415         * expr.c (expand_assignment): Force an address offset computation
19416         into a register before changing its mode.
19417         (expand_expr_real_1): Likewise.
19419 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
19421         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
19422         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
19423         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
19424         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
19425         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
19426         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
19427         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
19428         and __aarch64_vget_lane_any.
19430 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
19432         PR rtl-optimization/65761
19433         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
19434         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
19436 2015-04-14  Richard Biener  <rguenther@suse.de>
19438         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
19439         (graphite_can_represent_scev): Use POINTER_TYPE_P.
19441 2015-04-14  Richard Biener  <rguenther@suse.de>
19443         PR tree-optimization/65758
19444         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
19445         against -1.
19446         (ccp_lattice_meet): Likewise.
19447         (bit_value_unop): Likewise.
19448         (bit_value_binop): Likewise.
19449         (bit_value_assume_aligned): Likewise.
19451 2015-04-14  Christian Bruel  <christian.bruel@st.com>
19453         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
19454         function.
19456 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
19458         PR tree-optimization/63387
19459         * match.pd ((x unord x) | (y unord y) -> (x unord y),
19460         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
19462 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
19464         * config/i386/predicates.md (any_QIreg_operand): Rename from
19465         q_regs_operand.  Do not process subregs.
19466         (QIreg_operand): Use QI_REGNO_P predicate.
19467         (ext_QIreg_operand): Ditto.
19468         (ext_register_operand): Ditto.
19469         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
19470         (AND splitters): Ditto.
19471         (AND with -65536 splitter): Add SWI48 mode for operand 0.
19472         (AND with -256 splitter): Use any_QIreg_operand predicate and
19473         SWI248 mode for operand 0.
19474         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
19475         mode for operand 0.
19476         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
19478 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
19480         * doc/plugins.texi: Rewrite first introductory paragraph.
19482 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
19484         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
19485         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
19487 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
19489         * ipa-profie.c (ipa_profile): Check number of parameters
19490         and possible polymorphic call targets before
19491         devirtualizing.
19493 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
19495         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
19496         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
19498 2015-04-13  Richard Biener  <rguenther@suse.de>
19500         PR tree-optimization/65204
19501         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
19502         takens for bit-CCP.
19504 2015-04-13  Richard Biener  <rguenther@suse.de>
19506         PR target/65660
19507         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
19508         and cond_not_taken_branch_cost to 4 and 2.
19509         (bdver2_cost): Likewise.
19510         (bdver3_cost): Likewise.
19511         (bdver4_cost): Likewise.
19513 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
19515         * hash-table.h (hash_table constructor): Add mem stats.
19516         (alloc_entries): Likewise.
19518 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
19520         * ipa-cp.c (ipcp_driver): Relase prev_edge.
19521         * passes.c (execute_one_pass): Only add transform if pass has one.
19523 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
19525         * config/i386/i386.c (ix86_option_override_internal): Don't set
19526         -fprefetch-loop-arrays if optimizing for size.
19528 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
19529             Gerald Pfeifer  <gerald@pfeifer.com>
19531         * doc/contrib.texi (Contributors): Add Martin Jambor and
19532         Michael Matz.
19534 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
19536         * BASE-VER: Set to 6.0.0.
19538         PR tree-optimization/65747
19539         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
19540         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
19542 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
19544         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
19545         sentence.  Improve grammar.
19547 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
19549         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
19551 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
19553         PR ipa/65743
19554         * ipa-inline-transform.c (speculation_removed): Remove static var.
19555         (check_speculations): New function.
19556         (clone_inlined_nodes): Do not check spculations.
19557         (inline_call): Call check_speculations.
19558         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
19559         consider non-invariants.
19561 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
19562             Martin Liska  <mliska@suse.cz>
19564         PR ipa/65722
19565         * ipa-icf.c (sem_item::compare_cgraph_references): function and
19566         variable can not match.
19567         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
19568         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
19570 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
19572         PR tree-optimization/65735
19573         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
19574         Remove visited_phis argument, add visited_bbs, avoid recursing into the
19575         same bb rather than just into the same phi node.
19576         (thread_through_normal_block): Adjust caller.
19578 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
19580         * doc/contrib.texi (Contributors): Add Ira Rosen.
19582 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
19584         * gcov.c (find_source): Fix miswording in error message.
19585         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
19586         (ix86_expand_sse_comi_round): Fix typo in error message.
19588 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
19590         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
19592 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
19594         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
19596 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
19598         PR target/65710
19599         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
19600         Print bad_spills_num and insn_pseudos_num.
19602 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19604         PR target/65694
19605         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
19606         when creating +1 values for SImode.
19608 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
19610         PR target/65729
19611         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
19612         assert.
19614 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
19615             Iain Sandoe  <iain@codesourcery.com>
19617         PR target/65351
19618         * configure: Regenerate.
19620 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
19622         PR target/65671
19623         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
19625 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
19627         * doc/contrib.texi (Contributors): Add John Marino.
19629 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
19631         PR tree-optimization/65709
19632         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
19633         TREE_TYPE (TREE_TYPE (t)).
19635 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
19637         PR target/65710
19638         * lra-int.h (lra_bad_spill_regno_start): New.
19639         * lra.c (lra_bad_spill_regno_start): New.
19640         (lra): Set up lra_bad_spill_regno_start.  Set up
19641         lra_constraint_new_regno_start unconditionally.
19642         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
19643         spill preferences.
19645 2015-04-09  Marek Polacek  <polacek@redhat.com>
19646             Jakub Jelinek  <jakub@redhat.com>
19648         PR middle-end/65554
19649         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
19650         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
19651         of STRIP_NOPS.
19653 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
19655         PR rtl-optimization/65693
19656         * combine.c (is_parallel_of_n_reg_sets): Move outside of
19657         #ifndef HAVE_cc0.
19659 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
19661         PR target/65296
19662         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
19663         device specs file if "device-specs%s" didn't resolve to a path.
19665 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
19667         PR target/65676
19668         * config/i386/i386.c (fixup_modeless_constant): New.
19669         (ix86_expand_args_builtin): Fixup modeless constant operand.
19670         (ix86_expand_round_builtin): Ditto.
19671         (ix86_expand_special_args_builtin): Ditto.
19672         (ix86_expand_builtin): Ditto.
19674 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
19676         PR target/65693
19677         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
19678         any pow2 integer in between 2 and 0x80000000U inclusive.
19680 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
19682         PR rtl-optimization/65693
19683         * combine.c (is_parallel_of_n_reg_sets): Change first argument
19684         from an rtx_insn * to an rtx.
19685         (try_combine): Adjust both callers.  Use it once more.
19687 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
19689         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
19690         (chkp_make_static_const_bounds): Search existing
19691         symbol by assembler name.  Use make_decl_one_only.
19692         (chkp_get_zero_bounds_var): Remove node search which
19693         is now performed in chkp_make_static_const_bounds.
19694         (chkp_get_none_bounds_var): Likewise.
19696 2015-04-08  Michael Witten  <mfwitten@gmail.com>
19698         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
19699         to an example.
19701 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19703         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
19705 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
19707         * doc/extend.texi (__sync Builtins): Fix grammar.
19709 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19711         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
19713 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19715         * varasm.c (emit_local): Move definition of align.
19717 2015-04-08  Julian Brown  <julian@codesourcery.com>
19719         * config/nvptx/mkoffload.c (process): Support variable mapping.
19721 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
19723         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
19724         alpha_links **.
19725         (alpha_write_one_linkage): Correct typo.
19727 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
19729         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
19731 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
19733         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
19735 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
19737         * tree-chkp.h (chkp_insert_retbnd_call): New.
19738         * tree-chkp.c (chkp_insert_retbnd_call): New.
19739         * ipa-split.c (insert_bndret_call_after): Remove.
19740         (split_function): Use chkp_insert_retbnd_call.
19741         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
19742         bounds for instrumented functions.
19744 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
19746         PR ipa/65540
19747         * calls.c (initialize_argument_information): When producing tail
19748         call also turn SSA_NAMES passed by references to original PARM_DECLs
19750 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
19752         PR target/65648
19753         * lra-remat.c (do_remat): Process input and non-input insn
19754         registers separately.
19756 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
19758         PR debug/65678
19759         * valtrack.c (debug_lowpart_subreg): New function.
19760         (dead_debug_insert_temp): Use it.
19762         PR middle-end/65680
19763         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
19764         into signed HOST_WIDE_INT the same as negative bit_offset.
19766 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
19768         * ipa-comdats.c (ipa_comdats): Visit all thunks
19769         to set proper comdat group.
19771 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19773         PR target/65489
19774         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
19775         on constants for NEON VSTRUCT modes.
19777 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
19778             Iain Sandoe  <iain@codesourcery.com>
19780         PR target/65351
19781         * configure: Regenerate.
19783 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
19785         PR target/65614
19786         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
19787         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
19788         that LFD is used to load double constants instead of LFS.  Add
19789         defaults for all costs structures.  Add comments for missing
19790         initialization fields.
19791         (size32_cost): Likewise.
19792         (size64_cost): Likewise.
19793         (rs64a_cost): Likewise.
19794         (mpccore_cost): Likewise.
19795         (ppc403_cost): Likewise.
19796         (ppc405_cost): Likewise.
19797         (ppc440_cost): Likewise.
19798         (ppc476_cost): Likewise.
19799         (ppc601_cost): Likewise.
19800         (ppc603_cost): Likewise.
19801         (ppc604_cost): Likewise.
19802         (ppc604e_cost): Likewise.
19803         (ppc620_cost): Likewise.
19804         (ppc630_cost): Likewise.
19805         (ppccell_cost): Likewise.
19806         (ppc750_cost): Likewise.
19807         (ppc7450_cost): Likewise.
19808         (ppc8540_cost): Likewise.
19809         (ppce300c2c3_cost): Likewise.
19810         (ppce500mc_cost): Likewise.
19811         (ppce500mc64_cost): Likewise.
19812         (ppce5500_cost): Likewise.
19813         (ppce6500_cost): Likewise.
19814         (titan_cost): Likewise.
19815         (power4_cost): Likewise.
19816         (power6_cost): Likewise.
19817         (power7_cost): Likewise.
19818         (power8_cost): Likewise.
19819         (ppca2_cost): Likewise.
19820         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
19822         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
19823         instead of XXLOR to copy SFmode to clear out dirty bits created
19824         when SFmode denormals are generated.
19825         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
19826         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
19828 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
19830         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
19831         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
19832         * config/aarch64/aarch64-tune.md: Regenerate.
19834 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
19836         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
19837         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
19838         * config/arm/arm-cores.def (exynos-m1): New core.
19839         * config/arm/arm-tune.md: Regenerate.
19840         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
19841         * config/arm/bpabi.h: Likewise.
19843 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
19845         * ipa-cp (set_single_call_flag): Remove too
19846         restrictive assert.
19848 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
19850         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
19851         GOMP_offload_unregister from the destructor.
19853 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
19855         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
19856         flags for instrumentation thunk.
19857         (chkp_produce_thunks): Likewise.
19859 2015-04-05  Martin Liska  <mliska@suse.cz>
19861         PR ipa/65665
19862         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
19863         has computed data structure.
19864         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
19866 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
19868         * invoke.texi (inline-unit-growth): Increase growth to 20%
19869         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
19871 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
19873         PR target/65647
19874         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
19875         value checking.
19876         (lra_rematerialization_iter): New.
19877         * lra.c (lra): Initialize lra_rematerialization_iter.
19878         Stop updating lra_constraint_new_regno_start after switching of
19879         inheritance and rematerialization.
19880         * lra-remat.c (lra_rematerialization_iter): New.
19881         (lra_remat): Add printing pass iteration.  Do rematerialization
19882         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
19884 2015-04-04  Richard Biener  <rguenther@suse.de>
19886         PR tree-optimization/64909
19887         PR tree-optimization/65660
19888         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
19889         to take a cost vector for scalar iteration cost.
19890         (vect_get_single_scalar_iteration_cost): Likewise.
19891         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
19892         Compute the scalar iteration cost into a cost vector.
19893         (vect_get_known_peeling_cost): Use the scalar cost vector to
19894         account for the cost of the peeled iterations.
19895         (vect_estimate_min_profitable_iters): Likewise.
19896         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
19897         Likewise.
19899 2015-04-04  Alan Modra  <amodra@gmail.com>
19901         PR target/65576
19902         PR target/65240
19903         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
19904         0.0 constant unless TARGET_VSX.
19905         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
19906         alternative.
19908 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
19910         PR ipa/65654
19911         * ipa-inline-transform.c (inline_call): Skip sanity check to work
19912         around the ICE
19914 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
19916         PR ipa/65655
19917         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
19918         speculative indirect edges to avoid ordering issue.
19920 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
19922         PR ipa/65076
19923         * ipa-inline.c (edge_badness): Add combined size to the denominator.
19925 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
19927         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
19928         TYPE_ARTIFICIAL on the .omp_data* types.
19930 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
19932         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
19933         instrumentation thunks.
19935 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
19937         * config/i386/i386.c (ix86_expand_call): Avoid nested
19938         PARALLEL in returned call value.
19940 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
19942         * lto-cgraph.c (input_cgraph_1): Always link instrumented
19943         assembler name with original one.
19945 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
19947         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
19949 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
19951         Revert parts of r216820.
19952         * config/i386/i386.md (movqi_internal): Correct type calculation
19953         for alternatives 3 and 5.
19955 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
19957         PR preprocessor/61977
19958         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
19959         predefine __vector/__bool/__pixel macros nor context sensitive
19960         macros for CLK_ASM.
19961         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
19963 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
19965         * config/pa/pa.c (pa_output_move_double): Directly handle register
19966         indexed memory operand.  Simplify handling of scaled register indexed
19967         memory operands.
19969 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
19971         PR driver/65444
19972         * config/i386/linux-common.h (MPX_SPEC): New.
19973         (CHKP_SPEC): Add MPX_SPEC.
19974         * doc/invoke.texi (-fcheck-pointer-boudns): Document
19975         possible issues with '-z bndplt' support in linker.
19977 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
19979         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
19980         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
19981         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
19982         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
19983         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
19985 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
19987         * config/i386/sync.md (UNSPEC_MOVA): Remove.
19988         (atomic_load<mode>): Change operand 0 predicate to
19989         nonimmediate_operand and fix up the destination when needed.
19990         Use UNSPEC_LDA.
19991         (atomic_loaddi_fpu): Use UNSPEC_LDA.
19992         (atomic_store<mode>): Change operand 1 predicate to
19993         nonimmendate_operand and move the source to register when needed.
19994         Use UNSPEC_STA.
19995         (atomic_store<mode>_1): Use UNSPEC_STA.
19996         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
19997         Fix moves from memory operand.  Use UNSPEC_STA.
19999 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20001         * expmed.c (strict_volatile_bitfield_p): Check that the access will
20002         not cross a MODESIZE boundary.
20003         (store_bit_field, extract_bit_field): Added assertions in the
20004         strict volatile bitfields code path.
20006 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
20008         PR target/65624
20009         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
20010         Increase args array size by one to avoid buffer overflow.
20012 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
20014         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
20015         split_part.
20016         * ipa-inline.c (edge_badness): Add wrapper penalty.
20017         (sum_callers): Move up.
20018         (inline_small_functions): Set single_caller.
20019         * ipa-inline.h (inline_summary): Add single_caller.
20020         * ipa-split.c (split_function): Set split_part.
20021         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
20022         * cgraph.h (cgraph_node): Add split_part.
20024 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
20026         PR target/58945
20027         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
20028         Do not split operands 0 and operands 2 to halfmode.
20029         (atomic_compare_and_swap<mode>): Update for
20030         atomic_compare_and_swap<dwi>_doubleword changes.
20032 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
20034         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
20035         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
20036         no caching is done.
20038 2015-03-31  Martin Liska  <mliska@suse.cz>
20040         PR ipa/65557
20041         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
20042         has already filled up function summary.
20043         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
20045 2015-03-31  Richard Biener  <rguenther@suse.de>
20047         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
20048         of types.
20050 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
20052         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
20053         nested functions.
20054         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
20055         (s390_asm_output_function_label): Adapt to new signature of
20056         s390_function_num_hotpatch_hw
20057         Optimise the code generating assembler output.
20058         Add comments to assembler file.
20060 2015-03-31  Richard Biener  <rguenther@suse.de>
20062         PR middle-end/65626
20063         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
20064         of the noreturn call so it is last and cleanup_control_flow_bb
20065         can do the CFG part.
20067 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
20069         PR target/65531
20070         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
20071         same_comdat_group for external symbols.
20072         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
20073         infinite same_comdat_group traversal loop.
20075 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
20077         PR plugins/61176
20078         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
20079         automatically to $headers.
20081 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
20083         PR ipa/65610
20084         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
20085         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
20086         function.
20087         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
20088         Use it.
20089         * ipa-prop.c (param_type_may_change_p): Likewise.
20090         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
20091         (remove_unused_scope_block_p): Add in_ctor_dtor_block
20092         argument.  Before inlining, preserve
20093         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
20094         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
20095         recursive calls.
20096         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
20098 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
20100         PR ipa/65076
20101         * ipa-inline.c (edge_badness): Base denominator on callee's
20102         grwoth squared.
20104 2015-03-27  Martin Jambor  <mjambor@suse.cz>
20106         PR ipa/65478
20107         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
20108         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
20109         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
20110         node_calling_single_call.
20111         * ipa-cp.c (count_callers): New function.
20112         (set_single_call_flag): Likewise.
20113         (initialize_node_lattices): Count callers and set single_flag_call if
20114         necessary.
20115         (incorporate_penalties): New function.
20116         (good_cloning_opportunity_p): Use it, dump new flags.
20117         (propagate_constants_topo): Set node_within_scc flag if appropriate.
20118         * doc/invoke.texi (ipa-cp-recursion-penalty,
20119         ipa-cp-single-call-pentalty): Document.
20121 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
20123         PR ipa/65588
20124         * symtab.c (symtab_node::get_partitioning_class): Register vars
20125         are duplicated.
20126         * varpool.c (symbol_table::output_variables) Do not assemble unefined
20127         decls for non-symbols.
20129 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
20131         PR target/65248
20132         * output.h (default_binds_local_p_2): New.
20133         * varasm.c (default_binds_local_p_2): Renamed to ...
20134         (default_binds_local_p_3): This.  Don't return true on protected
20135         data symbol if protected data may be external.
20136         (default_binds_local_p): Use default_binds_local_p_3.
20137         (default_binds_local_p_1): Likewise.
20138         (default_binds_local_p_2): New.
20139         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
20140         default_binds_local_p_2 if TARGET_MACHO is undefined.
20142 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
20144         PR target/65593
20145         * config/i386/i386.c (legitimize_pic_address): If base
20146         is SYMBOL_REF or LABEL_REF using %rip addressing, force
20147         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
20149 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
20151         PR target/65531
20152         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
20153         comdat groups.
20155 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
20157         PR ipa/65600
20158         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
20159         of optimized out indirect call.
20160         (redirect_to_unreachable): Always build symbol table node for
20161         BUILT_IN_UNREACHABLE
20163 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
20165         PR target/65407
20166         * ira-costs.c (record_reg_classes): Process all constraint string
20167         containing 0-9.
20169 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
20171         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
20172         memory_operand.
20174         PR target/65052
20175         * config/c6x/constraints.md (S3): New constraint.
20176         * config/c6x/c6x.md (real_jump): Use it.
20178 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20180         PR middle-end/65595
20181         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
20182         do redirection if the call is not optimized out.
20184 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
20186         PR target/65495
20187         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
20188         (fchkp-check-incomplete-type): Add LTO.
20189         (fchkp-zero-input-bounds-for-main): Likewise.
20190         (fchkp-first-field-has-own-bounds): Likewise.
20191         (fchkp-narrow-bounds): Likewise.
20192         (fchkp-narrow-to-innermost-array): Likewise.
20193         (fchkp-use-static-bounds): Likewise.
20194         (fchkp-use-static-const-bounds): Likewise.
20195         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
20197 2015-03-27  Marek Polacek  <polacek@redhat.com>
20199         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
20201 2015-03-27  Marek Polacek  <polacek@redhat.com>
20203         PR sanitizer/65583
20204         * ubsan.c (ubsan_create_edge): New function.
20205         (instrument_bool_enum_load): Call it.
20206         (instrument_nonnull_arg): Likewise.
20207         (instrument_nonnull_return): Likewise.
20208         (instrument_object_size): Likewise.
20210 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20212         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
20213         auto_vec.
20215 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20217         PR lto/65536
20218         * lto-streamer.h (class lto_location_cache): New.
20219         (struct data_in): Add location_cache.
20220         (lto_input_location): Update prototype.
20221         (stream_input_location_now): New.
20222         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
20223         pointer to location.
20224         (stream_input_location): Update.
20225         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
20226         (warn_odr): Apply location cache before warning.
20227         (lto_input_location): Update prototype.
20228         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
20229         Use stream_input_location_now.
20230         * lto-streamer-in.c (lto_location_cache::current_cache): New static
20231         variable.
20232         (lto_location_cache::cmp_loc): New function.
20233         (lto_location_cache::apply_location_cache): New function.
20234         (lto_location_cache::accept_location_cache): New function.
20235         (lto_location_cache::revert_location_cache): New function.
20236         (lto_location_cache::input_location): New function.
20237         (lto_input_location): Do location caching.
20238         (stream_input_location_now): New function.
20239         (input_eh_region, input_struct_function_base): Use
20240         stream_input_location_now.
20241         (lto_data_in_create): use new.
20242         (lto_data_in_delete): Use delete.
20243         * tree-streamer-in.c (unpack_ts_block_value_fields,
20244         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
20245         lto_input_ts_exp_tree_pointers): Update for cached location api.
20247 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20249         PR ipa/65076
20250         * passes.def: Add pass_nothrow.
20251         * ipa-pure-const.c: (pass_data_nothrow): New.
20252         (pass_nothrow): New.
20253         (pass_nothrow::execute): New.
20254         (make_pass_nothrow): New.
20255         * tree-pass.h (make_pass_nothrow): Declare.
20257 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20259         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
20260         edge to change by speculation resolution or redirection.
20261         (edge_set_predicate): Likewise.
20262         (inline_summary_t::duplicate): Likewise.
20263         (remap_edge_summaries): Likewise.
20265 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20267         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
20268         New macros.
20269         (can_inline_edge_p): Relax option matching for always inline functions.
20271 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
20273         PR target/65561
20274         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
20275         Check operand 4 and operand 0 for equality.
20276         (avx512f_vextract<shuffletype>32x4_1_maskm):
20277         Check operand 6 and operand 0 for equality.
20278         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
20279         for equality.
20280         (vec_extract_hi_<mode>_maskm): Ditto.
20282 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20284         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
20285         dead calls back to live.
20286         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
20287         cross check to ...
20288         (cgraph_node::verify_node): ... here; verify only callee edges,
20289         not caller.
20290         * cif-code.def (CILK_SPAWN): New code.
20292 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
20294         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
20295         (edge_set_predicate): Use it to mark unreachable edges.
20296         (inline_summary_t::duplicate): Remove unnecesary code.
20297         (remap_edge_summaries): Likewise.
20298         (dump_inline_summary): Report contains_cilk_spawn.
20299         (compute_inline_parameters): Compute contains_cilk_spawn.
20300         (inline_read_section, inline_write_summary): Stream
20301         contains_cilk_spawn.
20302         * ipa-inline.c (can_inline_edge_p): Do not touch
20303         DECL_STRUCT_FUNCTION that may not be available;
20304         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
20305         remove check for callee_fun->can_throw_non_call_exceptions and
20306         replace it by optimization attribute check; check for flag_exceptions.
20307         * ipa-inline-transform.c (inline_call): Maintain
20308         DECL_FUNCTION_PERSONALITY
20309         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
20311 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
20313         PR tree-optimization/65551
20314         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
20315         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
20317 2015-03-26  Richard Biener  <rguenther@suse.de>
20319         PR middle-end/65555
20320         * tree-cfg.c (verify_gimple_call): Do not require a call to
20321         have no LHS if it wasn't recognized as control altering yet.
20323 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
20325         PR tree-optimization/64715
20326         * passes.def: Add another instance of pass_object_sizes before ccp1.
20327         * tree-object-size.c (pass_object_sizes::execute): In
20328         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
20329         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
20330         __bos result and the computed constant.  Remove redundant
20331         checks, obsoleted by gimple_call_builtin_p test.
20333         * var-tracking.c (variable_tracking_main_1): Don't track
20334         variables for targetm.no_register_allocation targets.
20336 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
20338         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
20339         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
20341 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20343         PR target/65569
20344         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
20345         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
20346         0.0 is correctly setup.
20347         (extenddftf2_internal): Likewise.
20349 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
20351         PR tree-optimization/65177
20352         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
20353         (bb_in_bbs): New.
20354         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
20355         edges not adjacent on the path to the original code.
20357 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
20359         PR bootstrap/65537
20360         * doc/install.texi (Building a native compiler): Document new
20361         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
20362         configuration assumes that the host supports the linker plugin.
20364 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
20366         PR target/65508
20367         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
20368         chain for generated call.
20370 2015-03-25  Richard Biener  <rguenther@suse.de>
20372         * passes.c (pass_manager::execute_early_local_passes): Guard
20373         execution of pass_chkp_instrumentation_passes with
20374         flag_check_pointer_bounds.
20375         (pass_chkp_instrumentation_passes::gate): Likewise.
20377 2015-03-25  Martin Liska  <mliska@suse.cz>
20379         PR tree-optimization/65538
20380         * symbol-summary.h (function_summary::~function_summary):
20381         Relese memory for allocated summaries.
20382         (function_summary::release): New function.
20384 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
20386         PR lto/65515
20387         * lto-streamer-out.c (DFS::worklist): New struct.
20388         (DFS::worklist_vec): New data member.
20389         (DFS::next_dfs_num): Remove.
20390         (DFS::DFS): Rewritten using worklist instead of recursion,
20391         using most of code from DFS::DFS_write_tree.
20392         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
20393         pass it to DFS_write_tree calls.
20394         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
20395         quick initial checks push it into worklist_vec and return.
20397 2015-03-25  Richard Biener  <rguenther@suse.de>
20399         PR middle-end/65519
20400         * genmatch.c (expr::gen_transform): Re-write to avoid
20401         using gimple_build.
20403 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
20405         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
20407 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
20409         * config/arm/arm.opt (print_tune_info): New option.
20410         * config/arm/arm.c (arm_print_tune_info): New function.
20411         (arm_file_start): Call arm_print_tune_info.
20412         * config/arm/arm-protos.h (struct tune_params): Add comment.
20413         * doc/invoke.texi (@item -mprint-tune-info): New item.
20414         (-mtune): mention it in ARM Option Summary.
20416 2015-03-25  DJ Delorie  <dj@redhat.com>
20418         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
20419         correct clause.
20421 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
20422             Martin Liska  <mliska@suse.cz>
20424         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
20425         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
20426         (sem_item::add_type): New function.
20427         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
20428         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
20429         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
20430         (sem_function::equals_wpa): Fix typo.
20431         * ipa-icf.h (sem_item::add_type): New function.
20432         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
20433         order.
20435 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
20437         PR tree-optimization/65533
20438         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
20439         with swapped operands, call vect_free_slp_tree on
20440         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
20441         vector.
20443 2015-03-24  Richard Biener  <rguenther@suse.de>
20445         PR middle-end/65517
20446         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
20447         for fixup if necessary.
20449 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
20451         * doc/extend.texi (Function Attributes): Add @cindex entries
20452         for all attributes and regularize their format.  Delete text
20453         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
20454         information about "eightbit_data", "tiny_data", and "model"
20455         variable attributes to the Variable Attributes section.  Fix
20456         some obvious typos and copy-editing issues.
20457         (Variable Attributes, Type Attributes): Likewise add/fix
20458         @cindex entries for all attributes.
20460 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
20462         PR target/65523
20463         * tree-chkp.c (chkp_build_returned_bound): Ignore
20464         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
20466 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
20468         PR target/65505
20469         * config/sh/predicates.md (simple_mem_operand,
20470         displacement_mem_operand): Add test for reg.
20471         (short_displacement_mem_operand): Test for displacement_mem_operand
20472         before invoking sh_disp_addr_displacement.
20473         * config/sh/constraints.md (Sdd, Sra): Simplify.
20474         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
20475         Remove redundant displacement_mem_operand tests.
20477 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
20479         PR target/65296
20480         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
20481         the same -mmcu=MCU more than once.
20483 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
20485         PR bootstrap/65522
20486         * ipa-devirt.c: Remove duplicate demangle.h include.
20488         PR target/65504
20489         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
20490         on the pseudo.
20491         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
20492         REG_POINTER on *destptr after adjusting it for prologue size.
20494         PR ipa/65521
20495         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
20496         ultimate_alias_target ()->order ints instead of
20497         ultimate_alias_target () pointers.
20499 2015-03-23  Richard Biener  <rguenther@suse.de>
20501         PR tree-optimization/65518
20502         * tree-vect-stmts.c (vectorizable_load): Reject single-element
20503         interleaving cases we generate absymal code for.
20505 2015-03-23  Richard Biener  <rguenther@suse.de>
20507         PR tree-optimization/65494
20508         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
20509         matches here.
20510         (vect_analyze_slp_instance): But do that here, always and once.
20512 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20514         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
20515         adding T or multiplying by T+1 and subracting T.
20517 2015-03-22  Jeff Law  <law@redhat.com>
20519         PR rtl-optimization/64317
20520         * Makefile.in (OBJS): Add gcse-common.c
20521         * gcse.c: Include gcse-common.h
20522         (struct modify_pair_s): Move structure definition to gcse-common.h
20523         (compute_transp): Move function to gcse-common.c.
20524         (canon_list_insert): Similarly.
20525         (record_last_mem_set_info): Break out some code and put it into
20526         gcse-common.c.  Call into the new common code.
20527         (compute_local_properties): Pass additional arguments to compute_transp.
20528         * postreload-gcse.c: Include gcse-common.h and df.h
20529         (modify_mem_list_set, blocks_with_calls): New variables.
20530         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
20531         (get_bb_avail_insn): Pass in the expression index too.
20532         (alloc_mem): Allocate memory for the new bitmaps and lists.
20533         (free_mem): Free memory for the new bitmaps and lists.
20534         (insert_expr_in_table): Record a bitmap index for each entry we
20535         add to the table.
20536         (record_last_mem_set_info): Call into common code in gcse-common.c.
20537         (get_bb_avail_insn): If no available insn was found in the requested
20538         BB.  If BB has a single predecessor, see if the expression is
20539         transparent in BB and available in that single predecessor.
20540         (compute_expr_transp): New wrapper for compute_transp.
20541         (eliminate_partially_redundant_load): Pass expression's bitmap_index
20542         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
20543         (gcse_after_reload_main): If there are elements in the hash table,
20544         then compute transparency for all the elements in the hash table.
20545         * gcse-common.h: New file.
20546         * gcse-common.c: New file.
20548 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
20550         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
20551         as an adjective.
20552         (System Headers): Likewise.
20553         (Ifdef): Likewise.
20554         (Traditional macros): Likewise.
20555         (Invocation): Likewise.
20556         (Option Index): Likewise.
20557         * doc/cppopts.texi (-M): Likewise.
20558         (-finput-charset): Likewise.
20559         (--help): Likewise.
20560         * doc.invoke.texi (AVR Options): Likewise.
20561         (V850 Options): Likewise.
20563 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
20565         PR ipa/65475
20566         * ipa-devirt.c: Include demangle.h
20567         (odr_type_d): Add field rtti_broken.
20568         (odr_subtypes_equivalent_p): Do not require name to match.
20569         (compare_virtual_tables): Fix typo; if type already has ODR violation,
20570         bypass the tests; be ready for function referneces in vtables that are
20571         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
20572         (warn_odr): Give up for nameless types.
20573         (warn_types_mismatch): Report mismatch in mangled names;
20574         report mismatch in anonymous namespaces; look into component types to
20575         give useful error; report when mismatch is dragged in from other ODR
20576         type.
20577         (odr_types_equivalent_p): Match types for being polymorphic; avoid
20578         duplicated diagnostics.
20579         (add_type_duplicate): Reorder checks so more informative ones come
20580         first; fix typo; do not output "the extra base is defined here" when
20581         we did not warn.
20582         (BINFO_N_BASE_BINFOS): Relax sanity check.
20584 2015-03-22  Martin Liska  <mliska@suse.cz>
20585             Jakub Jelinek  <jakub@redhat.com>
20587         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
20588         masks that can potentially include a builtin.
20589         (ix86_add_new_builtins): Introduce fast filter for isa values
20590         that cannot trigger builtin inclusion.
20592 2015-03-22  Martin Liska  <mliska@suse.cz>
20594         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
20595         (sem_item::update_hash_by_local_refs): Likewise.
20596         (sem_variable::get_hash): Empty line is fixed.
20597         (sem_item_optimizer::execute): Include adding of hash references.
20598         (sem_item_optimizer::update_hash_by_addr_refs): New function.
20599         (sem_item_optimizer::build_hash_based_classes): Use local hash.
20600         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
20601         (sem_item::update_hash_by_local_refs): Likewise.
20603 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
20605         PR ipa/65502
20606         * ipa-comdats.c (enqueue_references): Walk through thunks.
20607         (ipa_comdats): Likewise.
20608         (set_comdat_group_1): New function.
20610 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
20612         PR ipa/65475
20613         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
20614         non-polymorphic
20616 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
20617             Gerald Pfeifer  <gerald@pfeifer.com>
20619         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
20621 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
20622             Sandra Loosemore  <sandra@codesourcery.com>
20624         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
20625         function parameter declaration.
20626         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
20627         Update arguments to nios2_adjust_call_address().
20628         (sibcall_internal): Rename from *sibcall.
20629         (sibcall_value_internal): Rename from *sibcall_value.
20630         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
20631         (nios2_large_got_address): Add target temp reg parameter.
20632         (nios2_got_address): Adjust call to nios2_large_got_address, add
20633         force_reg around it.
20634         (nios2_load_pic_address): Add target temp reg parameter, replace call
20635         to nios2_got_address with corresponding code.
20636         (nios2_legitimize_constant_address): Update call to
20637         nios2_load_pic_address.
20638         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
20639         to use temp reg for PIC loading purposes.
20640         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
20641         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
20642         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
20644 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
20646         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
20647         usage of "the @option{...}".
20648         (-Wopenmp-simd): Likewise.
20649         (-fsanitize-recover): Likewise.
20650         (-fsanitize-undefined-trap-on-error): Likewise.
20651         (-flto): Likewise.
20652         (tracer-dynamic-coverage-feedback): Likewise.
20653         (reorder-block-duplicate-feedback): Likewise.
20654         (loop-unroll-jam-size): Likewise.
20655         (-B): Likewise.
20656         (-I-): Likewise.
20657         (-mabs=legacy): Likewise.
20658         (-mupper-regs-df): Likewise.
20659         (-mupper-regs-sf): Likewise.
20660         (-mpointers-to-nested-functions): Likewise.
20662 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
20664         * doc/extend.texi (Cilk Plus Builtins): Add markup.
20666 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
20668         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
20669         additional index entries and cross-references.
20670         (-fchkp-check-incomplete-type): Likewise.
20671         (-fchkp-first-field-has-own-bounds): Likewise.
20672         (-fchkp-narrow-to-innermost-array): Likewise.
20673         (-fchkp-use-fast-string-functions): Likewise.
20674         (-fchkp-use-nochk-string-functions): Likewise.
20675         (-fchkp-use-static-const-bounds): Likewise.
20676         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
20677         (-fchkp-instrument-marked-only): Likewise.
20678         (-fchkp-use-wrappers): Likewise.
20679         (-static-libmpx): Likewise.
20680         (-static-libmpxwrappers): Likewise.
20681         * doc/extend.texi (bnd_legacy): Likewise.
20682         (bnd_instrument): Likewise.
20683         (bnd_variable_size): Likewise.
20684         (Pointer Bounds Checker builtins): Likewise.
20686 2015-03-21  Tom de Vries  <tom@codesourcery.com>
20688         PR tree-optimization/65458
20689         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
20690         * cgraph.h (cgraph_node): Add parallelized_function field.
20691         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
20692         (input_overwrite_node): Read parallelized_function field.
20693         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
20694         parallelized_function on cgraph_node for child_fn.
20695         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
20696         Remove include of gt-tree-parloops.h.
20697         (parallelized_functions): Remove static variable.
20698         (parallelized_function_p): Rewrite using parallelized_function field of
20699         cgraph_node.
20700         (create_loop_fn): Remove adding to parallelized_functions.
20701         * Makefile.in (GTFILES): Remove tree-parloops.c
20703 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
20705         PR rtl-optimization/64366
20706         * lra.c (lra_update_insn_regno_info): Consider regs in
20707         CALL_INSN_FUNCTION_USAGE memory.
20709 2015-03-20  Richard Biener  <rguenther@suse.de>
20711         PR middle-end/64715
20712         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
20713         for type comparison and gcc_checking_assert.
20714         (chrec_fold_plus_poly_poly): Likewise.
20715         (chrec_fold_multiply_poly_poly): Likewise.
20716         (chrec_convert_1): Likewise.
20717         * gimplify.c (gimplify_expr): Remove premature folding of
20718         &X + CST to &MEM[&X, CST].
20720 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
20722         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
20723         already is final.
20724         (ipa_inline): Recompute inline_failed codes.
20725         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
20726         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
20727         CIF_FINAL_ERROR.
20729 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
20731         PR rtl-optimization/60851
20732         * recog.c (constrain_operands): Accept a pseudo register before reload
20733         for LRA enabled targets.
20735 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
20737         PR target/65240
20738         * config/rs6000/predicates.md (easy_fp_constant): Remove special
20739         -ffast-math handling that kept non-0 constants live in the RTL
20740         until reload.  Remove logic testing the number of instructions it
20741         took to create a constant in a GPR that was never used, due to a
20742         test for soft-float earlier.
20743         (memory_fp_constant): Delete, no longer used.
20745         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
20746         alternatives for loading non-0 constants into GPRs for hard
20747         floating point that is no longer needed due to changes in
20748         easy_fp_constant.  Add support for loading 0.0 into GPRs.
20749         (mov<mode>_hardfloat32): Likewise.
20750         (mov<mode>_hardfloat64): Likewise.
20751         (mov<mode>_64bit_dm): Likewise.
20752         (movtd_64bit_nodm): Likewise.
20753         (pre-reload move FP constant define_split): Delete define_split,
20754         since it is no longer used.
20755         (extenddftf2_internal): Remove GHF constraints that are not valid
20756         for extenddftf2.
20758 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
20760         PR rtl-optimization/63491
20761         * lra-constraints.c (check_and_process_move): Use src instead of
20762         sreg.  Remove some dead code.
20764 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
20766         PR ipa/65380
20767         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
20768         (sem_variable::merge): Likewise.
20770 2015-03-19  Martin Liska  <mliska@suse.cz>
20772         PR ipa/65465
20773         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
20774         all fields of cgraph_thunk_info.
20776 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
20778         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
20779         clone instrumented thunks.
20781 2015-03-19  Richard Biener  <rguenther@suse.de>
20783         Revert
20784         2015-03-10  Richard Biener  <rguenther@suse.de>
20786         PR middle-end/63155
20787         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
20788         * tree-ssa-coalesce.c: Include timevar.h.
20789         (attempt_coalesce): Handle graph being NULL.
20790         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
20791         Split out abnormal coalescing to ...
20792         (perform_abnormal_coalescing): ... this function.
20793         (coalesce_ssa_name): Perform abnormal coalescing without computing
20794         live/conflict.
20795         (verify_ssa_coalescing_worker): New function.
20796         (verify_ssa_coalescing): Likewise.
20798 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20799             Jakub Jelinek  <jakub@redhat.com>
20801         PR sanitizer/65400
20802         * tsan.c (instrument_gimple): Clear tail call flag on
20803         calls.
20805 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
20807         PR sanitizer/65400
20808         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
20809         call in the return bb.
20810         (find_split_points): Add RETURN_BB argument, don't call
20811         find_return_bb.
20812         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
20813         if true append TSAN_FUNC_EXIT internal call after the call to
20814         the split off function.
20815         (execute_split_functions): Call find_return_bb here.
20816         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
20817         Adjust find_split_points and split_function calls.
20819 2015-03-18  DJ Delorie  <dj@redhat.com>
20821         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
20822         (iorqi3_virt): Likewise.
20824 2015-03-18  Tom de Vries  <tom@codesourcery.com>
20826         * tree-parloops.c (parallelize_loops): Make static.
20827         * tree-parloops.h (parallelize_loops): Remove extern declaration.
20829 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
20831         PR middle-end/64491
20832         Revert:
20833         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
20835         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
20836         condition would be removed due to undefined behaviour.
20838 2015-03-18  Martin Liska  <mliska@suse.cz>
20840         PR ipa/65432
20841         * cgraph.c (cgraph_node::get_create): Remove unnecessary
20842         xstrdup_for_dump wrapper.
20843         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
20844         sem_item::name.
20845         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
20846         with xstrdup_for_dump.
20847         (sem_variable::equals): Likewise.
20848         (sem_item_optimizer::read_section): Use symtab_node::name instead of
20849         sem_item::name.
20850         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
20851         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
20852         symtab_node::asm_name with xstrdup_for_dump.
20853         (congruence_class::dump): Use symtab_node::name instead of
20854         sem_item::name.
20855         * ipa-icf.h (symtab_node::name): Remove.
20856         (symtab_node::asm_name): Likewise.
20858 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
20860         PR tree-optimization/65450
20861         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
20862         function.
20863         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
20864         it instead of duplicate_ssa_name_ptr_info.
20866         PR target/65222
20867         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
20869 2015-03-18  Richard Biener  <rguenther@suse.de>
20871         * tree-data-ref.h (struct access_matrix): Remove.
20872         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
20873         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
20874         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
20875         (am_vector_index_for_loop): Likewise.
20876         (struct data_reference): Remove access_matrix member.
20877         (DR_ACCESS_MATRIX): Remove.
20878         (lambda_vector_new): Add comment.
20879         (lambda_matrix_new): Use XOBNEWVEC.
20881 2015-03-18  Richard Biener  <rguenther@suse.de>
20883         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
20884         (pass_ch::execute): Cleanup the CFG only if we did sth.
20885         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
20887 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20889         * expmed.c (synth_mult): Use std::swap instead of manually
20890         swapping algorithms.
20892 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
20894         PR target/65078
20895         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
20897 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
20899         PR target/65296
20900         * config/avr/avr.opt (-nodevicelib): New option.
20901         * doc/invoke.texi (AVR Options): Document it.
20902         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
20903         libgcc.a, libc.a, libm.a.
20904         * config/avr/specs.h: Same.
20905         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
20906         which don't (directly) depend on the device.  Print more help.
20907         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
20908         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
20909         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
20910         case of an error.
20911         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
20912         for specs file name.
20913         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
20914         * config/avr/avr-mcus.def: Adjust initializers and comments.
20916 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
20918         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
20919         DECL_ONE_ONLY to check if decl is one only.
20920         * ipa-split.c (consider_split): Limit splitt of one only functions.
20922 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
20924         PR tree-optimization/65427
20925         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
20926         functions.
20927         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
20929 2015-03-16  Marek Polacek  <polacek@redhat.com>
20931         * cgraph.h (add_new_static_var): Remove declaration.
20932         * varpool.c (add_new_static_var): Remove function.
20934 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
20936         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
20937         instead of vec<tree> * with vec_alloc and release for args.
20938         Adjust all users.
20940         PR middle-end/65431
20941         * omp-low.c (delete_omp_context): Only splay_tree_delete
20942         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
20943         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
20945 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
20947         PR sanitizer/64820
20948         * cfgexpand.c (align_base): New function.
20949         (alloc_stack_frame_space): Call it.
20950         (expand_stack_vars): Align prev_frame to be sure
20951         data->asan_vec elements aligned properly.
20953 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
20955         PR middle-end/65409
20956         * expr.c (store_field): Do not do a direct block copy if the source is
20957         a PARALLEL with BLKmode.
20959 2015-03-16  Tom de Vries  <tom@codesourcery.com>
20961         PR middle-end/65414
20962         Revert:
20963         2015-03-12  Tom de Vries  <tom@codesourcery.com>
20965         PR rtl-optimization/64895
20966         * lra-lives.c (check_pseudos_live_through_calls): Use
20967         actual_call_used_reg_set instead of call_used_reg_set, if available.
20969 2015-03-16  Alan Modra  <amodra@gmail.com>
20971         PR target/63150
20972         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
20973         Modify Z->r bswapdi splitter to use dest in place of scratch.
20974         In r->Z and Z->r bswapdi splitter rename word_high, word_low
20975         to word1, word2 and rearrange logic to suit.
20976         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
20977         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
20978         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
20979         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
20980         early clobber.
20982 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
20984         PR tree-optimization/65369
20985         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
20986         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
20987         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
20989         PR tree-optimization/65418
20990         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
20991         are casts in the first PLUS_EXPR operand, ensure tbias and
20992         *totallowp are in the inner type.
20994         PR rtl-optimization/65401
20995         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
20996         argument.  If true, adjust_address_nv of x with big-endian
20997         correction for the mode widening to GET_MODE (y).
20998         (make_field_assignment): Don't do MEM mode widening here.
20999         Use MEM_P instead of GET_CODE == MEM.
21001 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
21003         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
21004         the external decls.
21006 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21008         PR target/64600
21009         * config/arm/arm.c (arm_gen_constant, AND case): Use
21010         ARM_SIGN_EXTEND when constructing AND mask.
21012 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21014         * graph.c (print_graph_cfg): Make function names visible and append
21015         parenthesis to it.  Also make groups of basic blocks belonging to the
21016         same function visible.
21018 2015-03-12  Richard Biener  <rguenther@suse.de>
21020         PR middle-end/44563
21021         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
21022         to avoid quadratic behavior with inline expansion splitting blocks.
21023         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
21024         with the successor if the predecessor will be merged with it.
21025         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
21026         entry block with its successor.
21028 2015-03-13  Richard Biener  <rguenther@suse.de>
21030         PR middle-end/44563
21031         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
21032         (cleanup_tree_cfg_1): Do not call it.
21033         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
21034         (fixup_noreturn_call): Mark the stmt as control altering.
21035         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
21036         here.
21037         (pass_data_fixup_cfg): Produce a dump file.
21038         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
21039         (need_noreturn_fixup): New global.
21040         (pass_dominator::execute): Fixup queued noreturn calls.
21041         (optimize_stmt): Queue calls that became noreturn for fixup.
21042         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
21043         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
21044         (el_to_fixup): New global.
21045         (eliminate_dom_walker::before_dom_childre): Queue calls that
21046         became noreturn for fixup.
21047         (eliminate): Fixup queued noreturn calls.
21048         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
21049         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
21050         (substitute_and_fold_dom_walker::before_dom_children): Queue
21051         alls that became noreturn for fixup.
21052         (substitute_and_fold): Fixup queued noreturn calls.
21054 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
21056         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
21057         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
21058         are building; for methods check ODR type of class they belong to if
21059         they may lead to a polymorphic call.
21060         (sem_function::compare_polymorphic_p): Be bit smarter about testing
21061         when function may lead to a polymorphic call.
21062         (sem_function::compare_type_list): Remove.
21063         (sem_variable::equals): Update use of compatible_types_p.
21064         (sem_variable::parse_tree_refs): Remove.
21065         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
21066         cdtor.
21067         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
21068         matching here.
21069         (func_checker::compatible_polymorphic_types_p): Break out from ...
21070         (unc_checker::compatible_types_p): ... here.
21071         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
21072         Declare.
21073         (unc_checker::compatible_types_p): Update.
21074         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
21075         Remove.
21077 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21079         PR rtl-optimization/65235
21080         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
21081         When first element of vec_concat is const_int, calculate its size
21082         using second element.
21084 2015-03-12  Richard Biener  <rguenther@suse.de>
21086         PR middle-end/65270
21087         * fold-const.c (operand_equal_p): Fix ordering of resetting
21088         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
21090 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21092         * config/s390/s390.c (s390_reorg): Move code to output nops after label
21093         to s390_reorg ().
21094         (s390_asm_output_function_label): Likewise.
21095         * config/s390/s390.c (s390_asm_output_function_label):
21096         Fix function label alignment with -mhtopatch.
21097         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
21098         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
21099         ("nop_2_byte"): New define_insn.
21100         ("nop_4_byte"): Likewise.
21101         ("nop_6_byte"): Likewise.
21102         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
21103         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
21105 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
21107         PR target/65103
21108         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
21109         register.
21111 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
21113         PR target/65044
21114         * toplev.c (process_options): Restrict Pointer Bounds Checker
21115         usage with Address Sanitizer.
21117 2015-03-12  Richard Biener  <rguenther@suse.de>
21119         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
21120         to split on.
21121         * omp-low.c (expand_omp_taskreg): Split block before removing
21122         the stmt.
21123         (expand_omp_target): Likewise.
21124         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
21125         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
21126         stmt to split_block.
21128 2015-03-12  Tom de Vries  <tom@codesourcery.com>
21130         PR rtl-optimization/64895
21131         * lra-lives.c (check_pseudos_live_through_calls): Use
21132         actual_call_used_reg_set instead of call_used_reg_set, if available.
21134 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
21136         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
21137         (cgraph_node::remove): Likewise.
21138         (cgraph_node::get_untransformed_body): Likewise.
21139         * varpool.c (varpool_node::remove): Likewise.
21140         (varpool_node::get_constructor): Add sanity check.
21142 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
21144         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
21145         old GCC versions.
21146         (-fabi-compat-version): Likewise.
21147         (-ffriend-injection): Likewise.
21148         (-Wdeclaration-after-statement): Likewise.
21149         (-fomit-frame-pointer): Likewise.
21150         (-ftree-coalesce-inlined-vars): Likewise.
21151         (-fvisibility=): Likewise.
21152         * doc/extend.texi (Typeof): Likewise.
21153         (Zero Length): Likewise.
21154         (Escaped Newlines): Likewise.
21155         (Compound Literals): Likewise.
21156         (Function Attributes): Likewise.
21157         (Label Attributes): Likewise.
21158         (Type Attributes): Likewise.
21159         (Function Names): Likewise.
21160         (Other Builtins): Likewise.
21161         (Function Specific Option Pragmas): Likewise.
21162         (C++ Interface): Likewise.
21164 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
21166         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
21168 2015-03-11  Marek Polacek  <polacek@redhat.com>
21170         PR tree-optimization/65388
21171         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
21173 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
21175         PR target/65296
21176         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
21177         * configure: Regenerate.
21178         * config.in: Regenerate.
21179         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
21180         [-mn-flash]: Document it.
21181         [__AVR_ARCH__]: Document avrtiny.
21183         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
21184         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
21185         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
21187 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21189         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
21191 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
21193         PR target/65242
21194         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
21195         allow reloads of PLUS in floating point/VSX registers.
21197 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
21199         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
21200         crypto_sha256_fast.
21201         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
21203 2015-03-11  Richard Biener  <rguenther@suse.de>
21205         PR tree-optimization/65310
21206         * tree-sra.c (build_ref_for_offset): Also preserve larger
21207         alignment.
21209 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
21211         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
21213 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
21215         PR target/65368
21216         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
21217         new define_expand.
21218         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
21220 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
21222         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
21223         (sem_function::equals_wpa): ... here.
21225 2015-03-10  Marek Polacek  <polacek@redhat.com>
21226             Jakub Jelinek  <jakub@redhat.com>
21228         PR sanitizer/65367
21229         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
21230         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
21231         separately.
21233 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
21235         PR target/65286
21236         * config/rs6000/t-linux: For powerpc64* target set
21237         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
21239 2015-03-10  Richard Biener  <rguenther@suse.de>
21241         PR middle-end/44563
21242         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
21243         for redirect_all_calls.
21245 2015-03-10  Marek Polacek  <polacek@redhat.com>
21247         * gdbinit.in (pcfun): Define and document.
21249 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
21251         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
21252         of libgomp-plugin.h.
21253         (find_target_compiler): Support a case when the path to gcc is
21254         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
21255         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
21256         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
21257         libgomp-plugin.h.
21258         (main): Use GCC_INSTALL_NAME as target_driver_name.
21259         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
21260         define.
21261         (mkoffload.o): Remove obsolete include path and defines.
21262         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
21264 2015-03-10  Richard Biener  <rguenther@suse.de>
21266         PR middle-end/63155
21267         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
21268         * tree-ssa-coalesce.c: Include timevar.h.
21269         (attempt_coalesce): Handle graph being NULL.
21270         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
21271         Split out abnormal coalescing to ...
21272         (perform_abnormal_coalescing): ... this function.
21273         (coalesce_ssa_name): Perform abnormal coalescing without computing
21274         live/conflict.
21275         (verify_ssa_coalescing_worker): New function.
21276         (verify_ssa_coalescing): Likewise.
21278 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
21280         PR target/65296
21281         * config.gcc (extra_options) [avr]: Remove.
21282         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
21283         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
21284         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
21286         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
21287         (-mmcu=): Add Var and MissingArgError properties.
21288         (-march=): Remove.
21289         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
21290         * config/avr/t-multilib: Regenerate.
21291         * config/avr/specs.h: New file.
21292         * config/avr/driver-avr.c: New file.
21293         * config/avr/genopt.sh: Remove file.
21294         * config/avr/avr-tables.opt: Remove file.
21295         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
21296         * config/avr/avr-c.c: Same.
21297         * avr-arch.h: Same.
21298         (avr_current_device): Remove proto.
21299         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
21300         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
21301         (EXTRA_SPEC_FUNCTIONS): Define.
21302         (avr_devicespecs_file): New specs function proto.
21303         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
21304         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
21305         (avr_current_device): Remove definition and usage.
21306         (avr_set_core_architecture): New static function.
21307         (avr_option_override): Use it.
21308         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
21309         (mcu_name): New static array.
21310         (comparator, avr_archs_str, avr_mcus_str): New static functions.
21311         (avr_inform_devices, avr_inform_core_architectures): New functions.
21312         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
21313         (avrlibc.h) [WITH_AVRLIBC]: Include.
21314         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
21315         (print_mcu): Rewrite from scratch.
21316         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
21317         Forward to avr-specific specs defined in device-specs file.
21318         * config/avr/t-avr (driver-avr.o): New rule.
21319         (avr-devices.o): Depend on avr-arch.h.
21320         (avr-mcus): No more depend on avr-tables.opt.
21321         (avr-tables.opt): Remove rule.
21322         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
21324 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
21326         * c-family/c.opt (fchkp-use-wrappers): New.
21327         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
21328         (chkp_wrap_function): New.
21329         (chkp_build_instrumented_fndecl): Support wrapped
21330         functions.
21331         * doc/invoke.texi (-fcheck-pointer-bounds): New.
21332         (-fchkp-check-incomplete-type): New.
21333         (-fchkp-first-field-has-own-bounds): New.
21334         (-fchkp-narrow-bounds): New.
21335         (-fchkp-narrow-to-innermost-array): New.
21336         (-fchkp-optimize): New.
21337         (-fchkp-use-fast-string-functions): New.
21338         (-fchkp-use-nochk-string-functions): New.
21339         (-fchkp-use-static-bounds): New.
21340         (-fchkp-use-static-const-bounds): New.
21341         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
21342         (-fchkp-check-read): New.
21343         (-fchkp-check-write): New.
21344         (-fchkp-store-bounds): New.
21345         (-fchkp-instrument-calls): New.
21346         (-fchkp-instrument-marked-only): New.
21347         (-fchkp-use-wrappers): New.
21348         (-static-libmpx): New.
21349         (-static-libmpxwrappers): New.
21351 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
21353         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
21354         (CHKP_SPEC): Add wrappers library.
21355         * c-family/c.opt (static-libmpxwrappers): New.
21357 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
21359         * config/i386/linux-common.h (LIBMPX_LIBS): New.
21360         (LIBMPX_SPEC): New.
21361         (CHKP_SPEC): New.
21362         * gcc.c (CHKP_SPEC): New.
21363         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
21364         * c-family/c.opt (static-libmpx): New.
21366 2015-03-10  Richard Biener  <rguenther@suse.de>
21368         PR middle-end/44563
21369         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
21370         for compare_type.
21371         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
21372         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
21373         (cgraph_add_edge_to_call_site_hash): Likewise.
21374         (cgraph_node::get_edge): Likewise.
21375         (cgraph_edge::set_call_stmt): Likewise.
21376         (cgraph_edge::remove_caller): Likewise.
21378 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
21380         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
21381         (callee_saved_gpr_regs_size): ... this.
21382         (callee_saved_regs_first_regno): Rename to ...
21383         (callee_saved_first_gpr_regno): ... this.
21384         (callee_saved_regs_last_regno) Rename to ...
21385         (callee_saved_last_gpr_regno): ... this.
21386         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
21387         variables.
21388         (nds32_initial_elimination_offset): Likewise.
21389         (nds32_expand_prologue): Likewise.
21390         (nds32_expand_epilogue): Likewise.
21391         (nds32_expand_prologue_v3push): Likewise.
21392         (nds32_expand_epilogue_v3pop): Likewise.
21393         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
21394         Adjust renamed variables.
21395         (nds32_output_stack_pop): Likewise.
21397 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21399         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
21400         code in comment.
21402 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
21404         PR rtl-optimization/65321
21405         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
21406         than shift mode.
21407         * var-tracking.c (use_narrower_mode): Likewise.
21409 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
21411         PR tree-optimization/65355
21412         * varasm.c (notice_global_symbol): Do not produce RTL.
21413         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
21414         anchor.
21415         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
21416         check for section anchors.
21418 2015-03-10  Alan Modra  <amodra@gmail.com>
21420         PR target/65286
21421         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
21422         to be single-arch by default.  Set cpu_is_64bit for powerpc64
21423         given --with-cpu=native.
21424         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
21425         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
21426         and powerpc64le.
21427         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
21428         rs6000_isa_flags rather than TARGET_64BIT.
21430 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
21431             Kaz Kojima  <kkojima@gcc.gnu.org>
21433         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
21435 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
21437         PR lto/65361
21438         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
21439         on a TREE_BINFO, instead use BINFO_TYPE.
21441 2015-03-09  Richard Biener  <rguenther@suse.de>
21443         PR middle-end/65270
21444         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
21445         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
21446         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
21447         of that.  When comparing dereferences compare alignment.
21448         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
21450 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
21452         * ipa-inline-analysis.c (check_callers): Check
21453         node->can_remove_if_no_direct_calls_and_refs_p.
21454         (growth_likely_positive): Reorganize to call
21455         can_remove_if_no_direct_calls_p later.
21456         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
21457         will_be_removed_from_program_if_no_direct_calls_p): Add
21458         will_inline parameter.
21459         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
21460         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
21461         Handle inliner case correctly.
21463 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21465         PR tree-optimization/63743
21466         * cfgexpand.c (reorder_operands): Also reorder if only second operand
21467         had its definition forwarded by TER.
21469 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
21471         PR lto/65316
21472         * ipa-utils.h (types_odr_comparable): Add strict argument.
21473         * ipa-devirt.c: Fix whitespace;
21474         (odr_hasher): Remove.
21475         (odr_name_hasher, odr_vtable_hasher): New hashers.
21476         (can_be_name_hashed_p): New predicate.
21477         (hash_type_name): remove.
21478         (hash_odr_name): New.
21479         (odr_name_hasher::hash): new.
21480         (can_be_vtable_hashed_p): New.
21481         (hash_odr_vtable): New.
21482         (odr_vtable_hasher::hash): New.
21483         (types_same_for_odr): Add strict parameter.
21484         (types_odr_comparable): Likewise.
21485         (odr_name_hasher::equal): New.
21486         (odr_vtable_hasher::equal): New.
21487         (odr_name_hasher::remove): New.
21488         (odr_hash_type): Change to hash_table<odr_name_hasher>.
21489         (odr_vtable_hash_type): New.
21490         (odr_vtable_hash): New.
21491         (odr_subtypes_equivalent_p): Do strict comparsion.
21492         (add_type_duplicate): Merge type names; cleanup; avoid type
21493         duplicates.
21494         (register_odr_type): Initialize vtable hash.
21495         (build_type_inheritance_graph): Likewise
21496         (get_odr_type): Reorg to use two hashes.
21497         (dump_possible_polymorphic_call_targets): Move sanity check after debug
21498         output.
21499         (ipa_devirt): Dump type_inheritance_graph.
21500         (types_same_for_odr): Add strict mode.
21502 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
21504         PR ipa/65334
21505         * cgraph.h (symtab_node): Add definition_alignment,
21506         can_increase_alignment_p and increase_alignment.
21507         * symtab.c (symtab_node::can_increase_alignment_p,
21508         increase_alignment_1, symtab_node::increase_alignment,
21509         symtab_node::definition_alignment): New.
21510         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
21511         can_increase_alignment_p.
21512         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
21513         * tree-vect-stmts.c (ensure_base_align): Likewise.
21514         * varasm.c (function_section_1): Use definition_alignment.
21515         (assemble_start_function): Likewise.
21516         (emit_local): likewise.
21517         (build_constant_desc): Likewsie.
21518         (output_constant_def_contents): Likewise.
21519         (place_block_symbol): Likewise.
21520         (output_object_block): Likewise.
21522 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
21524         PR ipa/65316
21525         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
21526         when outputting debug.
21528 2015-03-07  Marek Polacek  <polacek@redhat.com>
21529             Martin Uecker  <uecker@eecs.berkeley.edu>
21531         PR sanitizer/65280
21532         * doc/invoke.texi: Update description of -fsanitize=bounds.
21534 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
21536         * tree-ssa-phiopt.c (neg_replacement): Remove.
21537         (tree_ssa_phiopt_worker): Remove negate optimization.
21539 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
21541         PR ipa/65302
21542         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
21544 2015-03-06  Richard Biener  <rguenther@suse.de>
21546         PR middle-end/64928
21547         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
21548         and liveout_obstack members.
21549         (calculate_live_on_exit): Remove.
21550         (calculate_live_ranges): Change declaration.
21551         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
21552         (new_tree_live_info): Adjust.
21553         (calculate_live_ranges): Delete livein when not wanted.
21554         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
21555         Deal with partly deleted live info.
21556         (loe_visit_block): Remove temporary bitmap by using
21557         bitmap_ior_and_compl_into.
21558         (live_worklist): Adjust accordingly.
21559         (calculate_live_on_exit): Make static.
21560         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
21561         we do not need livein.
21563 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
21565         * real.c (real_from_string): Fix typo in assertion.
21567 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
21569         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
21570         the patch.
21572 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
21574         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
21576 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
21578         PR target/64342
21579         * lra-assigns.c (find_hard_regno_for): Rename to
21580         find_hard_regno_for_1.  Add a new parameter.
21581         (find_hard_regno_for): New function using find_hard_regno_for_1.
21583 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21585         PR rtl-optimization/65067
21586         * expmed.c (store_bit_field, extract_bit_field): Reworked the
21587         strict volatile bitfield handling.
21589 2015-03-05  Martin Liska  <mliska@suse.cz>
21591         PR ipa/65318
21592         * ipa-icf.c (sem_variable::equals): Compare variables types.
21594 2015-03-05  Richard Henderson  <rth@redhat.com>
21596         PR target/65121
21597         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
21598         correctly check weak symbol binding.
21600 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
21602         PR middle-end/65315
21603         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
21604         needed alignment.
21606 2015-03-05  Martin Liska  <mliska@suse.cz>
21608         * ipa-inline.c (inline_small_functions): Set default value to
21609         prevent warning during bootstrap.
21610         * tree.h: Add pragma guard that ignores false positives during
21611         bootstrap.
21613 2015-03-05  Richard Biener  <rguenther@suse.de>
21615         PR tree-optimization/65310
21616         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
21617         Properly preserve alignment of the base of the access.
21619 2015-03-05  Richard Biener  <rguenther@suse.de>
21621         PR ipa/65270
21622         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
21623         Compare dependence info.
21625 2015-03-05  Richard Biener  <rguenther@suse.de>
21627         PR middle-end/65233
21628         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
21629         tree-into-ssa.h.
21630         (walk_ssa_copies): Revert last chage.  Instead do not walk
21631         SSA names registered for SSA update.
21633 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
21635         PR ipa/65270
21636         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
21637         vtable references for their containing type.
21638         (sem_function::equals_wpa): Compare TYPE_RESTRICT
21639         and type attributes.
21641 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
21643         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
21644         before negating it.
21645         * stor-layout.c (finalize_record_size): Revert latest change.
21647 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
21649         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
21651 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
21653         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
21654         for correct comdat handling.
21655         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
21656         Likewise.
21657         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
21658         (used_from_object_file_p_worker): Remove.
21659         (cgraph_node::only_called_directly_or_alised): Add
21660         used_from_object_file_p.
21661         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
21662         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
21663         can_remove_if_no_direct_calls_and_refs_p.
21665 2015-03-04  Nick Clifton  <nickc@redhat.com>
21667         * config/rl78/rl78.h (enum reg_class): Remove real registers from
21668         General register class.
21669         * config/rl78/rl78-real.md: Replace general register constraints
21670         with real+virtual register constraints.
21672 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21674         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
21675         from checking for -mhtm option.
21677 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
21679         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
21680         (struct ipa_sra_check_caller_data): Add has_thunk field.
21681         (ipa_sra_check_caller): Check for thunk.
21682         (ipa_sra_preliminary_function_checks): Give up on function with
21683         thunks.
21684         (ipa_early_sra): Use call_for_symbol_and_aliases.
21686 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
21688         PR target/65249
21689         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
21690         called for __stack_chk_guard symbol.
21692 2015-03-03  DJ Delorie  <dj@redhat.com>
21694         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
21695         inc/dec.
21696         (*addhi3_real): Likewise.
21697         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
21698         pattern to match incrementing memory.
21699         * config/rl78/predicates.md (rl78_1_2_operand): New.
21700         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
21701         it's the same and only mem.
21702         (rl78_alloc_physical_registers_op2): If there's effectively only
21703         one MEM, transcode it into HL.
21704         (rl78_far_p): Reject addresses that aren't legitimate.
21706 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
21708         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
21709         negating it.
21711         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
21713 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
21715         Implement call0 ABI for xtensa
21716         * config/xtensa/constraints.md ("a" constraint): Include stack
21717         pointer in case of call0 ABI.
21718         ("q" constraint): Make empty in case of call0 ABI.
21719         ("D" constraint): Include stack pointer in case of call0 ABI.
21720         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
21721         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
21722         prototypes.
21723         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
21724         variable.
21725         (xtensa_regno_to_class): Make it a local variable in the
21726         function xtensa_regno_to_class.
21727         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
21728         macro, function prototype and implementation.
21729         (reg_nonleaf_alloc_order): Make it a local variable in the
21730         function order_regs_for_local_alloc.
21731         (xtensa_conditional_register_usage): New function.
21732         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
21733         (xtensa_valid_move): Allow direct moves to stack pointer
21734         register in call0 ABI.
21735         (xtensa_setup_frame_addresses): Only spill register windows in
21736         windowed ABI.
21737         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
21738         call0 ABI respectively.
21739         (xtensa_function_arg_1): Only mark a7 register for copying in
21740         windowed ABI.
21741         (xtensa_call_save_reg): New function.
21742         (compute_frame_size): Add space for callee saved register
21743         storage to the frame size in call0 ABI.
21744         (xtensa_expand_prologue): Generate code to set up stack frame
21745         and save callee-saved registers in call0 ABI.
21746         (xtensa_expand_epilogue): New function.
21747         (xtensa_set_return_address): New function.
21748         (xtensa_return_addr): Calculate return address in call0 ABI.
21749         (xtensa_builtin_saveregs): Only mark a7 register for copying and
21750         emit copying code in windowed ABI.
21751         (order_regs_for_local_alloc): Add preferred register allocation
21752         order for non-leaf function in call0 ABI.
21753         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
21754         (xtensa_asm_trampoline_template): Add trampoline generation for
21755         call0 ABI.
21756         (xtensa_trampoline_init): Add trampoline initialization for
21757         call0 ABI.
21758         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
21759         functions.
21760         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
21761         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
21762         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
21763         ABI call-used registers.
21764         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
21765         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
21766         call0 ABI.
21767         (REG_CLASS_CONTENTS): Include all registers into the preferred
21768         reload registers set, adjust the set in the
21769         xtensa_conditional_register_usage.
21770         (xtensa_regno_to_class): Drop variable declaration.
21771         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
21772         function.
21773         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
21774         respectively.
21775         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
21776         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
21777         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
21778         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
21779         location in call0 ABI.
21780         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
21781         stack adjustment size when handling exception.
21782         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
21783         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
21784         definitions.
21785         ("return" pattern): Generate ret.n/ret in call0 ABI.
21786         ("epilogue" pattern): Expand epilogue.
21787         ("nonlocal_goto" pattern): Use default in call0 ABI.
21788         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
21789         emit eh_set_a0_* depending on ABI.
21790         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
21791         ("eh_set_a0_call0", "blockage"): New patterns.
21793 2015-03-03  Martin Liska  <mliska@suse.cz>
21795         PR ipa/65287
21796         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
21798 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
21800         PR 65138/target
21801         * config/rs6000/rs6000-tables.opt: Regenerate table.
21803 2015-03-03  Renlin Li  <renlin.li@arm.com>
21805         * doc/md.texi (@item ^): Change ? into ^.
21807 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
21809         * doc/tm.texi: Regenerated.
21811 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
21813         * builtins.c (expand_builtin_return_addr): Add
21814         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
21815         surrounding #ifdef.
21816         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
21817         definition to 1.
21818         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
21819         Likewise.
21820         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
21821         undefined.
21822         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
21823         paragraph.
21825 2015-03-03  Martin Jambor  <mjambor@suse.cz>
21826             Eric Botcazou  <ebotcazou@adacore.com>
21828         * tree-sra.c (ipa_sra_check_caller_data): New type.
21829         (has_caller_p): Removed.
21830         (ipa_sra_check_caller): New function.
21831         (ipa_sra_preliminary_function_checks): Use it.
21833 2015-03-03  Martin Liska  <mliska@suse.cz>
21835         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
21836         instead of if branch.
21838 2015-03-03  Martin Liska  <mliska@suse.cz>
21840         PR ipa/65282
21841         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
21843 2015-03-23  Jeff Law  <law@redhat.com>
21845         PR tree-optimization/65241
21846         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
21847         hash table if INSERT is true.
21849 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
21851         PR target/65296
21852         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
21854 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
21856         PR target/64331
21857         * config/avr/avr.c (context.h, tree-pass.h): Include them.
21858         (avr_pass_data_recompute_notes): New static variable.
21859         (avr_pass_recompute_notes): New class.
21860         (avr_register_passes): New static function.
21861         (avr_option_override): Call it.
21863 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
21865         Fix various problems with specs file generation.
21867         PR target/65296
21868         * config.gcc (extra_gcc_objs) [avr]: Remove.
21869         * config/avr/driver-avr.c: Remove file.
21870         * config/avr/t-avr (driver-avr.o): Remove rule.
21871         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
21872         INCLUDES to build.  Depend on TM_H.
21873         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
21874         build warnings.  Fix non-matching types and non-existing %-codes.
21875         (tm.h): Include.
21876         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
21877         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
21878         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
21879         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
21880         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
21881         (LIBGCC_SPEC): Remove definitions.
21883 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
21885         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
21886         to create a register in testing mode.
21888 2015-03-03  Martin Liska  <mliska@suse.cz>
21889             Jan Hubicka  <hubicka@ucw.cz>
21891         PR ipa/65263
21892         * cgraph.c (cgraph_node::has_thunk_p): New function.
21893         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
21894         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
21895         (sem_function::merge): Assert is changed.
21897 2015-03-03  Martin Liska  <mliska@suse.cz>
21898             Martin Jambor  <mjambor@suse.cz>
21900         PR ipa/65087
21901         * ipa-icf.c (sem_item_optimizer::execute): Change function
21902         return value to boolean.
21903         (sem_item_optimizer::merge_classes): Likewise.
21904         (ipa_icf_driver): Return TODO_remove_functions in case there's
21905         a merge operation processed.
21906         * ipa-icf.h: Change function return value to boolean.
21908 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
21910         PR 65138/target
21911         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
21912         processor type for 64-bit little endian PowerPC.
21914         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
21915         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
21916         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
21917         printing built-in mask so it does not pass NULL pointers.
21919         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
21920         -mcpu=powerpc64le.
21922 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
21924         PR target/58158
21925         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
21926         !ISA_HAS_FP_CONDMOVE.
21928 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
21930         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
21931         reload_completed.
21933 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
21935         * doc/invoke.texi (Options for Code Generation Conventions):
21936         Fix URL of DSO paper.
21938 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
21940         PR ipa/65130
21941         * ipa-inline.c (check_callers): Looks for recursion.
21942         (inline_to_all_callers): Give up on uninlinable or recursive edges.
21943         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
21944         summary of inline clones.
21945         (do_estimate_growth_1): Fix recursion check.
21947 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
21949         PR ipa/64988
21950         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
21951         comdat groups.
21953 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
21954             Aldy Hernandez  <aldyh@redhat.com>
21956         PR lto/65276
21957         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
21958         when checking TYPE_BINFO.
21960 2015-03-02  Richard Biener  <rguenther@suse.de>
21962         PR ipa/65270
21963         * ipa-icf-gimple.c: Include builtins.h.
21964         (func_checker::compare_memory_operand): Compare base alignment.
21966 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
21968         PR target/65184
21969         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
21970         are never passed by reference.
21972 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
21974         PR target/65183
21975         * tree-chkp.c (chkp_check_lower): Don't check against
21976         zero bounds for already instrumented functions.
21977         (chkp_check_upper): Likewise.
21978         (chkp_fini): Clean pass local data to avoid wrong reusage.
21980 2015-02-28  Martin Liska  <mliska@suse.cz>
21981             Jan Hubicka  <hubicka@ucw.cz>
21983         * ipa-icf.c (sem_variable::equals): Improve debug output;
21984         get variable constructor.
21985         (sem_variable::parse): Do not filter out too early; give up on
21986         volatile and register vars.
21987         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
21988         variables.
21989         * ipa-icf.h (sem_variable::init): Do not set ctor.
21990         (sem_variable::ctor): Remove.
21992 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
21994         PR middle-end/65233
21995         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
21997 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
21999         * ipa-icf.c: Include stor-layout.h
22000         (sem_function::compare_cgraph_references): Rename to ...
22001         (sem_item::compare_cgraph_references): ... this one.
22002         (sem_variable::equals_wpa): New function
22003         (sem_variable::equals): Do not check stuff already verified by
22004         equals_wpa.
22005         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
22006         * ipa-icf.h (sem_item): Add compare_cgraph_references.
22007         (sem_function): Remove compare_cgraph_references.
22008         (sem_variable): Turns equals_wpa into non-inline.
22010 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22012         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
22013         (sem_item::add_expr): New function.
22014         (sem_function::hash_stmt): Handle operands of most statements.
22015         (sem_variable::get_hash): Hash the actual constructor.
22016         * ipa-icf.h (sem_item): Add add_expr.
22017         (sem_function): Update prototype of hash_stmt
22019 2015-02-28  Martin Liska  <mliska@suse.cz>
22020             Jan Hubicka  <hubicka@ucw.cz>
22022         PR ipa/65245
22023         * ipa-icf-gimple.c (func_checker::compare_function_decl):
22024         Remove.
22025         (func_checker::compare_variable_decl): Skip symtab vars.
22026         (func_checker::compare_cst_or_decl): Update.
22027         * ipa-icf.c (sem_function::parse): Do not consider aliases.
22028         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
22029         use correct symtab predicates.
22030         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
22031         (sem_variable::parse):  Update comment.
22032         (sem_item_optimizer::build_graph): Consider ultimate aliases
22033         for references.
22035 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22037         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
22038         of OBJ_TYPE_REF.
22040 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22042         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
22043         (sem_variable::merge) Likewise.
22045 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22047         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
22048         target; also match flag_ipa_devirt.
22050 2015-03-01  Martin Liska  <mliska@suse.cz>
22051             Jan Hubicka  <hubicka@ucw.cz>
22053         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
22054         Validate variable alignment.
22055         * ipa-icf.c (sem_function::equals_private): Be more precise
22056         about non-common function attributes.
22057         (sem_variable::equals): Likewise.
22059 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22061         PR ipa/65237
22062         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
22063         across COMDAT group boundary.
22065 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22067         PR ipa/65232
22068         * ipa-icf.c (clear_decl_rtl): New function.
22069         (sem_function::merge): Clear RTL before forming alias.
22070         (sem_variable::merge): Clear RTL before forming alias.
22072 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
22074         PR ipa/65236
22075         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
22077 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
22079         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
22080         to neon_to_gp<q>.
22082 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
22084         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
22085         a typo in the description.
22087 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
22089         PR target/64317
22090         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
22091         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
22092         * lra-constraints.c: Include "params.h".
22093         (EBB_PROBABILITY_CUTOFF): Use
22094         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
22095         (lra_inheritance): Use '<' instead of '<=' for
22096         EBB_PROBABILITY_CUTOFF.
22097         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
22098         Document change.
22100 2015-02-27  Martin Liska  <mliska@suse.cz>
22102         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
22103         vector length condition.
22105 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
22107         * doc/extend.texi (x86 transactional memory intrinsics):
22108         Reorganize discussion of _xbegin.  Clarify that the return
22109         value is a bit mask.  Expand example and move to end of section.
22111 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
22112             Aldy Hernandez  <aldyh@redhat.com>
22114         PR rtl-optimization/65220
22115         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
22117 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
22119         PR target/65032
22120         * lra-remat.c (update_scratch_ops): New.
22121         (do_remat): Call it.
22122         * lra.c (lra_register_new_scratch_op): New. Take code from ...
22123         (remove_scratches): ... here.
22124         * lra-int.h (lra_register_new_scratch_op): New prototype.
22126 2015-02-27  Marek Polacek  <polacek@redhat.com>
22128         PR c/65040
22129         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
22130         -Wformat-signedness anymore.
22132 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22134         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
22135         function.
22136         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
22138 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22140         * config/s390/s390.c (enum s390_builtin):
22141         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
22142         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
22143         (s390_init_builtins): Generate new builtin functions.
22144         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
22145         (s390_sfpc, s390_efpc): New pattern definitions.
22147 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22149         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
22150         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
22151         (s390_builtin_decls): New array.
22152         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
22153         (s390_builtin_decl): New function.
22154         (TARGET_BUILTIN_DECL): Define macro.
22156 2015-02-27  Richard Biener  <rguenther@suse.de>
22158         PR middle-end/63175
22159         * builtins.c (get_object_alignment_2): Make sure to re-apply
22160         the ANDed mask after recursing to its operand gets us a new
22161         misalignment bit position.
22163 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
22164             Martin Liska  <mliska@suse.cz>
22166         PR bootstrap/65150
22167         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
22168         Use address_matters_p.
22169         (redirect_all_callers, set_addressable): New functions.
22170         (sem_function::merge): Reorganize and fix merging issues.
22171         (sem_variable::merge): Likewise.
22172         (sem_variable::compare_sections): Remove.
22173         * common.opt (fmerge-all-constants, fmerge-constants): Remove
22174         Optimization flag.
22175         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
22176         redirect them.
22177         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
22178         decl is used.
22179         (address_matters_1): New function.
22180         (symtab_node::address_matters_p): New function.
22181         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
22182         check for merged flag.
22183         * cgraph.h (address_matters_p): Declare.
22184         (symtab_node::address_taken_from_non_vtable_p): Remove.
22185         (symtab_node::address_can_be_compared_p): New method.
22186         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
22187         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
22188         Remove.
22189         (comdat_can_be_unshared_p_1) Use address_matters_p.
22190         (update_vtable_references): Fix formating.
22191         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
22192         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
22193         * cgraphclones.c: Preserve merged and icf_merged flags.
22195 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
22197         * doc/extend.texi (Function Attributes): Fix spelling and typos.
22198         (Label Attributes): Likewise.
22199         (Cilk Plus Builtins): Likewise.
22200         (ARC SIMD Built-in Functions): Likewise.
22201         (ARM C Language Extensions (ACLE)): Likewise.
22202         (PowerPC Built-in Functions): Likewise.
22203         (PowerPC Hardware Transactional Memory Built-in Functions):
22204         Likewise.
22206 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
22208         PR tree-optimization/65216
22209         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
22210         new stmt and new SSA_NAME for lhs whenever the arguments have
22211         changed and weren't just swapped.  Fix comment typo.
22213         PR tree-optimization/65215
22214         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
22215         for PDP endian targets.
22216         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
22217         Fix up formatting issues.
22218         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
22219         size is smaller than the original, adjust MEM_REF offset by the
22220         difference of sizes.  Use is_gimple_mem_ref_addr instead of
22221         is_gimple_min_invariant test to avoid adding address temporaries.
22223 2015-02-26  Martin Liska  <mliska@suse.cz>
22224             Jan Hubicka  <hubicka@ucw.cz>
22226         PR ipa/64693
22227         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
22228         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
22229         (sem_item_optimizer::process_cong_reduction): Include division by
22230         sensitive references.
22231         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
22232         * ipa-ref.c (ipa_ref::address_matters_p): New function.
22233         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
22235 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
22237         PR target/65192
22238         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
22239         Remove.
22240         * config/avr/avr.c: Same.
22241         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
22242         Refuse any constant address not in 0..0xbf.
22243         * config/avr/avr.md (*mov<mode>, *movsf): Remove
22244         tiny_valid_direct_memory_access_range from insn conditions.
22245         (mov<mode>): Don't special-case expansion of avrtiny addresses.
22247 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
22249         PR target/61142
22250         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
22251         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
22252         * config/sh/predicates.md (const_logical_operand): New predicate.
22253         * config/sh/sh.md: Add new peephole2 patterns.
22255 2015-02-26  Marek Polacek  <polacek@redhat.com>
22257         PR ipa/65008
22258         * ipa-inline.c (early_inliner): Recompute inline parameters.
22260 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22262         PR target/65171
22263         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
22264         instructions with TImode operands are included in the analysis.
22266 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
22268         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
22269         of an EDGE_FSM_THREAD.
22271 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
22273         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
22275 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
22277         PR debug/46102
22278         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
22280 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
22282         PR tree-optimization/65048
22283         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
22284         (thread_through_all_blocks): Call valid_jump_thread_path.
22285         Remove invalid FSM jump-thread paths.
22287 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
22289         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
22290         (ipa_write_optimization_summaries): Likewise.
22291         * tree-streamer.h: Include data-streamer.h.
22292         (streamer_mode_table): Declare extern variable.
22293         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
22294         * lto-streamer-out.c (lto_output_init_mode_table,
22295         lto_write_mode_table): New functions.
22296         (produce_asm_for_decls): Call lto_write_mode_table when streaming
22297         offloading LTO.
22298         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
22299         (lto_create_simple_input_block): Add mode_table argument to the
22300         lto_input_block constructors.
22301         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
22302         Likewise.
22303         * data-streamer-in.c (string_for_index): Likewise.
22304         * ipa-inline-analysis.c (inline_read_section): Likewise.
22305         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
22306         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
22307         * lto-streamer-in.c (lto_read_body_or_constructor,
22308         lto_input_toplevel_asms): Likewise.
22309         (lto_input_mode_table): New function.
22310         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
22311         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
22312         Use bp_pack_machine_mode.
22313         * real.h (struct real_format): Add name field.
22314         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
22315         (class lto_input_block): Add mode_table member.
22316         (lto_input_block::lto_input_block): Add mode_table_ argument,
22317         initialize mode_table.
22318         (struct lto_file_decl_data): Add mode_table field.
22319         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
22320         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
22321         unpack_ts_decl_common_value_fields,
22322         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
22323         * tree-streamer.c (streamer_mode_table): New variable.
22324         * real.c (ieee_single_format, mips_single_format,
22325         motorola_single_format, spu_single_format, ieee_double_format,
22326         mips_double_format, motorola_double_format,
22327         ieee_extended_motorola_format, ieee_extended_intel_96_format,
22328         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
22329         ibm_extended_format, mips_extended_format, ieee_quad_format,
22330         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
22331         decimal_single_format, decimal_double_format, decimal_quad_format,
22332         ieee_half_format, arm_half_format, real_internal_format): Add name
22333         field.
22334         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
22336 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
22338         PR target/65161
22339         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
22340         reordering for selective scheduling.
22342 2015-02-26  Terry Guo  <terry.guo@arm.com>
22344         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
22345         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
22346         (arm_arch_no_volatile_ce): Declare new global variable.
22347         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
22348         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
22349         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
22350         (TARGET_NO_VOLATILE_CE): New macro.
22351         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
22352         volatile memory access in IT block
22354 2015-02-25  Kai Tietz  <ktietz@redhat.com>
22356         PR tree-optimization/61917
22357         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
22358         that reduc_def_stmt is null.
22360 2015-02-25  Martin Liska  <mliska@suse.cz>
22362         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
22363         hard register variables.
22365 2015-02-25  Kai Tietz  <ktietz@redhat.com>
22367         PR target/64212
22368         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
22369         (symtab::noninterposable_alias): Likewise.
22371 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
22373         PR target/65167
22374         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
22375         bounds registers.
22376         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
22378 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
22380         PR target/64997
22381         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
22382         as split condition; force split via '#' in output pattern.
22384 2015-02-25  Richard Biener  <rguenther@suse.de>
22385             Kai Tietz  <ktietz@redhat.com>
22387         PR tree-optimization/61917
22388         * tree-vect-loop.c (vectorizable_reduction): Allow
22389         vect_internal_def without reduction to exit graceful.
22391 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
22393         PR target/65196
22394         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
22395         only with NONDEBUG_INSN_P.
22397 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
22399         Use variadic macros with avr-log.c.
22401         * config/avr/avr-protos.h (avr_vdump): New prototype.
22402         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
22403         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
22404         * config/avr/avr-log.c: Adjust comments.
22405         (avr_vdump): New function.
22406         (avr_vadump): Pass caller as 2nd argument instead of format string.
22407         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
22408         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
22410 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
22412         PR lto/64374
22413         * target.def (target_option_stream_in): New target hook.
22414         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
22415         targetm.target_option.post_stream_in if non-NULL.
22416         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
22417         * doc/tm.texi: Updated.
22418         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
22419         function.
22420         (TARGET_OPTION_POST_STREAM_IN): Redefine.
22422 2015-02-24  Jeff Law  <law@redhat.com>
22424         PR target/65117
22425         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
22426         of operand 0 and operand 2.
22427         (zero_cost_loop_end, loop_end): Similarly.
22429 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
22431         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
22432         CXX_MEM_STAT_INFO.
22434 2015-02-24  DJ Delorie  <dj@redhat.com>
22436         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
22437         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
22438         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
22439         instead of hardcoding SImode.
22441 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
22443         * omp-low.c (create_omp_child_function): Tag entrypoint
22444         functions with a special attribute.
22446 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
22448         PR target/65058
22449         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
22451 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
22453         PR rtl-optimization/65123
22454         * lra-remat.c (operand_to_remat): Check hard regs in insn
22455         definition too.
22457 2015-02-24  Nick Clifton  <nickc@redhat.com>
22459         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
22460         to the assembler.
22462 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
22464         PR libgomp/64625
22465         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
22466         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
22467         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
22468         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
22469         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
22470         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
22471         (BUILT_IN_GOACC_PARALLEL): Specify as
22472         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
22473         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
22474         * builtin-types.def
22475         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
22476         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
22477         Remove function types.
22478         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
22479         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
22480         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
22481         New function types.
22483 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
22485         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
22487 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
22489         PR tree-optimization/65170
22490         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
22491         if val[1] < 0, clear also val[2] and return 3.
22493 2015-02-24  Alan Modra  <amodra@gmail.com>
22495         PR target/65172
22496         * config/rs6000/rs6000.c (get_memref_parts): Only return true
22497         when *base is a reg.  Handle nested plus addresses.  Simplify
22498         pre_modify test.
22500 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
22502         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
22503         use natural alignment when optimizing for size.
22505 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
22507         PR target/65153
22508         * config/sh/sh.md (movsicc_true+3): Remove peephole.
22509         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
22510         * config/sh/sh.c (replace_n_hard_rtx): Remove.
22512 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
22514         PR fortran/63427
22515         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
22516         too big for a wide_int.  Implement missing wrapping operation.
22518 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
22520         PR target/65163
22521         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
22522         instead of const_int 4294901760.
22524 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
22526         * config/avr/t-avr: Fix typo in comment.
22528 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
22530         * doc/rtl.texi (fma): Clarify documentation.
22532 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
22534         PR debug/58123
22535         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
22536         over input_location.
22538 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
22540         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
22541         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
22542         restrict alignments to absolute_biggest_alignment.
22543         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
22544         Define.
22545         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
22546         * doc/tm.texi: Regenerate.
22547         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
22549 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
22551         PR target/64172
22552         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
22554 2015-02-20  Richard Biener  <rguenther@suse.de>
22556         PR tree-optimization/65136
22557         * tree-ssa-propagate.c: Include cfgloop.h.
22558         (replace_phi_args_in): Avoid replacing loop latch edge PHI
22559         arguments with constants.
22561 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
22562             Martin Liska  <mliska@suse.cz>
22564         PR target/63892
22565         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
22566         don't try to create_thunk if stdarg_p.  If
22567         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
22568         redirect_callers if possible.
22569         (sem_item_optimizer::execute): Call unregister_hooks here...
22570         (ipa_icf_driver): ... instead of here.
22572 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22574         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
22575         Mark operand 0 as earlyclobber in 2nd alternative.
22576         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
22577         Write negated shift amount into QI lowpart operand 0 and use it
22578         in the shift step.
22579         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
22581 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
22583         * cgraph.h (clone_function_name_1): Declare.
22584         * cgraphclones.c (clone_function_name_1): New function.
22585         (clone_function_name): Use it.
22586         * lto-partition.c: Include "stringpool.h".
22587         (must_not_rename, maybe_rewrite_identifier)
22588         (validize_symbol_for_target): New static functions.
22589         (privatize_symbol_name): Use must_not_rename.
22590         (promote_symbol): Call validize_symbol_for_target.
22591         (lto_promote_cross_file_statics): Likewise.
22592         (lto_promote_statics_nonwpa): Likewise.
22594 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
22596         PR target/64452
22597         * config/avr/avr.md (pushhi_insn): New insn.
22598         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
22600 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
22601             Jakub Jelinek  <jakub@redhat.com>
22603         * tree-streamer.c (preload_common_nodes): Don't preload
22604         TI_VA_LIST* for offloading.
22605         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
22606         in_lto_p.
22608 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
22610         * config/pa/pa.c (pa_emit_move_sequence): Always force
22611         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
22612         note on insn.
22614         * config/pa/pa.c (pa_reloc_rw_mask): New function.
22615         (TARGET_ASM_RELOC_RW_MASK): Define.
22616         (pa_cannot_force_const_mem): Revert previous change.
22618 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
22619             Jan Hubicka  <hubicka@ucw.cz>
22621         PR ipa/65028
22622         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
22623         across jump functions.
22625 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
22627         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
22629 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
22631         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
22633 2015-02-19  Richard Henderson  <rth@redhat.com>
22635         PR middle-end/65074
22636         * varasm.c (default_binds_local_p_2): Don't test node->definition;
22637         test DECL_EXTERNAL independent of symtab_node.
22639 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
22641         PR lto/65012
22642         * varpool.c (varpool_node::get_constructor): Return early
22643         if this->lto_file_data is NULL.
22645 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
22647         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
22648         (rank_for_schedule_debug): Update.
22649         (ready_sort): Make static.  Move sorting logic to ...
22650         (ready_sort_debug, ready_sort_real): New static functions.
22651         (schedule_block): Sort both debug insns and real insns in preparation
22652         for ready list trimming.  Improve debug output.
22653         * sched-int.h (ready_sort): Remove global declaration.
22655 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
22657         * ipa-icf.c (sem_function::equals_private): Adjust.
22658         (sem_function::bb_dict_test): Take a vec<int> * instead of
22659         auto_vec<int>.
22660         * ipa-icf.h (bb_dict_test): Likewise.
22662 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
22664         PR gcov-profile/64634
22665         * tree-eh.c (frob_into_branch_around): Fix up typos
22666         in function comment.
22667         (lower_catch): Put eh_seq resulting from EH lowering of
22668         the cleanup sequence after the cleanup rather than before it.
22670 2015-02-18  Tom de Vries  <tom@codesourcery.com>
22672         * common.opt (fstdarg-opt): New option.
22673         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
22674         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
22675         (@item -fstdarg-opt): New item.
22677 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
22679         PR target/65064
22680         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
22681         for common symbols.
22683 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
22685         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
22686         insn-modes.h.
22687         (ALL_HOST_OBJS): Add mkoffload.o.
22688         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
22690 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
22692         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
22693         (compare_virtual_tables): Be smarter about skipping typeinfos;
22694         do sane output on virtual table table mismatch.
22695         (warn_odr): Be ready for forward declarations of enums;
22696         output sane info on base mismatch and virtual table mismatch.
22697         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
22698         when only one type is polymorphic.
22699         (get_odr_type): Fix hashtable corruption.
22700         (dump_odr_type): Dump mangled names.
22702 2015-02-18  Richard Biener  <rguenther@suse.de>
22704         PR tree-optimization/65063
22705         * tree-predcom.c (determine_unroll_factor): Return 1 if we
22706         have replaced looparound PHIs.
22708 2015-02-18  Martin Liska  <mliska@suse.cz>
22710         * lto-streamer.c (lto_streamer_init): Encapsulate
22711         streamer_check_handled_ts_structures with checking macro.
22713 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
22715         PR ipa/65087
22716         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
22717         section if !implicit_section.
22718         (cgraph_node::create_version_clone_with_body): Likewise.
22719         * trans-mem.c (ipa_tm_create_version): Likewise.
22721 2015-02-18  Richard Biener  <rguenther@suse.de>
22723         PR tree-optimization/62217
22724         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
22725         into BIVs.
22727 2015-02-18  Marek Polacek  <polacek@redhat.com>
22729         PR sanitizer/65081
22730         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
22731         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
22732         is in range [-16K, -1].  Don't issue run-time error if
22733         (ptr > ptr + offset).
22735 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
22737         * doc/install.texi (nvptx-*-none): New section.
22738         * doc/invoke.texi (Nvidia PTX Options): Likewise.
22739         * config/nvptx/nvptx.opt: Update.
22741         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
22742         (access_check): New functions, copied from
22743         config/i386/intelmic-mkoffload.c.
22744         (main): For non-installed testing, look in all COMPILER_PATHs for
22745         GCC_INSTALL_NAME.
22747         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
22749 2015-02-18  Andrew Pinski  <apinski@cavium.com>
22750             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
22752         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
22753         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
22755 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
22757         * ipa-visibility.c (function_and_variable_visibility): Only
22758         check locality if node is not already local.
22759         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
22760         call_for_symbol_and_aliases instead of
22761         call_for_symbol_thunks_and_aliases.
22762         (ipa_inline): Likewise.
22763         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
22764         first walk aliases.
22765         * ipa.c (symbol_table::remove_unreachable_nodes): Use
22766         call_for_symbol_and_aliases.
22767         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
22768         (ipa_propagate_frequency_1): Use it; use opt_for_fn
22769         (ipa_propagate_frequency): Update.
22770         (ipa_profile): Add opt_for_fn gueards.
22772 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
22774         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
22775         * doc/invoke.texi (SH options): Document it.
22776         * config/sh/sh.c (sh_insn_length_adjustment): Check
22777         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
22779 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
22781         * common.opt (fipa-cp-alignment): New.
22782         * ipa-cp.c (ipcp_store_alignment_results): Check
22783         flag_ipa_cp_alignment.
22784         * opts.c (default_options_table): Enable -fipa-cp-alignment for
22785         -O2.
22786         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
22787         * doc/invoke.texi: Document -fipa-cp-alignment.
22789 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
22791         PR target/64793
22792         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
22793         to nil.  Adjust comments.
22795 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
22797         * ipa-visibility.c (function_and_variable_visibility): Only
22798         check locality if node is not already local.
22799         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
22800         call_for_symbol_and_aliases instead of
22801         call_for_symbol_thunks_and_aliases.
22802         (ipa_inline): Likewise.
22803         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
22804         first walk aliases.
22805         * ipa.c (symbol_table::remove_unreachable_nodes): Use
22806         call_for_symbol_and_aliases.
22807         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
22808         (ipa_propagate_frequency_1): Use it; use opt_for_fn
22809         (ipa_propagate_frequency): Update.
22810         (ipa_profile): Add opt_for_fn guards.
22812 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
22814         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
22815         skipping of "strange" tokens.
22817 2015-02-17  Jeff Law  <law@redhat.com>
22819         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
22820         obsolete comment.
22822 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
22824         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
22825         as forcing a HARD_DEP between instructions, thereby
22826         disallowing rewriting to break dependencies.
22828 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
22830         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
22831         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
22832         variables in boundary that have no inlitalizer encoded and are
22833         not aliases.
22834         * varasm.c (default_binds_local_p_2): External definitions do not
22835         count as definitions here.
22837 2015-02-16  Jeff Law  <law@redhat.com>
22839         PR tree-optimization/64823
22840         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
22841         statements.
22842         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
22843         threading through blocks with PHIs, but no statements.
22844         (thread_through_normal_block): Distinguish between blocks where
22845         we did not process all the statements and blocks with no statements.
22847 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
22848             James Greenhalgh  <james.greenhalgh@arm.com>
22850         PR ipa/64963
22851         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
22852         section if not linkonce.  Fix up formatting.
22853         (cgraph_node::create_version_clone_with_body): Copy section.
22854         * trans-mem.c (ipa_tm_create_version): Likewise.
22856 2015-02-16  Richard Biener  <rguenther@suse.de>
22858         PR tree-optimization/65077
22859         * tree-ssa-structalias.c (get_constraint_for_1): Handle
22860         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
22861         (find_func_aliases): Allow float values to carry pointers again.
22863 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
22865         * doc/install.texi (Specific): Reorder targets list to put
22866         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
22867         from the top menu.
22869 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
22870             David Edelsohn  <dje.gcc@gmail.com>
22872         PR target/65058
22873         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
22874         mapping class to external variable or function reference.
22875         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
22876         mapping class.
22878 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
22880         PR target/53348
22881         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
22882         ASM_WEAKEN_DECL if defined.
22884 2015-02-16  Richard Biener  <rguenther@suse.de>
22886         PR lto/65015
22887         * varasm.c (default_file_start): For LTO produced units
22888         emit <artificial> as file directive.
22890 2015-02-16  Richard Biener  <rguenther@suse.de>
22892         PR tree-optimization/63593
22893         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
22894         stmts and releasing SSA names until...
22895         (execute_pred_commoning): ... after processing all chains.
22897 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
22899         PR ipa/65059
22900         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
22901         external functions.
22903 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
22905         * doc/bugreport.texi: Adjust section titles throughout the file
22906         to use "Title Case".
22907         * doc/extend.texi: Likewise.
22908         * doc/gcov.texi: Likewise.
22909         * doc/implement-c.texi: Likewise.
22910         * doc/implement-cxx.texi: Likewise.
22911         * doc/invoke.texi: Likewise.
22912         * doc/objc.texi: Likewise.
22913         * doc/standards.texi: Likewise.
22914         * doc/trouble.texi: Likewise.
22916 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
22918         * cgraph.h (symtab_node::has_aliases_p): Simplify.
22919         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
22920         * tree.c (lookup_binfo_at_offset): Make static.
22921         (get_binfo_at_offset): Do not shadow offset; add explanatory
22922         comment.
22924 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
22926         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
22927         for all floading point loads and stores except those using a register
22928         index address.
22929         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
22930         to a register.
22932 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
22934         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
22935         (do_estimate_growth_1): Record if any uninlinable edge was seen.
22936         (estimate_growth): Handle uninlinable edges correctly.
22937         (check_callers): New.
22938         (growth_likely_positive): Handle aliases correctly.
22940 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
22942         * ipa-chkp.c: Use iterate_direct_aliases.
22943         * symtab.c (resolution_used_from_other_file_p): Move inline.
22944         (symtab_node::create_reference): Fix formating.
22945         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
22946         (symtab_node::iterate_reference): Move inline.
22947         (symtab_node::iterate_referring): Move inline.
22948         (symtab_node::iterate_direct_aliases): Move inline.
22949         (symtab_node::used_from_object_file_p_worker): Inline into ...
22950         (symtab_node::used_from_object_file_p): ... this one; move inline.
22951         (symtab_node::call_for_symbol_and_aliases): Move inline;
22952         use iterate_direct_aliases.
22953         (symtab_node::call_for_symbol_and_aliases_1): New method.
22954         (cgraph_node::call_for_symbol_and_aliases): Move inline;
22955         use iterate_direct_aliases.
22956         (cgraph_node::call_for_symbol_and_aliases_1): New method.
22957         (varpool_node::call_for_node_and_aliases): Rename to ...
22958         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
22959         use iterate_direct_aliases.
22960         (varpool_node::call_for_symbol_and_aliases_1): New method.
22961         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
22962         (ipa_discover_readonly_nonaddressable_var): Update.
22963         * ipa-devirt.c: Fix formating.
22964         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
22965         Move inline.
22966         (cgraph_node::call_for_symbol_and_aliases): Move inline.
22967         (cgraph_node::call_for_symbol_and_aliases_1): New function..
22968         * cgraph.h (used_from_object_file_p_worker): Remove.
22969         (resolution_used_from_other_file_p): Move inline.
22970         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
22971         (symtab_node::iterate_reference): Move inline.
22972         (symtab_node::iterate_referring): Move inline.
22973         (symtab_node::iterate_direct_aliases): Move inline.
22974         (symtab_node::used_from_object_file_p_worker): Inline into ...
22975         (symtab_node::used_from_object_file_p): Move inline.
22976         * tree-emutls.c (ipa_lower_emutls): Update.
22977         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
22978         (varpool_node::call_for_node_and_aliases): Remove.
22980 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
22982         PR tree-optimization/62209
22983         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
22984         op == range->exp, insert seq and gimplified code after labels
22985         instead of after the phi.
22987 2015-02-13  Jeff Law  <law@redhat.com>
22989         PR bootstrap/65060
22990         Revert my change for tree-optimization/64823.
22992 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
22994         PR tree-optimization/65053
22995         * tree-ssa-phiopt.c (value_replacement): When moving assign before
22996         cond, either reset VR on lhs or set it to phi result VR.
22998 2015-02-13  Jeff Law  <law@redhat.com>
23000         PR tree-optimization/64823
23001         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
23002         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
23003         threading through blocks with PHIs, but no statements.
23004         (thread_through_normal_block): Distinguish between blocks where
23005         we did not process all the statements and blocks with no statements.
23007         PR rtl-optimization/47477
23008         * match.pd (convert (plus/minus (convert @0) (convert @1): New
23009         simplifier to narrow arithmetic.
23011 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
23013         PR ipa/65028
23014         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
23015         polymorphic call info when type is not known to be preserved.
23017 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
23019         PR ipa/65028
23020         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
23021         (inline_call): Use it.
23023 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
23025         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
23026         GOMP_DEVICE_NVIDIA_PTX.
23028 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
23030         PR ipa/65034
23031         * stmt.c (emit_case_nodes): Use void_type_node instead of
23032         NULL_TREE as LABEL_DECL type.
23034 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
23036         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
23037         constraints.
23038         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
23039         symbolic references to data to be forced to constant memory on the
23040         SOM target.
23042 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
23044         PR tree-optimization/65002
23045         * tree-cfg.c (pass_data_fixup_cfg): Don't update
23046         SSA on start.
23047         * tree-sra.c (some_callers_have_no_vuse_p): New.
23048         (ipa_early_sra): Reject functions whose callers
23049         assume function is read only.
23051 2015-02-13  Richard Biener  <rguenther@suse.de>
23053         PR lto/65015
23054         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
23055         for LTO produced CUs.
23057 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
23059         PR tree-optimization/64705
23060         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
23061         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
23062         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
23063         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
23064         expand_simple_operations.
23066 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
23067             Richard Henderson  <rth@redhat.com>
23069         PR rtl/32219
23070         * cgraphunit.c (cgraph_node::finalize_function): Set definition
23071         before notice_global_symbol.
23072         (varpool_node::finalize_decl): Likewise.
23073         * varasm.c (default_binds_local_p_2): Rename from
23074         default_binds_local_p_1, add weak_dominate argument.  Use direct
23075         returns instead of assigning to local variable.  Unify varpool and
23076         cgraph paths via symtab_node.  Reject undef weak variables before
23077         testing visibility.  Reorder tests for simplicity.
23078         (default_binds_local_p): Use default_binds_local_p_2.
23079         (default_binds_local_p_1): Likewise.
23080         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
23081         via symtab_node.
23082         (default_elf_asm_output_external): Emit visibility when specified.
23084 2015-02-13  Alan Modra  <amodra@gmail.com>
23086         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
23087         code setting up r11 for out-of-line fp restore.
23089 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
23091         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
23092         (muser-mode): Likewise.
23094 2015-02-13  Alan Modra  <amodra@gmail.com>
23096         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
23097         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
23099 2015-02-12  David Howells  <dhowells@redhat.com>
23101         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
23102         warning.
23103         * tree-ssa-uninit.c (dump_predicates): Likewise.
23104         * opts.c (print_filtered_help): Likewise.
23106 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
23108         * dwarf2out.c (output_die): Use "%s", name instead of name to
23109         avoid -Wformat-security warning.
23111         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
23112         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
23113         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
23114         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
23116 2015-02-12  Jason Merrill  <jason@redhat.com>
23118         * common.opt (-flifetime-dse): New.
23120 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
23122         PR sanitizer/65019
23123         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
23125         PR tree-optimization/65014
23126         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
23127         use original second operand of arg0 or arg1 instead of
23128         that adjusted by STRIP_NOPS.
23130 2015-02-11  Jeff Law  <law@redhat.com>
23132         PR target/63347
23133         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
23134         that needs to be queued, just queue it for a single cycle.
23136 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
23138         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
23139         bodies of thunks; comment on why.
23140         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
23141         symbols are extern.
23143 2015-02-11  Richard Henderson  <rth@redhat.com>
23145         PR sanitize/65000
23146         * tree-eh.c (mark_reachable_handlers): Mark source and destination
23147         regions of __builtin_eh_copy_values.
23149 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
23151         PR middle-end/65003
23152         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
23153         ultimate alias is MEM with SYMBOL_REF satisfying
23154         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
23155         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
23157 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
23159         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
23160         "diagnostic-core.h".
23161         (main): Initialize progname, and call diagnostic_initialize.
23163         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
23164         instead of __OPENMP_TARGET__.
23166         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
23167         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
23168         hard-coding PTX_ID.
23170 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
23172         * doc/sourcebuild.texi (pie_enabled): Document.
23174 2015-02-11  Martin Liska  <mliska@suse.cz>
23176         PR ipa/64813
23177         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
23178         a return value for call to a function that is noreturn.
23180 2015-02-11  Richard Biener  <rguenther@suse.de>
23182         PR lto/65015
23183         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
23184         and -fresolution.
23186 2015-02-11  Andrew Pinski  <apinski@cavium.com>
23188         PR target/64893
23189         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
23190         Change the first argument type to size_type_node and add another
23191         size_type_node.
23192         (aarch64_simd_expand_builtin): Handle the new argument to
23193         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
23194         print an out when the first two arguments are not
23195         nonzero integer constants.
23196         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
23197         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
23199 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
23201         PR target/61925
23202         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
23203         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
23204         (ix86_set_current_function): Rewritten.
23205         (ix86_add_new_builtins): Temporarily clear current_target_pragma
23206         when creating builtin fndecls.
23208 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
23210         PR ipa/65005
23211         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
23212         function.
23213         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
23214         have no comdat group.
23215         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
23216         (lto_output_varpool_node): Always output alias info.
23217         (output_refs): Output refs of boundary aliases, too.
23218         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
23219         (output_symtab): Output call eges in thunks in boundary.
23220         (get_alias_symbol): Remove.
23221         (input_node, input_varpool_node): Do not special case weakrefs.
23222         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
23223         alias and thunks targets in the boundary; do not take removed symbols
23224         from their comdat groups.
23225         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
23226         (cgraph_node::global_info): Remove.
23227         (cgraph_node::rtl_info): Look through aliases and thunks.
23228         * cgrpah.h (global_info): Remove.
23229         (non_local_p): Remove.
23231 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
23232             Sandra Loosemore  <sandra@codesourcery.com>
23234         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
23235         to inline asm.  List dialects in proper order.
23237 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
23238             Sandra Loosemore  <sandra@codesourcery.com>
23240         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
23242 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
23244         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
23245         modified) reference to Solaris.
23247 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
23249         * doc/extend.texi (Extended Asm): Fix typos.
23251 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
23253         PR sanitizer/65004
23254         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
23256 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
23258         PR target/64661
23259         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
23260         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
23261         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
23262         * config/sh/constraints.md (Ara, Add): New constraints.
23263         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
23264         predicates.
23265         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
23266         atomic_mem_operand_0.  Don't use force_reg on the memory address.
23267         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
23268         Sra constraint.  Convert to insn_and_split.  Add workaround for
23269         PR 64974.
23270         (atomic_compare_and_swap<mode>_hard): Copy to
23271         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
23272         Use atomic_mem_operand_0 predicate.
23273         (atomic_compare_and_swap<mode>_soft_gusa,
23274         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
23275         AraAdd constraints.
23276         (atomic_compare_and_swap<mode>_soft_tcb,
23277         atomic_compare_and_swap<mode>_soft_imask,
23278         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
23279         atomic_mem_operand_0 predicate and SraSdd constraints.
23280         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
23281         constraint.
23282         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
23283         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
23284         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
23285         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
23286         force_reg on the memory address.
23287         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
23288         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
23289         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
23290         atomic_mem_operand_1 predicate and Sra constraint.
23291         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
23292         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
23293         Use atomic_mem_operand_1 predicate.
23294         (atomic_<fetchop_name><mode>_hard): Copy to
23295         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
23296         Use atomic_mem_operand_1 predicate.
23297         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
23298         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
23299         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
23300         insn_and_split.  Use atomic_mem_operand_1 predicate.
23301         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
23302         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
23303         Use atomic_mem_operand_1 predicate.
23304         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
23305         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
23306         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
23307         in generated insn with original mem operand before emitting the insn.
23308         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
23309         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
23310         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
23311         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
23312         Use atomic_mem_operand_1 predicate and AraAdd constraints.
23313         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
23314         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
23315         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
23316         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
23317         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
23318         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
23319         atomic_not_fetch<mode>_soft_tcb,
23320         atomic_<fetchop_name>_fetch<mode>_soft_imask,
23321         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
23322         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
23323         Use atomic_mem_operand_1 predicate and SraSdd constraints.
23325 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
23327         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
23328         and 3 earlyclobber operands.
23330 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
23332         * common.opt (fstack-reuse): Mark as optimization.
23334 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
23336         PR ipa/64982
23337         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
23339 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
23341         PR tree-optimization/64326
23342         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
23344 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
23346         PR gcov-profile/61889
23347         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
23349 2015-02-10  Richard Biener  <rguenther@suse.de>
23351         PR tree-optimization/64995
23352         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
23353         value we use is final.
23354         (visit_reference_op_store): Always valueize op.
23355         (visit_use): Properly valueize vuses.
23357 2015-02-10  Richard Biener  <rguenther@suse.de>
23359         PR tree-optimization/64909
23360         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
23361         pass a scalar-stmt count estimate to the cost model.
23362         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
23364 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
23366         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
23367         enabled by default together with var-tracking.
23369 2015-02-10  Nick Clifton  <nickc@redhat.com>
23371         * config/rl78/rl78.c: Remove DIV attribute code accidentally
23372         included in previous rl78 commit.
23374 2015-02-10  Richard Biener  <rguenther@suse.de>
23376         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
23377         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
23378         return the bitpack.
23380 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
23382         PR gcov-profile/61889
23383         * config.in: regenerate.
23384         * configure.in: Likewise.
23385         * configure.ac: Check for ftw.h.
23386         * gcov-tool.c: Check for ftw.h before using nftw.
23388 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
23390         PR lto/64076
23391         * ipa-visibility.c (update_visibility_by_resolution_info): Only
23392         assert when not in lto mode.
23394 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
23396         * ira-color.c (setup_left_conflict_sizes_p): Simplify
23397         initialization/assignment of conflict_size.
23399 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
23401         PR ipa/64978
23402         * ipa-cp.c (gather_caller_stats): Skip thunks.
23403         (propagate_constants_topo): Skip aliases.
23405 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
23407         PR target/64761
23408         * config/sh/sh.c (sh_option_override): Don't change
23409         -freorder-blocks-and-partition to -freorder-blocks even when
23410         unwinding is enabled.
23411         (sh_can_follow_jump): Return false if the followee jump is
23412         a crossing jump when -freorder-blocks-and-partition is specified.
23413         * config/sh/sh.md (*jump_compact_crossing): New insn.
23415 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
23416             Kaz Kojima  <kkojima@gcc.gnu.org>
23418         PR target/64761
23419         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
23420         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
23421         (sh_can_redirect_branch): Rename to ...
23422         (sh_can_follow_jump): ... this.  Constify argument types.
23423         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
23424         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
23425         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
23426         * doc/tm.texi: Regenerate.
23428 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
23430         PR sanitizer/64981
23431         * builtins.c (expand_builtin): Call targetm.expand_builtin
23432         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
23434 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23436         PR ipa/61548
23437         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
23439 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23441         PR ipa/63566
23442         * ipa-icf.c (set_local): New function.
23443         (sem_function::merge): Use it.
23445 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23447         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
23448         (add_type_duplicate): Fix comparison of BINFOs.
23450 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23452         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
23453         on getting VOID pointer.
23455 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
23457         PR target/64979
23458         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
23459         va_list escapes.
23461 2015-02-09  Richard Biener  <rguenther@suse.de>
23463         * genmatch.c (replace_id): Copy expr_type.
23465 2015-02-09  Richard Biener  <rguenther@suse.de>
23467         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
23468         (streamer_write_tree_bitfields): Declare.
23469         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
23470         properly unpack padding.
23471         (unpack_value_fields): Inline ...
23472         (streamer_read_tree_bitfields): ... here.
23473         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
23474         and properly add padding bits.
23475         (streamer_pack_tree_bitfields): Fold into ...
23476         (streamer_write_tree_bitfields): ... this new function,
23477         exposing the bitpack object.
23478         * lto-streamer-out.c (lto_write_tree_1): Call
23479         streamer_write_tree_bitfields.
23481 2015-02-09  Richard Biener  <rguenther@suse.de>
23483         PR tree-optimization/54000
23484         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
23485         (struct ivopts_data): Add loop_loc member.
23486         (tree_ssa_iv_optimize_loop): Dump loop location.
23487         (create_new_ivs): Likewise, also dump number of IVs generated.
23489 2015-02-09  Martin Liska  <mliska@suse.cz>
23491         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
23492         just if not yet registered.
23493         (ipa_icf_generate_summary): Register callgraph hooks.
23495 2015-02-08  Andrew Pinski  <apinski@cavium.com>
23497         * config/aarch64/aarch64.c (gty_dummy): Delete.
23499 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23501         PR ipa/63566
23502         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
23503         (cgraph_node::local_p): Remove thunk related FIXME.
23505 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23507         PR ipa/63566
23508         * i386.c (ix86_function_regparm): Look through aliases to see if callee
23509         is local and optimized.
23510         (ix86_function_sseregparm): Likewise; also use target's SSE math
23511         settings; error out instead of silently generating wrong code
23512         on mismatches.
23513         (init_cumulative_args): Look through aliases.
23515 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23517         PR ipa/63566
23518         * ipa-split.c (execute_split_functions): Split if function has aliases.
23520 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
23522         PR ipa/63566
23523         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
23524         aliases before trying to expand it.
23525         (cgraph_node::expand_thunk): Fix formating.
23527 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
23529         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
23530         (Using Assembly Language with C): Expand introduction.
23531         (Basic Asm): Copy-edit.  Add more information about uses of
23532         basic asm.
23533         (Extended Asm): Copy-edit.  Document new escape syntax and
23534         %l[label] syntax.
23535         (Global Reg Vars): Copy-edit.
23536         (Local Reg Vars): Likewise.
23538 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
23540         PR debug/2714
23541         PR bootstrap/64256
23542         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
23543         (DBX_CONTIN_CHAR): Define.
23545 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
23546             Brian Rzycki  <b.rzycki@samsung.com>
23548         PR tree-optimization/64878
23549         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
23550         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
23551         Stop recursion at loop phi nodes after having visited a loop phi node.
23553 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
23555         * toplev.c (process_options): Change flag_ipa_ra before creating
23556         optimization_{default,current}_node.
23558         PR ipa/64896
23559         * cgraphunit.c (cgraph_node::expand_thunk): If
23560         restype is not is_gimple_reg_type nor the thunk_fndecl
23561         returns aggregate_value_p, set restmp to a temporary variable
23562         instead of resdecl.
23564 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
23566         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
23568 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
23570         PR target/64205
23571         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
23572         add a general secondary reload handler for SDmode, unless we have
23573         both read/write support for SDmode.
23575 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
23577         PR middle-end/64937
23578         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
23579         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
23580         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
23581         1 before, push it to abstract_vec.
23582         (dwarf2out_abstract_function): Adjust caller.  Don't call
23583         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
23584         DECL_ABSTRACT_P flags for all abstract_vec elts.
23586 2015-02-06  Renlin Li  <renlin.li@arm.com>
23588         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
23589         complex gimple.
23590         * tree-ssa.c (execute_update_addresses_taken): Likewise.
23592 2015-02-06  Jeff Law  <law@redhat.com>
23594         PR target/64889
23595         * config/h8300/h8300.c (push): New argument "in_prologue".
23596         Pass "in_prologue" along to "F".
23597         (h8300_push_pop): Corresponding changes.
23598         (h8300_expand_prologue): Likewise.
23599         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
23601 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
23603         PR rtl-optimization/64957
23604         PR debug/64817
23605         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
23606         IOR rather than for AND.
23608 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
23610         PR target/62631
23611         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
23612         of shift-add and (add + shift) operations.  Rename local variable.
23614 2015-02-05  Jeff Law  <law@redhat.com>
23616         PR target/17306
23617         * config/h8300/constraints.md (U): Correctly dectect
23618         "eightbit_data" memory addresses.
23619         * config/h8300/h8300.c (eightbit_constant_address_p): Also
23620         handle (const (plus (symbol_ref (x)))) where x is declared
23621         as an 8-bit data memory address.
23622         * config/h8300/h8300.md (call, call_value): Correctly detect
23623         "funcvec" functions.
23625         PR target/43264
23626         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
23627         24 to 28 bits for the H8/300.
23629 2015-02-06  Alan Modra  <amodra@gmail.com>
23631         PR target/64876
23632         * config/rs6000/rs6000.c (chain_already_loaded): New function.
23633         (rs6000_call_aix): Use it.
23635 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
23637         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
23638         check.
23640 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
23642         * config/h8300/constraints.md ("U" constraint): Use strict
23643         variant of REG_OK_FOR_BASE_P after reload has started.
23645 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
23647         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
23648         define to zero if !TARGET_NEON.
23649         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
23651 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23652             Trevor Saunders  <tsaunders@mozilla.com>
23654         PR ipa/61548
23655         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
23657 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23659         PR ipa/61548
23660         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
23661         when removing varpool nodes.
23663 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23665         PR ipa/61548
23666         * varpool.c (varpool_node::remove): Fix order of variables.
23668 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23670         PR ipa/64686
23671         * ipa-inline.c (inline_small_functions): Fix ordering issue between
23672         speculation resolution and key updates.
23674 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23676         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
23677         about not letting any speculative edges unupdated.
23679 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23681         PR gcov/64123
23682         * gcov-io.c (gcov_var): Export.
23684 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23686         PR middle-end/64922
23687         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
23688         edges that become speculative.
23690 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
23692         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
23693         or DW_LANG_Fortran08.
23694         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
23695         DW_LANG_Fortran08.
23696         (gen_compile_unit_die): Handle "GNU Fortran2003" and
23697         "GNU Fortran2008" language strings.
23698         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
23699         * langhooks.h (lang_GNU_Fortran): New prototype.
23700         * langhooks.c (lang_GNU_Fortran): New function.
23701         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
23702         lang_GNU_Fortran.
23704 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
23706         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
23707         (RTX_OK_FOR_OLO10_P): Likewise.
23709 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
23711         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
23713 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
23715         PR middle-end/64922
23716         * gimple.c: Include gimple-ssa.h.
23717         (maybe_remove_unused_call_args): New function.
23718         * gimple.h (maybe_remove_unused_call_args): Declare.
23719         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
23720         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
23721         * gimple-fold.c (gimple_fold_call): Likewise.
23723 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
23725         PR rtl-optimization/64905
23726         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
23727         pointer alignment if it isn't needed.
23729 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
23731         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
23732         cortex-a72.cortex-a53.
23733         * config/aarch64/aarch64-tune.md: Regenerate.
23734         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
23736 2015-02-04  Nick Clifton  <nickc@redhat.com>
23738         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
23739         inside a MEM.
23741 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
23743         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
23744         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
23745         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
23746         of DEF_BUILTIN.
23747         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
23748         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
23749         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
23750         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
23751         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
23752         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
23753         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
23754         * tree-core.h (enum built_in_function): In between
23755         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
23756         for builtins that use DEF_BUILTIN_CHKP macro.
23758 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
23760         PR debug/64817
23761         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
23762         operands for tcc_comparison exprs.  Fix typos.
23764         PR debug/64817
23765         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
23766         of two XORs that have an intervening AND or IOR.
23768         PR debug/64817
23769         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
23770         simplification of XOR of AND to not allocate new rtx before
23771         committing to a simplification.
23773 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23775         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
23776         manual swaps in all peepholes.
23778 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23780         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
23781         of manual swapping implementation.
23782         (aarch64_expand_vec_perm_const_1): Likewise.
23784 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
23786         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
23787         (generic_addrcost_table): Remove NAMED_PARAM.
23788         (cortexa57_addrcost_table): Likewise.
23789         (xgene1_addrcost_table): Likewise.
23790         (generic_regmove_table): Likewise.
23791         (cortexa53_regmove_table): Likewise.
23792         (xgene1_regmove_table): Likewise.
23793         (generic_vector_table): Likewise.
23794         (cortexa57_vector_table): Likewise.
23795         (xgene1_vector_table): Likewise.
23796         (generic_tunings): Likewise.
23797         (cortexa53_tunings): Likewise.
23798         (cortexa57_tunings): Likewise.
23799         (xgene1_tunings): Likewise.
23801 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
23803         * config/arm/arm-cores.def: Add cortex-a72 and
23804         cortex-a72.cortex-a53.
23805         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
23806         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
23807         * config/arm/arm-tune.md: Regenerate.
23808         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
23809         "cortex-a72.cortex-a53".
23810         * doc/invoke.texi (ARM Options/-mtune): Likewise.
23812 2015-02-04  Nick Clifton  <nickc@redhat.com>
23814         PR target/64408
23815         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
23816         of accepted codes.
23817         (nonimmediate_di_operand): Likewise.
23819         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
23820         prefixes of known F5 using MSP430 MCUs.
23822 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23824         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
23825         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
23826         instead of __builtin_sqrt.
23828 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
23830         * varasm.c (do_assemble_alias): Follow transparent alias
23831         chain for target.
23832         (default_assemble_visibility): Follow transparent alias
23833         chain for decl name.
23835 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23837         PR middle-end/62103
23838         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
23839         to compute size of referenced value in the constant case.
23841 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
23843         PR rtl-optimization/64756
23844         * cse.c (invalidate_dest): New function.
23845         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
23846         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
23847         invalidate and do not record it.
23849 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
23851         PR target/64660
23852         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
23853         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
23854         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
23855         atomic_nand<mode>_soft_tcb): New insns.
23856         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
23857         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
23858         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
23859         Split into atomic_not_fetchsi_hard if operands[0] is unused.
23860         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
23861         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
23862         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
23863         atomic_not<mode>_hard if operands[0] is unused.
23864         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
23865         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
23866         if operands[0] is unused.
23867         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
23868         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
23869         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
23870         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
23871         unused.
23872         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
23873         into atomic_not<mode>_soft_tcb if operands[0] is unused.
23874         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
23875         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
23876         if operands[0] is unused.
23877         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
23878         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
23879         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
23880         atomic_nand_fetchsi_hard if operands[0] is unused.
23881         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
23882         atomic_nand<mode>_hard if operands[0] is unused.
23883         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
23884         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
23885         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
23886         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
23887         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
23888         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
23889         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
23890         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
23891         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
23892         atomic_not<mode>_hard if operands[0] is unused.
23893         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
23894         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
23895         unused.
23896         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
23897         into atomic_not<mode>_soft_tcb if operands[0] is unused.
23898         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
23899         atomic_nand<mode>_hard if operands[0] is unused.
23900         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
23901         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
23903 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
23905         PR jit/64810
23906         * Makefile.in (GCC_OBJS): Add gcc-main.o.
23907         * gcc-main.c: New file, containing "main" taken from gcc.c.
23908         * gcc.c (do_self_spec): Free decoded_options.
23909         (class driver): Move declaration to gcc.h.
23910         (main): Move declaration and implementation to new file
23911         gcc-main.c.
23912         (driver_get_configure_time_options): New function.
23913         * gcc.h (class driver): Move this declaration here, from
23914         gcc.c.
23915         (driver_get_configure_time_options): New declaration.
23917 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
23919         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
23920         cross-module inlining.
23921         * cgraph.h (cgraph_node): Add flag merged.
23922         * ipa-icf.c (sem_function::merge): Maintain it.
23924 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
23926         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
23927         instead of OBJECT_P.
23929 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
23931         PR target/62631
23932         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
23933         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
23934         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
23935         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
23937 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
23939         PR other/63504
23940         * combine.c (reg_n_sets_max): New variable.
23941         (can_change_dest_mode, reg_nonzero_bits_for_combine,
23942         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
23943         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
23944         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
23945         (rest_of_handle_combine): Initialize reg_n_sets_max.
23947 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
23949         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
23950         if some always_inline was inlined, apply changes before inlining
23951         heuristically.
23953 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
23955         PR jit/64810
23956         * config/arm/arm.c (arm_option_override): Set
23957         arm_selected_arch/cpu/tune to NULL on entry.
23959 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
23960             Andrew Pinski  <pinskia@gcc.gnu.org>
23961             Jakub Jelinek  <jakub@gcc.gnu.org>
23963         PR target/64231
23964         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
23965         integer typing for small model. Use IN_RANGE.
23967 2015-02-02  Richard Biener  <rguenther@suse.de>
23969         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
23970         * tree-vrp.c (vrp_valueize_1): Likewise.
23972 2015-02-02  Alan Modra  <amodra@gmail.com>
23974         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
23975         than mem for toc_restore.
23976         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
23977         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
23978         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
23980 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
23982         PR target/64047
23983         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
23984         explicit default options.
23986 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
23988         PR ipa/64872
23989         * ipa-utils.c (ipa_merge_profiles): Add release argument.
23990         * ipa-icf.c (sem_function::merge): Do not release body when merging.
23991         * ipa-utils.h (ipa_merge_profiles): Update prototype.
23993 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
23995         PR debug/64817
23996         * cfgexpand.c (deep_ter_debug_map): New variable.
23997         (avoid_deep_ter_for_debug): New function.
23998         (expand_debug_expr): If TERed SSA_NAME is in
23999         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
24000         instead of trying to expand SSA_NAME's def stmt.
24001         (expand_debug_locations): When expanding debug bind
24002         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
24003         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
24004         value.
24005         (pass_expand::execute): Call avoid_deep_ter_for_debug on
24006         all debug bind stmts.  Delete deep_ter_debug_map after
24007         expand_debug_location if non-NULL and clear it.
24009 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
24011         PR target/64851
24012         * config/sh/sync.md (atomic_fetch_notsi_hard,
24013         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
24014         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
24015         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
24016         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
24017         atomic_not_fetch<mode>_soft_imask): New insns.
24019 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24021         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
24022         (rank_for_schedule_debug): Split from ...
24023         (rank_for_schedule): ... this.
24024         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
24025         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
24027 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
24029         * doc/md.texi (Machine Constraints): Alphabetize table by target.
24030         * doc/extend.texi (x86 Variable Attributes): Move section to
24031         correct alphabetization after renaming.
24032         (x86 Type Attributes): Likewise.
24033         (Target Builtins): Re-alphabetize menu.
24034         (x86 Built-in Functions): Move section to correct alphabetization
24035         after renaming.
24036         (x86 transactional memory intrinsics): Likewise.
24037         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
24038         and x86 Windows Options in table and menu.
24039         (x86 Options): Move section to correct alphabetization after
24040         renaming.
24041         (x86 Windows Options): Likewise.
24043 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
24045         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
24046         preferred names of the architecture and its 32- and 64-bit
24047         variants.
24048         * doc/invoke.texi: Likewise.
24049         * doc/md.texi: Likewise.
24051 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
24053         PR target/64882
24054         * config/i386/predicates.md (address_no_seg_operand): Reject
24055         non-CONST_INT_P operands in invalid mode.
24057 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
24059         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
24060         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
24061         * config/i386/predicates.md (address_no_seg_operand): Call
24062         address_operand with VOIDmode.
24063         (vsib_address_operand): Ditto.
24064         (address_mpx_no_base_operand): Ditto.
24065         (address_mpx_no_index_operand): Ditto.
24067 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
24069         PR target/64688
24070         * lra-constraints.c (original_subreg_reg_mode): New.
24071         (simplify_operand_subreg): Try to simplify subreg of const.  Use
24072         original_subreg_reg_mode for it.
24073         (swap_operands): Update original_subreg_reg_mode.
24074         (curr_insn_transform): Set up original_subreg_reg_mode.
24076 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
24078         PR target/64617
24079         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
24080         function.
24081         (process_alt_operands): Use it.
24082         (curr_insn_transform): Check the optional reload pseudo class is
24083         ok for the mode.
24085 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
24087         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
24088         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
24089         prototype.
24090         * toplev.h (init_asm_output): Update comment on use of
24091         UNKNOWN_LOCATION with fatal_error.
24092         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
24093         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
24094         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
24095         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
24096         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
24097         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
24098         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
24099         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
24100         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
24101         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
24102         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
24103         fatal_error changed to pass input_location as first argument.
24105 2015-01-30  Martin Liska  <mliska@suse.cz>
24107         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
24108         in #pragma GCC diagnostic guards.
24110 2015-01-30  Richard Biener  <rguenther@suse.de>
24112         PR tree-optimization/64829
24113         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
24114         not add a widening conversion pattern but hand off extra
24115         widenings to callers.
24116         (vect_recog_widen_mult_pattern): Handle extra widening produced
24117         by vect_handle_widen_op_by_const.
24118         (vect_recog_widen_shift_pattern): Likewise.
24119         (vect_pattern_recog_1): Remove excess vertical space in dumping.
24120         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
24121         (vect_init_vector_1): Likewise.
24122         (vect_get_vec_def_for_operand): Likewise.
24123         (vect_finish_stmt_generation): Likewise.
24124         (vectorizable_load): Likewise.
24125         (vect_analyze_stmt): Likewise.
24126         (vect_is_simple_use): Likewise.
24128 2015-01-29  Jeff Law  <law@redhat.com>
24130         * combine.c (try_combine): Fix typo in comment.
24132 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
24134         PR target/64580
24135         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
24136         (rs6000_stack_info): Add assert.
24137         (rs6000_output_savres_externs): New function, split off from...
24138         (rs6000_output_function_prologue): ... here.  Do not call it for
24139         thunks.
24141 2015-01-29  Jeff Law  <law@redhat.com>
24143         PR target/15184
24144         * combine.c (try_combine): If I0 is a memory load and I3 a store
24145         to a related address, increase the "goodness" of doing a 4-insn
24146         combination with I0-I3.
24147         (make_field_assignment): Handle SUBREGs in the ior+and case.
24149 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
24151         PR tree-optimization/64746
24152         * tree-if-conv.c (mask_exists): New function.
24153         (predicate_mem_writes): Save created mask with given size for further
24154         use.
24155         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
24156         (ifcvt_repair_bool_pattern): Collect all statements that are root
24157         of bool pattern and use iterative algorithm to remove multiple uses
24158         of predicates, display number of required iterations.
24160 2015-01-29  Richard Biener  <rguenther@suse.de>
24162         PR tree-optimization/64853
24163         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
24164         stmt will get simulated again.
24165         * tree-ssa-ccp.c (valueize_op_1): Likewise.
24167 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24169         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
24170         return_in_pc.  Remove redundant assignments.
24171         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
24172         (arm_expand_epilogue): Don't compare boolean with true in if condition.
24174 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
24176         * config/i386/i386.c (ix86_mode_after): Make static.
24178 2015-01-29  Richard Biener  <rguenther@suse.de>
24180         PR tree-optimization/64844
24181         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
24182         dump cost model analysis.
24183         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24184         Do not register adjusted load/store costs here.
24186 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
24187             Uros Bizjak  <ubizjak@gmail.com>
24189         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
24190         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
24191         using x86_use_pseudo_pic_reg.
24192         * config/i386/i386.c (ix86_conditional_register_usage): Remove
24193         support for fixed PIC register.
24194         (ix86_use_pseudo_pic_reg): Not static any more.
24196 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
24198         PR middle-end/64805
24199         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
24200         to avoid error in cgraph node verification.
24202 2015-01-29  Marek Polacek  <polacek@redhat.com>
24204         * doc/standards.texi: Reflect that the default for C is gnu11.
24206 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
24208         PR target/64761
24209         * reorg.c (switch_text_sections_between_p): New function.
24210         (relax_delay_slots): Call it when testing if the jump insn
24211         is removable.  Use targetm.can_follow_jump when testing if
24212         the conditional branch can follow an unconditional jump.
24214 2015-01-27  Caroline Tice  <cmtice@google.com>
24216         Committing VTV Cywin/Ming patch for Patrick Wollgast
24217         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
24218         if -fvtable-verify=preinit/std is used.
24219         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
24220         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
24221         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
24222         if -fvtable-verify=preinit/std is used.
24223         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
24224         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
24225         if -fvtable-verify=preinit/std is used.
24226         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
24227         * config/i386/mingw32.h (LIB_SPEC): Likewise.
24228         * varasm.c (assemble_variable): Add code to properly set the comdat
24229         section and name for the .vtable_map_vars section in case the
24230         target is PE or COFF.
24232 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
24234         PR ipa/64801
24235         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
24236         make sane BB profile.
24237         (cgraph_node::expand_thunk): Make sane BB profile.
24238         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
24239         * cgraph.h (init_lowered_empty_function): Update prototype.
24240         * config/i386/i386.c (make_resolver_func): Update call.
24241         * predict.c (gate): Disable branch prediction pass if
24242         profile is already there.
24244 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
24246         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
24247         * opth-gen.awk: Likewise.
24248         * common.opt: Mark flag_fp_contract_mode as Optimization.
24250 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24252         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
24253         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
24255 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
24257         PR target/64659
24258         * config/sh/predicates.md (atomic_arith_operand,
24259         atomic_logical_operand): Remove.
24260         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
24261         (atomic_arith_operand_0): New predicate.
24262         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
24263         Use atomic_arith_operand_0 for input values.
24264         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
24265         atomic_compare_and_swap<mode>_soft_gusa,
24266         atomic_compare_and_swap<mode>_soft_tcb,
24267         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
24268         arith_reg_operand instead of register_operand.
24269         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
24270         atomic_arith_operand_0 for newval input.
24271         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
24272         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
24273         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
24274         arith_reg_operand instead of register_operand.
24275         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
24276         fetchop_predicate_1, fetchop_constraint_1_llcs,
24277         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
24278         fetchop_constraint_1_imask): New code iterator attributes.
24279         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
24280         register_operand.  Use fetchop_predicate_1.
24281         (atomic_fetch_<fetchop_name>si_hard,
24282         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
24283         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
24284         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
24285         and arith_reg_operand instead of register_operand.  Use
24286         fetchop_predicate_1, fetchop_constraint_1_gusa.
24287         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
24288         and arith_reg_operand instead of register_operand.  Use
24289         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
24290         to allow R0 usage.
24291         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
24292         and arith_reg_operand instead of register_operand.  Use
24293         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
24294         to allow R0 usage.
24295         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
24296         register_operand.  Use atomic_logical_operand_1.
24297         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
24298         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
24299         arith_reg_operand instead of register_operand.
24300         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
24301         Use arith_reg_dest and arith_reg_operand instead of register_operand.
24302         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
24303         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
24304         register_operand.  Use fetchop_predicate_1.
24305         (atomic_<fetchop_name>_fetchsi_hard,
24306         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
24307         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
24308         fetchop_constraint_1_llcs.
24309         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
24310         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
24311         fetchop_constraint_1_gusa.
24312         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
24313         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
24314         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
24315         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
24316         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
24317         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
24318         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
24319         register_operand.  Use atomic_logical_operand_1.
24320         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
24321         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
24322         arith_reg_operand instead of register_operand.
24323         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
24324         arith_reg_operand instead of register_operand.  Use logical_operand
24325         and K08.  Adjust asm sequence to allow R0 usage.
24326         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
24327         arith_reg_operand instead of register_operand.  Use logical_operand
24328         and K08.
24330 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
24332         PR other/63504
24333         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
24334         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
24335         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
24336         only get_full_len HOST_WIDE_INTs from get_val () array rather than
24337         all bits in *val_wide.
24339 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
24341         * varpool.c (tls_model_names): Fix names.
24342         (varpool_node::dump): Dump tls- prefix for tls models.
24344 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
24345             Bernd Schmidt  <bernds@codesourcery.com>
24346             Nathan Sidwell  <nathan@codesourcery.com>
24348         * config/nvptx/mkoffload.c: New file.
24349         * config/nvptx/t-nvptx: Add build rules for it.
24350         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
24351         (extra_programs): Add mkoffload.
24352         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
24353         function.
24354         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
24356 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
24358         PR middle-end/64809
24359         * cfgexpand.c (reorder_operands): Skip debug gimples.
24361 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
24363         PR tree-optimization/64277
24364         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
24365         range info when possible to refine estimation.
24367 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24369         PR tree-optimization/64718
24370         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
24371         be a 16bit unsigned integer when n->range is 16.
24372         (bswap_replace): Convert src to that type if necessary for all bswap
24373         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
24374         set in pass_optimize_bswap::execute ().
24376 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
24378         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
24379         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
24380         integer and floating point variants.
24381         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
24383 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
24385         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
24386         for all vector modes.
24388 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
24390         PR bootstrap/64612
24391         * doc/sourcebuild.texi (comdat_group): Document.
24393 2015-01-28  Terry Guo  <terry.guo@arm.com>
24395         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
24397 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
24399         * toplev.c (print_version): Add param "show_global_state", and
24400         only print GGC and plugin information if it is true.
24401         (init_asm_output): Pass in "true" for the new param when calling
24402         print_version.
24403         (process_options): Likewise.
24404         (toplev::main): Likewise.
24405         * toplev.h (print_version): Add new param to decl.
24407 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
24409         PR ipa/60871
24410         PR ipa/64139
24411         * tree.c (lookup_binfo_at_offset): New function.
24412         (get_binfo_at_offset): Use it.
24414 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
24416         PR ipa/64282
24417         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
24418         on vtable being vtable.
24420 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
24422         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
24423         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
24424         -mhotpatch= option.
24425         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
24426         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
24427         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
24428         Renamed.
24429         (s390_hotpatch_trampoline_halfwords_max): Renamed.
24430         (s390_hotpatch_hw_max): New name.
24431         (s390_hotpatch_trampoline_halfwords): Renamed.
24432         (s390_hotpatch_hw_before_label): New name.
24433         (get_hotpatch_attribute): Removed.
24434         (s390_hotpatch_hw_after_label): New name.
24435         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
24436         attribute.
24437         (s390_attribute_table): Ditto.
24438         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
24439         (s390_function_num_hotpatch_hw): New name.
24440         Remove special handling of inline functions and hotpatching.
24441         Return number of nops before and after the function label.
24442         (s390_can_inline_p): Removed.
24443         (s390_asm_output_function_label): Emit a configurable number of nops
24444         after the function label.
24445         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
24446         (TARGET_CAN_INLINE_P) Removed.
24447         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
24449 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24450             Jiong Wang  <jiong.wang@arm.com>
24452         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
24453         of scratch reg.
24454         (cb<optab><mode>1): Likewise.
24455         * config/aarch64/iterators.md (bcond): New define_code_attr.
24457 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24459         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
24460         memory accesses.
24462 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24464         * config/s390/s390.c (s390_register_move_cost): Increase costs for
24465         FPR->GPR moves.
24467 2015-01-27  Richard Biener  <rguenther@suse.de>
24469         * tree-vrp.c (update_value_range): Intersect the range with
24470         old recorded SSA name range information.
24472 2015-01-27  Nick Clifton  <nickc@redhat.com>
24474         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
24475         BC, DE and HL registers directly, not via AX.
24476         When decrementing the stack pointer by a large amount, transfer SP
24477         into AX and perform the subtraction there.
24478         (rl78_expand_epilogue): Perform the inverse of the above
24479         enhancements.
24481 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24483         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
24485 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
24486             Yury Gribov  <y.gribov@samsung.com>
24488         PR ubsan/64741
24489         * ubsan.c (ubsan_source_location): Refactor code.
24490         (ubsan_type_descriptor): Update type size. Refactor code.
24492 2015-01-27  Richard Biener  <rguenther@suse.de>
24494         PR tree-optimization/56273
24495         PR tree-optimization/59124
24496         PR tree-optimization/64277
24497         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
24498         from the first VRP pass.
24500 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
24502         PR ipa/64776
24503         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
24504         handle the first argument in the same loop as all the other arguments.
24506         PR rtl-optimization/61058
24507         * jump.c (cleanup_barriers): Update basic block boundaries
24508         if BLOCK_FOR_INSN is non-NULL on PREV.
24510 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
24512         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
24513         bounds narrowing, already instrumented calls and calls to
24514         not instrumentable functions.
24516 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
24518         PR tree-optimization/64807
24519         * wide-int.cc (wi::divmod_internal): Clear
24520         b_dividend[dividend_blocks_needed].
24522 2015-01-26  DJ Delorie  <dj@redhat.com>
24524         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
24525         volatile memory references.
24527 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
24529         PR target/49263
24530         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
24531         remove_insn.
24532         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
24533         shifts if it already fits into K08.
24535 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
24537         PR ipa/64730
24538         * ipa-inline.c (inline_small_functions): Print "unknown" even
24539         if edge->call_stmt is non-NULL, but has builtins or unknown
24540         location.
24542         PR middle-end/64421
24543         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
24544         with asterisk, skip the first character.
24546 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
24548         PR target/64806
24549         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
24550         order change.
24552 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
24554         PR target/64795
24555         * config/i386/i386.md (*movdi_internal): Also check operand 0
24556         to determine TYPE_LEA operand.
24557         (*movsi_internal): Ditto.
24559 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
24561         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
24562         OPTION_MASK_QUAD_MEMORY_ATOMIC.
24564 2015-01-26  Renlin Li  <renlin.li@arm.com>
24566         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
24567         the comment.
24568         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
24569         for higher part.
24571 2015-01-26  Richard Biener  <rguenther@suse.de>
24573         PR middle-end/64764
24574         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
24575         combining two BIT_AND_EXPR predicates.
24577 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
24579         PR bootstrap/64754
24580         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
24582 2015-01-26  Terry Guo  <terry.guo@arm.com>
24584         * config/arm/arm.c (arm_file_start): Update the assignment of
24585         Tag_ABI_HardFP_use.
24587 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
24589         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
24590         pipeline model.
24591         config/arm/arm.md: Include the new Cortex-A57 model.
24592         (generic_sched): Don't use generic_sched when tuning for
24593         Cortex-A57.
24595 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
24596             Uros Bizjak  <ubizjak@gmail.com>
24598         * config/i386/i386.c (get_builtin_code_for_version): Add
24599         support for BMI and BMI2 multiversion functions.
24601 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
24603         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
24604         (extract_bit_field): Likewise.
24605         (extract_low_bits): Likewise.
24606         (expand_mult): Likewise.
24607         (expand_mult_highpart_adjust): Likewise.
24609 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
24611         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
24612         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
24613         * config/i386/i386.c (processor_model): Add
24614         M_INTEL_COREI7_BROADWELL.
24615         (arch_names_table): Add "broadwell".
24617 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
24619         PR target/49263
24620         PR target/53987
24621         PR target/64345
24622         PR target/59533
24623         PR target/52933
24624         PR target/54236
24625         PR target/51244
24626         * config/sh/sh-protos.h
24627         (sh_extending_set_of_reg::can_use_as_unextended_reg,
24628         sh_extending_set_of_reg::use_as_unextended_reg,
24629         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
24630         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
24631         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
24632         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
24633         (sh_treg_insns): New class.
24634         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
24635         (scope_counter): New class.
24636         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
24637         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
24638         sh_extending_set_of_reg::can_use_as_unextended_reg,
24639         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
24640         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
24641         sh_split_treg_set_expr): New functions.
24642         (addsubcosts): Handle treg_set_expr.
24643         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
24644         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
24645         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
24646         (sh_insn_operands_modified_between_p): Make non-static.
24647         * config/sh/predicates.md (zero_extend_movu_operand): Allow
24648         simple_mem_operand in addition to displacement_mem_operand.
24649         (zero_extend_operand): Don't allow zero_extend_movu_operand.
24650         (treg_set_expr, treg_set_expr_not_const01,
24651         arith_reg_or_treg_set_expr): New predicates.
24652         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
24653         arith_or_int_operand instead of logical_operand.  Convert to
24654         insn_and_split.  Try to optimize constant operand in splitter.
24655         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
24656         (*tstqi_t_zero): Delete.
24657         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
24658         (tstsi_t_and_not): Delete.
24659         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
24660         Convert to insn_and_split.
24661         (unnamed split, tstsi_t_zero_extract_xor,
24662         tstsi_t_zero_extract_subreg_xor_little,
24663         tstsi_t_zero_extract_subreg_xor_big): Delete.
24664         (*tstsi_t_shift_mask): New insn_and_split.
24665         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
24666         to recombine with surrounding insns when splitting.
24667         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
24668         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
24669         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
24670         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
24671         (*cbranch_div0s: Delete.
24672         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
24673         Try to recombine with surrounding insns when splitting.  Add operand
24674         order variants.
24675         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
24676         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
24677         *addc_r_r_msb, *addc_2r_msb): Delete.
24678         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
24679         order variant.
24680         (*addc_negreg_t): New insn_and_split.
24681         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
24682         Try to recombine with surrounding insns when splitting.
24683         Add operand order variants.
24684         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
24685         insn_and_split patterns.
24686         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
24687         surrounding insns when splitting.
24688         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
24689         (*rotcl): Likewise.  Add zero_extract variant.
24690         (*ashrsi2_31): New insn_and_split.
24691         (*negc): Convert to insn_and_split.  Use treg_set_expr.
24692         (*zero_extend<mode>si2_disp_mem): Update comment.
24693         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
24694         condition.
24695         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
24696         with surrounding insns when splitting.
24697         (any_treg_expr_to_reg): New insn_and_split.
24698         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
24699         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
24700         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
24701         *zero_extract_2): New single bit zero extract patterns.
24702         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
24703         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
24704         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
24705         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
24706         set destination.
24707         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
24708         register_operand for set source.
24710 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
24712         * i386.opt (prefetch_sse): New targetsave.
24713         * i386.c (ix86_function_specific_save): Save prefetch_sse.
24714         (ix86_function_specific_restore): Restore prefetch_sse and initialize
24715         ix86_cost/ix86_tune_cost.
24717 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
24719         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
24720         Support the JIT by using 0 as the language type.
24722 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
24724         PR target/64317
24725         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
24726         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
24727         (mark_regno_live, process_bb_lives): Pass new parameter value to
24728         make_hard_regno_born.
24730 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
24732         PR rtl-optimization/63637
24733         PR rtl-optimization/60663
24734         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
24735         if elt->cost is MAX_COST for ASM_OPERANDS.
24736         (find_sets_in_insn): Fix up comment typo.
24737         (cse_insn): Don't set src_volatile for all non-volatile
24738         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
24739         or with "memory" clobber.  Set elt->cost to MAX_COST
24740         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
24741         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
24743 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
24745         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
24746         alternative 1.
24748 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
24750         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
24751         libgcc/config/i386/elf-lib.h.
24753 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
24755         PR driver/64737
24756         * gcc.c (print_configuration): Don't print a blank line at the end
24757         here...
24758         (run_attempt): ... but here unstead.
24760         PR middle-end/64734
24761         * omp-low.c (scan_sharing_clauses): Don't ignore
24762         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
24763         on target data/update constructs.
24765 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24767         PR target/50928
24768         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
24769         (DEBUG_RELOAD): Removed define.
24770         (m32c_limit_reload_class): Enable traces with if DEBUG0.
24771         (m32c_function_arg): Added a type cast.
24772         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
24773         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
24774         * config/m32c/bitops.md (andqi3_16): Likewise.
24775         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
24776         (push_a01_l): Likewise.
24778 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
24780         PR jit/64721
24781         * main.c (main): Construct toplev instances with init_signals=true.
24782         * toplev.c (general_init): Add param "init_signals", and use it to
24783         conditionalize the calls to signal and host_hooks.extra_signals.
24784         (toplev::toplev): Add param "init_signals".
24785         (toplev::main): When invoking general_init, pass m_init_signals
24786         to control whether signal-handlers are installed.
24787         * toplev.h (toplev::toplev): Add param "init_signals".
24788         (toplev::m_init_signals): New field.
24790 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
24792         PR jit/64722
24793         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
24794         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
24795         latter may be affected by the former (e.g. on i686).
24797 2015-01-23  Martin Liska  <mliska@suse.cz>
24799         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
24800         false positive during profiledbootstrap.
24802 2015-01-23  Tom de Vries  <tom@codesourcery.com>
24804         PR libgomp/64672
24805         * lto-opts.c (lto_write_options): Output non-explicit conservative
24806         -fno-openacc.
24807         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
24808         (append_compiler_options): Pass -fopenacc through.
24810 2015-01-23  Tom de Vries  <tom@codesourcery.com>
24812         PR libgomp/64707
24813         * lto-opts.c (lto_write_options): Output non-explicit conservative
24814         -fno-openmp.
24815         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
24816         (append_compiler_options): Pass -fopenmp through.
24818 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
24820         PR debug/64511
24821         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
24822         GTY markup.
24824         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
24825         * diagnostic.def (DK_ICE_NOBT): New kind.
24826         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
24827         like DK_ICE, but never print backtrace.
24828         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
24829         (internal_error_no_backtrace): New function.
24830         * gcc.c (execute): Use internal_error_no_backtrace instead of
24831         internal_error.
24833 2015-01-22  Jeff Law  <law@redhat.com>
24835         PR target/52076
24836         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
24837         improve code density for small immediate to memory case.
24838         (insv): Better handle bitfield assignments when the field is
24839         being set to all ones.
24840         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
24841         operand predicate.
24843 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24844             Jakub Jelinek  <jakub@redhat.com>
24846         PR middle-end/64729
24847         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
24848         for !TARGET_LIBC_PROVIDES_SSP version and
24849         -fstack-protector-{all,strong,explicit} otherwise.
24850         * config/freebsd.h (LINK_SSP_SPEC): Handle
24851         -fstack-protector-{strong,explicit}.
24853 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
24854             H.J. Lu  <hongjiu.lu@intel.com>
24856         PR ipa/64694
24857         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
24858         heap.
24860 2015-01-22  Wei Mi  <wmi@google.com>
24862         PR rtl-optimization/64557
24863         * dse.c (record_store): Call get_addr for mem_addr.
24864         (check_mem_read_rtx): Likewise.
24866 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
24868         * fold-const.c (const_binop): Add early return for non-tcc_binary.
24870 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
24872         * toplev.c (init_local_tick): Process the failure when read
24873         fails for random_seed.
24875         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
24876         'pretty_name' to avoid memory overflow.
24878 2015-01-22  Richard Biener  <rguenther@suse.de>
24880         PR middle-end/64728
24881         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
24882         abnormal coalescing on undefined SSA names.
24884 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
24886         PR target/64688
24887         PR target/64477
24888         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
24889         for alternative 3.
24890         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
24892 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
24894         PR middle-end/63325
24895         * fold-const.c (fold_checksum_tree): Don't include value of
24896         expr->decl_with_vis.symtab_node in the checksum.
24898 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24900         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
24902 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
24904         PR driver/64690
24905         * gcc.c (insert_comments): New function.
24906         (try_generate_repro): Call it.
24907         (append_text): Removed.
24909 2015-01-22  Richard Biener  <rguenther@suse.de>
24911         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
24912         with IL incompatible options.  Properly honor user optimize
24913         attributes.
24915 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
24917         PR rtl-optimization/64682
24918         * combine.c (distribute_notes): When moving a death note for
24919         a register that is set in the new I2, make sure to put it
24920         before that new I2.
24922 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
24924         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
24925         not TARGET_DEFAULT.
24927 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
24929         PR debug/64511
24930         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
24931         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
24932         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
24934         PR sanitizer/64706
24935         * doc/invoke.texi (-fsanitize=vptr): Document.
24937         PR rtl-optimization/62078
24938         * dse.c: Include cfgcleanup.h.
24939         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
24940         anything call purge_all_dead_edges and cleanup_cfg at the end
24941         of the pass.
24943 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
24945         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
24946         edges.
24948 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24950         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
24951         decl attribute.
24953 2015-01-21  David Sherwood  <david.sherwood@arm.com>
24954             Tejas Belagod <Tejas.Belagod@arm.com>
24956         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
24957         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
24958         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
24959         Removed.
24961 2015-01-21  David Sherwood  <david.sherwood@arm.com>
24962             Tejas Belagod <Tejas.Belagod@arm.com>
24964         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
24965         (aarch64_reverse_mask): New decls.
24966         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
24967         (insn_count): New mode_attr.
24968         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
24969         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
24970         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
24971         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
24972         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
24973         (aarch64_simd_st4): New patterns.
24974         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
24975         (aarch64_reverse_mask): New functions.
24977 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
24979         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
24980         Declare.
24981         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
24982         addressing modes for BE.
24983         (aarch64_print_operand): Add 'R' specifier.
24984         (aarch64_simd_disambiguate_copy): Delete.
24985         (aarch64_simd_emit_reg_reg_move): New function.
24986         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
24987         in define_splits for structural moves.
24988         (mov<mode>): Use less restrictive predicates.
24989         (*aarch64_mov<mode>): Simplify and only allow for LE.
24990         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
24992 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
24994         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
24996 2015-01-21  Richard Henderson  <rth@redhat.com>
24998         PR target/64669
24999         * ccmp.c (used_in_cond_stmt_p): Remove.
25000         (expand_ccmp_expr): Don't use it.
25002 2015-01-21  Nick Clifton  <nickc@redhat.com>
25004         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
25005         PARALLELs.
25007 2015-01-21  Richard Biener  <rguenther@suse.de>
25009         PR middle-end/64313
25010         * tree-core.h (builtin_info, builtin_info_type): Turn from
25011         an object with two arrays into an array of an object with
25012         decl and two flags, implicit_p and declared_p.
25013         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
25014         set_builtin_decl, set_builtin_decl_implicit_p,
25015         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
25016         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
25017         * builtins.c (builtin_info): Adjust.
25018         * gimplify.c (gimplify_addr_expr): References to builtins
25019         that have been declared by the user makes them eligible for
25020         use by the compiler.  Call set_builtin_decl_implicit_p on them.
25022 2015-01-20  Jeff Law  <law@redhat.com>
25024         PR target/59946
25025         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
25026         allow pc-relative addresses in operand predicates or constraints.
25028 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
25030         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
25031         neon on aarch32 processors for stringops.
25033 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25035         PR ipa/63576
25036         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
25038 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25040         PR lto/45375
25041         * ipa-inline.c: Include lto-streamer.h
25042         (report_inline_failed_reason): Output source file differences and
25043         flags on optimization/target node mismatch.
25044         (can_inline_edge_p): Consider caller to be the outer inline function;
25045         be less restrictive about matching opimize and optimize_size attributes.
25046         (inline_account_function_p): Break out from ...
25047         (inline_small_functions): ... here.
25048         * ipa-inline-transform.c (clone_inlined_nodes): Use
25049         inline_account_function_p.
25050         (inline_call): Use optimize attribution; use inline_account_function_p.
25051         (inline_transform): Use opt_for_fn.
25052         * ipa-inline.h (inline_account_function_p): Declare.
25054 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
25056         PR debug/64663
25057         * dwarf2out.c (decl_piece_node): Don't put bitsize into
25058         mode if bitsize <= 0.
25059         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
25060         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
25061         sizes and positions.
25063 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
25065         * config/nios2/nios2.c (nios2_asm_file_end): Implement
25066         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
25067         needed.
25068         (TARGET_ASM_FILE_END): Define.
25070 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25072         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
25073         (struct tune_params): Use the enum.
25074         * arm.c (arm_*_tune): Update.
25075         (arm_option_override): Update.
25077 2015-01-20  Richard Biener  <rguenther@suse.de>
25079         PR ipa/64684
25080         * ipa-reference.c (add_static_var): Inline ...
25081         (analyze_function): ... here after splitting out from ...
25082         (is_proper_for_analysis): ... this.
25084 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
25086         PR target/64149
25087         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
25088         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
25089         replace the conditional with it's true branch.
25090         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
25091         (arm_lra_p): Remove.
25093 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
25095         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
25097 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
25099         * config/tilegx/mul-tables.c: Move symtab.h include after
25100         coretypes.h include.
25101         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
25102         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
25103         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
25104         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
25105         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
25107 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
25109         PR bootstrap/64676
25110         Revert:
25111         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
25113         PR rtl-optimization/64081
25114         * loop-iv.c (def_pred_latch_p): New function.
25115         (latch_dominating_def): Allow specific cases with non-single
25116         definitions.
25117         (iv_get_reaching_def): Likewise.
25118         (check_complex_exit_p): New function.
25119         (check_simple_exit): Use check_complex_exit_p to allow certain cases
25120         with exits not executing on any iteration.
25122 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25124         PR lto/45375
25125         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
25126         to set branch cost.
25128 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25130         PR lto/45375
25131         * i386.c (gate): Check flag_expensive_optimizations and
25132         optimize_size.
25133         (ix86_option_override_internal): Drop optimize_size condition
25134         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
25135         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
25136         MASK_PREFER_AVX128.
25137         (ix86_avx256_split_vector_move_misalign,
25138         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
25139         * sse.md (all uses of TARGET_PREFER_AVX128): Add
25140         optimize_insn_for_speed_p check.
25142 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
25144         * config/mips/mips.h (FP_ASM_SPEC): New define.
25145         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
25146         instead.
25148 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
25150         PR target/53988
25151         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
25152         nullptr for insn when reaching the first insn.
25153         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
25154         (sh_insn_operands_modified_between_p): Add nullptr check.
25155         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
25156         sign extending mem load if the insn contains any UNSPEC or
25157         UNSPEC_VOLATILE.
25159 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25161         * params.def (inline-unit-growth): Drop to 15%.
25162         * invoke.texi (inline-unit-growth): Document change.
25164 2015-01-19  Martin Liska  <mliska@suse.cz>
25166         PR ipa/64668
25167         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
25168         function for second argument of OBJ_TYPE_REF.
25170 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25172         PR ipa/64218
25173         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
25174         whether function is an alias.
25176 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
25178         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
25179         cases.
25181 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
25183         PR rtl-optimization/64671
25184         * lra-remat.c (operand_to_remat): Don't consider jump and call
25185         insns.
25187 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
25189         PR target/59828
25190         * config/rs6000/default64.h: Include rs6000-cpus.def.
25191         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
25192         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
25193         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
25194         and POWER8.
25195         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
25196         POWER8.
25197         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
25198         pseudo-op to specify assembler dialect.
25200 2015-01-19  Martin Liska  <mliska@suse.cz>
25202         PR ipa/64664
25203         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
25204         Handle safe potentially removed nodes during filtering.
25206 2015-01-19  Martin Liska  <mliska@suse.cz>
25208         * doc/extend.texi (no_icf): Add new attribute description.
25209         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
25210         where the pass attempts to merge a function with no_icf attribute.
25212 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25214         PR target/64532
25215         * doc/md.texi (ARM Options): Document register constraints.
25217 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
25218             Andrew Pinski  <apinski@cavium.com>
25220         PR target/64304
25221         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
25222         (ashl<mode>3): Don't expand if operands[2] is not constant.
25224 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25226         PR target/64448
25227         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
25228         Match xor-and-xor RTL pattern.
25230 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
25232         PR rtl-optimization/64081
25233         * loop-iv.c (def_pred_latch_p): New function.
25234         (latch_dominating_def): Allow specific cases with non-single
25235         definitions.
25236         (iv_get_reaching_def): Likewise.
25237         (check_complex_exit_p): New function.
25238         (check_simple_exit): Use check_complex_exit_p to allow certain cases
25239         with exits not executing on any iteration.
25241 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
25243         * common.opt (fgraphite): Fix a typo.
25245 2015-01-19  Felix Yang  <felix.yang@huawei.com>
25247         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
25248         pattern.
25249         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
25250         uminp, smax_nanp, smin_nanp): New builtins.
25251         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
25252         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
25253         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
25254         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
25255         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
25256         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
25257         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
25258         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
25259         vpminnms_f32): Rewrite using builtin functions.
25261 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
25263         PR libgomp/64625
25264         * omp-low.c (offload_symbol_decl): Remove variable.
25265         (get_offload_symbol_decl): Remove function.
25266         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
25267         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
25268         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
25269         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
25270         BUILT_IN_GOACC_UPDATE don't pass it at all.
25272 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
25274         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
25275         callers.
25277 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
25279         * ipa-chkp.c (chkp_produce_thunks): Add early param
25280         to split thunks production into two passes.  Keep
25281         'always_inline' function bodies after the first pass.
25282         (pass_data_ipa_chkp_early_produce_thunks): New.
25283         (pass_ipa_chkp_early_produce_thunks): New.
25284         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
25285         chkp_produce_thunks signature.
25286         (make_pass_ipa_chkp_early_produce_thunks): New.
25287         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
25288         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
25289         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
25291 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
25293         * cgraph.c (cgraph_node::dump): Dump profile flags.
25295 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
25297         PR target/64652
25298         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
25299         reg appear first in the parallel.
25301 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
25303         * ipa-reference.c (set_reference_optimization_summary,
25304         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
25305         disabled.
25306         (ignore_module_statics): New static var.
25307         (propagate_bits): If ipa-reference is disabled, do not look into local
25308         properties.
25309         (analyze_function): Disable analysis when ipa_reference is disabled.
25310         (generate_summary): Do not dump when reference is disabled;
25311         collect vars accessed from functions with ipa-reference disabled.
25312         (get_read_write_all_from_node): When ipa-reference is disabled, use the
25313         node flags.
25314         (gate): Enable for LTO.
25315         (ignore_edge_p): New function.
25316         (propagate): Skip functions w/o ipa-reference analysis.
25317         * optc-save-gen.awk: Handle optimize_debug correctly.
25318         * opth-gen.awk: Likewise.
25319         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
25320         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
25321         fira-share-save-slots, fira-share-spill-slots,
25322         fmodulo-sched-allow-regmoves, fpartial-inlining,
25323         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
25324         ftracer, ftree-parallelize-loops, fassociative-math,
25325         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
25326         Optimization
25327         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
25328         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
25329         Optimization.
25330         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
25331         Fix for IPA.
25333 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
25335         PR ipa/64378
25336         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
25337         flag correctly.
25338         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
25340 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
25342         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
25343         Remove duplicate option listings.
25345 2015-01-18  Felix Yang  <felix.yang@huawei.com>
25347         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
25348         (autofdo_source_profile::get_callsite_total_count,
25349         function_instance::get_function_instance_by_decl,
25350         string_table::get_index, string_table::get_index_by_decl,
25351         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
25352         Fix comment typos. Reformatting and minor code rearrangement.
25354 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
25356         * config/rs6000/rs6000.md (probe_stack): Delete.
25357         (probe_stack_address): New.
25359 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
25361         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
25362         to test for 32-bit ABIs, not !TARGET_POWERPC64.
25364 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
25366         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
25367         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
25368         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
25369         snafu.
25370         (rs6000_libcall_value): Use the new function.
25372 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
25374         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
25376 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
25378         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
25379         implement a more precise life analysis for it during backward scan.
25381 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
25383         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
25385 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
25387         PR rtl-optimization/52773
25388         * calls.c (emit_library_call_value): When pushing arguments use
25389         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
25390         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
25391         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
25393 2015-01-17  Jeff Law  <law@redhat.com>
25395         PR rtl-optimization/32790
25396         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
25397         not ZERO_EXTEND in SET_DESTs.
25399 2015-01-17  Alan Modra  <amodra@gmail.com>
25401         * cprop.c (do_local_cprop): Revert last change.
25403 2015-01-16  DJ Delorie  <dj@redhat.com>
25404             Nick Clifton  <nickc@redhat.com>
25406         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
25407         (addhi3_real): Likewise.  Fix [HL+0] syntax.
25408         (subqi3_real): Likewise.
25409         (subhi3_real): Likewise.
25410         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
25411         (cbranchhi4_real): Likewise.
25412         (cbranchhi4_real_inverted): Likewise.
25413         (cbranchsi4_real_lt): Likewise.
25414         (cbranchsi4_real_ge): Likewise.
25415         (cbranchsi4_real_ge): Likewise.
25416         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
25417         (sub<mode>3_virt): Likewise.
25418         (cbranchqi4_virt): Likewise.
25419         (cbranchhi4_virt): Likewise.
25420         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
25421         always use '[reg+imm]' even when imm is zero.
25422         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
25423         (rl78_general_operand): New.
25424         (rl78_nonimmediate_operand): New.
25425         (rl78_nonfar_operand): Use them.
25426         (rl78_nonfar_nonimm_operand): Likewise.
25427         (rl78_stack_based_mem): Fix.
25428         * config/rl78/constraints.md (Ibqi): New.
25429         (IBqi): New.
25430         (Wsa): New.
25431         (Wsf): New.
25432         (Cs1): Fix.
25433         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
25434         (iorqi3): Likewise.
25435         (xorqi3): Likewise.
25436         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
25438         * config/rl78/constrains (Qs8): New constraint.
25439         * config/rl78/rl78.c (rl78_flags_already_set): New function.
25440         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
25441         * config/rl78/rl78-real.md (update_Z): New attribute.
25442         Update patterns to set it.
25443         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
25444         shorter compare and branch sequence can be used.
25445         (cbranchhi4_real): Likewise.
25446         (cbranchhi4_real_inverted): Likewise.
25448         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
25449         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
25450         address space.
25451         * config/rl78/rl78.c (rl78_get_name_encoding): New.
25452         (rl78_option_override): Allow -mes0 only if C.
25453         (characterize_address): Support subregs of symbol_refs.
25454         (rl78_addr_space_address_mode): Move.  Add __near.
25455         (rl78_far_p): Likewise.
25456         (rl78_addr_space_pointer_mode): Likewise.
25457         (rl78_as_legitimate_address): Likewise.
25458         (rl78_addr_space_subset_p): Likewise.
25459         (rl78_addr_space_convert): Likewise.
25460         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
25461         symbols with -mes0.
25462         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
25463         addressing.
25464         (rl78_alloc_physical_registers_op1): Change logic to prefer
25465         symbol[BC] addressing.
25466         (frodata_section): New.
25467         (rl78_asm_init_sections): Initialize it.
25468         (rl78_select_section): Put __far readonly symbols in .frodata.
25469         (rl78_make_type_far): New.
25470         (rl78_insert_attributes): Force all readonly symbols to be
25471         __far when -mes0.
25472         (rl78_asm_out_integer): New.
25473         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
25474         * config/rl78/rl78.opt (-mes0): New.
25476         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
25477         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
25478         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
25479         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
25480         (rl78_saddr_p): New.
25481         (rl78_output_aligned_common): New.
25482         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
25483         (rl78_handle_saddr_attribute): New.
25484         (rl78_handle_naked_attribute): New.
25485         (rl78_attribute_table): Add saddr.
25486         (rl78_print_operand_1): Don't print '!' on saddr operands.
25487         (rl78_print_operand_1): Strip encodings.
25488         (rl78_sfr_p): New.
25489         (rl78_strip_name_encoding): New.
25490         (rl78_attrlist_to_encoding): New.
25491         (rl78_encode_section_info): New.
25492         (rl78_asm_init_sections): New.
25493         (rl78_select_section): New.
25494         (rl78_output_labelref): New.
25495         (rl78_output_aligned_common): New.
25496         (rl78_asm_out_integer): New.
25497         (rl78_asm_ctor_dtor): New.
25498         (rl78_asm_constructor): New.
25499         (rl78_asm_destructor): New.
25501         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
25502         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
25503         (transcode_memory_rtx): Update.
25504         (rl78_expand_epilogue): Use A_REG instead of 0.
25506 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25508         * config/arm/arm-protos.h (struct tune_params): New field
25509         sched_autopref_queue_depth.
25510         * config/arm/arm.c (sched-int.h): Include header.
25511         (arm_first_cycle_multipass_dfa_lookahead_guard,)
25512         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
25513         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
25514         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
25515         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
25516         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
25517         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
25518         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
25519         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
25520         * config/arm/t-arm (arm.o): Update.
25521         * haifa-sched.c (update_insn_after_change): Update.
25522         (rank_for_schedule): Use auto-prefetcher model, if requested.
25523         (autopref_multipass_init): New static function.
25524         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
25525         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
25526         variable for debug dumps.
25527         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
25528         (autopref_multipass_dfa_lookahead_guard): New global function that
25529         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
25530         (init_h_i_d): Update.
25531         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
25532         * sched-int.h (enum autopref_multipass_data_status): New const enum.
25533         (autopref_multipass_data_): Structure for auto-prefetcher data.
25534         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
25535         (struct _haifa_insn_data:autopref_multipass_data): New field.
25536         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
25537         (autopref_multipass_dfa_lookahead_guard): Declare.
25539 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25541         * rtlanal.c (get_base_term): Handle SCRATCH.
25543 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
25545         * config/aarch64/aarch64.c
25546         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
25547         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
25548         * config/arm/arm.c
25549         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
25550         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
25552 2015-01-17  Alan Modra  <amodra@gmail.com>
25554         * cprop.c (do_local_cprop): Disallow replacement of fixed
25555         hard registers.
25557 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25559         PR target/62066
25560         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
25561         early return 0.
25563 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25565         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
25566         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
25568 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25570         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
25571         * config/arm/thumb1.md: ... Here.
25573 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
25575         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
25576         TImode for TARGET_32BIT.
25578 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
25580         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
25581         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
25582         as ...
25583         (rs6000_abi_word_mode): New function.
25585 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
25587         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
25588         instead of UNITS_PER_WORD to describe the size of stack slots.
25590 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
25592         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
25593         as rs6000_promote_function_mode.  Move comment to there.
25594         (rs6000_promote_function_mode): New function.
25596 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
25598         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
25599         -mpowerpc64 is active.
25601 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
25603         PR middle-end/64353
25604         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
25605         virtuals on start.
25607 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
25609         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
25610         introduced in revision 219724.
25612 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25613             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25615         PR target/64263
25616         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
25617         destination is not a GP reg.
25618         (*movdi_aarch64): Likewise.
25620 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
25622         PR target/64623
25623         * config/rs6000/default64.h: Revert ISA change.
25625 2015-01-16  Richard Biener  <rguenther@suse.de>
25627         PR middle-end/64614
25628         * tree-ssa-uninit.c: Include tree-cfg.h.
25629         (MAX_SWITCH_CASES): New define.
25630         (convert_control_dep_chain_into_preds): Handle switch statements.
25631         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
25632         (normalize_one_pred_1): Do not split bit-manipulations.
25633         Record (x & CST).
25635 2015-01-16  Richard Biener  <rguenther@suse.de>
25637         PR tree-optimization/64568
25638         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
25639         complex load rewriting for TARGET_MEM_REFs.
25641 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
25643         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
25645 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
25647         PR target/64149
25648         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
25649         variable.
25650         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
25651         (aarch64_lra_p): Remove.
25653 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
25655         PR target/64363
25656         * ipa-chkp.h (chkp_instrumentable_p): New.
25657         * ipa-chkp.c: Include tree-inline.h.
25658         (chkp_instrumentable_p): New.
25659         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
25660         Fix processing of not instrumentable functions.
25661         (chkp_versioning): Use chkp_instrumentable_p. Warn about
25662         not instrumentable functions.
25663         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
25664         chkp_instrumentable_p.
25665         * tree-inline.h (copy_forbidden): New.
25666         * tree-inline.c (copy_forbidden): Not static anymore.
25668 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25670         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
25671         ptr1, ptr2 unused.
25673 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
25675         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
25676         type OP_OUT to OP_INOUT.
25678 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
25680         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
25681         (high x) y) to y if x and y have the same base.
25683 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
25685         * config/arm/cortex-a57.md: New.
25686         * config/aarch64/aarch64.md: Include it.
25687         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
25688         * config/aarch64/aarch64-tune.md: Regenerate.
25690 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
25692         PR target/64015
25693         * ccmp.c (expand_ccmp_next): New function.
25694         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
25695         and compare insn sequence.
25696         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
25697         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
25698         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
25699         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
25700         (*ccmp_ior): Changed to ccmp_ior<mode>.
25701         (cmp<mode>): New pattern.
25702         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
25703         parameters.
25704         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
25706 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
25708         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
25709         _mm256_bsrli_epi128): New.
25710         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
25712 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
25714         * expmed.c (store_bit_field_using_insv): Improve warning message.
25715         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
25717 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
25719         PR rtl-optimization/64011
25720         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
25721         there is partial overflow.
25723 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
25725         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
25726         prototype.
25727         (nds32_expand_epilogue_v3pop): Likewise.
25728         * config/nds32/nds32.md (sibcall): Define this for sibling call
25729         optimization.
25730         (sibcall_register): Likewise.
25731         (sibcall_immediate): Likewise.
25732         (sibcall_value): Likewise.
25733         (sibcall_value_register): Likewise.
25734         (sibcall_value_immediate): Likewise.
25735         (sibcall_epilogue): Likewise.
25736         (epilogue): Pass false to indicate this is not a sibcall epilogue.
25737         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
25738         (nds32_expand_epilogue_v3pop): Likewise.
25740 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
25742         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
25743         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
25744         (return_internal): New.
25745         (return): Define this named pattern.
25746         (simple_return): Define this named pattern.
25747         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
25748         pattern instead of unspec_volatile_func_return.
25749         (nds32_expand_epilogue_v3pop): Likewise.
25750         (nds32_can_use_return_insn): New function.
25752 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
25754         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
25755         * config/nds32/nds32.md (pop25return): New.
25756         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
25757         pop25return pattern.
25759 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
25761         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
25762         -mforbid-fp-as-gp, and -mex9 options.
25764 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
25766         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
25767         remove -mgp-direct option.
25769 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
25771         * doc/invoke.texi (--param early-inlining-insns): Update default value.
25772         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
25774 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
25776         * ipa-inline.c (inline_small_functions): Work around hints
25777         cache issue.
25779 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
25781         PR target/59710
25782         * doc/invoke.texi (Option Summary): Document new Nios II
25783         -mgpopt= syntax.
25784         (Nios II Options): Likewise.
25785         * config/nios2/nios2.opt: Add -mgpopt= option support.
25786         Modify existing -mgpopt and -mno-gpopt options to be aliases.
25787         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
25788         * config/nios2/nios2.c (nios2_option_override): Adjust
25789         -mgpopt defaulting.
25790         (nios2_in_small_data_p): Return true for explicit small data
25791         sections even with -G0.
25792         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
25793         option choices.
25795 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
25797         PR ipa/64612
25798         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
25799         of comdat locals.
25800         (inline_call): Fix removal of aliases.
25802 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
25804         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
25805         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
25806         * opts.c (common_handle_option): Add -fsanitize=vptr.
25807         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
25808         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
25809         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
25810         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
25811         (ubsan_expand_vptr_ifn): New prototype.
25812         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
25813         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
25814         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
25815         expand_LOOP_VECTORIZED): Make argument nameless, remove
25816         ATTRIBUTE_UNUSED.
25817         (expand_UBSAN_VPTR): New function.
25818         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
25819         in fn spec.
25820         (UBSAN_VPTR): New internal function.
25821         * sanopt.c (tree_map_traits): Renamed to ...
25822         (sanopt_tree_map_traits): ... this.
25823         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
25824         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
25825         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
25826         (maybe_optimize_ubsan_vptr_ifn): New function.
25827         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
25828         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
25829         -fsanitize=vptr.
25830         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
25831         internal calls like pure functions for aliasing, even when they
25832         have other side-effects that prevent making them ECF_PURE.
25833         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
25834         (ubsan_expand_vptr_ifn): New function.
25836 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
25838         PR rtl-optimization/64110
25839         * stmt.c (parse_output_constraint): Process '^' and '$'.
25840         (parse_input_constraint): Ditto.
25841         * lra-constraints.c (process_alt_operands): Process the new
25842         constraints.
25843         * ira-costs.c (record_reg_classes): Process the new constraint
25844         '^'.
25845         * genoutput.c (indep_constraints): Add '^' and '$'.
25846         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
25847         * doc/md.texi: Add description of the new constraints.
25849 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
25850             Bernd Schmidt  <bernds@codesourcery.com>
25851             Cesar Philippidis  <cesar@codesourcery.com>
25852             James Norris  <jnorris@codesourcery.com>
25853             Tom de Vries  <tom@codesourcery.com>
25854             Ilmir Usmanov  <i.usmanov@samsung.com>
25855             Dmitry Bocharnikov  <dmitry.b@samsung.com>
25856             Evgeny Gavrin  <e.gavrin@samsung.com>
25857             Jakub Jelinek  <jakub@redhat.com>
25859         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
25860         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
25861         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
25862         New function types.
25863         * builtins.c: Include "gomp-constants.h".
25864         (expand_builtin_acc_on_device): New function.
25865         (expand_builtin, is_inexpensive_builtin): Handle
25866         BUILT_IN_ACC_ON_DEVICE.
25867         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
25868         New macros.
25869         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
25870         flag_openmp.
25871         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
25872         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
25873         i386/intelmic-offload.h.
25874         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
25875         to libgomp and its dependencies.
25876         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
25877         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
25878         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
25879         * config/ia64/hpux.h (LIB_SPEC): Likewise.
25880         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
25881         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
25882         * doc/generic.texi: Update for OpenACC changes.
25883         * doc/gimple.texi: Likewise.
25884         * doc/invoke.texi: Likewise.
25885         * doc/sourcebuild.texi: Likewise.
25886         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
25887         GF_OMP_FOR_KIND_OACC_LOOP.
25888         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
25889         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
25890         GF_OMP_TARGET_KIND_OACC_UPDATE,
25891         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
25892         Dump more data.
25893         * gimple.c: Update comments for OpenACC changes.
25894         * gimple.def: Likewise.
25895         * gimple.h: Likewise.
25896         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
25897         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
25898         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
25899         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
25900         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
25901         appropriate place.
25902         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
25903         * gimplify.c: Include "gomp-constants.h".
25904         Update comments for OpenACC changes.
25905         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
25906         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
25907         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
25908         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
25909         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
25910         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
25911         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
25912         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
25913         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
25914         OMP_CLAUSE_SEQ.
25915         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
25916         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
25917         OMP_CLAUSE_SET_MAP_KIND.
25918         (gimplify_oacc_cache): New function.
25919         (gimplify_omp_for): Handle OACC_LOOP.
25920         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
25921         OACC_DATA.
25922         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
25923         OACC_EXIT_DATA, OACC_UPDATE.
25924         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
25925         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
25926         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
25927         (gimplify_body): Consider flag_openacc next to flag_openmp.
25928         * lto-streamer-out.c: Include "gomp-constants.h".
25929         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
25930         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
25931         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
25932         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
25933         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
25934         (BUILT_IN_ACC_ON_DEVICE): New builtins.
25935         * omp-low.c: Include "gomp-constants.h".
25936         Update comments for OpenACC changes.
25937         (struct omp_context): Add reduction_map, gwv_below, gwv_this
25938         members.
25939         (extract_omp_for_data, use_pointer_for_field, install_var_field)
25940         (new_omp_context, delete_omp_context, scan_sharing_clauses)
25941         (create_omp_child_function, scan_omp_for, scan_omp_target)
25942         (check_omp_nesting_restrictions, lower_reduction_clauses)
25943         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
25944         Update for OpenACC changes.
25945         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
25946         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
25947         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
25948         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
25949         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
25950         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
25951         OMP_CLAUSE_MAP_*.
25952         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
25953         Handle GF_OMP_FOR_KIND_OACC_LOOP.
25954         (expand_omp_target, lower_omp_target): Handle
25955         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
25956         GF_OMP_TARGET_KIND_OACC_UPDATE,
25957         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
25958         GF_OMP_TARGET_KIND_OACC_DATA.
25959         (pass_expand_omp::execute, execute_lower_omp)
25960         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
25961         flag_openmp.
25962         (offload_symbol_decl): New variable.
25963         (oacc_get_reduction_array_id, oacc_max_threads)
25964         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
25965         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
25966         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
25967         (oacc_gimple_assign, oacc_initialize_reduction_data)
25968         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
25969         functions.
25970         (is_targetreg_ctx): Remove function.
25971         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
25972         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
25973         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
25974         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
25975         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
25976         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
25977         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
25978         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
25979         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
25980         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
25981         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
25982         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
25983         * tree-core.h: Update comments for OpenACC changes.
25984         (enum omp_clause_map_kind): Remove.
25985         (struct tree_omp_clause): Change type of map_kind member from enum
25986         omp_clause_map_kind to unsigned char.
25987         * tree-inline.c: Update comments for OpenACC changes.
25988         * tree-nested.c: Likewise.  Include "gomp-constants.h".
25989         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
25990         (convert_tramp_reference_stmt, convert_gimple_call): Update for
25991         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
25992         OMP_CLAUSE_SET_MAP_KIND.
25993         * tree-pretty-print.c: Include "gomp-constants.h".
25994         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
25995         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
25996         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
25997         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
25998         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
25999         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
26000         instead of OMP_CLAUSE_MAP_*.
26001         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
26002         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
26003         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
26004         * tree-streamer-in.c: Include "gomp-constants.h".
26005         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
26006         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
26007         * tree-streamer-out.c: Include "gomp-constants.h".
26008         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
26009         OMP_CLAUSE_MAP_*.
26010         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
26011         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
26012         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
26013         * tree.c (omp_clause_num_ops): Update accordingly.
26014         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
26015         Likewise.
26016         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
26017         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
26018         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
26019         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
26020         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
26021         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
26022         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
26023         (OMP_CLAUSE_SET_MAP_KIND): New macro.
26024         * varpool.c (varpool_node::get_create): Consider flag_openacc next
26025         to flag_openmp.
26026         * config/i386/intelmic-offload.h: New file.
26027         * config/nvptx/offload.h: Likewise.
26029 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26031         * explow.h: Remove duplicate contents.
26032         * dojump.h: Likewise.
26034 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
26036         * arm.c (arm_xgene_tune): Add default initializer for instruction
26037         fusion.
26039 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
26041         PR ipa/64068
26042         PR ipa/64559
26043         * ipa.c (symbol_table::remove_unreachable_nodes):
26044         Do not put abstract origins into boundary.
26046 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
26048         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
26049         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
26051 2015-01-15  Steve Ellcey  <sellcey@mips.com>
26053         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
26054         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
26055         builtins.def, and chkp-builtins.def.
26057 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
26059         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
26060         ISA 2.7 (POWER8).
26062 2015-01-15  Richard Biener  <rguenther@suse.de>
26064         PR tree-optimization/61743
26065         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
26066         information on PHIs for some simple cases.
26068 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
26070         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
26071         Include xgene1.md.
26072         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
26073         * config/arm/arm-cores.def (xgene1): New entry.
26074         * config/arm/arm-tables.opt: Regenerate.
26075         * config/arm/arm-tune.md: Regenerate.
26076         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
26078 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
26080         * tree-if-conv.c: Include hash-map.h.
26081         (aggressive_if_conv): New variable.
26082         (fold_build_cond_expr): Add simplification of non-zero condition.
26083         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
26084         destination block is not always executed.
26085         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
26086         than two predecessors if AGGRESSIVE_IF_CONV is true.
26087         (if_convertible_stmt_p): Fix commentary.
26088         (all_preds_critical_p): New function.
26089         (has_pred_critical_p): New function.
26090         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
26091         BB can have more than two predecessors and all incoming edges can be
26092         critical.
26093         (predicate_bbs): Skip predication for loop exit block, use build2_loc
26094         to compute predicate for true edge.
26095         (find_phi_replacement_condition): Delete this function.
26096         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
26097         Allow interchange PHI arguments if EXTENDED is false.
26098         Change check that block containing reduction statement candidate
26099         is predecessor of phi-block since phi may have more than two arguments.
26100         (phi_args_hash_traits): New helper structure.
26101         (struct phi_args_hash_traits): New type.
26102         (phi_args_hash_traits::hash): New function.
26103         (phi_args_hash_traits::equal_keys): New function.
26104         (gen_phi_arg_condition): New function.
26105         (predicate_scalar_phi): Add handling of phi nodes with more than two
26106         arguments, delete COND and TRUE_BB arguments, insert body of
26107         find_phi_replacement_condition to predicate ordinary phi nodes.
26108         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
26109         delete call of find_phi_replacement_condition and invoke
26110         predicate_scalar_phi with two arguments.
26111         (insert_gimplified_predicates): Add assert that non-predicated block
26112         don't have statements to insert.
26113         (ifcvt_split_critical_edges): New function.
26114         (ifcvt_split_def_stmt): Likewise.
26115         (ifcvt_walk_pattern_tree): Likewise.
26116         (stmt_is_root_of_bool_pattern): Likewise.
26117         (ifcvt_repair_bool_pattern): Likewise.
26118         (ifcvt_local_dce): Likewise.
26119         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
26120         is copy of inner or outer loop force_vectorize field, invoke
26121         ifcvt_split_critical_edges, ifcvt_local_dce and
26122         ifcvt_repair_bool_pattern for aggressive if-conversion.
26124 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
26126         * config/aarch64/aarch64.md: Include xgene1.md.
26127         * config/aarch64/xgene1.md: New file.
26129 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
26131         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
26132         xgene1 (APM XGene-1) core definition.
26133         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
26134         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
26135         * doc/invoke.texi: Document -mcpu=xgene1.
26137 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26139         * dojump.h: New header file.
26140         * explow.h: Likewise.
26141         * expr.h: Remove includes.
26142         Move expmed.c prototypes to expmed.h.
26143         Move dojump.c prototypes to dojump.h.
26144         Move alias.c prototypes to alias.h.
26145         Move explow.c prototypes to explow.h.
26146         Move calls.c prototypes to calls.h.
26147         Move emit-rtl.c prototypes to emit-rtl.h.
26148         Move varasm.c prototypes to varasm.h.
26149         Move stmt.c prototypes to stmt.h.
26150         (saved_pending_stack_adjust): Move to dojump.h.
26151         (adjust_address): Move to explow.h.
26152         (adjust_address_nv): Move to emit-rtl.h.
26153         (adjust_bitfield_address): Likewise.
26154         (adjust_bitfield_address_size): Likewise.
26155         (adjust_bitfield_address_nv): Likewise.
26156         (adjust_automodify_address_nv): Likewise.
26157         * explow.c (expr_size): Move to expr.c.
26158         (int_expr_size): Likewise.
26159         (tree_expr_size): Likewise.
26160         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26161         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
26162         * genemit.c (main): Generate includes statistics.h, real.h,
26163         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
26164         stmt.h.
26165         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
26166         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
26167         explow.h, emit-rtl.h, stmt.h.
26168         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
26169         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
26170         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
26171         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
26172         emit-rtl.h, varasm.h, stmt.h.
26173         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
26174         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
26175         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
26176         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
26177         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
26178         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
26179         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
26180         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
26181         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
26182         tm.h tree.h varasm.h vec.h wide-int.h.
26183         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
26184         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
26185         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
26186         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
26187         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
26188         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
26189         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
26190         * loop-iv.c: Likewise.
26191         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
26192         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
26193         statistics.h stmt.h tree.h varasm.h wide-int.h.
26194         * lra-constraints.c: Likewise.
26195         * lra-eliminations.c: Likewise.
26196         * lra-lives.c: Likewise.
26197         * lra-remat.c: Likewise.
26198         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
26199         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
26200         statistics.h stmt.h tree.h varasm.h wide-int.h.
26201         * hw-doloop.c: Likewise.
26202         * ira-color.c: Likewise.
26203         * ira-emit.c: Likewise.
26204         * loop-doloop.c: Likewise.
26205         * loop-invariant.c: Likewise.
26206         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
26207         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
26208         statistics.h stmt.h tree.h varasm.h wide-int.h.
26209         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
26210         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
26211         statistics.h stmt.h tree.h varasm.h wide-int.h.
26212         * combine-stack-adj.c: Likewise.
26213         * cse.c: Likewise.
26214         * ddg.c: Likewise.
26215         * ifcvt.c: Likewise.
26216         * ira-costs.c: Likewise.
26217         * jump.c: Likewise.
26218         * lra-coalesce.c: Likewise.
26219         * lra-spills.c: Likewise.
26220         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
26221         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
26222         stmt.h varasm.h wide-int.h.
26223         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
26224         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
26225         varasm.h.
26226         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
26227         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
26228         statistics.h stmt.h varasm.h wide-int.h.
26229         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
26230         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
26231         varasm.h wide-int.h.
26232         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
26233         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
26234         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
26235         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
26236         statistics.h stmt.h.
26237         * config/tilepro/tilepro.c: Likewise.
26238         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
26239         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
26240         * config/pdp11/pdp11.c: Likewise.
26241         * config/xtensa/xtensa.c: Likewise.
26242         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
26243         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
26244         varasm.h.
26245         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26246         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
26247         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
26248         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26249         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
26250         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
26251         * rtl-chkp.c: Likewise.
26252         * tree-chkp-opt.c: Likewise.
26253         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
26254         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
26255         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
26256         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26257         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
26258         statistics.h stmt.h.
26259         * tree-vect-data-refs.c: Likewise.
26260         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
26261         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
26262         rtl.h statistics.h stmt.h varasm.h.
26263         * internal-fn.c: Likewise.
26264         * ipa-icf-gimple.c: Likewise.
26265         * lto-section-out.c: Likewise.
26266         * tree-data-ref.c: Likewise.
26267         * tree-nested.c: Likewise.
26268         * tree-outof-ssa.c: Likewise.
26269         * tree-predcom.c: Likewise.
26270         * tree-pretty-print.c: Likewise.
26271         * tree-scalar-evolution.c: Likewise.
26272         * tree-ssa-strlen.c: Likewise.
26273         * tree-vect-loop.c: Likewise.
26274         * tree-vect-patterns.c: Likewise.
26275         * tree-vect-slp.c: Likewise.
26276         * tree-vect-stmts.c: Likewise.
26277         * tsan.c: Likewise.
26278         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26279         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
26280         stmt.h.
26281         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
26282         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
26283         statistics.h stmt.h varasm.h.
26284         * loop-unroll.c: Likewise.
26285         * ubsan.c: Likewise.
26286         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
26287         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
26288         stmt.h varasm.h.
26289         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26290         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
26291         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
26292         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
26293         statistics.h stmt.h.
26294         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
26295         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
26296         statistics.h stmt.h varasm.h.
26297         * gimple-match-head.c: Likewise.
26298         * lto-cgraph.c: Likewise.
26299         * lto-section-in.c: Likewise.
26300         * lto-streamer-in.c: Likewise.
26301         * lto-streamer-out.c: Likewise.
26302         * tree-affine.c: Likewise.
26303         * tree-cfg.c: Likewise.
26304         * tree-cfgcleanup.c: Likewise.
26305         * tree-if-conv.c: Likewise.
26306         * tree-into-ssa.c: Likewise.
26307         * tree-ssa-alias.c: Likewise.
26308         * tree-ssa-copyrename.c: Likewise.
26309         * tree-ssa-dse.c: Likewise.
26310         * tree-ssa-forwprop.c: Likewise.
26311         * tree-ssa-live.c: Likewise.
26312         * tree-ssa-math-opts.c: Likewise.
26313         * tree-ssa-pre.c: Likewise.
26314         * tree-ssa-sccvn.c: Likewise.
26315         * tree-tailcall.c: Likewise.
26316         * tree-vect-generic.c: Likewise.
26317         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26318         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
26319         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26320         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
26321         * varasm.c: Likewise.
26322         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26323         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
26324         varasm.h.
26325         * init-regs.c: Likewise.
26326         * ira.c: Likewise.
26327         * omp-low.c: Likewise.
26328         * stack-ptr-mod.c: Likewise.
26329         * tree-ssa-reassoc.c: Likewise.
26330         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26331         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
26332         varasm.h.
26333         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26334         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
26335         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26336         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
26337         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26338         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
26339         * tree-ssa-phiopt.c: Likewise.
26340         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26341         fixed-value.h hashtab.h real.h statistics.h stmt.h.
26342         * config/fr30/fr30.c: Likewise.
26343         * config/frv/frv.c: Likewise.
26344         * expr.c: Likewise.
26345         * final.c: Likewise.
26346         * optabs.c: Likewise.
26347         * passes.c: Likewise.
26348         * simplify-rtx.c: Likewise.
26349         * stmt.c: Likewise.
26350         * toplev.c: Likewise.
26351         * var-tracking.c: Likewise.
26352         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26353         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
26354         * lower-subreg.c: Likewise.
26355         * postreload-gcse.c: Likewise.
26356         * ree.c: Likewise.
26357         * reginfo.c: Likewise.
26358         * store-motion.c: Likewise.
26359         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26360         fixed-value.h hashtab.h real.h stmt.h varasm.h.
26361         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26362         fixed-value.h hashtab.h statistics.h stmt.h.
26363         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26364         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
26365         * except.c: Likewise.
26366         * explow.c: Likewise.
26367         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26368         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
26369         varasm.h.
26370         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26371         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
26372         * tree-ssa-structalias.c: Likewise.
26373         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26374         fixed-value.h insn-config.h real.h statistics.h.
26375         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26376         fixed-value.h insn-config.h real.h statistics.h stmt.h.
26377         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26378         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
26379         * cfgbuild.c: Likewise.
26380         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26381         fixed-value.h real.h rtl.h statistics.h stmt.h.
26382         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26383         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
26384         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26385         fixed-value.h real.h statistics.h stmt.h.
26386         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
26387         fixed-value.h real.h statistics.h stmt.h varasm.h.
26388         * cprop.c: Likewise.
26389         * modulo-sched.c: Likewise.
26390         * postreload.c: Likewise.
26391         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
26392         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
26393         statistics.h stmt.h varasm.h.
26394         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
26395         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
26396         rtl.h statistics.h stmt.h varasm.h.
26397         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
26398         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
26399         varasm.h.
26400         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
26401         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
26402         varasm.h.
26403         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
26404         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
26405         varasm.h.
26406         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
26407         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
26408         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
26409         function.h real.h statistics.h stmt.h varasm.h.
26410         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
26411         insn-config.h real.h statistics.h stmt.h.
26412         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
26413         statistics.h stmt.h.
26414         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
26415         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
26416         statistics.h stmt.h varasm.h.
26417         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
26418         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
26419         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
26420         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
26421         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
26422         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
26423         statistics.h stmt.h varasm.h.
26424         * ipa-polymorphic-call.c: Likewise.
26425         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
26426         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
26427         statistics.h stmt.h.
26428         * config/c6x/c6x.c: Likewise.
26429         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
26430         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
26431         statistics.h stmt.h varasm.h.
26432         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
26433         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
26434         stmt.h varasm.h.
26435         * ipa-split.c: Likewise.
26436         * tree-eh.c: Likewise.
26437         * tree-ssa-dce.c: Likewise.
26438         * tree-ssa-loop-niter.c: Likewise.
26439         * tree-vrp.c: Likewise.
26440         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
26441         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
26442         stmt.h.
26443         * config/nds32/nds32-fp-as-gp.c: Likewise.
26444         * config/nds32/nds32-intrinsic.c: Likewise.
26445         * config/nds32/nds32-isr.c: Likewise.
26446         * config/nds32/nds32-md-auxiliary.c: Likewise.
26447         * config/nds32/nds32-memory-manipulation.c: Likewise.
26448         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
26449         * config/nds32/nds32-predicates.c: Likewise.
26450         * config/nds32/nds32.c: Likewise.
26451         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
26452         fixed-value.h hashtab.h real.h statistics.h.
26453         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
26454         fixed-value.h hashtab.h real.h statistics.h stmt.h.
26455         * config/arm/arm.c: Likewise.
26456         * config/avr/avr.c: Likewise.
26457         * config/bfin/bfin.c: Likewise.
26458         * config/h8300/h8300.c: Likewise.
26459         * config/i386/i386.c: Likewise.
26460         * config/ia64/ia64.c: Likewise.
26461         * config/iq2000/iq2000.c: Likewise.
26462         * config/m32c/m32c.c: Likewise.
26463         * config/m32r/m32r.c: Likewise.
26464         * config/m68k/m68k.c: Likewise.
26465         * config/mcore/mcore.c: Likewise.
26466         * config/mep/mep.c: Likewise.
26467         * config/mips/mips.c: Likewise.
26468         * config/mn10300/mn10300.c: Likewise.
26469         * config/moxie/moxie.c: Likewise.
26470         * config/pa/pa.c: Likewise.
26471         * config/rl78/rl78.c: Likewise.
26472         * config/rx/rx.c: Likewise.
26473         * config/s390/s390.c: Likewise.
26474         * config/sh/sh.c: Likewise.
26475         * config/sparc/sparc.c: Likewise.
26476         * config/spu/spu.c: Likewise.
26477         * config/stormy16/stormy16.c: Likewise.
26478         * config/v850/v850.c: Likewise.
26479         * config/vax/vax.c: Likewise.
26480         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
26481         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
26482         * config/msp430/msp430.c: Likewise.
26483         * predict.c: Likewise.
26484         * value-prof.c: Likewise.
26485         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
26486         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
26487         * config/microblaze/microblaze.c: Likewise.
26488         * config/nios2/nios2.c: Likewise.
26489         * config/rs6000/rs6000.c: Likewise.
26490         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
26491         insn-config.h real.h rtl.h statistics.h stmt.h.
26492         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
26493         insn-config.h real.h statistics.h stmt.h.
26494         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
26495         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
26496         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
26497         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
26498         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
26499         fixed-value.h real.h statistics.h stmt.h.
26500         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
26501         fixed-value.h statistics.h stmt.h.
26502         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
26503         stmt.h.
26505 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
26507         * gengtype.c (create_user_defined_type): Workaround
26508         -Wmaybe-uninitialized false positives.
26509         * cse.c (fold_rtx): Likewise.
26510         * loop-invariant.c (gain_for_invariant): Likewise.
26512 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26514         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
26515         set the memory attributes in all cases but clear MEM_EXPR if need be.
26517 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
26519         PR tree-optimization/64434
26520         * cfgexpand.c (reorder_operands): New function.
26521         (expand_gimple_basic_block): Insert call of reorder_operands if
26522         optimized is true.
26524 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
26526         * config/mips/micromips.md (*swp): Remove explicit parallel.
26527         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
26528         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
26529         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
26530         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
26531         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
26532         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
26533         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
26534         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
26535         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
26536         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
26537         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
26538         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
26539         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
26540         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
26541         (mips_wrdsp): Likewise.
26542         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
26543         parallel.
26544         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
26545         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
26546         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
26547         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
26548         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
26549         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
26550         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
26551         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
26552         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
26554 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
26556         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
26557         (mips_print_operand): Support 'y' to print exact log2 in decimal
26558         of a const_int.
26559         * config/mips/mips.h (ISA_HAS_LSA): New define.
26560         (ISA_HAS_DLSA): Likewise.
26561         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
26562         * config/mips/predicates.md (const_immlsa_operand): New predicate.
26564 2015-01-15  Martin Liska  <mliska@suse.cz>
26566         PR target/64377
26567         * optc-save-gen.awk: Add support for array types.
26569 2015-01-15  Richard Biener  <rguenther@suse.de>
26571         PR middle-end/64365
26572         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
26573         for MEM_REF access functions with the same base can never partially
26574         overlap.
26576 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
26578         * common.opt: New option -fstack-protector-explicit.
26579         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
26580         (stack_protect_decl_phase): Handle stack_protect attribute for
26581         explicit stack protection requests.
26582         (expand_used_vars): Similarly.
26583         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
26584         * doc/extend.texi: Add documentation for "stack_protect" attribute.
26585         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
26587 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
26589         PR target/53988
26590         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
26591         reg-reg copies.
26592         (sh_extending_set_of_reg): New struct.
26593         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
26594         sh_remove_reg_dead_or_unused_notes): New Declarations.
26595         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
26596         sh_find_extending_set_of_reg, sh_split_tst_subregs,
26597         sh_extending_set_of_reg::use_as_extended_reg): New functions.
26598         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
26599         convert to insn_and_split and use new function sh_split_tst_subregs.
26601 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
26603         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
26604         option.
26605         (Optimization Options): Move -fuse-ld documentation to...
26606         (Link Options): ...here.
26608 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
26610         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
26611         offsets.
26612         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
26613         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
26614         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
26615         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
26616         instead of ZR for the memory operand of LL/SC.
26617         (compare_and_swap_12, sync_add<mode>): Likewise.
26618         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
26619         (sync_new_<optab>_12, sync_nand_12): Likewise.
26620         (sync_old_nand_12, sync_new_nand_12): Likewise.
26621         (sync_sub<mode>, sync_old_add<mode>): Likewise.
26622         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
26623         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
26624         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
26625         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
26626         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
26627         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
26628         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
26629         * doc/md.texi (ZC): Update description.
26631 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
26633         * builtins.c (expand_builtin_atomic_exchange): Remove error when
26634         memory model is CONSUME.
26635         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
26636         expand_builtin_atomic_store): Change invalid memory model errors to
26637         warnings.
26638         (expand_builtin_atomic_clear): Change invalid model errors to warnings
26639         and issue warning for CONSUME.
26641 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
26643         * lto-cgraph: Update function comments for
26644         lto_symtab_encoder_encode_*.
26646 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
26648         * Makefile.in (site.exp): Do not set ENABLE_LTO.
26650 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
26652         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
26653         * lto-cgraph.c (select_what_to_stream): Remove argument, use
26654         lto_stream_offload_p instead.
26655         * lto-streamer.h (select_what_to_stream): Remove argument.
26656         * passes.c (ipa_write_summaries): Likewise.
26657         * tree-pass.h (ipa_write_summaries): Likewise.
26659 2015-01-14  Richard Biener  <rguenther@suse.de>
26661         PR tree-optimization/59354
26662         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
26663         groups larger than the slp group size as having gaps.
26665 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
26667         PR middle-end/59448
26668         * builtins.c (get_memmodel): Promote consume to acquire always.
26670 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
26672         PR target/64386
26673         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
26674         V32HImode.
26676 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
26678         PR target/64393
26679         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
26680         Enable AVX512BW.
26681         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
26682         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
26683         AVX512VBMI, as it implies AVX512BW.
26685 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
26687         PR target/64387
26688         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
26689         (vec_unpacks_hi_v16sf): Ditto.
26691 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26693         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
26694         is not available.
26696 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26698         * doc/invoke.texi (mapcs): Mention deprecation.
26699         (mapcs-frame): Likewise.
26701 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26703         PR target/64453
26704         * config/arm/arm.c (callee_saved_reg_p): Define.
26705         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
26706         register is callee saved instead of !call_used_regs[reg].
26707         (thumb1_compute_save_reg_mask): Likewise.
26709 2015-01-14  Hale Wang  <hale.wang@arm.com>
26711         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
26712         Cortex-M7.
26714 2015-01-14  Richard Biener  <rguenther@suse.de>
26716         PR lto/64415
26717         * tree-inline.c (insert_debug_decl_map): Check destination
26718         function MAY_HAVE_DEBUG_STMTS.
26719         (insert_init_debug_bind): Likewise.
26720         (insert_init_stmt): Remove redundant check.
26721         (remap_gimple_stmt): Drop debug stmts if the destination
26722         function has var-tracking assignments disabled.
26724 2015-01-14  Martin Liska  <mliska@suse.cz>
26726         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
26727         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
26729 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26731         PR target/64460
26732         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
26733         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
26735 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
26737         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
26738         level from an ARCH; do not inject the default.
26739         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
26740         MIPS_ISA_LEVEL_SPEC.
26741         (MIPS_ISA_NAN2008_SPEC): Update comment.
26742         (BASE_DRIVER_SELF_SPECS): Likewise.
26743         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
26744         MIPS_DEFAULT_ISA_LEVEL_SPEC.
26745         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
26746         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
26747         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
26749 2015-01-14  Richard Biener  <rguenther@suse.de>
26751         PR tree-optimization/64493
26752         PR tree-optimization/64495
26753         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
26754         assign the proper vectorized PHI to the inner loop exit PHIs.
26756 2015-01-14  Joey Ye  <joey.ye@arm.com>
26758         * config/arm/arm.c (arm_compute_save_reg_mask):
26759         Do not save lr in case of tail call.
26760         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
26762 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
26764         * tree-vrp.c (check_array_ref): Emit more warnings
26765         for warn_array_bounds >= 2.
26766         * common.opt: New option -Warray-bounds=.
26767         * doc/invoke.texi: Document -Warray-bounds=.
26769 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
26771         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
26772         (mforbid-fp-as-gp): Remove.
26773         (mex9): Remove.
26774         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
26775         (nds32_symbol_load_store_p): Remove.
26776         (nds32_fp_as_gp_check_available): Clean up implementation.
26777         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
26778         cases.
26779         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
26780         fp-as-gp and ex9 cases.
26782 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
26784         * tree-profile.c (init_ic_make_global_vars): Drop workaround
26785         for bintuils bug 14342.
26786         (init_ic_make_global_vars): Likewise.
26787         (gimple_init_edge_profiler): Likewise.
26788         (gimple_gen_ic_func_profiler): Likewise.
26790 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
26792         * ipa-inline.c (inline_small_functions): Swap the operands in
26793         enum.
26795 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
26797         PR ipa/64481
26798         * ipa-inline-analysis.c (node_growth_cache): Remove.
26799         (initialize_growth_caches): Do not initialize it.
26800         (free_growth_caches): Do not free it.
26801         (do_estimate_growth): Rename to ...
26802         (estimate_growth): ... this one; drop growth cache code.
26803         (growth_likely_positive): Always go the heuristics way.
26804         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
26805         (reset_edge_caches): Do not reset node growth.
26806         (heap_edge_removal_hook): Do not maintain cache.
26807         (inline_small_functions): Likewise; strenghten sanity check.
26808         (ipa_inline): Do not maintain caches.
26809         * ipa-inline.h (node_growth_cache): Remove.
26810         (do_estimate_growth): Remove to ...
26811         (estimate_growth): this one; remove inline version.
26812         (reset_node_growth_cache): Remove.
26814 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
26816         PR ipa/64565
26817         * ipa-inline.c (inline_small_functions): Update callee keys after
26818         resolving speculation
26819         (inline_small_functions): Always check monotonicity of the queue.
26821 2015-01-13  Marek Polacek  <polacek@redhat.com>
26823         PR middle-end/64391
26824         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
26826 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
26828         PR rtl-optimization/64286
26829         * ree.c (combine_reaching_defs): Move part of comment earlier,
26830         remove !SCALAR_INT_MODE_P check.
26831         (add_removable_extension): Don't add vector mode
26832         extensions if all uses of the source register aren't the same
26833         vector extensions.
26835 2015-01-13  Renlin Li  <renlin.li@arm.com>
26837         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
26838         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
26840 2015-01-13  Martin Liska  <mliska@suse.cz>
26842         * ipa-icf.c (sem_function::equals_private): Call new functions
26843         cl_target_option_print_diff and cl_optimization_print_diff.
26844         * optc-save-gen.awk (cl_target_option_print_diff): New function.
26845         (cl_optimization_print_diff): Likewise.
26846         * opth-gen.awk: Likewise.
26848 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
26850         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
26851         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
26852         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
26853         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
26854         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
26855         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
26857 2015-01-13  Andrew Pinski  <apinski@cavium.com>
26859         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
26860         instead of src mode.
26862 2015-01-13  Richard Biener  <rguenther@suse.de>
26864         PR lto/64373
26865         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
26866         DECL_CONTEXT.
26868 2015-01-13  Andrew Pinski  <apinski@cavium.com>
26870         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
26871         volatile mems.
26872         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
26874 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
26876         PR middle-end/63974
26877         * cfgexpand.c (expand_computed_goto): Don't call
26878         convert_memory_address here.
26880 2015-01-13  Richard Biener  <rguenther@suse.de>
26882         PR tree-optimization/64406
26883         * tree-loop-distibution.c (pass_loop_distribution::execute):
26884         Reset the SCEV hashtable if we distributed anything.
26886 2015-01-13  Richard Biener  <rguenther@suse.de>
26888         PR tree-optimization/64404
26889         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
26890         SLP types for CSEd loads.
26892 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26894         PR tree-optimization/64436
26895         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
26896         merge of two symbolic numbers for a bitwise OR to ...
26897         (perform_symbolic_merge): This. Also fix computation of the range and
26898         end of the symbolic number corresponding to the result of a bitwise OR.
26900 2015-01-13  Richard Biener  <rguenther@suse.de>
26902         PR tree-optimization/64568
26903         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
26904         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
26906 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26908         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
26909         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
26911 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26913         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
26914         target-specific symbol_ref flag.
26915         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
26916         resides in rodata section.
26917         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
26918         (nds32_encode_section_info): New function.
26920 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26922         * config/nds32/nds32.md (call): Use pseudo instruction bal which
26923         clobbers TA_REGNUM if large code model is specified.
26924         (call_register): Likewise.
26925         (call_immediate): Likewise.
26926         (call_value): Likewise.
26927         (call_value_register): Likewise.
26928         (call_value_immediate): Likewise.
26930 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26932         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
26933         (TARGET_CMODEL_MEDIUM): New macro.
26934         (TARGET_CMODEL_LARGE): New macro.
26935         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
26936         code model setting in assembly code.
26938 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26940         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
26941         Remove MASK_GP_DIRECT flag.
26942         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
26943         one of the multilib default options.
26944         * config/nds32/nds32.opt (mgp-direct): Remove.
26945         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
26946         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
26948 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
26950         * config/nds32/nds32.opt (mcmodel): Add new option.
26951         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
26952         to describe code model.
26954 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
26956         PR target/64479
26957         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
26959 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
26961         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
26962         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
26963         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
26964         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
26965         __builtin_sh_set_fpscr.
26967 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
26969         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
26970         after a funtion name just to indicate it is a function.
26971         ([-fsanitize-undefined-trap-on-error]): Likewise.
26972         ([-fdbg-cnt=]): Likewise.
26973         ([-mmemcpy]): Likewise.
26974         ([-mflush-func]): Likewise.
26975         ([-msynci]): Likewise.
26977 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
26979         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
26980         example.
26982 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
26984         PR tree-optimization/64563
26985         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
26986         instead of != VR_VARYING.
26988         PR target/64513
26989         * config/i386/i386.c (ix86_expand_prologue): Add
26990         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
26992         PR tree-optimization/64454
26993         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
26994         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
26995         for signed or [0, op1 - 1] for unsigned modulo.
26996         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
26997         even if op1 does not satisfy integer_pow2p.
26999         PR other/64370
27000         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
27002 2015-01-12  Jeff Law  <law@redhat.com>
27004         PR target/64461
27005         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
27006         (trunchiqi2, truncsihi2): Similarly.
27008         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
27009         rather than calling F.
27011 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27013         * tsan.c (instrument_expr): Use force_gimple_operand.
27014         Use may_be_nonaddressable_p instead of is_gimple_addressable.
27016 2015-01-12  Richard Biener  <rguenther@suse.de>
27018         PR tree-optimization/64530
27019         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
27020         back dr1.
27022 2015-01-12  Richard Biener  <rguenther@suse.de>
27024         PR middle-end/64357
27025         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
27026         latches properly.
27028 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27030         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
27031         Cortex-A17 tuning parameters.
27032         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
27034 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27036         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
27037         * config/arm/arm.c (arm_macro_fusion_p): New function.
27038         (arm_macro_fusion_pair_p): Likewise.
27039         (TARGET_SCHED_MACRO_FUSION_P): Define.
27040         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
27041         (ARM_FUSE_NOTHING): Likewise.
27042         (ARM_FUSE_MOVW_MOVT): Likewise.
27043         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
27044         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
27045         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
27046         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
27047         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
27048         arm_cortex_a5_tune): Specify fuseable_ops value.
27050 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
27052         PR bootstrap/64561
27053         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
27054         test for PIE with copy reloc.
27055         * configure: Regenerated.
27057 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27059         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
27060         in gen_rtx_REG.
27061         (arm_tls_descseq_addr): Likewise.
27062         (arm_gen_movmemqi): Likewise.
27063         (arm_expand_epilogue_apcs_frame): Likewise.
27064         (arm_expand_epilogue): Likewise.
27065         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
27066         in gen_rtx_REG.
27068 2015-01-12  Martin Liska  <mliska@suse.cz>
27070         PR ipa/64550
27071         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
27072         volatility for correct operands.
27074 2015-01-12  Martin Liska  <mliska@suse.cz>
27076         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
27077         indication that a function is not leaf.
27078         (sem_function::compare_polymorphic_p): Likewise.
27080 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27082         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
27083         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
27084         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
27085         fold-const.h, tree-check.h.
27087 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
27089         PR ipa/63967
27090         PR ipa/64425
27091         * ipa-inline.c (compute_uninlined_call_time,
27092         compute_inlined_call_time): Use counts for extra precision when
27093         needed possible.
27094         (big_speedup_p): Fix formating.
27095         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
27096         (relative_time_benefit): Remove.
27097         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
27098         merge guessed and read profile paths.
27099         (inline_small_functions): Count only !optimize_size functions into
27100         initial size; be more lax about sanity check when profile is used;
27101         be sure to update inlined function profile when profile is read.
27103 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
27105         PR ipa/63470
27106         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
27107         cost when edge becomes direct.
27108         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
27109         is resolved or when introducing new speculation.
27111 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
27113         PR ipa/64551
27114         PR ipa/64552
27115         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
27116         '||' to fix typo issue.
27118         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
27119         accept and return NULL.
27121 2015-01-12  Martin Liska  <mliska@suse.cz>
27123         * cgraph.c (cgraph_edge::remove_callee): Move function to header
27124         file for being inlined.
27125         (cgraph_set_edge_callee): Delete.
27126         (cgraph_edge::redirect_callee): Move function to header file
27127         for being inlined.
27128         (cgraph_edge::make_direct): Use new function.
27129         (cgraph_edge::dump_edge_flags): New function created from
27130         static dump_edge_flags function.
27131         (cgraph_node::dump): Use new function.
27132         (cgraph_edge::verify_count_and_frequency): New function created
27133         from verify_edge_count_and_frequency.
27134         (cgraph_edge::verify_corresponds_to_fndecl): New function created
27135         from verify_edge_corresponds_to_fndecl.
27136         (verify_edge_corresponds_to_fndecl): Delete.
27137         (cgraph_node::verify_node): Use new function.
27138         * cgraph.h (cgraph_edge::set_callee): New function.
27139         (cgraph_edge::dump_edge_flags): Likewise.
27140         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
27142 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
27144         * ipa-utils.c (estimate_function_body_sizes): Do not
27145         free node params when called late with early=true.
27147 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
27149         * doc/md.texi (Instruction Patterns): Rewrite text for
27150         clarity.
27151         (Example): Likewise.
27153 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
27155         * doc/invoke.texi (Option Summary): Break long lines.
27156         [(-fdiagnostics-color)]: Put long literal in @smallexample
27157         instead of inline.
27158         [(-fsanitize-recover)]: Likewise.
27159         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
27160         [(-ffast-math)]: Likewise.
27161         [(--param max-inline-insns-recursive)]: Likewise.
27162         [(--param max-inline-recursive-depth)]: Likewise.
27163         [(-mno-text-section-literals)]: Likewise.
27165 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
27167         * doc/install.texi: Update for libgomp being renamed from "GNU
27168         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
27169         Runtime Library".
27170         * doc/sourcebuild.texi: Likewise.
27172 2015-01-10  Anthony Green  <green@moxielogic.com>
27174         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
27175         mul.x availability for moxiebox configuration.
27177 2015-01-09  Anthony Green  <green@moxielogic.com>
27179         * config/moxie/moxie.md: Tabify assembly output.
27181 2015-01-09  Anthony Green  <green@moxielogic.com>
27183         * config/moxie/moxie.md (CC_REG): Correct register definition.
27185 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
27187         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
27188         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
27189         of log files.
27191 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
27193         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
27195 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
27196             Jakub Jelinek  <jakub@redhat.com>
27198         PR middle-end/64412
27199         * lto-streamer.h (lto_stream_offload_p): New declaration.
27200         * lto-streamer.c (lto_stream_offload_p): New variable.
27201         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
27202         at the same time as section_name_prefix.
27203         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
27204         if lto_stream_offload_p.
27205         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
27206         stream TREE_TARGET_OPTION if lto_stream_offload_p.
27207         (write_ts_function_decl_tree_pointers): Don't
27208         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
27209         * tree-streamer-in.c (unpack_value_fields): Don't stream
27210         TREE_TARGET_OPTION in if ACCEL_COMPILER.
27211         (lto_input_ts_function_decl_tree_pointers): Don't stream
27212         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
27213         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
27214         instead of section_name_prefix string comparisons.
27216 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
27218         PR rtl-optimization/64536
27219         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
27220         tablejumps.
27222 2015-01-09  Michael Collison  <michael.collison@linaro.org>
27224         PR tree-optimization/64322
27225         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
27226         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
27228 2015-01-09  Tom de Vries  <tom@codesourcery.com>
27230         PR rtl-optimization/64539
27231         * regcprop.c (kill_clobbered_values): Factor out of ...
27232         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
27233         instead of note_stores with kill_clobbered_value.
27235 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
27237          * ginclude/unwind-arm-common.h: Revert previous commit.
27239 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
27241         * config.gcc (arm*-*-freebsd*): New configuration.
27242         * config/arm/freebsd.h: New file.
27243         * config.host: Add extra components for arm*-*-freebsd*.
27244         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
27245         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
27247 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27249         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
27250         for -mcpu=e6500.
27251         * config/rs6000/t-rtems: Add e6500 multilibs.
27253 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27255         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
27256         MPC8540.
27258 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27260         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
27261         MULTILIB_EXCEPTIONS.
27263 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27265         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
27266         MULTILIB_EXCEPTIONS.
27268 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
27270         * config/arm/t-rtems-eabi: Rename to...
27271         * config/arm/t-rtems: ...this.
27272         * config/arm/rtems-eabi.h: Rename to...
27273         * config/arm/rtems.h: ...this.
27274         * config.gcc (arm*-*-rtems*): Reflect changes above.
27276 2015-01-09  Richard Biener  <rguenther@suse.de>
27278         PR tree-optimization/64410
27279         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
27280         on the LHS.
27281         (execute_update_addresses_taken): Deal with that.
27282         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
27283         loads/stores for complex variables.
27285 2015-01-09  Martin Liska  <mliska@suse.cz>
27287         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
27288         name comparison.
27289         (func_checker::compare_memory_operand): New function.
27290         (func_checker::compare_operand): Split case to newly
27291         added functions.
27292         (func_checker::compare_cst_or_decl): New function.
27293         (func_checker::compare_gimple_call): Identify
27294         memory operands.
27295         (func_checker::compare_gimple_assign): Likewise.
27296         * ipa-icf-gimple.h: New function.
27298 2015-01-09  Martin Liska  <mliska@suse.cz>
27300         PR ipa/64503
27301         * sreal.c (sreal::dump): Change unsigned format to signed for
27302         m_exp value.
27303         (sreal::to_double): Replace exp2 with scalbln.
27305 2015-01-09  Martin Liska  <mliska@suse.cz>
27307         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
27308         * ipa-icf.c (sem_function::equals_private): Add support for target and
27309         (sem_item_optimizer::merge_classes): Remove redundant function
27310         optimization flags comparison.
27311         * tree.h (target_opts_for_fn): New function.
27313 2015-01-09  Tom de Vries  <tom@codesourcery.com>
27315         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
27317 2015-01-09  Kito Cheng  <kito@0xlab.org>
27319         PR rtl-optimization/64348
27320         * lra-constraints.c (split_reg): Fix caller-save store/restore
27321         instruction generation.
27323 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
27325         PR gcov-profile/61790
27326         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
27327         long long.  Fallback to int64_t if host doesn't have long long and
27328         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
27330 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
27332         PR tree-optimization/63989
27333         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
27334         from 1000 to 10000.
27335         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
27336         (get_stridx): If we don't have a record for certain SSA_NAME,
27337         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
27338         constant offset, call get_stridx_plus_constant.
27339         (get_stridx_plus_constant): New function.
27340         (zero_length_string): Don't use get_stridx here.
27342         PR target/55023
27343         PR middle-end/64388
27344         * dse.c (struct insn_info): Mention frame_read set also
27345         before reload for tail calls on some targets.
27346         (scan_insn): Revert 2014-12-22 change.  Set frame_read
27347         also before reload for tail calls if
27348         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
27349         instead of add_non_frame_wild_read for non-const/memset
27350         tail calls after reload.
27352 2015-01-08  Jason Merrill  <jason@redhat.com>
27354         * ubsan.c (do_ubsan_in_current_function): New.
27355         (pass_ubsan::gate): Use it.
27356         * ubsan.h: Declare it.
27357         * convert.c (convert_to_integer): Use it.
27359 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
27361         PR target/64338
27362         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
27363         compare_code when it is unconditionally overwritten afterwards.
27364         Use ix86_reverse_condition instead of reverse_condition.  Don't
27365         change code if *reverse_condition* returned UNKNOWN and don't
27366         swap ct/cf and negate diff in that case.
27368 2015-01-08  Mike Stump  <mikestump@comcast.net>
27370         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
27371         (pass_tsan_O0::gate): Likewise.
27372         * extend.texi (Function Attributes): Add no_sanitize_thread
27373         documentation.
27375 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
27377         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
27378         for registering builtins.
27379         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
27380         add -fopenmp to the argv_obstack used when invoking
27381         compile_for_target.
27383         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
27384         add "-m32" or "-m64" to argv_obstack.
27385         (generate_host_descr_file): Likewise, when invoking host_compiler.
27386         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
27387         ld.
27389 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
27391         * config/sh/sh-mem.cc: Use constant as second operand when emitting
27392         tstsi_t insns.
27394 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
27396         PR target/55212
27397         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
27398         constant load if constant operand fits into I08.
27400 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
27402         PR sanitizer/64336
27403         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
27404         and TREE_THIS_VOLATILE for MEM_REFs.
27405         (build5_stat): Fix up initialization of TREE_READONLY and
27406         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
27408 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
27410         PR target/64533
27411         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
27412         of r for the second alternative of the destination operand.
27414 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
27416         PR target/36557
27417         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
27419 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
27421         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
27422         keywords.
27423         ([-fivar-visibility], [-fvisibility]): Likewise.
27425 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
27427         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
27428         the file where @code, @command, etc is more appropriate.
27430 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
27432         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
27433         of -mrecip= documentation.
27435 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
27437         PR target/64505
27438         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
27439         correct reload handler if -m32 -mpowerpc64 is used.
27441 2015-01-06  Tom de Vries  <tom@codesourcery.com>
27443         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
27445 2015-01-08  Christian Bruel  <christian.bruel@st.com>
27447         PR target/64507
27448         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
27450 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27452         PR tree-optimization/63259
27453         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
27454         if optab exists for 16bit byteswap.
27456 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
27458         * opts.c (common_handle_option): Add support for
27459         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
27460         * doc/invoke.texi: Document -fno-sanitize=all,
27461         -f{,no-}sanitize-recover=all.  Document that
27462         -fsanitize=float-cast-overflow is not enabled
27463         by -fsanitize=undefined.  Fix up documentation
27464         of -f{,no-}sanitize-recover.
27466 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
27468         * config.gcc: Add Visium support.
27469         * configure.ac: Likewise.
27470         * configure: Regenerate.
27471         * doc/extend.texi (interrupt attribute): Add Visium.
27472         * doc/invoke.texi: Document Visium options.
27473         * doc/install.texi: Document Visium target.
27474         * doc/md.texi: Document Visium constraints.
27475         * common/config/visium: New directory.
27476         * config/visium: Likewise.
27478 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
27480         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
27481         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
27483 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
27485         * combine.c (combine_validate_cost): Do not count the cost of a
27486         split I2 twice.  Do not display it twice in the dump, either.
27488 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
27490         Revert parts of r219199.
27491         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
27492         <inttypes.h>.
27493         ([-Wtraditional]): Restore markup on <limits.h>.
27495 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
27497         PR c++/31397
27498         * doc/invoke.texi: Document -Wsuggest-override.
27500 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
27502         PR rtl-optimization/64287
27503         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
27504         (process_options): Disable flag_ipa_ra if profiling.
27506 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27508         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
27510 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
27512         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
27513         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
27514         put under #if TARGET_LOOPS guard.
27516 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
27518         * config/i386/i386.c (output_387_binary_op): Use std::swap.
27520 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
27522         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
27523         * rtl.h (refers_to_regno_p): Add overload.
27524         * cse.c: Use it.
27525         * bt-load.c: Likewise.
27526         * combine.c: Likewise.
27527         * df-scan.c: Likewise.
27528         * sched-deps.c: Likewise.
27529         * config/s390/s390.c: Likewise.
27530         * config/m32r/m32r.c: Likewise.
27531         * config/rs6000/spe.md: Likewise.
27532         * config/rs6000/rs6000.c: Likewise.
27533         * config/pa/pa.c: Likewise.
27534         * config/stormy16/stormy16.c: Likewise.
27535         * config/cris/cris.c: Likewise.
27536         * config/arc/arc.md: Likewise.
27537         * config/arc/arc.c: Likewise.
27538         * config/sh/sh.md: Likewise.
27539         * config/sh/sh.c: Likewise.
27540         * config/frv/frv.c: Likewise.
27542 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
27544         PR sanitizer/64265
27545         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
27546         call as cleanup of the whole body.
27547         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
27548         * tsan.c (replace_func_exit): New function.
27549         (instrument_func_exit): Moved earlier.
27550         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
27551         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
27552         been found.
27553         (tsan_pass): Don't call instrument_func_exit.
27554         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
27555         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
27556         inlining.
27558         PR sanitizer/64344
27559         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
27560         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
27561         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
27562         if the result is integer_zerop, return NULL_TREE.
27563         * convert.c (convert_to_integer): Pass expr as ARG.
27565         PR tree-optimization/64465
27566         * tree-inline.c (redirect_all_calls): During inlining
27567         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
27568         changed the stmt to a non-throwing call.
27570 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
27572         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
27573         etc markup throughout the file.
27575 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27577         Enable experimental TSAN support for Ada.
27578         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
27580 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
27582         PR tree-optimization/64494
27583         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
27584         clear SSA_NAME_ANTI_RANGE_P flag.
27586 2015-01-05  Marek Polacek  <polacek@redhat.com>
27588         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
27590 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
27592         Update copyright years.
27594         * gcc.c (process_command): Update copyright notice dates.
27595         * gcov-dump.c: Ditto.
27596         * gcov.c: Ditto.
27597         * doc/cpp.texi: Bump @copying's copyright year.
27598         * doc/cppinternals.texi: Ditto.
27599         * doc/gcc.texi: Ditto.
27600         * doc/gccint.texi: Ditto.
27601         * doc/gcov.texi: Ditto.
27602         * doc/install.texi: Ditto.
27603         * doc/invoke.texi: Ditto.
27605         * auto-profile.c, auto-profile.h: Fix up Copyright line.
27607 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
27609         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
27610         verb tense, etc.
27611         ([-fvtable-verify], [-fvtv-debug]): Likewise.
27612         ([-Wabi]): Likewise.
27613         ([-fmessage-length]): Likewise.
27614         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
27615         ([-Wno-discarded-qualifiers]): Likewise.
27616         ([-Wnodiscarded-array-qualifiers]): Likewise.
27617         ([-Wno-virtual-move-assign]): Likewise.
27618         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
27619         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
27620         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
27621         ([-fsanitize-undefined-trap-on-error]): Likewise.
27622         ([-floop-interchange]): Likewise.
27623         ([-ftree-coalesce-inlined-vars]): Likewise.
27624         ([-fvect-cost-model]): Likewise.
27625         ([-flto]): Likewise.
27626         ([--param]): Likewise.
27627         (Spec Files): Likewise.
27628         ([-mstrict-align]): Likewise.
27629         ([-mfix-cortex-a53-835769]): Likewise.
27630         ([-march], [-mtune]): Likewise.
27631         ([-mpic-register]): Likewise.
27632         ([-munaligned-access]): Likewise.
27633         ([-msp8]): Likewise.
27634         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
27635         (AVR Built-in Macros): Likewise.
27636         ([-mpreferred-stack-boundary]): Likewise.
27637         ([-mtune-crtl]): Likewise.
27638         ([-mashf]): Likewise.
27639         ([-mmcu=]): Likewise.
27640         ([-minrt]): Likewise.
27641         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
27642         ([-mupper-regs]): Likewise.
27643         ([-matomic-model]): Likewise.
27644         ([-mdiv]): Likewise.
27645         ([-mzdcbranch]): Likewise.
27646         ([-mdisable-callt]): Likewise.
27647         ([-msoft-float]): Likewise.
27648         ([-m8byte-align]): Likewise.
27649         ([-fstack-reuse]): Likewise.
27651 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
27653         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
27654         Fix markup, light copy-editing.
27655         ([-fauto-profile]): Rewrite to fix formatting and content
27656         problems.
27658 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
27660         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
27661         Copy-edit description.
27662         ([-fisolate-erroneous-paths-attribute]): Likewise.
27663         * common.opt (fisolate-erroneous-paths-dereference):
27664         Copy-edit description.
27665         (fisolate-erroneous-paths-attribute): Likewise.
27667 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
27669         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
27670         tidy grammar.
27672 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
27674         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
27675         ([-fvtv-debug]): Likewise.
27676         ([-Wc++-compat]): Likewise.
27677         ([-Wc++11-compat]): Likewise.
27678         ([-Wc++14-compat]): Likewise.
27679         ([-Wno-sized-deallocation]): Likewise.
27680         ([-femit-class-debug-always]): Likewise.
27681         ([-femit-struct-debug-detailed]): Likewise.
27682         ([-fno-keep-inline-dllexport]): Likewise.
27683         ([-fira-algorithm]): Likewise.
27684         ([-fira-region]): Likewise.
27685         ([-flra-remat]): Likewise.
27686         ([-fipa-ra]): Likewise.
27687         ([-fhoist-adjacent-loads]): Likewise.
27688         ([-fisolate-erroneous-paths-dereference]): Likewise.
27689         ([-fisolate-erroneous-paths-attribute]): Likewise.
27690         ([-ftree-switch-conversion]): Likewise.
27691         ([-ftree-tail-merge]): Likewise.
27692         ([-ftree-loop-if-convert]): Likewise.
27693         ([-ftree-loop-if-convert-stores]): Likewise.
27694         ([-ftree-loop-distribution]): Likewise.
27695         ([-ftree-loop-distribute-patterns]): Likewise.
27696         ([-flto-compression-level]): Likewise.
27697         ([-flto-report]): Likewise.
27698         ([-flto-report-wpa]): Likewise.
27699         ([-fuse-linker-plugin]): Likewise.
27700         ([-mfix-cortex-a53-835769]): Likewise.
27701         ([-mno-fix-cortex-a53-835769]): Likewise.
27702         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
27703         explicit listing; add a note to the discussion indicating they
27704         exist.  Reorder table to group similar options.  Add missing
27705         @opindex entries.  Add @need commands throughout the table to
27706         allow it to be split across multiple pages.
27707         ([-m8bit-idiv]): Fix @opindex.
27708         ([-mavx256-split-unaligned-load]): Likewise.
27709         ([-mavx256-split-unaligned-store]): Likewise.
27710         ([-mstack-protector-guard]): Likewise.
27711         ([-mcpu=]): Likewise.
27712         ([-mcpu]): Likewise.
27713         ([-mpointer-size=]): Likewise.
27715 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
27717         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
27718         instead of `m' constraint.  Likewise for unnamed movb comparison
27719         patterns using reg_before_reload_operand predicate.
27720         * config/pa/predicates.md (reg_before_reload_operand): Tighten
27721         predicate to reject register index and LO_SUM DLT memory forms
27722         after reload.
27724 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
27726         * doc/invoke.texi (Option Summary): Fix spelling of
27727         -fdevirtualize-at-ltrans.
27728         ([-fdevirtualize]): Fix markup.
27729         ([-fdevirtualize-speculatively]): Fix typo.
27730         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
27731         implementor-speaky.
27732         * common.opt (fdevirtualize-at-ltrans): Likewise.
27733         * ipa-devirt.c: Fix typos in comments throughout the file.
27734         (ipa_devirt): Fix typos in format strings for dump output.
27736 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
27738         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
27739         discussion of defaults, light copy-editing.
27741 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27743         * tsan.c (instrument_expr): corrected previous checkin.
27745 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27747         Instrument bit field and unaligned accesses for TSAN.
27748         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
27749         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
27750         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
27751         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
27752         unaligned memory regions.
27754 2015-01-01  Anthony Green  <green@moxielogic.com>
27756         * config/moxie/predicates.md (moxie_general_movsrc_operand):
27757         Restrict move source register offsets to 16 bits.
27759 Copyright (C) 2015 Free Software Foundation, Inc.
27761 Copying and distribution of this file, with or without modification,
27762 are permitted in any medium without royalty provided the copyright
27763 notice and this notice are preserved.